找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9276|回復: 5
打印 上一主題 下一主題
收起左側

歐姆龍PLC HostLink通訊心得

[復制鏈接]
跳轉到指定樓層
樓主
ID:590993 發(fā)表于 2019-7-26 19:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
歐姆龍HostLink通訊心得,個人心得,僅供參考。

PLC HOSTLINK的通訊收發(fā):

幀格式:
一次交換中傳輸的命令或應答數據稱為一幀,一幀最多包含131個數據字符


發(fā)送幀格式:
起始符+節(jié)點號+識別碼+正文+校驗碼+中止符
=@+地址(1個字節(jié))+FA+000000000(9個0)+FINS指令(2個字節(jié))+正文+FCS校驗碼(1個字節(jié))+*+CR
1)FA為識別號,可為"FA","RD","WD"...,RD只能用來讀,WD只能用來寫,前兩種屬于HostLink,FA既能讀也能寫,屬于HostLink FINS串口,格式不一樣
2)FA后5位為等待時間,默認0*10ms
3)后面的數據依次從右到左依次為:ICF\DA2\SA2\SID各占一個自己默認為0

應答幀格式:
起始符+節(jié)點號+識別碼+異常碼+正文+校驗碼+中止符

常用的異常碼:
0  - 正常完成
1  - PLC在運行方式下不能執(zhí)行
2  - PLC在監(jiān)控方式下不能執(zhí)行
4  - 地址超出區(qū)域
0B - 編碼模式下不能執(zhí)行命令
13 - FCS校驗出錯
14 - 格式錯誤
15 - 入口號數據錯誤
16 - 命令不支持
18 - 幀長度錯誤
19 - 不可執(zhí)行
20 - 不能識別遠程IO單元
23 - 用戶存儲區(qū)寫保護
A3 - 由于數據傳送中FCS錯誤而中止
A4 - 由于數據傳送中格式錯誤而中止
A5 - 由于數據傳輸中入口號數據錯誤而中止
A6 - 由于數據傳送中幀長錯誤而中止

FCS校驗計算:
FCS校驗是兩個ASCII字符,從幀開始到校驗碼之前的所有數據執(zhí)行"異或"操作的結果
例:
讀取00號機DM000數據去命令
@ 00     RD     0000 0001 56 * CR
  節(jié)點號 識別碼 正文      校驗碼
FCS計算方式:
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
----------------------------------
計算結果         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個字節(jié))+正文+FCS校驗碼(1個字節(jié))+*+CR
= 0102 + 存儲區(qū)代碼(1字節(jié)) + 開始地址(3字節(jié)) + 字節(jié)個數(2字節(jié)) + 數據值(根據個數來,是個數的2倍) + FCS校驗碼(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個字節(jié))+正文+FCS校驗碼(1個字節(jié))+*+CR
= 0101 + 存儲區(qū)代碼(1字節(jié)) + 開始地址(3字節(jié)) + 字節(jié)個數(2字節(jié)) + FCS校驗碼(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)強制置位(SET/寫1)和復位(RESET/寫0)命令(FINS指令):2301
  FINS指令(2個字節(jié))+正文+FCS校驗碼(1個字節(jié))+*+CR
= 2301 + 字節(jié)數量(2字節(jié)) + 置位/復位命令字(2字節(jié)) + 存儲區(qū)代碼(1字節(jié)) + 字節(jié)地址(3字節(jié)) + * +CR
置位/復位命令字:
0000 - 強制復位
0001 - 強制置位
8000 -
8001 -
FFFF - 接觸強制

例1:
PLC地址為0,強制W212.01=On
PLLC發(fā)送:
@ 00 FA000000000 2301 0001 0001 31 00D401 04  * CR
PLC回應:
@ 00 FA0040000000 2301 0000 43 * CR
2301后面跟的0000代表讀取成功

例2:
強制W212.01=OFF
PLC發(fā)送:
@ 00 FA000000000 2301 0001 0000 31 00D401 05 * CR
PLC回應:
@ 00 FA0040000000 2301 0000 43 * CR

例3:
接觸強制:
PLC發(fā)送:
@ 00 FA000000000 2301 0001 FFFF 31 00D401 05 *CR
PLC回應:
@ 00 FA0040000000 2301 0000 43 * CR




C-Code收發(fā):
(和上面的基本上一樣)

命令格式(上位機→PLC)
起始符  節(jié)點號  命令符   操作內容   校驗符  結束符
起始符:@
節(jié)點號:PLC單元號0-31
命令符:發(fā)送命令的目的
操作內容:命令符操作的參數
校驗符:FCS校驗(異或運算),與上面相同
結束符:*CR
     
響應格式(PLC→上位機)
起始符  節(jié)點號  命令符  狀態(tài)符  操作內容   校驗符  結束符
起始符:@
節(jié)點號:PLC單元號0-31
命令符:發(fā)送命令的目的
狀態(tài)符:顯示響應的結果(正確或異常)
操作內容:返回的響應數據
校驗符:FCS校驗(異或運算),與上面相同
結束符:*CR

實例:
1)讀取PLC內存
讀取PLC內從0通道中數據值
命令幀(上位機→PLC)
@       00      RD      0000             0001      57      2A0D(*CR)
起始符  節(jié)點號  命令符  起始地址         數據長度  校驗碼  結束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (2字節(jié),10進制)   (2字節(jié))   (1字節(jié)) (2字節(jié))

響應幀(PLC→上位機)
@       00      RD      00      0001               57      2A0D(*CR)
起始符  節(jié)點號  命令符  狀態(tài)符  數據               校驗碼  結束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (1字節(jié)) (2字節(jié)*數據長度)   (1字節(jié)) (2字節(jié))

2)寫值給PLC內存
寫數據至PLC內存D1通道中
命令幀(上位機→PLC)
@       00      WD      0001             ABCD                    56      2A0D(*CR)
起始符  節(jié)點號  命令符  起始地址         寫的數據                校驗碼  結束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (2字節(jié),10進制)   (寫入個數=寫的數據/4)   (1字節(jié)) (2字節(jié))

響應幀(PLC→上位機)
@       00      WD      00       53      2A0D(*CR)
起始符  節(jié)點號  命令符  狀態(tài)符   校驗碼  結束符
(1字節(jié)) (1字節(jié)) (2字節(jié)) (1字節(jié))  (1字節(jié)) (2字節(jié))

以上資料51hei下載地址:
HOSTLINK的通訊收發(fā).zip (1.93 KB, 下載次數: 66)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發(fā)
ID:672314 發(fā)表于 2019-12-24 13:05 | 只看該作者
請問可以接接收大于131個字節(jié)碼?
回復

使用道具 舉報

板凳
ID:138443 發(fā)表于 2020-3-21 00:19 | 只看該作者
太好了,謝謝
回復

使用道具 舉報

地板
ID:304751 發(fā)表于 2020-4-4 11:08 | 只看該作者
感謝樓主
回復

使用道具 舉報

5#
ID:1004414 發(fā)表于 2022-2-8 16:57 | 只看該作者
Victory_li 發(fā)表于 2019-12-24 13:05
請問可以接接收大于131個字節(jié)碼?

不能
回復

使用道具 舉報

6#
ID:1014811 發(fā)表于 2022-4-1 13:13 | 只看該作者
樓主有歐姆龍PLC HostLink通訊手冊?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表