自整理欧姆龙PLC以太网FINSTCP通信例程与操作步骤
- 格式:docx
- 大小:3.36 MB
- 文档页数:9
欧姆龙全系列PLC以太网通讯 FinsTcp.DLL 使用说明1.0 概述该动态链接库根据OMRON公司的FINS TCP协议编写。
功能函数齐全,通讯响应快速,使用简单方便。
兼容VB、VC、DEIPHI、、LabView、iFix、WinCC 等WINDOWS系统下的所有开发环境。
适用于PC、IPC(个人电脑、工控机)通过以太网通讯方式,与OMRON全系列支持以太网的PLC CPU和以太网模块通讯。
2.0 功能特点1.一台PC与一台OMRON PLC通讯;2.一台PC与多台OMRON PLC通讯;3.多台(单台多网口)PC与一台OMRON PLC通讯;4.多台(单台多网口)PC与多台OMRON PLC通讯;3.0 函数与参数3.1 函数说明Link设置PC、PLC的通讯参数,建立与PLC的联接;参数: LocalIP , String, 电脑上用于与PLC通讯的网口IP地址LocalPort ,Int16, 电脑上用于与PLC通讯的网络端口,默认为0;RemoteIP , String, PLC的网口IP地址,默认为192.168.250.1RemotePort , Int32, PLC的网络端口,默认为9600UsingKey , String, 调用序列号码IpPort , String ,将设置参数赋值并返回,传址参数返回: Int16, 详细见3.3Close断开与PLC的联接,释放PC所占用的资源;返回: Int16, 详细见3.3Read以INT(有符号16位)的方式多个读取数据;参数:Memory , PlcMemory,操作的元件类型,详见3.31Channel , Int32,操作的某一类型PLC内存的起始地址Count , Int16, 要读取的数据个数reData() , Int16 ,读出来的数据数组,传址参数返回:Int16, 详细见3.3Write以INT(有符号16位)的方式多个写入数值;参数:Memory , PlcMemory,操作的元件类型,详见3.3Channel , Int32,操作的某一类型PLC内存的起始地址Count , Int16, 要读取的数据个数InData() ,Int16, 要写入到PLC的数据数组返回:Int16, 详细见3.3Bit_Test读取某个位的状态;参数:Memory , PlcMemory,操作的元件类型,详见3.3Channel , Int32,操作的某一类型PLC内存的地址Bit , Int16, 操作的PLC内存的地址的位号码ReVal , Boolean,读取到的当前的位状态返回:Int16, 详细见3.3Bit_Set设置某个位;参数:Memory , PlcMemory,操作的元件类型,详见3.3Channel , Int32,操作的某一类型PLC内存的地址Bit , Int16, 操作的PLC内存的地址的位号码返回:Int16, 详细见3.3Bit_Rst复位某个位;参数:Memory , PlcMemory,操作的元件类型,详见3.3Channel , Int32,操作的某一类型PLC内存的地址Bit , Int16, 操作的PLC内存的地址的位号码返回:Int16, 详细见3.33.2 函数的参数说明2PlcMemory操作的元件类型,可选择:PlcMemory.CIOAreaPlcMemory.WorkAreaPlcMemory.DataArea3.3 返回值说明0 执行成功;-1 建立联接异常;-2 建立联结响应错误;-3 握手信息发送错误;-4 握手信息响应超时;-5 握手信息读取错误;-6 握手信息反馈异常;-7 IP地址与端口设置错误;-11 读取命令发送错误;-12 读取命令响应超时;-13 读取数据获取错误;-14 读取数据接收异常;-21 写入命令发送错误;-22 写入命令响应超时;-23 写入数据获取错误-31 位操作参数错误-32 位操作读错误-33 位操作写错误-99 授权码错误3。
Fins命令+Hostlink协议通讯实验之蔡仲巾千创作一、实验配置硬件:CPU单元:CJ2M-CPU35RS232串口选件板:CP1W-CIF01USB转232连接电缆:CS1W-CIF31软件:CX-Programmer、串口调试助手UartAssist二、PC主机直连PLC串口命令帧格式介绍命令格式响应格式PC主机直连PLC的情况下,主机发送命令给PLC,发送命令格式如下:(P54)@:Hostlink协议起始代码Unit No.:单元号,对应PLC内置串口或串行通讯单元设置的Hostlink单元号。
Header code:在PC主机直连PLC的情况下,头代码为FAResponse wait time:设置范围为0~F,单位为10ms,例如设置为2,则响应等待时间为20msICF、DA2、SA2:在PC主机直连PLC的情况下,固定为00。
SID:通常设置为00Fins command code:参考Fins通讯手册P125读命令:0101写命令:0102Text:具体操纵内容,读写区域、读取起始地址、数据长度等内容存储区代码:(参考Fins通讯手册 P137)DM(word):82W(bit):31W(word):B1CIO区(bit):30Tips:使用Fins指令最大可读取538个字节。
一条命令不克不及超出1114个字符。
三、串口通讯调试实例实例1——DM数据寄存器区读写实例;1、读取D0开始1个通道的值发送命令:↙(回车键)返回命令码:↙(回车键)2、读取D100开始的50个通道发送命令:↙(回车键)3、写D200开始的2个通道发送命令:@00FA00000000001028200C8000002123456780F*↙(回车键) Header code:在PC主机直连PLC的情况下,头代码为FAResponse wait time:设置范围为0~FICF、DA2、SA2:在PC主机直连PLC的情况下,固定为00。
基于欧姆龙PLC#FinsTcp协议上位机通讯(⼀)-PLC配置
背景:
在做⼯控系统集成软件开发中遇到需要和欧姆龙PLC对接,考虑项⽬⼯期优先想到了采⽤FinsTCP通讯协议。
接下来就是记录如何⼀步步实现这⼀通讯模块,记录⾃⼰的实现过程以便⾃⼰不会忘记,也为后续有遇到同样问题的朋友带来帮助。
本篇介绍如何配置欧姆龙PLC及PLC数据块构建,你可以了解到PLC连接,地址块数据监控。
以下为配置步骤
1.连接
⽹线直连电脑,注意⽹线查TCP/IP通讯端⼝;
这⾥采⽤“Sysmac studio”编程环境;需⾃⾏安装;
连接测试
创建⼯程配置IP,默认IP->192.168.250.1
配置完指定IP后需上传到PLC.先转在线
再上传
这样IP就设置完毕。
2.Fins设置
默认9600端⼝
默认设置
3. 建⽴协议数据块地址
根据上位机与PLC协议建⽴数据结构
这样基本就完成了上位机与PLC通讯要求。
接下来进⾏测试!
4.测试
先转到在线,再监控地址
监控如下,可以⼿动修改值
使⽤finstcp协议编写的上位机⼯具测试:
成功!
下⼀篇介绍如何基于C#编程语⾔实现与欧姆龙PLC通讯.。
C P1W-C I F41欧姆龙(C P1H)以太网通信完美操作说明CP1W-CIF41欧姆龙以太网通信-FINS——陆一:连接设置节点号要正确要不CP1W-CIF41的ERROR灯闪(如·CP1W-CIF41 IP为192.168.250.1,节点号即为1,与最后一段相同)。
使用插槽1时4开关要置ON,使用插槽2时5开关要置ON,否则ERROR灯常亮。
PLC的串行选件端口插以太网模块时设置要改成115200 7,2,E HOST LINK 若是不知道模块的IP,可以从PLC内存查看:新建一个USB连接PLC的工程——在线工作——查看存IP地址的数据寄存器例如放在选件板2的位置,则IP地址在D32300+155=D32455,D32456两个地址查看;注意地址D后面不要带M。
(右键点击空白栏,编辑即可输入并查看)连接方法1:知道模块IP后。
设置电脑IP与模块处于同一个网段即可。
FINS 节点号即为模块IP的最后一个。
TIPS:最好将无线网卡禁用连接方法2:登陆http://192.168.250.1/c00.htm 注意:有时候模块要与电脑处于同一个网段才能连上(如模块192.168.250.1,电脑要为192.168.250.2)密码:ETHERNET修改完成以后点击传送,然后点击重启即可。
二:FINS指令:学习利用网络调试助手发送FINS命令对PLC进行操作,首先要学习FINS 的通讯格式;1、FINS指令格式手册中的格式如下:举例说明:利用FINS/TCP 的方式读取PLC 的DM1通道的数据,格式解析如下: FINS 帧格式: IC F RS V GC T DN A DA1 DA2 SN AS A 1 SA 2 SI DComman d codeTEXT固定 00 固定 02目标网络号 目标节点号 目标单元号 源网络号源节点号源单元号服务号,随便M RC SR C80 00 02 00 01 0000 C 700 00 0101 820000000001MR 、SR 参见FINS 命令第5章;返回写07也可,00表示本地网00表示本地网前面的ICF、RSV等为指定一些目标地址和源地址的网络号、节点号、单元号及其他固定的格式,后面关于Command code以及TEXT的内容,需要根据上位机实现什么的操作,填写不同的操作数据,就读取DM1通道的数据;DM区的Memory area code为82;读取存储区的Command code为0101;下面利用网络调试助手进行测试:2、使用网络调试助手测试FINS/TCP利用上位发送FINS/TCP的格式如下:ETN21手册,编号W421,P203。
欧姆龙PLC之CP1H 以太网FINS/TCP通讯实例CP1H上面的选件板插槽可以插入1-2块CP1W-CIF41模块,系统即具有了以太网功能,也可以使用CP1W-EXT01和CJ1W-ETN21以太网扩展模块来组态,用于在CX-Programmer软件下的编程或监控,也可以和其它网络设备(可以是上位机,也可以是其它的PLC或者是带有以太网接口的触摸屏等)进行通讯。
图1 CP1W-CIF41 图2 ETN21就像UDP的TCP之间的特性对比一样,和FINS/UDP方式相比,FINS/TCP具有更好的可靠性,但是不如前者的效率高。
不可以使用广播,同时最多16个连接。
本文给出FINS/TCP通讯实例供参考。
电脑和PLC通讯,通常都是电脑做为客户端,PLC作为服务器端。
如果是PLC之间进行通讯,任何一台PLC都可以作为服务器或者客户端。
硬件:CP1H-X40DR-A 1台CP1W-CIF41 1块网线、交换机软件:网络调试助手(或者其它网络调试软件)CX-ProgrammerCP1W-CIF41已经配置成ip=192.168.1.32,subnet MASK=255.255.255.0,port=9600。
运行CX-Programmer,在查看窗口添加D0、D1、W210通道和W212.01位用于监控。
客户端电脑配置成ip=192.168.1.5,subnet MASK=255.255.255.0。
运行网络调试软件,协议类型选择 TCP Client,远程主机地址处改为PLC地址和相应的端口号,即192.168.1.32:9600,之后即可点连接。
发送和接收区都设置成16进制。
一,握手命令1、客户端向服务器发送命令00000000。
这个命令长20字节,分成5组4字节。
分别是:头(FINS) + 长度(Hex0C) + 命令(00000000)+ 错误码(00000000) + 客户机节点地址。
46494E53是FINS的ASCII码值,即命令头。
CP1W-CIF41欧姆龙以太网通疑-FINS之阳早格格创做——陆一:连交树立节面号要精确要没有CP1W-CIF41的ERROR灯闪(如·CP1W-CIF41 IP为192.168.250.1,节面号即为1,与终尾一段相共).使用插槽1时4开闭要置ON,使用插槽2时5开闭要置ON,可则ERROR灯常明.PLC的串止选件端心插以太网模块时树立要改成1152007,2,E HOST LINK假如没有知讲模块的IP,不妨从PLC内存查看:新建一个USB连交PLC的工程——正在线处事——查看存IP天面的数据寄存器比圆搁正在选件板2的位子,则IP天面正在D32300+155=D32455,D32456二个天面查看;注意天面D 后里没有要戴M.(左键面打空黑栏,编写即可输进并查看)连交要领1:知讲模块IP后.树立电脑IP与模块处于共一个网段即可.FINS节面号即为模块IP的终尾一个.TIPS:最佳将无线网卡禁用连交要领2:登陆/c00.htm 注意:偶尔间模块要与电脑处于共一个网段才搞连上(如模块192.168.250.1,电脑要为192.168.250.2)暗号:ETHERNET建改完毕以来面打传递,而后面打沉开即可.二:FINS指令:教习利用搜集调试帮脚收收FINS下令对于PLC举止支配,最先要教习FINS的通讯要领;1、FINS指令要领脚册中的要领如下:举例证明:利用FINS/TCP的办法读与PLC的DM1通讲的数据,要领剖析如下:FINS帧要领:前里的ICF、RSV等为指定一些目标天面战源天面的搜集号、节面号、单元号及其余牢固的要领,后里闭于Command code以及TEXT的真质,需要根据上位机真止什么的支配,挖写分歧的支配数据,便读与DM1通讲的数据;DM区的Memory area code为82;读与保存区的Command code为0101;底下利用搜集调试帮脚举止尝试:2、使用搜集调试帮脚尝试FINS/TCP利用上位收收FINS/TCP的要领如下:ETN21脚册,编号W421,P203.1)FINS节面天面数据收收(客户端->服务器)下令收收:4649 4E53 0000 000C 0000 0000 0000 0000 0000 00C7(原机IP天面终位为199).反馈:46 49 4E 53 00 00 00 10 00 00 00 01 00 00 00 00 00 0000 C7 00 00 00 01 ;收收及返回截图如下:2)切换到编程状态收收:46494E53 00000014 00000002 000000008000 0200 0100 00C7 00FF 0402FINS 少度下令过失码 FINS帧反馈:46494E53 00000016 00000002 00000000 C00002 00C700 000100 FF 0402 00003)切换到监视状态收收:46494E53 00000014 00000002 00000000 800002000100 00C700FF 0401反馈:46494E53 00000016 00000002 00000000 C0000200C700 000100 FF 0401 00004)读DM0开初的2个通讲:收收:46494E53 0000001A 00000002 00000000 800002000100 00C7返回:46494E53 0000001A 0000000200000000C0000200C700 000100 FF 0101 0000 C00045415)将0.0置ON:收收:46494E53 0000001B 00000002 00000000 800002000100 00C700FF 0102 30000000 0001 01(注:写位时,要将某位子ON,必须将写进真质的最终1位为1,其余位没有限.)返回:46494E53 00000016 00000002 00000000 C0000200C700 000100 FF 0102 0000共时瞅察NJ501,对于应的变量(CIO_00)形成ON.6)读100.0:收收:46494E53 0000001A 00000002 00000000 80000200010000C700FF 0101 30006400 0001返回:46494E53 00000017 00000002 00000000 C0000200C700 000100 FF 0101 000001共时瞅察NJ501,对于应的变量(CIO_10000)真真是ON.3、使用搜集调试帮脚尝试FINS/UDP通讯经尝试,采与FINS/UDP办法时,曲交收收FINS下令帧便不妨举止通讯.。
Finsgateway的以太网通讯实验设备:CJ2M-CPU33(PLC),网线实验目的:实现Finsgateway的以太网通讯实验步骤:1.系统概述,硬件搭建和接线图1-12.软件设置:(1)确认计算机的IP地址:在控制面板中选择网络连接,选到本地连接右击属性,选中Internet协议点属性,可以看到计算机的IP地址和子网掩码:图1-2(2)用USB的方式和CX-P软件连接,自动创建IO表,可以读到以下设置:(本实验中使用自带EIP模块的CPU连接,实际连接方式和ETN模块方式相同)图1-3双击模块进行以下设置:图1-4其中IP地址前三段和计算机IP地址设相同,模块的节点号拨的是3,所以最后一位设为3。
3.实验现象:打开Finsgateway软件,启动以太网端口:图1-5点击Networks,双击Local Network,在Communication Unit Settings里选IP Address Table:图1-6在Network Settings里网络号选0(没有创建路由表),节点号是电脑的节点号:图1-7在UDP Nodes选项中,点击ADD按钮,新建一个节点3图1-8图1-9在Fins Communication Test里的Peer Address里输入0(网络号).3(节点号).0(代表测自己),点Start后可以读到CPU的型号CJ2M-CPU33,表示Finsgateway 测通了。
图1-104.OPC软件设置(1).新建一个项目,选择连接的节点号为3,网络地址为0(没有创建路由表),PLC型号为CS1/CJ1系列图1-11(2).右键DEVICE选择NEW TAG,创建名称1,DM区,Writable为可读可写,数据类型为WORD;再创建名称2,HR区,图1-12图1-13(3).在CX-Programmer中给D0赋值#3030,将H0.00置ON图1-14(4).右侧图框中会出来要操作的地址,点击监视,就可以看到实际通道里面的值(以10进制显示)或者位的状态图1-15(5).双击Value可以修改值,将D0修改为100,将H0.00修改为OFF图1-16图1-17在CX-P中可以看到相应的变化图1-185.实验总结:(1)、Finsgateway里的IP地址也可以选自动获取。
CP1W-CIF41欧姆龙以太网通信-FINS——陆一:连接设置节点号要正确要不CP1W-CIF41的ERROR灯闪(如CP1W-CIF41 IP为192.168.250.1,节点号即为1,与最后一段相同)。
使用插槽1时4开关要置ON,使用插槽2时5开关要置ON,否则ERROR灯常亮。
PLC的串行选件端口插以太网模块时设置要改成115200 7,2,E HOST LINK若是不知道模块的IP,可以从PLC内存查看:新建一个USB连接PLC的工程——在线工作——查看存IP地址的数据寄存器例如放在选件板2的位置,则IP地址在D32300+155=D32455,D32456两个地址查看;注意地址D后面不要带M。
(右键点击空白栏,编辑即可输入并查看)连接方法1:知道模块IP后。
设置电脑IP与模块处于同一个网段即可。
FINS节点号即为模块IP的最后一个。
连接方法2:登陆http://192.168.250.1(模块的IP)/c00.htm 注意:有时候模块要与电脑处于同一个网段才能连上(如模块192.168.250.1,电脑要为192.168.250.2)密码:ETHERNET修改完成以后点击传送,然后点击重启即可。
二:FINS指令:学习利用网络调试助手发送FINS命令对PLC进行操作,首先要学习FINS的通讯格式;1、FINS指令格式手册中的格式如下:举例说明:利用FINS/TCP的方式读取PLC的DM1通道的数据,格式解析如下:MR、SR参见FINS命令第5章;前面的ICF、RSV等为指定一些目标地址和源地址的网络号、节点号、单元号及其他固定的格式,后面关于Command code以及TEXT的内容,需要根据上位机实现什么的操作,填写不同的操作数据,就读取DM1通道的数据;DM区的Memory area code为82;读取存储区的Command code为0101;下面利用网络调试助手进行测试:2、使用网络调试助手测试FINS/TCP利用上位发送FINS/TCP的格式如下:ETN21手册,编号W421,P203。
FINS/TCP命令一、安装完成CX-one4.31、打开PLC编程软件图下2、PLC在线连接3、配置PLC IP地址工程目录-双击“设置”—“内置以太网”—“选项”—“从PLC读取”二、配置PC IP地址1、双击“本地连接”—“点击属性”—“协议(TCP/TP)”修改同一网络类型IP地址2、打开网络调试助手1、协议类型改客户端2、服务器IP改为PLC IP地址192.168.250.13、端口号设置为96004、发送区,接收区都需打勾十六进制注意: 发送数据不能由其他文本直接粘贴过来三、FINS /TCP命令1、FINS指令格式手册中的格式如下:举例说明:利用FINS/TCP的方式读取PLC的DM1通道的数据,格式解析如下:DNA: 同一网络(本地网络默认为00)SNA : 同一网络(本地网络默认为00)DA1:PLC站号IP地址DA2:PLC CPU单元SA1:上位机PC IP地址MR、SR参见FINS命令第5章;前面的ICF、RSV等为指定一些目标地址和源地址的网络号、节点号、单元号及其他固定的格式,后面关于Command code以及TEXT的内容,需要根据上位机实现什么的操作,填写不同的操作数据,就读取DM1通道的数据;DM区的Memory area code为82;读取存储区的Command code为0101;下面利用网络调试助手进行测试:2、使用网络调试助手测试FINS/TCP利用上位发送FINS/TCP的格式如下:ETN21手册,编号W421,P196。
数据长度(Length):从Command(功能指令)至结尾,按字节单位累加,用十六进制表示1)FINS节点地址数据发送(客户端->服务器)握手命令FINS(包头) 数据长度功能码错误码末位IP地址发送:4649 4E530000 000C 0000 0000 0000 0000 0000 00C7 (本机IP地址末位为199)。
FINS/TCP命令
一、安装完成CX-one4.3
1、打开PLC编程软件图下
2、PLC在线连接
3、配置PLC IP地址
工程目录-双击“设置”—“内置以太网”—“选项”—“从PLC读取”
二、配置PC IP地址
1、双击“本地连接”—“点击属性”—“协议(TCP/TP)”修改同一网络类型IP地址
2、打开网络调试助手
1、协议类型改客户端
2、服务器IP改为PLC IP地址192.168.250.1
3、端口号设置为9600
4、发送区,接收区都需打勾十六进制
注意: 发送数据不能由其他文本直接粘贴过来
三、FINS /TCP命令
1、FINS指令格式
手册中的格式如下:
举例说明:
利用FINS/TCP的方式读取PLC的DM1通道的数据,格式解析如下:
DNA: 同一网络(本地网络默认为00)
SNA : 同一网络(本地网络默认为00)
DA1:PLC站号IP地址
DA2:PLC CPU单元
SA1:上位机PC IP地址
MR、SR参见FINS命令第5章;
前面的ICF、RSV等为指定一些目标地址和源地址的网络号、节点号、单元号及其他固定的格式,后面关于Command code以及TEXT的内容,需要根据上位机实现什么的操作,填写不同的操作数据,就读取DM1通道的数据;
DM区的Memory area code为82;
读取存储区的Command code为0101;
下面利用网络调试助手进行测试:
2、使用网络调试助手测试FINS/TCP
利用上位发送FINS/TCP的格式如下:ETN21手册,编号W421,P196。
数据长度(Length):
从Command(功能
指令)至结尾,按字
节单位累加,用十六
进制表示
1)FINS节点地址数据发送(客户端->服务器)握手命令
FINS(包头) 数据长度功能码错误码末位IP地址
发送:4649 4E530000 000C 0000 0000 0000 0000 0000 00C7 (本机IP地址末位为199)。
A B C D E
A : FINS 命令(固定包头)
B : 数据长度=从功能码数起至数据结尾(以字节为单位,一个字节占用两位)
C : 功能码分为00000000:客户端服务端
00000001:服务端客户端
00000002:FINS贞发送命令
00000003:FINS 贞发送错误通知命令
00000006:确立通信连接
D : 错误码分为00000000:为正常
00000001:数据头不是FINS或ASCII格式
00000002:数据长度过长
00000003:命令(C 功能码)错误
00000020:连接/通信被占用
E: 000000C7为本机IP地址末位(十六进制表示),如PLC为客户端:192.168.250.1 本机IPC (服务器)IP:192.168.250.199 。
199转为16进制C7
FINS 数据长度功能码错误码应答返回地址握手成功
反馈:46 49 4E 53 00 00 00 10 00 00 00 01 00 00 00 00 00 00 00 C7 00 00 00 01 ;发送及返回截图如下:
2)读DM0开始的2个通道:
FINS包头数据长度功能码错误码发送FINS帧格式读取码
发送:46494E53 0000001A 00000002 00000000 800002 000100 00C700 FF0101
读DM区(功能码)起首地址个数
82 0000 00 0002
注:01 为PLC的IP地址;C7为本机的IP地址字起首地址位起首地址
FINS包头数据长度功能码错误码应答FINS帧格式读取码返回:46494E53 0000001A 00000002 0000000 C00002 00C700 000100 FF 0101
接收正常接收到两组数据
0000 C000 4541
注:C7 为本机的IP地址;01为PLC的IP地址
3)写DM0开始的2个通道:
FINS包头数据长度功能码错误码发送FINS帧格式写入码发送:46494E53 0000001E 00000002 00000000 800002 000100 00C700 FF 0102
写DM区(功能码)起首地址个数待写入两组数据
82 0000 00 0002 C000 4541
字起首地址位起首地址
FINS包头数据长度功能码错误码应答FINS帧格式写入码返回:46494E53 0000001C 00000002 0000000 C00002 00C700 000100 FF 0102
写入正常
0000。