(1)通信波特率為9.6kbps,無(wú)校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)可編程位,1位起始位,1位停止位。
(2)定義通信協(xié)議的數(shù)據(jù)流結(jié)構(gòu)的格式為起始碼、命令碼、元件首址、字節(jié)數(shù)、數(shù)據(jù)塊、BCC校驗(yàn)碼和結(jié)束碼。
● 起始碼:表示單片機(jī)與PLC開(kāi)始發(fā)送數(shù)據(jù),是數(shù)據(jù)流第一個(gè)字符,告訴PLC開(kāi)始進(jìn)行通信了,可以用00H表示
● 命令碼:表示單片機(jī)對(duì)PLC的各種操作: 40H:讀取目標(biāo)元件 I、Q、V、M、SM、L、T、C等的數(shù)據(jù)或狀態(tài); 41H:修改目標(biāo)元件 I、Q、V、M、SM、L、T、C等的數(shù)據(jù)或狀態(tài); 42H:強(qiáng)制目標(biāo)單元為ON; 43H:強(qiáng)制目標(biāo)單元為OFF;
● 元件首址:表示PLC內(nèi)部的元件類型以及寄存器的地址(但不能表示一個(gè)位地址)。前兩個(gè)字節(jié)表示寄存器類型,后兩個(gè)字節(jié)表示寄存器號(hào)。00 00(H):I寄存器區(qū) 01 00(H):Q寄存器區(qū)。02 00(H):M寄存器區(qū) 08 00(H):V寄存器區(qū);
● 字節(jié)數(shù):從元件首地址起,讀取或?qū)懭隤LC元件的數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)塊:準(zhǔn)備讀取或者寫(xiě)入PLC的數(shù)據(jù)或狀態(tài);
● BCC校驗(yàn)碼:在傳輸過(guò)程中,指令有可能受到任何的干擾而使原來(lái)的數(shù)據(jù)信號(hào)發(fā)生扭曲,此時(shí)的指令當(dāng)然是錯(cuò)誤的,為了偵測(cè)指令在傳輸過(guò)程中發(fā)生的錯(cuò)誤,接收方必須對(duì)指令作進(jìn)一步的確認(rèn)工作,以防止錯(cuò)誤的指令被執(zhí)行,最簡(jiǎn)單的方法就是使用校驗(yàn)碼。BCC校驗(yàn)碼的方法就是將要傳送的字符串的ASCII碼以字節(jié)為單位作異或和,并將此異或和作為指令的一部分傳送出去;同樣地,接收方在接到指令后,以相同的方式對(duì)接收到的字符串作異或和,并與傳送方所送過(guò)來(lái)的值作對(duì)比,若其值相等,則代表接收到的指令是正確的,反之則是錯(cuò)誤的
● 結(jié)束碼:結(jié)束字符標(biāo)志著指令的結(jié)束,在本例中被定義為FFH,不同的PLC從站可以定義不同的結(jié)束字符以接收針對(duì)該P(yáng)LC的指令。 |