zcb198814
級(jí)別: 探索解密
|
一、三菱PLC編程口通訊協(xié)議 三菱PLC編程口的通訊協(xié)議比較簡(jiǎn)單,只有四個(gè)命令,即: 命令 命令碼 目標(biāo)設(shè)備 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 五個(gè)標(biāo)示: ENQ 05H 請(qǐng)求 ACK 06H PLC正確響應(yīng) NAK 15H PLC錯(cuò)誤響應(yīng) STX 02H 報(bào)文開始 ETX 03H 報(bào)文結(jié)束 使用累加方式的和校驗(yàn),幀格式如下: STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower) 和校驗(yàn): SUM= CMD+……+ETX。 如SUM=73H,SUM=“73”。 1、DEVICE READ(讀出軟設(shè)備狀態(tài)值) 計(jì)算機(jī)向PLC發(fā)送: 始 命令 首地址 位數(shù) 終 和校驗(yàn) STX CMD GROUP ADDRESS BYTES ETX SUM PLC 返回 STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM 2、DEVICE WRITE(向PLC 軟設(shè)備寫入值) 計(jì)算機(jī)向PLC發(fā)送: 始 命令 首地址 位數(shù) 數(shù)據(jù) 終 和校驗(yàn) PLC 返回 ACK (06H) 接受正確 NAK (15H) 接受錯(cuò)誤 3、位設(shè)備強(qiáng)制置位/復(fù)位 FORCE ON 置位 始 命令 地址 終 和校驗(yàn) STX CMD ADDRESS ETX SUM 02h 37h address 03h sum FORCE OFF 復(fù)位 始 命令 地址 終 和校驗(yàn) STX CMD ADDRESS ETX SUM 02h 38h address 03h sum PLC 返回 ACK(06H) 接受正確 NAK(15H) 接受錯(cuò)誤 以上可以看出,協(xié)議非常簡(jiǎn)單,但是由于沒有寄存器類型信息,所以地址的計(jì)算十分關(guān)鍵,如D100和M100分別對(duì)應(yīng)哪個(gè)地址呢?下面就是三菱Fx系列PLC地址對(duì)應(yīng)表: Public Const PLC_D_Base_AddRess = 4096 Public Const PLC_D_Special_Base_AddRess = 3584 Public Const PLC_Y_Group_Base_AddRess = 160 Public Const PLC_PY_Group_Base_AddRess = 672 Public Const PLC_T_Group_Base_AddRess = 192 Public Const PLC_OT_Group_Base_AddRess = 704 Public Const PLC_RT_Group_Base_AddRess = 1216 Public Const PLC_M_SINGLE_Base_AddRess = 2048(命令為7或8時(shí)) Public Const PLC_M_Group_Base_AddRess = 256 Public Const PLC_PM_Group_Base_AddRess = 768 Public Const PLC_S_Group_Base_AddRess = 0 Public Const PLC_X_Group_Base_AddRess = 128 Public Const PLC_C_Group_Base_AddRess = 448 Public Const PLC_OC_Group_Base_AddRess = 960 Public Const PLC_RC_Group_Base_AddRess = 1472 Public Const PLC_TV_Group_Base_AddRess = 2048 Public Const PLC_CV16_Group_Base_AddRess = 2560 Public Const PLC_CV32_Group_Base_AddRess = 3072 當(dāng)我們用DEVICE READ命令時(shí),D100地址=100*2+4096;M100地址=100+256;不同的是D類型寄存器存放的是字,M寄存器存放的是位,同樣是讀兩個(gè)字節(jié),D100返回的就是PLC中D100地址的值,M類型寄存器返回的是M100到M116的值。所以當(dāng)我們用FORCE ON 命令時(shí),M100寄存器地址=100+2048; 這也沒有什么復(fù)雜的,不是嗎?可是三菱公司好像不甘于如此,F(xiàn)ORCE ON/Off命令中地址排列與DEVICE READ/WRITE不同,是低位在前高位在后。如Y20,地址是0510H,代碼中4個(gè)字節(jié)地址表示為:1005。(注意:Y寄存器為八進(jìn)制,如Y20地址=16+1280=0510H) |
---|---|
|