欧姆龙PLC HostLink协议整理
1、常用的存储器功能区
CIO:
输入继电器 272 点(17 CH) 0.00~16.15
输出继电器 272 点(17 CH) 100.00~116.15
内部辅助继电器 4,800 点(300 CH) 1200.00~1499.15 (1200~1499 CH)
37,504 点(2,344 CH) 3800.00~6143.15 (3800~6143 CH)
内部辅助继电器:
8,192 点(512 CH) W000.00~W511.15 (W0~W511 CH)
暂时存储继电器:
16 点 TR0~TR15
保持继电器:
8,192 点(512 CH) H0.00~H511.15 (H0~H511 CH)
特殊辅助继电器:
只读(不可写入) 7168 点(448 CH) A0.00~A447.15 (A0~A447CH)
可读/写 8192 点(512 CH) A448.00~A959.15 (A448~A959 CH)
定时器:
4,096 点 T0~T4095
计数器:
4,096 点 C0~C4095
DM 区:
32K 字 D0~D32767
数据寄存器:
16 点(16 位) DR0~DR15
变址寄存器:
16 点(32 位) IR0~IR15
任务标志:
32 点 TK0000~TK0031
2、HostLink串口测试典型设置:9600 E-7-2
3、Hostlink通讯协议有两种模式:C-mode和FINS
1.Cmode:专用于hostlink通讯指令,采用的是ASCII码,适用于所有OMRON的PLC通讯。只能上位机发出指令给CPU,CPU无法主动发数据给上位机。
2.FINS:采用的二进制码,适用于新开发的PLC,可用在多种网络设备(Controller Link, Ethernet, etc),可被 CPU、IO模块、上位机主动发出,不同的指令分别适用于不同的信息接受单元。有两种链接协议:CMND和hostlink,当上位机是做发送源时,必须采用hostlink协议。
4、通信协议报文整理
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 节)
操作示例
(1)读取CIO100一个字
@00FA0000000000101B00064000001
读取:0101 写入:0102
功能码B0:指定相应寄存器类型 (详见附表1)
006400: 0064为存储器的编号(16进制的0064为10进制的100)
0064后的00为存储器的位(HEX 00)
0001:读取1个字
(2)写CIO100.05-100.09位地址
@00FA00000000001023100640500050101000001
0102:写数据
31:W存储区
006405:100.05(十进制100.05)
0005:连续写5个位
0101000001:写5个位的数据
(3)下发数据:@00FA000000000010231001E06000100
返回数据:@00FA00400000000102000040*\CR
下发的内容:写数据(0102)到W存储区(31)的W30寄存器(001E)寄存器W30.06(06),连续写1个字节(0001)写的内容为0(00)
返回的内容:返回之前的操作为写(0102),数据正常写入(0000)。数据后面附带的(*\CR)为异或校验的结束符。
(4)读写D存储区
RD指令命令格式
@00RD10230006
读取站00地址为W1023的0006个字
5、报文格式
欧姆龙CPM1A型plc与上位计算机通信的顺序是上位机先发出命令信息给PLC,PLC返回响应信息给上位 机。每次通信发送/接受的一组数据称为一“帧”。帧由少于131个字符的数据构成,若发送数据要进行分割 帧发送,分割帧的结尾用CR码一个字符的分界符来代替终终止符。发送帧的一方具有发送权,发送方发送 完一帧后,将发送权交给接受方。
发送帧的基本格式为:
@ |
机号 |
识别码 |
正文 |
FCS |
终止符 |
其中:
@ ——为帧开始标志;
机号——指定与上位机通信的PLC(在PLC的DM6653中设置);
识别码——该帧的通信命令码(两个字节);
正文——设置命令参数;
FCS——帧校验码(两个字符),它是从@开始到正文结束的所有字符的ASCⅡ码按位异或运算的结果;
终止符——命令结束符,设置“*”和“回车”两个字符表示命令结束。
响应的基本格式为:
@ |
机号 |
识别码 |
结束码 |
正文 |
FCS |
终止符 |
其中:
@ ----为帧开始标志;
机号----应答的的PLC号,与上位机指定的PLC号相同;
识别码----该帧的通信命令码,和上位机所发的命令码相同;
结束码----返回命令结束有无错误等状态;
正文——设置命令参数,仅在上位机有读数据时生效;
FCS——帧校验码,由PLC计算给出,计算方法同上;
终止符——命令结束符。
6、注意点
通讯协议如果是ASCII 码传输,则 1 WORD data = 4 BYTE character
即:1个字二进制数,采用AS II码传输 ,则会转为4个字节AS II码去传输
word是计量单位,对应16bit=2字节,字节≠字符,
character是字符,可容纳一个1字节ASII码,也可以容纳一个unicode编码的2字节汉字。
7、131个最大字符由来
按照以下进行命令通讯,则根据官方手册确定命令格式如下:
①起始符@,该符号必须置于每个命令的开头;//1个 ASCII 码=1字节
②节点号即PLC单元号,用于辨识PLC,范围为0~30(BCD数);//2个 ASCII 码
③命令符即发送命令的目的,设置2个字符的命令代码;//2个 ASCII 码
④操作内容表示命令符操作的参数,命令不同,内容也不一样,最多31word;//31*4=122个ASCII 码
⑤校验符为FCS校验,对校验的内容进行异或运算,结果为2个字符;//2个 ASCII 码
⑥结束符为*号+回车键;//*号和回车各是1个,共2个 ASCII 码
统计1+2+2+122+2+2=131个 ASCII 码,即131字符。