基于FINS协议的OMRON-PLC与上位机以太网通信的实现[多图]
欧姆龙plc串口 Fins命令协议通讯演示

创作编号:GB8878185555334563BT9125XW创作者:凤呜大王*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码值,即命令头。
Omron Fins通讯协议

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通信才真正建立。
基于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 支撑卡,其扩展性及运用的灵活性没有工业以太网好。
欧姆龙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通讯手册P137DMword:82Wbit:31Wword:B1CIO区bit:30Tips:使用Fins指令最大可读取538个字节;一条命令不能超过1114个字符;三、串口通讯调试实例实例1——DM数据寄存器区读写实例;1、读取D0开始1个通道的值发送命令:00FA 000000000 0101 82 000000 0001 7C ↙回车键返回命令码:00FA000↙回车键2、读取D100开始的50个通道发送命令:00FA0000000000327E↙回车键3、写D200开始的2个通道发送命令:00 FA 0 00000000 0102 82 00C8 00 0002 0F↙回车键Header code:在PC主机直连PLC的情况下,头代码为FAResponse wait time:设置范围为0~FICF、DA2、SA2:在PC主机直连PLC的情况下,固定为00; SID:通常设置为00Fins command code:参考Fins通讯手册P125读命令:0101写命令:0102DMword:82Wbit:31Wword:B1CIO区bit:3000c8 就是D200地址00表示通道中的位0002表示读取2个通道值响应命令:00FA0000↙回车键实例2——Wr工作区读写操作1、读取W10开始的8个通道发送命令:00FA0000000000101B1000A0000087D↙回车键2、写W20开始的5个通道发送命令:00FA0000000000102B0000506↙回车键响应命令:00FA0000↙回车键总结:由上述例子可得,对于PC主机直连PLC串口的情况下,无论什么存储区,读操作均为0101,写操作为0102,只需将不同存储区的代码更改即可;建议PC与PLC交换数据时,尽量采用连续的通道一个字的形式进行交换;。
自整理欧姆龙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)。
omronfins通讯协议

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 无错误,否则执行出错;举例说明:要读取DM10开始10个字的内容:存储区代码(82代表D区 80代表CIO区)响应当结束码不为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个字的内容则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存储区已经写入:FINS/TCP的帧结构:和FINS/UDP相比,FINS/TCP多了一个握手过程,即双方建立了TCP的物理连接后,TCP 客户端(PC)需向TCP服务器(PLC)发送一个连接请求帧,PLC接收到请求帧后,会为该请求分配一个FINS/TCP端口号,并返回响应帧给客户端,此时双方的FINS/TCP通信才真正建立。
欧姆龙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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于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支撑卡,其扩展性及运用的灵活性没有工业以太网好。
在三种通信方式中,工业以太网的优势是相当明显的。
其传输速率可以达到10/100Mb/s(取决于实际网络环境);两个节点之间的传输距离可以达到100m,对于整个网络的传输距离没有限定;网络内最大节点数可以达到254个,可以实现1(PLC):N(PC)、N:N、N:1等多种网络形式。
这些都为构架各种规模的工业网络信息系统提供了有利的条件,具有良好的扩展性、实用性、灵活性。
目前运用的上位机都配有以太网卡,所以上位机侧无需添加额外的硬件设备。
因此,采用工业以太网方式对提高工厂的自动化信息控制水平具有很大的现实意义。
2 以太网FINS通信在以太网FINS通信中,各种数据信息是以UDP/IP包或者TCP/IP包的方式在以太网上发送和接收的。
其中,在Internet层远程设备运用的是IP地址,而在运用层运用的则是FINS节点地址。
传输层中定义了本地UDP或TCP端口号,它为运用层(即FINS通信)提供通信端口,其默认配置为9600。
用户可以根据实际情况自行修改,但是在同一网络中,各设备的通信端口号必须保持一致。
图1 FINS以太网通信协议模型图片看不清楚?请点击这里查看原图(大图)。
通常以太网通信运用的是IP地址,而在FINS通信中则是运用网络号、节点号以及单元号来对不同设备(包括PLC、PC等现场设备)执行地址定义的。
这就为不同网络之间各种设备的通信提供了统一的寻址方式。
在以太网FINS通信中,欧姆龙的以太网单元一项主要的功能就是能在IP地址和Fins节点地址之间执行转换,其转换方式有自动转换、IP地址表和复合地址表三种方式,其地址转换数量依据模块型号和转换方式的不同还有相应的限定。
以太网FINS通信服务是一种基于UDP/IP的通信方式,称为FINS/UDP方式,欧姆龙相关的以太网产品都支撑这种方式。
此外,CS1W-ETN21和CJ1W- ETN21以太网通信模块还支撑TCP/IP协议,称为FINS/TCP方式。
2.1 FI NS/UDP方式FINS/UDP方式是一种运用UDP/IP协议的FINS通信方式。
UDP/IP是一种无连接的通信协议。
当一条信息从一个节点发到另一个时,这两个节点是没有明确连接的对等联系的。
UDP协议具有较快的传输速度,但是数据通信的可靠性没有TCP协议高。
图片看不清楚?请点击这里查看原图(大图)。
如图2所示,是一个在以太网中发送和接收所运用的UDP帧结构。
FINS/UDP方式运用的是一种嵌套格式数据包,即Ethernet报头、IP报头、UDP报头和FINS 帧。
一个UDP数据段(FINS 帧)超过1472字节将被分成若干个数据包来传送。
分开的UDP数据将在UDP/IP协议层自动组合。
通常不须要关注运用层的数据分段,但是在一个多层IP网络中1427字节的UDP包可能无法发送。
在这种系统中就须要运用FINS/TCP方式。
2.2 FINS帧结构FINS 帧分为FINS指令帧和FINS响应帧两种形式。
指令帧在发送FINS指令时运用,响应帧则在接收到FINS指令后对其返回响应时运用。
它们都是由一个FINS报头(存储传输控制信息)、一个FINS指令域(存储一个FINS指令)以及一个FINS参数/数据域(存储指令参数和发送/响应数据)所组成的。
响应帧FINS指令域的内容与所接收到的指令帧的FINS指令域相同。
详细结构见图3、图4。
图片看不清楚?请点击这里查看原图(大图)。
ICF为信息控制域,用于标明指令和响应;RSV为系统保存;GCT为网关允许数目;DNA为目的网络号;DA1为目的节点号;DA2为目的单元号;SNA 为源网络号;SA1为源节点号;SA2为源单元号;SID为服务和响应的标识号,可任意配置,指令和响应对应相同;MRC和SRC分别为FINS指令的主指令和从指令;参数/数据域,用于标明所操作的数据地址、范围等,在响应帧中前两个字节MRES和SRES构成响应码,用来诊断不正确信息。
3 FinsGateway和SYSMAC Compolet控件介绍FinsGateway是OMRON FINS通信协议的驱动程序,它为计算机上的32位Windows操作系统提供一个工业自动化网络环境。
FinsGateway集成了不同的网络协议,并为FINS通信和数据链接提供驱动程序和接口库函数。
它通过建立高性能的虚拟存储区EventMemory,为不同的用户程序提供数据的接入和共享。
运用FinsGateway,计算机可以通过各层网络(包括网络互联)访问网络上的PLC,通过接口库函数,用户还可以开发程序。
图片看不清楚?请点击这里查看原图(大图)。
SYSMAC Compolet是欧姆龙公司专门为FINS通信开发的Active X控件,它是架构在FinsGateway这个驱动程序下的VB控件,对Fins指令做了进一步集成和优化。
SYSMAC Compolet为SYSMAC C/CS1/CV系列的PLC提供运用程序编程接口,在开发时只须要调用该控件,编写程序更便捷,语句更基本,配合运用FinsGateway,通过计算机就可以方便地控制访问PLC,直接对其操作而不须要掌握相应的Fins指令知识。
4 OMRON PLC与上位机以太网通信的实现OMRON PLC与上位机的以太网通信依靠发送FINS指令实现。
上位机发送FINS指令可以直接读取或写入PLC相应的数据,PLC部分无需编写接收和发送程序。
文献[1]给出了运用VC++异步套接字类CAsyncSocket与OMRON PLC执行以太网通信的要领。
本例中采用FINS/UDP方式,详细如图7所示。
上位机运用Visual Basic 6.0执行程序开发,详细实现向PLC发送FINS指令(读取内存区域,指令代码0101)读取DM100开始的150个字数据的功能。
相较于文献[1] 介绍的要领,本文中为不同层次的运用者提供了三种要领来实现这一个功能,添加了系统开发的挑选性。
图7上位机与PLC通过以太网通信在执行上位机程序编程之前首先要完成上位机和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。
下面主要介绍三种要领来实现上述功能。
4.1 运用Micosoft Wi nsock控件在VB中新建一个Standard.EXE文件。
添加Winsock控件,对象命名为"Winsock1",发送Fins命令程序如下:编译保存后即可。
4.2 运用FinsGateway中的OMRON FinsMessaging Control(1)在上位机中安装Finsgateway软件,并在Service Manager中启动CPU_UNIT和ETN_UNIT。
(2)ETN UNIT属性中,在"UDP Nodes"中手动添加PLC的IP地址(10.72.18.19)和FINS地址(0.19.0)。
在"Commuincation Unit Settings"中配置端口号(9600)和FINS-IP地址转换方式为自动生成(动态)。
(3)在VB中新建一个standard.EXE文件。
添加OMRON FinsGateway FinsMessaging Control,对象名为"FinsMsgl"。
(4)在form区添加一个Command button(命名为"Command1")作为发送Fins 指令之用;同时添加一个textbox(命名为"Text1")作为显示所接受数据之用。
(5)在"Conmand1"中的"Click"事件中添加如下代码:Private Sub Command1_C1ick()FinsMsg1.sendFinsCommand0,19,0,"0101820064000096"End Sub在"FinsMsg1"中的"OnReceive"事件中添加如下代码:Private Sub FinsMsg1_OnReceive ()Dim net As Integer,node As Integer,unit AsIntegerText1.Text=Fins Msg1.receive Message(net,node,unit,vbString)End Sub编译保存后即可。