欧姆龙PLCFINS命令案例
欧姆龙PLC以太网TCP命令FINS
ETN21以太网fins/TCP命令实验时间:2014年10月8日实验设备:CP1H-XA40DR-A、CP1W-EXT01、CJ1W-ETN21、网线实验目的:利用SOCKETTOOL发送fins/TCP命令,对CPU内存进行读取和写入。
实验步骤:1、IP地址设置:①打开电脑本地连接查看IP地址如下:②usb线连上电脑,打开I/O表,将ETN21模块的ip地址与电脑设置为同一个网段不同节点,节点号跟硬件上的node number一样,下载重启模块,如下:2、配置socketool软件①软件选TCP Client,创建,输入ETN21的IP地址和端口号,端口号9600,如下:点击连接,显示十六进制值打勾:3、握手信号TCP方式客户端需要发给服务器握手信号,等待服务器正常反馈表示握手成功,才能正常交流数据。
客户端发出的命令格式如下:服务器反馈的命令格式如下:故sockettool发送命令为:46494E53(FINS)0000000C(长度12字节)00000000(命令代码)00000000(错误代码)000000D6(客户端节点号214),即:46494E530000000C0000000000000000000000D646494E530000000C00000000000000000000003C反馈是46494E53(FINS)00000010(长度16字节)00000001(命令代码)00000000(错误代码)000000D6(客户端节点号)00000003(服务器节点号)通讯建立成功。
4、TCP命令①命令帧如下,ETN手册W421第7-4有相关介绍,如下:Fins 命令格式:实验现象:1、勾选16进制,输入读取D1命令:发送Fins/TCP命46494E53(FINS)0000001A(数据长度26)00000002(命令代码)00000000(错误代码)80000200030000D600000101820001000001(FINS命令帧),即:46494E530000001A000000020000000080000200030000D60000010182000100000146494E530000001A0000000200000000800002000100003C00000101820001000001写入命令,CIO区100.01和100.02置位:发送Fins/TCP命令46494E53(FINS)0000001C (数据长度28)00000002(命令代码)00000000(错误代码)80000200030000D6000001023000640100020101(FINS命令帧)即:46494E530000001C000000020000000080000200030000D6000001023000640100020101查看内存:并可看到输出灯100.01和100.02亮。
基于欧姆龙PLC#FinsTcp协议上位机通讯(一)-PLC配置
基于欧姆龙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通讯.。
基于 FINS 协议的OMRON PLC 与上位机通信
(2)ETN UNIT 属性中,在"UDP Nodes"中手动添加 PLC 的 IP 地址(10.72.18.19) 和 FINS 地址(0.19.0)。在"Commuincation Unit Settings"中设置端口号(9600)和 FINS-IP 地址转换方式为自动生成(动态)。
在进行上位机程序编程之前首先要完成上位机和 PLC 的以太网单元的设置。
(1)设置上位机的 IP 地址为 10.72.18.11,子网掩码为 255.255.255.0,它 的 FINS 节点号默认为 11。
(2)通过欧姆龙 CX-Programmer 软件,在 IO 表中将 PLC CSIW-ETN11 以太网单元 的 IP 地址设置为 10.72.18.19,子网掩码为 255.255.255.0,FINS 节点号设 置为 19。地址转换方式设置为自动生成(动态)。FINS/UDP 端口为 9600(默认)。保存后 下传至 PLC。
设置步骤: (1)确认 Finsgateway 是否可以通信;
网络号、节点号、单元号(16+UnitNo) (2)设置本地网络号,节点号; (3)设置通信参数;
第三章 Compolet 介绍
SYSMAC Compolet 是欧姆龙公司专门为 FINS 通信开发的 Active X 控件,它是架构 在 FinsGateway 这个驱动程序下的 VB 控件,对 Fins 指令做了进一步集成和优化。 SYSMAC Compolet 为 SYSMAC C/CS1/CV 系列的 PLC 提供应用程序编程接口,在 开发时只需要调用该控件,编写程序更便捷,语句更简单,配合使用 FinsGateway,通过 计算机就可以方便地控制访问 PLC,直接对其操作而不需要掌握相应的 Fins 指令知识。
欧姆龙PLC之CP1H以太网FINSTCP通讯实例
欧姆龙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码值,即命令头。
欧姆龙PLCUDP命令FINS协议实验
欧姆龙PLCUDP命令FINS协议实验————————————————————————————————作者:————————————————————————————————日期:ETN21以太网fins/UDP命令实验时间:2014年9月15日实验设备:CP1H-XA40DR-A、CP1W-EXT01、CJ1W-ETN21、网线实验目的:利用SOCKETTOOL发送UDP命令,对CPU内存进行读取和写入。
实验步骤:1、IP地址设置:①打开电脑本地连接查看IP地址如下:②usb线连上电脑,打开I/O表,将ETN21模块的ip地址与电脑设置为同一个网段不同节点,节点号跟硬件上的node number一样,下载重启模块,如下:2、配置socketool软件①软件选UDP Client,创建,输入ETN21的IP地址和端口号,本地端口不用改,如下:3、UDP命令①命令帧如下,ETN手册W421第7-3有相关介绍,如下:实验现象:1、勾选16进制,输入读取命令80000200030000D600000101820000000001(此命令读取的是D0的数据)写入命令:80000200030000D6000001023000640100020101800002000100003C000001023000640100020100输出灯亮。
80 00 02 00 03 00 00 D6 00 00 ICF RSV GCT DNA DA1 DA2 SNA SA1 SA2 SID0101/0102 82/30 000000/006401 0001/0002 0101 读/写D区字/CIO位D0/CIO100.01 1个/2位数据ResponseC0 00 02 00 D6 00 00 03 00 00ICF RSV GCT DNA DA1 DA2 SNA SA1 SA2 SID 0101 0000 /1111读内存表示正常完成/反馈D1为1111实验总结:1、Socket Tool 中一定要将下面以显示十六进制值打钩,否则无法正确读到数据。
欧姆龙PLC FINS命令案例
FINS指令实验报告
实验时间:2012-12
实验设备:CP1H-X40DT-D*1、串口调试工具
实验目的:了解FINS指令。
实验步骤:
1、硬件连接及设置
用USB口连接CX-Programmer,串联2实现通讯,5号拨码拨到OFF
2、CX-Programmer设置
①将串口模式更改为,(如下图所示)
②下载到PLC之后,离线(让出串口)
③串口调试工具打开串口,设置,(如下图所示)
3、指令发送
FINS-MODE
发送指令,(如下图所示)
响应指令,(如下图所示)
①切换PLC状态RUN/STOP(监视/编程),(如下图所示)
切换为RUN
@01FA0000000000401
Response Wait Time:设置范围0-F,一次的响应时间是10ms,如果设置为F,响应时间就是15*10=150ms
SID:通常设定为00,(如下图所示)
切换为STOP,(如下图所示)
②读DM100,1字的数据,(如下图所示)
I/O Memory code参考以下表格,(如下图所示)
82表示以字节的形式读取
006400是读取DM100CH的数据,64后面的00是表示位,(如下图所示)
③把CIO50.15置1,(如下图所示)
实验现象:
正常读取D100通道数据,设定CIO50.15置1
实验总结:
1、通过串口发送FINS时候格式开始固定为@00FA000000000
2、Hostlink是OMRON的PLC唯一公开的协议
3、串口发FINS指令时建议两条指令隔开500-1000ms。
自整理欧姆龙PLC以太网FINSTCP通信例程与操作步骤
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)。
python fins库的用法
python fins库的用法# 使用Python fins库进行工控设备通信。
在工业控制领域,设备之间的通信是非常重要的。
而现在,Python fins库为我们提供了一种简单而有效的方法来实现工控设备之间的通信。
FINS(Factory Interface Network Service)是一种用于OMRON PLC(可编程逻辑控制器)通信的协议,而Pythonfins库则为我们提供了一个方便的接口来使用这种协议。
## 安装fins库。
首先,我们需要安装fins库。
可以使用pip来进行安装:bash.pip install pyfins.## 连接PLC.使用fins库,我们可以轻松地连接到PLC,并发送/接收数据。
以下是一个简单的示例代码,用于连接到PLC并读取寄存器的值:python.from pyfins import FinsTcpClient.plc = FinsTcpClient('192.168.1.1.1', 9600) # 替换成你的PLC的IP地址和端口号。
# 读取寄存器的值。
result = plc.read_area(area=0x82, address=0, size=10)。
print(result)。
## 写入PLC.除了读取数据,我们还可以使用fins库向PLC写入数据。
以下是一个简单的示例代码,用于向PLC写入寄存器的值:python.from pyfins import FinsTcpClient.plc = FinsTcpClient('192.168.1.1.1', 9600) # 替换成你的PLC的IP地址和端口号。
# 写入寄存器的值。
plc.write_area(area=0x82, address=0, data=[1, 2, 3, 4, 5])。
## 总结。
使用Python fins库,我们可以轻松地实现工控设备之间的通信,包括连接到PLC、读取和写入数据等操作。
欧姆龙PLC以太网通讯Fins TCP命令
Socket tool发送Fins/TCP命令实验设备:CJ2M-CPU33(PLC)实验目的:发送Fins/TCP命令读写CJ2M-CPU33的数据实验步骤:1、系统概述,硬件搭建和接线:图1-12、软件设置①首先在PLC里通过CX-Programmer设置CJ2M-CPU33模块的IP地址和子网掩码,传送IO表设置,如下图所示:图1-2②修改电脑的IP地址:CJ2M-CPU33的IP地址要与电脑同网段。
图1-3③Socket tool设置如下选择TCP Client,点击创建图1-4点击连接图1-5④发送握手信号从客户端发送给服务器的握手信号格式:图1-6从服务器发送给客户端的握手信号格式:图1-7本实验是从客户端发命令到PLC,故发送命46494E53(FINS)0000000C(长度12字节)00000000(命令代码)00000000(错误代码)00000003(客户端节点号)图1-8反馈是46494E53(FINS)00000010(长度16字节)00000001(命令代码)00000000(错误代码)00000003(客户端节点号)00000001(服务器节点号)通讯建立成功。
TCP命令格式图1-9FINS FRAME格式图1-103、实验现象:A、读取W100的数据给CJ2M-CPU33的W100赋值#1234图1-11发送Fins/TCP命46494E53(FINS)0000001A(数据长度26)00000002(命令代码)00000000(错误代码)800002000100000300000101B10064000001(FINS 命令帧)图1-12反馈是46494E53(FINS)00000018(数据长度24)00000002(命令代码)0000 0000(错误代码)C0 00 02 00 03 00 00 01 00 00 01 01 00 00 12 34 (FINS反馈帧1234是反馈数据)B、往D0中写入数据#1234发送Fins/TCP命令46494E53(FINS)0000001C(数据长度28)00000002(命令代码)00000000(错误代码)8000020001000003000001028200000000011234(FINS命令帧)图1-13反馈如下46494E53(FINS)00000016(数据长度22)00000002(命令代码)00 000000(错误代码)C0 00 02 00 03 00 00 01 00 00 01 02 00 00(FINS反馈帧0000是反馈代码表示通讯正常)在CX-Programmer中监控D0可以看到值是#1234图1-144、实验总结:A、如果通讯建立之后又发送了一次握手信号,将会反馈错误代码00000003(该命令不支持)并且通讯将会中断B、错误代码是图1-15。
欧姆龙plc串口 Fins命令协议通讯演示
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个通道的值发送命令:@00FA 000000000 0101 82 000000 0001 7C *↙(回车键)返回命令码:@00FA004000000001010000123447*↙(回车键)2、读取D100开始的50个通道发送命令:@00FA00000000001018200640000327E*↙(回车键)3、写D200开始的2个通道发送命令:@00 FA 0 00000000 0102 82 00C8 00 0002 12345678 0F*↙(回车键) Header code:在PC主机直连PLC的情况下,头代码为FAResponse wait time:设置范围为0~FICF、DA2、SA2:在PC主机直连PLC的情况下,固定为00。
欧姆龙PLC之CP1H以太网FINSTCP通讯实例
欧姆龙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码值,即命令头。
欧姆龙PLC FINS命令案例
FINS指令实验报告
实验时间:2012-12
实验设备:CP1H-X40DT-D*1、串口调试工具
实验目的:了解FINS指令。
实验步骤:
1、硬件连接及设置
用USB口连接CX-Programmer,串联2实现通讯,5号拨码拨到OFF
2、CX-Programmer设置
①将串口模式更改为,(如下图所示)
②下载到PLC之后,离线(让出串口)
③串口调试工具打开串口,设置,(如下图所示)
3、指令发送
FINS-MODE
发送指令,(如下图所示)
响应指令,(如下图所示)
①切换PLC状态RUN/STOP(监视/编程),(如下图所示)
切换为RUN
@01FA0000000000401
Response Wait Time:设置范围0-F,一次的响应时间是10ms,如果设置为F,响应时间就是15*10=150ms
SID:通常设定为00,(如下图所示)
切换为STOP,(如下图所示)
②读DM100,1字的数据,(如下图所示)
I/O Memory code参考以下表格,(如下图所示)
82表示以字节的形式读取
006400是读取DM100CH的数据,64后面的00是表示位,(如下图所示)
③把CIO50.15置1,(如下图所示)
实验现象:
正常读取D100通道数据,设定CIO50.15置1
实验总结:
1、通过串口发送FINS时候格式开始固定为@00FA000000000
2、Hostlink是OMRON的PLC唯一公开的协议
3、串口发FINS指令时建议两条指令隔开500-1000ms。
基于 FINS 协议的OMRON PLC 与上位机通信
第四章 上位机与 OMRON PLC 通信的几种方式
OMRON PLC 与上位机的以太网通信依靠发送 FINS 指令实现。上位机发送 FINS 指令 可以直接读取或写入 PLC 相应的数据,PLC 部分无需编写接收和发送程序。本例中采用 FINS/UDP 方式,具体如图所示。上位机利用 Visual Basic 6.0 进行程序开发,具体实 现向 PLC 发送 FINS 指令(读取内存区域,指令代码 0101)读取 DM100 开始的 150 个字 数据的功能。本文提供了三种方法来实现这一个功能,增加了系统开发的选择性。
3.2 FINS 帧结构 FINS 帧分为 FINS 指令帧和 FINS 响应帧两种形式。指令帧在发送 FINS 指令时使用,
响应帧则在接收到 FINS 指令后对其返回响应时使用。它们都是由一个 FINS 报头(存储传 输控制信息)、一个 FINS 指令域(存储一个 FINS 指令)以及一个 FINS 参数/数据域(存储 指令参数和发送/响应数据)所组成的。响应帧 FINS 指令域的内容与所接收到的指令帧的 FINS 指令域相同。具体结构见图 3、图 4。
下面主要介绍三种方法来实现上述功能。
1. 使用 Micosoft Winsock 控件
在 VB 中新建一个 Standard.EXE 文件。添加 Winsock 控件,对象命名为"Winsock1", 发送 Fins 命令程序如下:
错误!未找到引用源。
编译保存后即可。
2. 使用 FinsGateway 中的 OMRON FinsMessaging Control
设置步骤: (1)确认 Finsgateway 是否可以通信;
网络号、节点号、单元号(16+UnitNo) (2)设置本地网络号,节点号; (3)设置通信参数;
欧姆龙PLC以太网通讯FinsTCP命令
欧姆龙PLC以太网通讯FinsTCP命令实验设备:CJ2M-CPU33(PLC)
实验目的:发送Fin/TCP命令读写CJ2M-CPU33的数据
实验步骤:
1、系统概述,硬件搭建和接线:
图1-1
2、软件设置
①首先在PLC里通过C某-Programmer设置CJ2M-CPU33模块的IP地址和子网掩码,传送IO表设置,如下图所示:
图1-2
②修改电脑的IP地址:
CJ2M-CPU33的IP地址要与电脑同网段。
图1-3
③Sockettool设置如下选择TCPClient,点击创建
图1-4
点击连接
图1-5
④发送握手信号
从客户端发送给服务器的握手信号格式:
图1-6
从服务器发送给客户端的握手信号格式:
图1-7
本实验是从客户端发命令到PLC,故发送命46494E53(FINS)0000000C(长度12字节)00000000(命令代码)00000000(错误代码)00000003(客户端节点号)
图1-8
反馈是46494E53(FINS)00000010(长度16字节)00000001(命令代码)00000000(错误代码)00000003(客户端节点号)00000001(服务器节点号)通讯建立成功。
TCP命令格式
图1-9
FINSFRAME格式。
欧姆龙[P032-1]上位机发送FINS UDP命令读写PLC数据
上位机发送 FINS UDP命令读写PLC数据制作时间:2016.6硬件设备:CJ2M-CPU35(PLC,内置网口)软件:CX-Programmer、SocketTool案例简介:1.掌握使用SocketTool软件发送FINS/UDP命令读写PLC数据。
2.熟悉FINS/UDP命令格式的具体含义。
1.系统概述,硬件搭建和接线图1-1本案例中,内置EIP模块拨码设置IP地址10.110.59.3;计算机IP地址为10.110.59.192。
2.操作步骤(1)硬件设置:CJ2M内置的EIP口两个拨码含义如下:图2-1本案例设置CJ2M内置EIP口模块单元号为1,节点号为3。
(2)软件操作:a.在CX-Programmer中新建CJ2M的工程,把PLC切换到编程模式创建IO表,双击读取出来的EIP21模块,设置IP地址与子网掩码,其中最后一个网段与硬件节点号一致:图2-2b.打开SocketTool软件,新建一个UDP客户端:图2-3IP地址设置PLC的IP地址,对方端口设置9600,本地端口设置10000(两个端口号不能设置成一样的)。
图2-4c.上位编写FINS/UDP命令,具体格式说明如下:图2-5其中ICF数据格式如下:图2-6即发送数据时候,ICF=80RSV固定00,GCT固定02DNA为目标网络号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指令说明如下:图2-7e.用0102代码写W0.05为ON,命令如下:0102(写代码)31(W位地址代码)000005(W0.05)0001(1个数据)01(ON)0102代码格式说明如下:图2-83.现象和结论a.读D100数据,完整命令如下:80000200030000C000000101820064000001把显示十六进制值打钩,发送数据,接收到的反馈如下:图3-1FINS/UDP命令反馈格式如下:图3-2即:C00002 00C000(计算机节点)000300(PLC节点)00 0101(读数据)0000(正常反馈)0123(数据)。
欧姆龙PLC通信协议
欧姆龙PLC通信协议参考:W342--SYSMAC CS/CJ Series Communications Commands欧姆龙通信命令可分为两类:1:C-mode commands只可通过串口通讯2:FINS commands既可通过串口通讯也可通过各类网络通信(适应性较强)=========================================================== ====================下面只讲FINS命令一、命令发送:FINS直连发送命令如下:FINS command code见下表命令后面紧跟着就是内存区域寻址,见下表Command Code 后面紧跟着需要访问的地址,地址可分为按字地址或按位地址,取决于你需要访的的是字还是某一位。
由紧跟着Command Code后面的那个字节(I/O memory area designation)区分是读取字还是读取位,还是写入字或写入位,具体定义见下表:按字地址:选取表中Data Type列中为Word的命令(命令在Memory area code内)按字地址的三个地址位中,只使用前两个,最后一个字节为Ascii码”00”,其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,数据高位在前低位在后。
例如从H12开始读取7个字的数据,命令为:0101 B2 001200 0007例如将W3、W4、W5分别置数据1234、ABCD、7890,命令为:0102 B1 000300 0003 1234ABCD7890按位地址:选取表中Data Type列中为Bit的命令(命令在Memory area code内)按位地址的三个地址位中,前两个指示位所在的字,最后一个字节指示位在字中的位置(0~15),其后跟两个字节为需要传输的数据量,然后紧跟着就是传输的数据,每一位的值用一个字节的数据代替,当寻址的位为0时用ascii码“0”代替,当寻址的位为1时用ascii 码“1”代替。
基于FINS协议的OMRONPLC与上位机以太网通信的实现
基于FINS 协议的OMRONPLC 与上位机以太网通信的实现[多图]0引言在当代工业自动化控制系统中,可编程逻辑控制器(PLC )作为常用的现场控制设备,上位机作为数据采 集及人机界面的一种已经得到广泛运用。
过去,在工程项目开发中,PLC 和上位机间的通信常采用RS-232C或者RS-485串行方式,这种要领很难满足数据量大、通信距离远、实时性要求高的控制系统。
随着互联网技能的发展、普及与推广,以太网技能得到了快速的发展,其传输速率的提高和交换技能的运用,处理了以太网通信的非确定性疑问,使得工业以太网能够广泛运用于工业信息控制领域,也是工业信息控制未来 的发展趋势。
FINS (factoryinterfacenetworkservice )通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用FINS 指令可实现各种网络间的无缝通信,包括用于信息网络的Etherne (以太网),用于控制网络的ControllerLink 和SYSMACLINK 。
通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支撑工业以太网,这就为OMRONPLC 与上位机以太网通信的实现提供了可能。
1OMRONPLC 与上位机通信方式目前,在欧姆龙PLC 网络组成中,上位机和PLC 的通信可以采用RS232C/485串行通信、Controller Link 通信和工业以太网通信三种方式。
它们的主要性能参数如表1所示。
表1三种通信方式的性能参数图片看不清楚?请点击这里查看原图(大图)。
文献[3]介绍了采用RS232C/485串行通信的方案,其通信速率仅为9600b/s,速率较慢,很难适应 当代数据量大、通信距离较远、实时性要求较高的控制系统。
文献[2]中给出了基于FINS 协议的ControllerLink 通信的设计方案,其最高速率可以达到2Mb/s,整个网络的最大传输距离为500m,硬件上须要在上位机安装CLK 支撑卡,其扩展性及运用的灵活性没有工业以太网好。
基于FINS协议的OMRONPLC与上位机以太网通信的实现
基于FINS 协议的OMRONPLC 与上位机以太网通信的实现[多图]0引言在当代工业自动化控制系统中,可编程逻辑控制器(PLC )作为常用的现场控制设备,上位机作为数据采 集及人机界面的一种已经得到广泛运用。
过去,在工程项目开发中,PLC 和上位机间的通信常采用RS-232C或者RS-485串行方式,这种要领很难满足数据量大、通信距离远、实时性要求高的控制系统。
随着互联网技能的发展、普及与推广,以太网技能得到了快速的发展,其传输速率的提高和交换技能的运用,处理了以太网通信的非确定性疑问,使得工业以太网能够广泛运用于工业信息控制领域,也是工业信息控制未来 的发展趋势。
FINS (factoryinterfacenetworkservice )通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。
运用FINS 指令可实现各种网络间的无缝通信,包括用于信息网络的Etherne (以太网),用于控制网络的ControllerLink 和SYSMACLINK 。
通过编程发送FINS 指令,上位机或PLC 就能够读写另一个PLC 数据区的内容,甚至控制其运行状态,从而简化了用户程序。
FINS 协议支撑工业以太网,这就为OMRONPLC 与上位机以太网通信的实现提供了可能。
1OMRONPLC 与上位机通信方式目前,在欧姆龙PLC 网络组成中,上位机和PLC 的通信可以采用RS232C/485串行通信、Controller Link 通信和工业以太网通信三种方式。
它们的主要性能参数如表1所示。
表1三种通信方式的性能参数图片看不清楚?请点击这里查看原图(大图)。
文献[3]介绍了采用RS232C/485串行通信的方案,其通信速率仅为9600b/s,速率较慢,很难适应 当代数据量大、通信距离较远、实时性要求较高的控制系统。
文献[2]中给出了基于FINS 协议的ControllerLink 通信的设计方案,其最高速率可以达到2Mb/s,整个网络的最大传输距离为500m,硬件上须要在上位机安装CLK 支撑卡,其扩展性及运用的灵活性没有工业以太网好。
欧姆龙的Fins命令下与机器人进行网络通讯
欧姆龙的Fins命令下与机器人进行网络通讯摘要:机器人和PLC结合起来,运用在各种非标自动设备中。
PLC和机器人控制器之间的数据有效高效交换,直接决定自动化设备的效率和稳定性。
在欧姆龙Fins命令下的网络通讯,实现了欧姆龙PLC和机器人在网络中,实现高效稳定的虚拟IO通讯。
关键词:欧姆龙PLC,EPSON机器人,欧姆龙触摸屏,网络交换机1引言本非标自动是珠海TDK-爱普科斯开发的自动下料机,实现了原来有人工从机器上下料转换成有机器人下自动下料。
根据客户要求,节约机器设计成本,布线尽力简单,单个拿货周期为1S以下。
2分析和解决方案1.欧姆龙下Fins网络命令相对于其他通讯优缺点传统的机器人控制器和PLC通讯可以采用物理IO通讯,需要额外购买PLC-IO扩展板和机器人IO扩展板,虽然通讯速度很快,但是增加非标自动机开发成本,并且需要增加大量的接线。
如果才串口通讯,写入数据速度比较慢,收发一次需要至少200ms以上,采用欧姆龙下Fins命令,可以在网络下进行快速传输,通讯一次速度50ms以内,完成满足自动下料机的运行周期要求。
2.通过设置欧姆龙PLC和Epson机器人网络设置,发生Fins命令(采用TCP发送方式),从而实现对欧姆龙PLC指定的内存字数据读取和写入。
1)设置欧姆龙PLC为服务器,并设置IP地址为192.168.1.1并设置端口号为60000。
然后对设置Epson机器人控制器为客户端,并Epson控制201端口输入PLC的IP地址192.168.1.1和端口号6000,网络设置完成。
如图1和图2图1图22)通过Epson控制器发送欧姆龙Fins命令。
发送Fins命令主要有两个步骤:第一步,发送命令握手命令,令PLC和控制器握手,只有握手成功,PLC才能接受机器人控制器命令,实现对PLC的指定内存地址写入和读取(说明如下表1)。
表1机器人控制器返回命令:46494E53 0000000C 00000000 00000000 00000002 00000001。