OMRON FINS通讯
1. OMRON FINS通讯
1.1 FINS通讯概述
FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。运用 FINS指令可实现各种网络间的无缝通信,通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。FINS协议支持工业以太网,这就为OMRON PLC与上位机以太网通信的实现提供了途径。
1.2 Fins帧的结构
发送命令结构:
发送命令结构:
命令码 正文
(2个字节) (根据不同的命令长度不同)
响应命令结构:
命令码 结束码 正文
(2个字节) (2个字节) (根据不同的命令长度不同)
命令码: 01 01 读数据 01 02 写数据
结束码: 00 00 无错误,否则执行出错;
举例说明:
要读取DM10开始10个字的内容: 01 01 HEX 82 hex 命令码 存储区代码(82代表D区) 存储区代码(82代表D区 80代表CIO区) 响应 01 01 00 00 命令码 结束码 00 0A 00 待读数据起始地址 00 0A 读取字的数量 Data1----Data10 读取的10个字的数据 当结束码不为00 00时,则代表执行错误,应重发当前帧。 .
2 FINS在以太网上的帧格式
Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP的帧格式
帧格式:UDP/IP帧+FINS命令帧 UDP/IP帧 UDP/IP的帧格式:共10个字节,其名称如下: ICF RSV GCT DNA DA1 DA2 SNA SA1 SA2 SID 其每个字节的具体解释如下:
ICF:发送接收标志字节,发送报文:ICF=80HEX;响应报文:ICF=C0; RSV:固定为00HEX; GCT:固定为02HEX;
DNA:目标网络号;本网络:00;远程网络:01-7F;
DA1:目标节点号;对于以太网来说,即该网络IP地址最后一位的值; DA2:目标单元号;对于CPU来说,固定为00; SNA:源网络号;本网络:00;
SA1:源节点号;IP地址最后一位的值;
SA2:源单元号:可设置为与目标单元号相同;
SID:服务ID,响应端将接收过来的SID复制后添加到响应帧中;
举例说明:
PC IP地址:10.11.1.19 PLC IP地址:10.11.1.86
如果要请求DM10开始的10个字的内容 则PC发送命令如下: UDP/IP帧 80 00 02 00 13 源IP地址 00 00 56 目标IP地址 00 00 FINS命令帧 01 01 82 00 0A 00 00 0A FINS命令帧 源IP地址: PLC地址(IP地址最后位) 目标IP地址:通讯主机地址(IP地址最后位) 而PLC返回命令如下: 80 00 02 00 00 56 00 00 13 00 00 Data1—Data10
.
不同plc型号返回有区别,这里仅作参考
实例:(读取CIO区452地址:01 C4;长度为1个字)
发送码:80 00 02 00 20 00 00 BE 00 00 01 01 80 01 C4 00 00 01 说明 80 00 02 00消息头 20 为PLC地址 00 00 默认
BE 为计算机地址 00 00 默认 01 01 命令码 80 读取区域 01 C4 00读取地址 00 01 读取长度
返回码:c0 00 02 00 be 00 00 20 00 00 01 01 00 00 00 02 说明:c0 00 02 00 be 00 00 20 00 00为网络头 01 01其中第二个01位命令码 00 00成功与否标识 00 40 或95 05 标识码不清楚 00 02为读取内容
如果要把10个数据写入到从DM10开始的10个数据区中 则发送命令如下:
80 00 02 00 56 00 00 13 00 00 01 02 82 00 0A 00 00 0A Data1-Data10
具体说明如下: UDP/IP帧 80 00 02 00 0A 00 00 14 00 00 01 02 PLC返回为:
写命令 82 00 0A 00 起始数据地址 FINS命令帧 00 0A 写入的数量 Data1-Data10 具体数值 80 00 02 00 00 14 00 00 01 02 00 00
测试工具截图:
.