標(biāo)題:
歐姆龍PLC HostLink通訊心得
[打印本頁]
作者:
怒彈你鳥
時(shí)間:
2019-7-26 19:57
標(biāo)題:
歐姆龍PLC HostLink通訊心得
歐姆龍HostLink通訊心得,個(gè)人心得,僅供參考。
PLC HOSTLINK的通訊收發(fā):
幀格式:
一次交換中傳輸?shù)拿罨驊?yīng)答數(shù)據(jù)稱為一幀,一幀最多包含131個(gè)數(shù)據(jù)字符
發(fā)送幀格式:
起始符+節(jié)點(diǎn)號+識別碼+正文+校驗(yàn)碼+中止符
=@+地址(1個(gè)字節(jié))+FA+000000000(9個(gè)0)+FINS指令(2個(gè)字節(jié))+正文+FCS校驗(yàn)碼(1個(gè)字節(jié))+*+CR
1)FA為識別號,可為"FA","RD","WD"...,RD只能用來讀,WD只能用來寫,前兩種屬于HostLink,F(xiàn)A既能讀也能寫,屬于HostLink FINS串口,格式不一樣
2)FA后5位為等待時(shí)間,默認(rèn)0*10ms
3)后面的數(shù)據(jù)依次從右到左依次為:ICF\DA2\SA2\SID各占一個(gè)自己默認(rèn)為0
應(yīng)答幀格式:
起始符+節(jié)點(diǎn)號+識別碼+異常碼+正文+校驗(yàn)碼+中止符
常用的異常碼:
0 - 正常完成
1 - PLC在運(yùn)行方式下不能執(zhí)行
2 - PLC在監(jiān)控方式下不能執(zhí)行
4 - 地址超出區(qū)域
0B - 編碼模式下不能執(zhí)行命令
13 - FCS校驗(yàn)出錯(cuò)
14 - 格式錯(cuò)誤
15 - 入口號數(shù)據(jù)錯(cuò)誤
16 - 命令不支持
18 - 幀長度錯(cuò)誤
19 - 不可執(zhí)行
20 - 不能識別遠(yuǎn)程IO單元
23 - 用戶存儲區(qū)寫保護(hù)
A3 - 由于數(shù)據(jù)傳送中FCS錯(cuò)誤而中止
A4 - 由于數(shù)據(jù)傳送中格式錯(cuò)誤而中止
A5 - 由于數(shù)據(jù)傳輸中入口號數(shù)據(jù)錯(cuò)誤而中止
A6 - 由于數(shù)據(jù)傳送中幀長錯(cuò)誤而中止
FCS校驗(yàn)計(jì)算:
FCS校驗(yàn)是兩個(gè)ASCII字符,從幀開始到校驗(yàn)碼之前的所有數(shù)據(jù)執(zhí)行"異或"操作的結(jié)果
例:
讀取00號機(jī)DM000數(shù)據(jù)去命令
@ 00 RD 0000 0001 56 * CR
節(jié)點(diǎn)號 識別碼 正文 校驗(yàn)碼
FCS計(jì)算方式:
ASCII碼 高4位 低4位
@ 40 0100 0000
XOR
0 30 0011 0000
XOR
1 31 0011 0001
XOR
R 52 0101 0010
XOR
D 44 0100 0100
. . . .
. . . .
. . . .
1 31 0011 0001
----------------------------------
計(jì)算結(jié)果 0101 0111
ASCII字符 5 6
存儲區(qū)代碼:
IO區(qū) :B0
IO區(qū)字節(jié)位:30
W區(qū) :B1
W區(qū)字節(jié)位 :31
HR區(qū) :B2
HR區(qū) :32
DM區(qū) :82
DM區(qū)字節(jié)位:02
(1)存儲區(qū)寫命令(FINS指令):0102
格式:
FINS指令(2個(gè)字節(jié))+正文+FCS校驗(yàn)碼(1個(gè)字節(jié))+*+CR
= 0102 + 存儲區(qū)代碼(1字節(jié)) + 開始地址(3字節(jié)) + 字節(jié)個(gè)數(shù)(2字節(jié)) + 數(shù)據(jù)值(根據(jù)個(gè)數(shù)來,是個(gè)數(shù)的2倍) + FCS校驗(yàn)碼(1字節(jié)) + * +CR
例:
PLC地址為0,W210寄存器寫入0x0388
PLC發(fā)送:
@ 00 FA000000000 B1 00D200 0001 0388 73 * CR
PLC接收:
@ 00 FA0040000000 0102 0000 40 * CR
0102后面跟著的0000代表寫入成功
(2)存儲區(qū)讀命令(FINS指令):0101
格式:
FINS指令(2個(gè)字節(jié))+正文+FCS校驗(yàn)碼(1個(gè)字節(jié))+*+CR
= 0101 + 存儲區(qū)代碼(1字節(jié)) + 開始地址(3字節(jié)) + 字節(jié)個(gè)數(shù)(2字節(jié)) + FCS校驗(yàn)碼(1字節(jié)) + * +CR
例:
PLC地址為0,讀W210寄存器的值,向PLC發(fā)送
PLC發(fā)送:
@ 00 FA000000000 0101 B1 00D200 0001 73 * CR
PLC接收:
@ 00 FA0040000000 0101 0000 0388 40 * CR
0101后面跟的0000代表讀取成功,
W210=0x0388
(3)強(qiáng)制置位(SET/寫1)和復(fù)位(RESET/寫0)命令(FINS指令):2301
FINS指令(2個(gè)字節(jié))+正文+FCS校驗(yàn)碼(1個(gè)字節(jié))+*+CR
= 2301 + 字節(jié)數(shù)量(2字節(jié)) + 置位/復(fù)位命令字(2字節(jié)) + 存儲區(qū)代碼(1字節(jié)) + 字節(jié)地址(3字節(jié)) + * +CR
置位/復(fù)位命令字:
0000 - 強(qiáng)制復(fù)位
0001 - 強(qiáng)制置位
8000 -
8001 -
FFFF - 接觸強(qiáng)制
例1:
PLC地址為0,強(qiáng)制W212.01=On
PLLC發(fā)送:
@ 00 FA000000000 2301 0001 0001 31 00D401 04 * CR
PLC回應(yīng):
@ 00 FA0040000000 2301 0000 43 * CR
2301后面跟的0000代表讀取成功
例2:
強(qiáng)制W212.01=OFF
PLC發(fā)送:
@ 00 FA000000000 2301 0001 0000 31 00D401 05 * CR
PLC回應(yīng):
@ 00 FA0040000000 2301 0000 43 * CR
例3:
接觸強(qiáng)制:
PLC發(fā)送:
@ 00 FA000000000 2301 0001 FFFF 31 00D401 05 *CR
PLC回應(yīng):
@ 00 FA0040000000 2301 0000 43 * CR
C-Code收發(fā):
(和上面的基本上一樣)
命令格式(上位機(jī)→PLC)
起始符 節(jié)點(diǎn)號 命令符 操作內(nèi)容 校驗(yàn)符 結(jié)束符
起始符:@
節(jié)點(diǎn)號:PLC單元號0-31
命令符:發(fā)送命令的目的
操作內(nèi)容:命令符操作的參數(shù)
校驗(yàn)符:FCS校驗(yàn)(異或運(yùn)算),與上面相同
結(jié)束符:*CR
響應(yīng)格式(PLC→上位機(jī))
起始符 節(jié)點(diǎn)號 命令符 狀態(tài)符 操作內(nèi)容 校驗(yàn)符 結(jié)束符
起始符:@
節(jié)點(diǎn)號:PLC單元號0-31
命令符:發(fā)送命令的目的
狀態(tài)符:顯示響應(yīng)的結(jié)果(正確或異常)
操作內(nèi)容:返回的響應(yīng)數(shù)據(jù)
校驗(yàn)符:FCS校驗(yàn)(異或運(yùn)算),與上面相同
結(jié)束符:*CR
實(shí)例:
1)讀取PLC內(nèi)存
讀取PLC內(nèi)從0通道中數(shù)據(jù)值
命令幀(上位機(jī)→PLC)
@ 00 RD 0000 0001 57 2A0D(*CR)
起始符 節(jié)點(diǎn)號 命令符 起始地址 數(shù)據(jù)長度 校驗(yàn)碼 結(jié)束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (2字節(jié),10進(jìn)制) (2字節(jié)) (1字節(jié)) (2字節(jié))
響應(yīng)幀(PLC→上位機(jī))
@ 00 RD 00 0001 57 2A0D(*CR)
起始符 節(jié)點(diǎn)號 命令符 狀態(tài)符 數(shù)據(jù) 校驗(yàn)碼 結(jié)束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (1字節(jié)) (2字節(jié)*數(shù)據(jù)長度) (1字節(jié)) (2字節(jié))
2)寫值給PLC內(nèi)存
寫數(shù)據(jù)至PLC內(nèi)存D1通道中
命令幀(上位機(jī)→PLC)
@ 00 WD 0001 ABCD 56 2A0D(*CR)
起始符 節(jié)點(diǎn)號 命令符 起始地址 寫的數(shù)據(jù) 校驗(yàn)碼 結(jié)束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (2字節(jié),10進(jìn)制) (寫入個(gè)數(shù)=寫的數(shù)據(jù)/4) (1字節(jié)) (2字節(jié))
響應(yīng)幀(PLC→上位機(jī))
@ 00 WD 00 53 2A0D(*CR)
起始符 節(jié)點(diǎn)號 命令符 狀態(tài)符 校驗(yàn)碼 結(jié)束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (1字節(jié)) (1字節(jié)) (2字節(jié))
以上資料51hei下載地址:
HOSTLINK的通訊收發(fā).zip
(1.93 KB)
(下載次數(shù): 66, 2019-7-26 19:57 上傳)
下載積分: 黑幣 -5
作者:
Victory_li
時(shí)間:
2019-12-24 13:05
請問可以接接收大于131個(gè)字節(jié)碼?
作者:
lizhendong
時(shí)間:
2020-3-21 00:19
太好了,謝謝
作者:
布靈布靈
時(shí)間:
2020-4-4 11:08
感謝樓主
作者:
APOLLO_
時(shí)間:
2022-2-8 16:57
引用:
Victory_li 發(fā)表于 2019-12-24 13:05
請問可以接接收大于131個(gè)字節(jié)碼?
不能
作者:
chenyd1095
時(shí)間:
2022-4-1 13:13
樓主有歐姆龍PLC HostLink通訊手冊?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1