OmronFins通讯协议.docx

上传人:b****3 文档编号:4795898 上传时间:2022-12-09 格式:DOCX 页数:9 大小:156.11KB
下载 相关 举报
OmronFins通讯协议.docx_第1页
第1页 / 共9页
OmronFins通讯协议.docx_第2页
第2页 / 共9页
OmronFins通讯协议.docx_第3页
第3页 / 共9页
OmronFins通讯协议.docx_第4页
第4页 / 共9页
OmronFins通讯协议.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

OmronFins通讯协议.docx

《OmronFins通讯协议.docx》由会员分享,可在线阅读,更多相关《OmronFins通讯协议.docx(9页珍藏版)》请在冰豆网上搜索。

OmronFins通讯协议.docx

OmronFins通讯协议

OmronFins通讯协议

OMRONFINS通讯

1.OMRONFINS通讯

1.1FINS通讯概述

FINS(factoryinterfacenetworkservice)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。

运用FINS指令可实现各种网络间的无缝通信,通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。

FINS协议支持工业以太网,这就为OMRONPLC与上位机以太网通信的实现提供了途径。

1.2Fins帧的结构

发送命令结构:

发送命令结构:

 

响应命令结构:

 

命令码:

0101读数据

0102写数据

结束码:

0000无错误,否则执行出错;

举例说明:

要读取DM10开始10个字的内容:

0101HEX

82hex

000A00

000A

命令码

存储区代码(82代表D区)

待读数据起始地址

读取字的数量

存储区代码(82代表D区80代表CIO区)

响应

0101

0000

Data1----Data10

命令码

结束码

读取的10个字的数据

当结束码不为0000时,则代表执行错误,应重发当前帧。

2FINS在以太网上的帧格式

Fins在以太网上帧格式比较简单,简单来说就是在上面所说的Fins帧的基础上加上以太网的包头就可以了。

具体帧格式分为UDP/IP帧格式和TCP/IP帧格式。

2.1FINSUDP/IP的帧格式

帧格式:

UDP/IP帧+FINS命令帧

UDP/IP帧

FINS命令帧

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复制后添加到响应帧中;

举例说明:

PCIP地址:

10.11.1.19

PLCIP地址:

10.11.1.86

如果要请求DM10开始的10个字的内容

则PC发送命令如下:

UDP/IP帧

FINS命令帧

80000200

13

0000

56

0000

010182000A00000A

源IP地址

目标IP地址

源IP地址:

PLC地址(IP地址最后位)

目标IP地址:

通讯主机地址(IP地址最后位)

而PLC返回命令如下:

8000020000560000130000Data1—Data10

不同plc型号返回有区别,这里仅作参考

实例:

(读取CIO区452地址:

01C4;长度为1个字)

发送码:

80000200200000BE000001018001C4000001

说明80000200消息头

20为PLC地址

0000默认

BE为计算机地址

0000默认

0101命令码

80读取区域

01C400读取地址

0001读取长度

返回码:

c0000200be0000200000010100000002

说明:

c0000200be0000200000为网络头

0101其中第二个01位命令码

0000成功与否标识0040或9505标识码不清楚

0002为读取内容

如果要把10个数据写入到从DM10开始的10个数据区中

则发送命令如下:

80000200560000130000010282000A00000AData1-Data10

具体说明如下:

UDP/IP帧

FINS命令帧

800002000A0000140000

0102

82000A00

000A

Data1-Data10

写命令

起始数据地址

写入的数量

具体数值

PLC返回为:

800002000014000001020000

测试工具截图:

PLC存储区已经写入:

2.2FINS/TCP的帧结构:

和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。

客户端的FINS/TCP请求帧格式如下:

名称

内容

说明

头标识

46494E53

即为ASCII码:

FINS

长度

0000000C

后续字节长度=12

命令码

00000000

为0

错误代码

00000000

为0

客户端节点地址

00000000to000000FE

0到254,为0服务端会自动分配节点号

服务端接收到连接请求后,返回帧格式如下:

名称

内容

说明

头标识

46494E53

ASCII:

FINS

长度

00000010

从命令码开始的数据长度

命令码

00000001

固定值00000001

错误码

4个字节错误信息

参考错误信息码表

客户端节点地址

00000001to000000FE

1到254

服务端节点地址

00000001to000000FE

1到254

错误信息码表:

举例说明:

PC作为TCPCLIENT端:

IP地址:

10.11.1.86

PLC作为TCPSERVER端:

IP地址:

10.11.1.13

采用TCP测试工具建立连接并发送请求帧如下图所示:

从上图可知,返回帧中的错误码为00000000,说明无错误,FINS/TCP建立完成,现在可以正常发送读写报文帧了。

报文帧的格式即为:

FINS/TCP帧+FINS命令帧

其中FINS/TCP的帧格式如下:

名称

内容

说明

头标识

46494E53

即为ASCII码:

FINS

长度

00000014to000007E4

后续字节长度

命令码

00000002

发送读写指令时,固定为00000002

错误代码

00000000

为0

FINS/UDP帧

参考FINS/UDP命令帧格式

遵守FINS/UDP命令帧格式

现在,需要请求从DM100开始的2个字的数据,则发送报文如下:

46494e530000001A000000020000000080000200560000EF00000101820064000002

其中红色部分为FINS/TCP帧,绿色部分遵照FINS/UDP帧格式

图示如下:

PLCD区内容

如果要把16#ABCD,16#1234写入到从D10开始的2个字中,则发送命令如下:

再检查下PLC中的D区,发现已经被写入:

注:

如果客户端想断开当前连接,则只需要发送一条不符合帧格式的帧即可。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1