詳細(xì)介紹
西門子SM1221數(shù)字量模塊8輸入是將1-4各欄的所有ascii字元的16進(jìn)制數(shù)值以“lrc(longitudinal redundancy check)”法計(jì)算出1個(gè)byte長(zhǎng)度(兩個(gè)16進(jìn)制數(shù)值00-ffh)的校驗(yàn)碼。當(dāng)下位機(jī)接收到信息后,用同樣的方法計(jì)算出接收信息的校驗(yàn)碼,如果兩 個(gè)校驗(yàn)碼相同,則說明傳送正。
(6) 結(jié)束字元(etx):ascii碼的結(jié)束西門子SM1221數(shù)字量模塊8輸入字元etx對(duì)應(yīng)的16進(jìn)制數(shù)為03h。無論命令信息還是回應(yīng)信息,他們的結(jié)束字元均為etx,接收方以此來判知此 次通訊已結(jié)束。
3.2 通訊命令
永宏系列plc有多種命令字,常用的幾種描述如附表所示。例如,上位機(jī)要讀取plc內(nèi)部繼電器m1和m2的狀態(tài),則上位機(jī)發(fā)送的命令字符串格式為:
起始符(02h)+站號(hào)(01)+命令字(44)+個(gè)數(shù)(02)+起始地址(0001)+校驗(yàn)碼(3b)+結(jié)束符
相應(yīng)下位機(jī)響應(yīng)的字符串為:
起始符(02h)+站號(hào)(01)+命令字(44)+錯(cuò)誤碼(0)+m0,m1狀態(tài)(10)+校驗(yàn)碼(5c)+結(jié)束符若要對(duì)字元件進(jìn)行寫操作,那么命令碼改 為47。表明該指令要向plc內(nèi)部寄存器寫入數(shù)據(jù),同時(shí)要給出寫入的數(shù)據(jù)個(gè)數(shù)、開始寄存器和數(shù)據(jù)內(nèi)容。
校驗(yàn)和在信息幀的尾部,用來判斷傳輸?shù)恼_與否。當(dāng)數(shù)據(jù)從信息源出發(fā),由于信道總是有一定的噪聲存在,在信號(hào)達(dá)到信宿之前會(huì)與噪聲發(fā)生疊加,使接收端收到的二進(jìn)制數(shù)位和發(fā)送端實(shí)際發(fā)送的二進(jìn)制數(shù)位不西門子SM1221數(shù)字量模塊8輸入*,因而產(chǎn)生差錯(cuò)。進(jìn)行差錯(cuò)檢驗(yàn)的方法很多,常用的有奇偶校驗(yàn)碼,水平垂直冗余校驗(yàn)lrc,目前廣泛使用的是lrc校驗(yàn)碼,它可以查出99%以上18位或更長(zhǎng)的突出錯(cuò)誤,因而在計(jì)算機(jī)與plc進(jìn)行點(diǎn)對(duì)點(diǎn)的短程通訊時(shí),采用這種校驗(yàn)方法出錯(cuò)的幾率較小。plc接 收到計(jì)算機(jī)發(fā)送的命令后,如果沒有錯(cuò)誤,plc會(huì)發(fā)出確認(rèn)碼“0”;若有錯(cuò)誤,plc會(huì)發(fā)出錯(cuò)誤代碼“1”。