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