1、DEVICE READ(讀出軟裝置狀態值) 電腦向PLC發送:
始 |
命令 |
首地址 |
位元 |
終 |
和校正 |
STX |
CMD |
GROUP ADDRESS |
BYTES |
ETX |
SUM |
例子:從D123開始讀取4個位元組資料
02h |
30h |
31h,30h,46h,36h |
30h,34h |
03h |
37h,34h |
地址演算法:address=address*2+1000h 再轉換成ASCII 31h,30h,46h,36h PLC返回
STX |
1ST DATA |
2ND DATA |
..... |
LAST DATA |
ETX |
SUM |
註:最多可以讀取64個位元組的資料 例子:從指定的儲存空間單元讀到3584這個資料
02h |
33h |
35h |
38h |
34h |
03h |
44h,36h |
2、DEVICE WRITE(向PLC軟裝置寫入值)
始 |
命令 |
首地址 |
位元 |
資料 |
終 |
和校正 |
STX |
CMD |
GROUP ADDRESS |
BYTES |
1ST DATA |
2ND DATA |
...... |
LAST DATA |
ETX |
SUM |
|
|
|
|
|
|
|
|
|
|
例子:向D123開始的兩個儲存空間中寫入1234,ABCD
02h |
31h |
31h,30h,46h,36h |
30h,34h |
33h,34h,31h,32h,43h,44h,41h,42h |
03h |
34h,39h |
PLC返回 ACK (06H) 接受正確 NAK (15H) 接受錯誤 3、位裝置強制置位/複位 FORCE ON置位
始 |
命令 |
地址 |
終 |
和校正 |
STX |
CMD |
ADDRESS |
ETX |
SUM |
02h |
37h |
address |
03h |
sum |
FORCE OFF複位
始 |
命令 |
地址 |
終 |
和校正 |
STX |
CMD |
ADDRESS |
ETX |
SUM |
02h |
38h |
address |
03h |
sum |
PLC返回 ACK(06H) 接受正確 NAK(15H) 接受錯誤 裝置強制中的地址公式:Address=Address/8+100h 說明: 1.幀中的BYTES表示需要讀取或者寫入的位元組數。 2.地址演算法上有說明。 3.累加和是從STX後面一個位元組開始累加到ETX的和。 |
該協議實際上適用於PLC編程連接埠以及 FX-232AW 模組的通訊。感謝網友visualboy提供。 通訊格式:
命令 |
命令碼 |
目標裝置 |
DEVICE READ CMD |
"0" |
X,Y,M,S,T,C,D |
DEVICE WRITE CMD |
"1" |
X,Y,M,S,T,C,D |
FORCE ON CMD |
" 7" |
X,Y,M,S,T,C |
FORCE OFF CMD |
"8" |
X,Y,M,S,T,C |
傳輸格式: RS232C 傳輸速率: 9600bps 奇偶: even 校正: 累加方式(和校正) 字元: ASCII 16進位代碼:
ENQ |
05H |
請求 |
ACK |
06H |
PLC正確響應 |
NAK |
15H |
PLC錯誤響應 |
STX |
02H |
報文開始 |
ETX |
03H |
報文結束 |
框架格式:
STX |
CMD |
DATA |
...... |
DATA |
ETX |
SUM(upper) |
SUM(lower) |
例子: STX ,CMD ,ADDRESS, BYTES, ETX, SUM 02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H SUM=CMD+......+ETX; 30h+31h+30h+46h+36h+30h+34h+03h=74h; 累加和超過兩位取低兩位 |