当前位置:   article > 正文

Fins通信_fins通讯

fins通讯

1.1 Fins通信概述

FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。运用 FINS指令可实现各种网络间的无缝通信,通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。FINS协议支持工业以太网,这就为OMRON PLC与上位机以太网通信的实现提供了途径。

1.1.1支持的设备

带有网口且可以访问内部地址的设备都支持Fins通讯(NX701除外,NX701没有内部地址),其余具体型号如下。

系列

型号

CP

CP1H-E/CP1L-E/CP1W-CIF41(只能做服务器)

CJ

CJ1M-CPU1*-ETN/CJ1W-ETN21/CJ1W-EIP21

CS

CS1W-ETN21/CS1W-EIP21

NX1P

NX1P全系列

NJ

NJ全系列

1.1.2 通信例程

一、上位机发送Fins TCP命令读写CP/CJ/CS数据

1、系统概述,硬件搭建和接线

CJ1W-ETN21模块IP地址为10.110.59.33;计算机IP地址为10.110.59.192

2、操作步骤

(1)硬件设置:

     CJ1W-ETN21的两个拨码的含义如下:

设置CJ1W-ETN21网口模块单元号为1,节点号为33。

(2)软件设置

a 在CX-Programmer中新建CJ2M的工程,把PLC切换到编程模式创建IO表,双击读取出来的ETN21模块,设置IP地址与子网掩码,其中最后一个网段与硬件节点号一致,设置完成后下载到PLC,模块重启。

b 打开SocketTool软件,新建一个TCP客户端:

IP地址设置PLC的IP地址,对方口设置9600。

c 上位编写Fins/TCP命令,具体格式如下:

  握手信号:

即:

46494E53 0000000C 00000000 00000000 000000C0(C0=192 计算机节点号)        

FINS/TCP头代码与FINS头代码,命令格式如下:

其中ICF数据格式如下:

即发送数据时候,ICF=80

RSV固定00,GCT固定02

DNA为目标网络号

DA1为目标节点号

DA2为目标单元号

SNA为源网络号

SA1为源节点号

SA2为源单元号

SID设置00

计算机IP:10.110.59.192 PLC IP:10.110.59.33

即目标(PLC)网络号0,单元号0(CPU单元),节点号33

源(计算机)网络号0,单元号0,节点号192

即FINS头代码为:

800002 002100 00C000 00

注:PLC侧直接对CPU操作,与以太网模块实际单元号没有关系,固定为0。

d 使用0101代码读取D0 D1数据,完整命令如下:

46494E53 0000001A(发送字节数) 00000002 00000000

800002 002100(PLC节点) 00C000(PC节点) 00

0101(读取码) 82(DM地址) 000000(D0) 0002(2个数据)

0101指令说明如下:

e 使用0102代码写D100数据,完整命令如下:

46494E53 0000001C(发送直接数) 00000002 00000000

800002 002100 00C000 00

0102(写代码) 82(DM地址) 006400(D100) 0001(写下一个数据) 1234

0102代码格式说明如下:

3、现象和结论:

a 发送握手信号,先点击链接按钮,出现以下提示,即可以开始发送数据:

选择以16进制反馈,得到结果如下:

说明反馈正确,此时ETN21模块TCP灯亮。

握手信号反馈格式如下:

b 使用0101代码读取D0 D1数据,完整命令如下:

46494E53 0000001A 00000002 00000000 800000200 210000C0 00000101 82000000 0002

反馈如下:

即46494E53 0000001A 00000002 00000000(FINS/TCP头代码)

C00002 00C000(计算机节点) 002100(PLC节点) 00 0101(读数据) 0000(正常反馈) 11223344(数据)。        

FINS/TCP命令反馈格式如下:

c 使用0102写D100数据,完整命令如下:

46494E53 0000001C 00000002 00000000 80000200 210000C0 00000102 82006400 00011234

接收到的反馈如下:

即46494E53 0000001A 00000002 00000000(FINS/TCP头代码)

C00002 00C000(计算机节点) 002100(PLC节点) 00 0102(写命令) 0000(正常结束)

4、注意事项

(1)FINS/TCP命令每次通讯前必须先进行握手,完成后即可不断发送FINS命令,如果发送顺序不对,TCP灯会熄灭,需要重新进行握手。

(2)使用软件发送代码时,中间不能加空格,否则会导致反馈不正常。

(3)在没有建立过路由表的情况下,网络号都为0。

二、上位机发送FINS UDP命令读写CP/CJ/CS数据

1、系统概述,硬件搭建和接线

内置EIP模块拨码设置IP地址10.110.59.3;计算机IP地址为10.110.59.192。

2、操作步骤

(1)硬件设置:

     CJ2M内置的EIP口两个拨码含义如下:

设置CJ2M内置EIP口模块单元号为1,节点号为3。

(2)、软件操作:

a 在CX-Programmer中新建CJ2M的工程,把PLC切换到编程模式创建IO表,双击读取出来的EIP21模块,设置IP地址与子网掩码,其中最后一个网段与硬件节点号一致:

b 打开SocketTool,新建一个UDP客户端:

IP地址设置PLC的IP地址,对方端口设置9600,本地端口设置10000(两个端口号不能设置成一样的)。

c 上位编写FINS/UDP命令,具体格式说明如下:

其中ICF数据格式如下:

即发送数据时候,ICF=80

RSV固定00,GCT固定02

DNA为目标网络号

DA1为目标节点号

DA2为目标单元号

SNA为源网络号

SA1为源节点号

SA2为源单元号

SID设置00

计算机IP:10.110.59.192 PLC IP:10.110.59.3

即目标(PLC)网络号0,单元号0,节点号03

源(计算机)网络号0,单元号0,节点号192

即FINS头代码为:

800002 000300 00C000 00

注:PLC侧直接对CPU操作,与以太网模块实际单元号没有关系,固定为0。

d 使用0101代码读D100的数据,命令如下:

0101(读代码) 82(DM代码地址) 006400 (D100) 0001(1个数据)

0101指令说明如下:

e 用0102代码写W0.05为ON,命令如下:

0102(写代码) 31(W位地址代码)000005(W0.05) 0001(1个数据) 01(ON)

0102代码格式说明如下:

3、现象和结论

a 读D100数据,完整命令如下:

800002003000C000000101820064000001

把显示十六进制值打钩,发送数据,接收到的反馈如下:

FINS/UDP命令反馈格式如下:

即:C00002 00C000(计算机节点) 000300(PLC节点) 000101(读数据) 0000(正常反馈) 0123(数据)。

b 写W0.05完整命令如下:

80000200030000C00000010231000005000101

把显示十六进制值打钩,发送数据,接收到的反馈如下:

即:C00002 00C00(计算机节点) 000300(PLC节点) 00 0102(写命令) 0000(正常结束)

4、注意事项

(1)PLC直接连接计算机,直连网线与交叉网线都可以。

(2)建立UDP客户端时设置的对方端口号需要与PLC设置的端口号一致,默认9600,否则通讯不上。

(3)以太网参数设置好后,可以连接CX-P软件测试设置与连接是否正确。

(4)在没有建立过路由表的情况下,网络号都为0。

(5)PLC侧直接对CPU操作,与以太网模块实际单元号没有关系,固定为0。

(6)输入命令的时候中间不能加空格,否则无法得到正确反馈。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/309577
推荐阅读
相关标签
  

闽ICP备14008679号