基于 FINS 协议的OMRON PLC 与上位机通信
- 格式:pdf
- 大小:601.04 KB
- 文档页数:17
OMRON FINS 通讯1. OMRON FINS 通讯FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据 01 02 写数据结束码: 00 00 无错误,否则执行出错;举例说明:存储区代码(82代表D 区 80代表CIO 区)2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
FINS UDP/IP的帧格式UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下: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地址: IP地址:如果要请求DM10开始的10个字的内容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 具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
OMRON FINS 通讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据 01 02 写数据结束码: 00 00 无错误,否则执行出错;举例说明:要读取DM10开始10个字的内容:存储区代码(82代表D 区80代表CIO 区)当结束码不为00 00时,则代表执行错误,应重发当前帧。
2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP的帧格式帧格式:UDP/IP帧+FINS命令帧UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下: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.19PLC IP地址:10.11.1.86如果要请求DM10开始的10个字的内容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 具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
OMRON FINS 通讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据 01 02写数据结束码:00 00 无错误,否则执行出错;举例说明:要读取DM10开始10个字的内容:存储区代码(82代表D区80代表CIO区)响应当结束码不为00 00时,则代表执行错误,应重发当前帧。
2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP的帧格式帧格式:UDP/IP帧+FINS命令帧UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下: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.19PLC IP地址:10.11.1.86如果要请求DM10开始的10个字的内容则PC发送命令如下:源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帧FINS命令帧80 00 02 00 0A 00 001400 0001 0282 00 0A 0000 0A Data1-Data10写命令起始数据地址写入的数量具体数值PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
0 引言在现代工业自动化控制系统中,可编程逻辑控制器(PLC)作为常用的现场控制设备,上位机作为数据采集及人机界面的一种已经得到广泛使用。
过去,在工程项目开发中,PLC和上位机间的通信常采用RS-232C或者RS-485串行方式,这种方法很难满足数据量大、通信距离远、实时性要求高的控制系统。
随着互联网技术的发展、普及与推广,以太网技术得到了迅速的发展,其传输速率的提高和交换技术的应用,解决了以太网通信的非确定性问题,使得工业以太网能够广泛应用于工业信息控制领域,也是工业信息控制未来的发展趋势。
FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
使用FINS指令可实现各种网络间的无缝通信,包括用于信息网络的 Etherne(以太网),用于控制网络的Controller Link和SYSMAC LINK。
通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS协议支持工业以太网,这就为OMRON PLC与上位机以太网通信的实现提供了可能。
1 OMRON PLC与上位机通信方式目前,在欧姆龙PLC网络组成中,上位机和PLC的通信可以采用RS232C/485串行通信、Controller Link通信和工业以太网通信三种方式。
它们的主要性能参数如表1所示。
图片看不清楚?请点击这里查看原图(大图)。
文献[3]介绍了采用RS232C/485串行通信的方案,其通信速率仅为9600b/s,速率较慢,很难适应现代数据量大、通信距离较远、实时性要求较高的控制系统。
文献[2]中给出了基于FINS协议的Controller Link通信的设计方案,其最高速率可以达到2Mb/s,整个网络的最大传输距离为500m,硬件上需要在上位机安装CLK支持卡,其扩展性及应用的灵活性没有工业以太网好。
OMRON FINS 通讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据01 02 写数据 结束码: 00 00 无错误,否则执行出错;举例说明:要读取DM10开始10个字的内容:存储区代码(82代表D区 80代表CIO区)响应当结束码不为00 00时,则代表执行错误,应重发当前帧。
2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP的帧格式帧格式:UDP/IP帧+FINS命令帧UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下: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地址:PLC IP地址:如果要请求DM10开始的10个字的内容则PC发送命令如下:源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 具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
O m r o n F i n s通讯协议(总8页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除OMRON FINS 通讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据 01 02 写数据结束码: 00 00 无错误,否则执行出错;举例说明:要读取DM10开始10个字的内容:存储区代码(82代表D区 80代表CIO区)响应当结束码不为00 00时,则代表执行错误,应重发当前帧。
2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP的帧格式帧格式:UDP/IP帧+FINS命令帧UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下: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.19PLC IP地址:10.11.1.86如果要请求DM10开始的10个字的内容则PC发送命令如下:源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 具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
OMRON FINS 通讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据 01 02 写数据结束码: 00 00 无错误,否则执行出错;举例说明:存储区代码(82代表D 区80代表CIO 区)2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP的帧格式UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下: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.19PLC IP地址:10.11.1.86如果要请求DM10开始的10个字的内容不同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 具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
OMRON FINS 通信1. OMRON FINS 通信FINS 通信概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化操纵网络的指令/响应系统。
运用 FINS 指令可实现各类网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够够够读写另一个PLC 数据区的内容,乃至操纵其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 F ins 帧的结构发送死令结构: 发送死令结构:响应命令结构:命令码: 01 01 读数据 01 02 写数据终止码: 00 00 无错误,不然执行犯错;举例说明:2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来讲确实是在上面所说的Fins帧的基础上加上以太网的包头就能够够够了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
FINS UDP/IP的帧格式帧格式:UDP/IP帧+FINS命令帧UDP/IP的帧格式:共10个字节,其名称如下:其每一个字节的具体说明如下: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地址:IP地址:假设是要请求DM10开始的10个字的内容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帧FINS命令帧80 00 02 00 0A 00 001400 0001 02 82 00 0A 00 00 0A Data1-Data10写命令起始数据地址写入的数量具体数值PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:FINS/TCP的帧结构:和FINS/UDP相较,FINS/TCP多了一个握手进程,即两边成立了TCP的物理连接后,TCP客户端(PC)需向TCP效劳器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分派一个FINS/TCP端口号,并返回响应帧给客户端,此刻两边的FINS/TCP通信才真正成立。
基于FINS协议的OMRON PLC与上位机以太网通信的实现[多图] 引言在当代工业自动化控制系统中,可编程逻辑控制器(PLC)作为常用的现场控制设备,上位机作为数据采集及人机界面的一种已经得到广泛运用。
过去,在工程项目开发中,PLC和上位机间的通信常采用RS-232C或者RS-485串行方式,这种要领很难满足数据量大、通信距离远、实时性要求高的控制系统。
随着互联网技能的发展、普及与推广,以太网技能得到了快速的发展,其传输速率的提高和交换技能的运用,处理了以太网通信的非确定性疑问,使得工业以太网能够广泛运用于工业信息控制领域,也是工业信息控制未来的发展趋势。
FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用FINS指令可实现各种网络间的无缝通信,包括用于信息网络的Etherne(以太网),用于控制网络的Controller Link 和SYSMAC LINK。
通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS协议支撑工业以太网,这就为OMRON PLC与上位机以太网通信的实现提供了可能。
1 OMRON PLC与上位机通信方式目前,在欧姆龙PLC网络组成中,上位机和PLC的通信可以采用RS232C /485串行通信、Controller Link通信和工业以太网通信三种方式。
它们的主要性能参数如表1所示。
图片看不清楚?请点击这里查看原图(大图)。
文献[3]介绍了采用RS232C/485串行通信的方案,其通信速率仅为9600b /s,速率较慢,很难适应当代数据量大、通信距离较远、实时性要求较高的控制系统。
文献[2]中给出了基于FINS协议的Controller Link通信的设计方案,其最高速率可以达到2Mb/s,整个网络的最大传输距离为500m,硬件上须要在上位机安装CLK支撑卡,其扩展性及运用的灵活性没有工业以太网好。
FINS(factory interface network service)通信协议是欧姆龙公司开辟的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送 FINS 指令,上位机或者 PLC 就能够读写另一个 PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为 OMRON PLC 与上位机以太网通信的实现提供了途径。
发送命令结构:发送命令结构:命令码正文响应命令结构:命令码结束码正文01 01 读数据01 02 写数据00 00 无错误,否则执行出错;举例说明:要读取 DM10 开始 10 个字的内容:响应当结束码不为 00 00 时,则代表执行错误,应重发当前帧。
Fins 在以太网上帧格式比较简单,简单来说就是在上面所说的 Fins 帧的基础上加之以太网的包头就可以了。
具体帧格式分为UDP/IP 帧格式和 TCP/IP 帧格式。
帧格式: UDP/IP 帧+FINS 命令帧UDP/IP 的帧格式:共 10 个字节,其名称如下:其每一个字节的具体解释如下::发送接收标志字节,发送报文: ICF=80HEX;响应报文: ICF=C0;:固定为 00HEX;:固定为 02HEX;: 目标网络号;本网络: 00;远程网络: 01-7F;: 目标节点号;对于以太网来说,即该网络 IP 地址最后一位的值;目标单元号;对于 CPU 来说,固定为00;:源网络号;本网络: 00;:源节点号; IP 地址最后一位的值;:源单元号:可设置为与目标单元号相同;:服务 ID ,响应端将接收过来的 SID 复制后添加到响应帧中;举例说明:PC IP 地址: IP 地址:如果要请求 DM10 开始的 10 个字的内容80 读取区域01 01 命令码00 00 默认BE 为计算机地址00 00 默认20 为 PLC 地址说明 80 00 02 00 消息头 发送码: 80 00 02 00 20 00 00 BE 00 00 01 01 80 01 C4 00 00 01 实例: (读取CIO 区 452 地址: 01 C4;长度为 1 个字) 不同 plc 型号返回有区别,这里仅作参考 80 00 02 00 00 56 00 00 13 00 00 Data1—Data10 而 PLC 返回命令如下: 目标 IP 地址:通讯主机地址(IP 地址最后位) 源 IP 地址: PLC 地址(IP 地址最后位) UDP/IP 帧源 IP 地址 FINS 命令帧01 01 82 00 0A 00 00 0A目标 IP 地址则 PC 发送命令如下:如果要把 10 个数据写入到从 DM10 开始的 10 个数据区中则发送命令如下:80 00 02 00 56 00 00 13 00 00 01 02 82 00 0A 00 00 0A Data1-Data10具体说明如下:PLC 返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC 存储区已经写入:和 FINS/UDP 相比, FINS/TCP 多了一个握手过程, 即双方建立了 TCP 的物理连接后, TCP 客户端(PC)需向 TCP 服务器(PLC)发送一个连接请求帧, PLC 接收到请求帧后,会为该FINS 命令帧82 00 0A 00 00 0A Data1-Data10起始数据地址 写入的数量 具体数值UDP/IP 帧80 00 02 00 0A01 02写命令00 02 为读取内容00 00 成功与否标识 00 40 或者 95 05 标识码不清晰01 01 其中第二个01 位命令码说明: c0 00 02 00 be 00 00 20 00 00 为网络头 返回码: c0 00 02 00 be 00 00 20 00 00 01 01 00 00 00 02 00 01 读取长度01 C4 00 读取地址请求分配一个 FINS/TCP 端口号,并返回响应帧给客户端,此时双方的 FINS/TCP 通信才真正建立。
OMRON FINS通讯1. OMRON FIN通讯1.1 FINS通讯概述FINS(factory in terface network service) 通信协议是欧姆龙公司幵发的用于工业自动化控制网络的指令/响应系统。
运用FINS指令可实现各种网络间的无缝通信,通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS协议支持工业以太网,这就为OMRON PL与上位机以太网通信的实现提供了途径。
1.2 Fins帧的结构发送命令结构:发送命令结构:____ 命令码_____ II_____ 正文 _______响应命令结构:命令码I 结束码丨丨正文 _______命令码:01 01读数据01 02 写数据结束码:00 00无错误,否则执行出错;举例说明:要读取DM1(开始10个字的内容:存储区代码(82代表D区80代表CIO区)响应当结束码不为00 00时,则代表执行错误,应重发当前帧 2 FINS在以太网上的帧格式Fins 在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式2.1 FINS UDP/IP 的帧格式帧格式:UDP/IP帧+FINS命令帧其每个字节的具体解释如下:ICF:发送接收标志字节,发送报文:ICF=80HEX响应报文:ICF二CO; RSV固定为OOHEXGCT固定为02HEXDNA目标网络号;本网络:00;远程网络:01-7F ;DA1:目标节点号;对于以太网来说,即该网络IP地址最后一位的值;DA2:目标单元号;对于CPU来说,固定为00;SNA源网络号;本网络:00 ;SA1:源节点号;IP地址最后一位的值;SA2源单元号:可设置为与目标单元号相同;SID:服务ID,响应端将接收过来的SID复制后添加到响应帧中; 举例说明:PC IP地址:PLC IP地址:如果要请求DM1(开始的10个字的内容则PC发送命令如下:源IP地址:PLC地址(IP地址最后位)而PLC返回命令如下:80 00 02 00 00 56 00 00 13 00 00 Datal —DatalO不同pic型号返回有区别,这里仅作参考实例:(读取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 为网络头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具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
OMRON FINS 通 讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS (factory in terface network service )通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个 PLC 数据区的内容,甚至控制其运行状 态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
命令码:01 01 读数据01 02 写数据结束码:00 00无错误,否则执行出错;举例说明:存储区代码(82代表D 区80代表CIO 区) 响应1.2 Fins 帧的结构发送命令结构:发送命令结构:命令码 (2个字节)响应命令结构:命令码(2个字节) 正文(根据不同的命令长度不正文(根据不同的命令长度不2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP 的帧格式ICF发送接收标志字节,发送报文:ICF=80HEX响应报文:ICF=CQRSV固定为OOHEX;GCT固定为02HEX;DNA目标网络号;本网络:00;远程网络:01-7F;DA1:目标节点号;对于以太网来说,即该网络IP地址最后一位的值;DA2: 目标单元号;对于CPU来说,固定为00;SNA源网络号;本网络:00;SA1:源节点号;IP地址最后一位的值;SA2源单元号:可设置为与目标单元号相同;SID:服务ID,响应端将接收过来的SID复制后添加到响应帧中;举例说明:PC IP 地址:10.11.1.19PLC IP 地址:10.11.1.86如果要请求DM10开始的10个字的内容目标IP地址:通讯主机地址(IP地址最后位)而PLC返回命令如下:80 00 02 00 00 56 00 00 13 00 00 Data—Data10 不同pic型号返回有区别,这里仅作参考实例:(读取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-Data1080 00 02 00 00 14 00 00 01 02 00 00测试工具截图:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC需向TCP服务器(PLC发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
欧姆龙PLC系列WIFI通信前言:在目前工业自动化控制系统中,主要采取的是可编程控制器(PLC)作为主控制设备,上位机作为数据采集及人机界面已经成为一种通用做法。
本文所介绍的上位机软体主要是使用于欧姆龙PLC,该上位机软体主要是基于欧姆龙PLC的fins协议编写而成。
一、开发该软体使用的硬件设备1、欧姆龙CP1H一台2、串转WIFI模块一块3、电源(DC24V、DC5V、DC3.3V)一块4、RS232电平、TTL电平互转换模块一块5、电脑一台(WIN7系统)二、上位机软体功能1、读字节2、读位3、写字节4、写位三、上位机软体编程1、编写基于fins协议的动态链接库2、编写基于TCP/IP协议的通信程序3、整合上面两者四、上位机软体部分编程解释1、使用vb控件winsock编写的通信程序(UDP协议:无连接,相比TCP,通信不可靠,但速度快)With winsock(winsock控件名字)'重点:必须将RemoteHost 的值改为'对方计算机的名字或者IP地址.RemoteHost = "10.10.100.254"'设置要通信方的名字或者IP地址(10.10.100.254为该文所使用串转WIFI模块IP 地址,若使用电脑与电脑间通信,则将该IP改为对方的电脑名字即可).RemotePort = 8899 '要连接的端口。
.Bind(8899, "") '绑定到本地的端口上。
End With注意:winsock属性记得设置为UDP模式2、基于fins协议的动态链接库(直接调用即可)1、写字节:writebyte(PLC账号,存储代码,开始通道,写入通道个数,写入通道数据)例子:writebyte(“00”,“DM”,”000”,”0001”,”0121”)解释:PLC账号:00存储代码:DM开始通道:0000写入通道个数:0001写入通道数据:0121结果是PLC中的D0寄存器值为0121备注:PLC账号为两位数;村粗代码固定,参照下面表1;开始通道为四位数;写入通道个数为四位数;写入通道数据为四位数2、写位:Writebit(PLC账号,存储代码,开始通道位,写入通道位,写入位数据)例子:Wirtebit(“00”,“WR.BIT”,”0000”,”01”,”01”)解释:PLC账号:00存储代码:WR.BIT开始通道:0000写入通道位:01写入通道位数据:01结果是PLC中的W0.00值为1备注:PLC账号为两位数;存储代码固定,参照下面表2;开始通道为四位数;写入通道位为两位数;写入通道位数据位两位数3、读字节:readbyte(PLC账号,存储代码,开始通道,读出通道个数)例子:Readbyte(“00”,”DM”,”0000”,”0001”)解释:PLC账号:00存储代码:DM开始通道:0000读出通道个数:0001假如PLC内存D0寄存器保存的值为0121,则结果读出的值为0121备注:PLC账号为两位数;存储代码固定,参照下面表1;开始通道为四位数;读出通道个数为四位数4、读位:readbit(PLC账号,存储代码,开始通道位,读出通道位)例子:readbyte(“00”,“WR.BIT”,”0000”,”01”)解释:PLC账号:00存储代码:WR.BIT开始通道:0000读出通道位:01假设PLC内存W0.00为ON,则结果读出的位值为1备注:PLC账号为两位数;存储代码固定,参照下面表2;开始通道为四位数;读出通道位为两位数5、WINFORM调用动态链接库1)、WINFORM→项目→添加引用2)、WINFORM源代码声明调用该动态链接库例子:假如该动态链接库名称为CLASSLIBRARY.CLASS1则调用该链接库是在源代码开始处声明引用,即DIM WRITEBYTE AS NEW CLASSLIBRARY.CLASS1,则在该WINFORM 中可以调用动态链接库的读字节,读位,写位,写字节函数,例如调用写字节,则为WRITEBYTE.writebyte(”00“,”DM “,”0000”,”0001”,”1231”)表1:DM 代表D寄存器WR 代表W辅助继电器HR 代表H保持继电器CIO 代表CIO继电器表2:DM.BIT 代表D寄存器位WR.BIT 代表W辅助继电器位HR.BIT 代表H保持继电器位CIO.BIT 代表CIO继电器位五、使用VISUAL STUDIO 2012开发六、调用.NET FRAMEWORK 4.5.1版本七、附图:。
O M R O N F I N S 通讯1. OMRON FINS 通讯FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构: 发送命令结构:命令码结束码: 00 00 无错误,否则执行出错;举例说明:要读取DM10开始10个字的内容: 存储区代码(82代表D 区 80代表CIO 区) 响应 当结束码不为00 00时,则代表执行错误,应重发当前帧。
2 FINS 在以太网上的帧格式Fins 在以太网上帧格式比较简单,简单来说就是在上面所说的Fins 帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP 帧格式和TCP/IP 帧格式。
FINS UDP/IP的帧格式帧格式:UDP/IP帧+FINS命令帧其每个字节的具体解释如下: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地址:PLC IP地址:如果要请求DM10开始的10个字的内容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具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
OMRON FINS 通讯1. OMRON FINS 通讯1.1 FINS 通讯概述FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用 FINS 指令可实现各种网络间的无缝通信,通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支持工业以太网,这就为OMRON PLC 与上位机以太网通信的实现提供了途径。
1.2 Fins 帧的结构发送命令结构:发送命令结构:响应命令结构:命令码: 01 01 读数据 01 02 写数据结束码: 00 00 无错误,否则执行出错;举例说明:存储区代码(82代表D 区 80代表CIO 区)2 FINS在以太网上的帧格式Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。
具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。
2.1 FINS UDP/IP的帧格式UDP/IP的帧格式:共10个字节,其名称如下:其每个字节的具体解释如下: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.19PLC IP地址:10.11.1.86如果要请求DM10开始的10个字的内容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 具体说明如下:PLC返回为:80 00 02 00 00 14 00 00 01 02 00 00测试工具截图:PLC存储区已经写入:2.2 FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。