Hostlink 协议说明
1.D取数据读(读取D10000的数据)
@ 00 FA 0 000000 00 0101 82 2700 00 0003 XX *
|2| |2||1| |-----6----||2| |-4-||2| |--4--||2||-4-|
站点号 FINS头代码 响应等待时间 6个0 服务码默认0 FINS命令 命令数据 校验码 *
2.D区写数据(向plc D10000 写入ABCD1001DCBA)
3.fins 命令
0101 :读命令
0102 : 写命令
4存储区代码
5.实例
实例1 -- DM数据寄存器区读写实例
1.读取D0开始1个通道的值
发送命令:@00FA000000000 0101 82 000000 0001 7C*
返回命令:@00FA0040000000010100001 23447
2.读取D100开始的50个通道
发送:@00FA00000000001018200640000327E*
接受:
3:写D200开始的2个通道
发送:@00FA0000000 00 0102 82 00c8 00 0002 123456780F*
响应:@00FA004000000000102000040*
4.读取w10开始的8个通道
发送:@00FA000000000 0101 B1 000A 00 0008 7D*
5 写W20 开始的5个通道
发送:@00FA0 000000 00 0102 B1 0014 00 0005 00010 00200030004000506*
响应:@00FA00400000000102000040
前言:欧姆龙的硬件连接,见文章《欧姆龙HostLink通讯协议485实现方法》(编号103)所用调试工具为串口调试工具。对于校验位等其它数据,在工具里设定即可,无需编写数据。
文章目录分为三部分:
第一部分:分析数据的组成
第二部分:解析说明文档给出的数据
第三部分:解析下发以及反馈的数据
第四部分:读写D存储区
第一部分:分析数据的组成
HostLink通讯协议的数据,由4部分组成。
1. 头代码 2. FINS命令 3. 异或校验 4. 结束码
以下的数据用于串口调试工具下发给PLC,所以以下由上述的1、2部分组成
头代码:红色 FINS命令:蓝色
@00FA0000000000101B00064000001
红色部分数据分析:
@后的1-2位,为PLC地址,默认PLC地址为0,可设定0--31
@后的FA为头编码,可为”FA” “RD” “WR”
@后的第5位为等待时间,默认为0*10ms后面的数据从右到左依次是:ICF\DA2\SA2\SID各占一个字节默认为00,具体设定可参照HostLink(具体可参考 HOSTLINK 通讯参考手册 W342-E1-15 第 3-3-3 节)
蓝色部分数据分析:见第二部分
第二部分:解析说明文档给出的数据
读取CIO100一个字
@00FA0000000000101B00064000001
读取:0101 写入:0102
功能码B0:指定相应寄存器类型 (详见附表1)
006400: 0064为存储器的编号(16进制的0064为10进制的100)
0064后的00为存储器的位(HEX 00)
0001:读取1个字
————————————————————————————
写CIO100.05-100.09位地址
@00FA00000000001023100640500050101000001
0102:写数据
31:W存储区
006405:100.05(十进制100.05)
0005:连续写5个位
0101000001:写5个位的数据
—————————————————————————————
第三部分:解析下发以及反馈的数据
下发数据:@00FA000000000010231001E06000100
返回数据:@00FA00400000000102000040*\CR
下发的内容:写数据(0102)到W存储区(31)的W30寄存器(001E)寄存器W30.06(06),连续写1个字节(0001)写的内容为0(00)返回的内容:返回之前的操作为写(0102),数据正常写入(0000)。数据后面附带的(*\CR)为异或校验的结束符。
第四部分:读写D存储区
RD指令命令格式
@00RD10230006
读取站00地址为W1023的0006个字
举例:
WR举例:
08WR00后的尾码00为正常完成
附表1
存储区名称 |
数据类型 |
CP系列代码(十六进制) |
操作方式
|
CIO |
BIT |
30 |
1读
2写 |
WR |
31 |
||
HR |
32 |
||
AR |
33 |
||
CIO |
WORD |
B0 |
|
WR |
B1 |
||
HR |
B2 |