APP下载

基于DataSocket的欧姆龙PLC以太网通信接口研究

2015-09-20梅映新祝广场

电气自动化 2015年2期
关键词:欧姆龙通信协议IP地址

梅映新,祝广场

(1.武汉船用电力推进装置研究所,湖北 武汉 430064;2.武汉长海高新技术有限公司,湖北 武汉 430064)

0 引言

目前,PLC作为智能控制站广泛应用于各种工业控制现场。由于PLC具有可靠性高、适应性强、编程简单及模块化结构扩展方便等优点,在控制领域得到了广泛的应用。但PLC在数据处理、分析和报表打印等方面有很大的局限性,和工控机结合可以克服这一缺陷。在与工控机的通信中,一般采用串口通信的方式,但这种通信方式无法适应大数据量、远距离和实时性要求较高的场合[1]。以TCP/IP协议为基础的以太网在工业控制中逐渐获得了广泛的应用,并可以很方便的进行网络互联。本文以欧姆龙CS1W型PLC为例,探讨了网络通信的方式,用Visual C++6.0编写了上位机通信程序,完成了上位机和欧姆龙PLC的通信。

1 欧姆龙PLC的网络结构和Socket服务

1.1 欧姆龙PLC的网络结构

欧姆龙PLC开发了三层网络体系,包括设备层网络、控制层网络和管理层网络,如图1所示,设备层网络处于三层网络的最底层,控制层网络处于中间层,管理层网络处于最上层。从上至下,各层都是开放的,且三层之间实现了无缝对接。

Ethernet网络即通常所说的以太网,是工厂自动化领域用于信息管理层上的网络,它的通信速率高,可以达到100 Mbit/s,以太网模块使PLC可以作为工厂局域网的一个节点,在网络上的任何一台计算机都可以实现对它的控制[2]。

图1 欧姆龙PLC的网络结构

1.2 欧姆龙PLC的Socket通信服务

欧姆龙PLC的以太网模块支持两种通信方式:Socket通信和FINS通信。通过TCP或者UDP协议,Socket服务允许以太网上的设备发送和接收各种数据。Socket服务提供了两种实现的方法。

(1)操作特定的控制开关[3]19

首先设置DM区中的请求参数,然后打开内存中特定的控制开关来请求TCP或者UDP Socket服务。当请求的过程完成之后,以太网单元就把请求开关关掉。数据的发送和接收,都是自动进行的。

使用这种方法不需要执行CMND(490)指令,也不需要监视完成的时序和指令的执行过程,于是可以大大简化梯形图的编制。

总共8个TCP或者UDP端口可以被用作Socket服务。

(2)执行 CMND(490)命令[3]20

使用Socket服务的另一种方法是从CPU单元向以太网单元发送FINS命令,当以太网单元接收到Socket服务请求时,向CPU单元返回响应以确认请求,然后对请求的服务进行处理。当处理过程结束之后,结果放在CPU单元的结果存储区。

同样可以使用8个TCP端口和8个UDP端口。

1.3 Socket通信流程

Socket建立在传输层协议(TCP和UDP)之上,由于TCP面向连接,UDP是无连接的,因此,利用Socket进行通信,有两种方式:面向连接的和无连接的[4]。在第一种方式下,两个通信的应用程序之间必须先建立一种虚拟的连接,然后再传输数据。第二种方式也称数据报文方式,在此种方式下,传输过程中,数据有可能丢失,先发送的数据也可能后到,各个报文的路径也不一定相同[5-6]。本文采用面向连接的通信方式,流程如图2所示。

2 欧姆龙PLC的以太网设置

欧姆龙PLC要在网络中进行通信,必须要对其单元号、节点号和IP地址进行设置。

2.1 设置单元号

图2面向连接的Socket通信流程

当多个CPU单元安装在同一台PLC上时,就必须为以太网单元设置单元号,以识别特定的CPU单元。欧姆龙CS1W型PLC的单元号可以在0~F(十六进制)之间对以太网单元进行设置,在设备出厂时,单元号被设为0。

值得注意的是,如果是第一次为PLC设置单元号或者是改变原来的单元号,那么就必须为PLC创建I/O表[3]33。

2.2 设置节点号

当多个以太网单元连在同一个以太网上时,要用节点号对其进行识别。欧姆龙CS1W型PLC的节点号由高位和低位组成,分别由高位节点号设置开关和低位节点号设置开关进行设置,其值为1到126之间,不同的以太网单元不能拥有相同的节点号[3]34。

当使用自动产生方法进行地址转换时,节点号要与本地IP地址的最低两位相同。如不相同,就不能使用自动转换方法。在本实例中,以太网单元的节点号设置为11(十六进制)。

2.3 设置IP地址

以太网上的节点是用IP地址来识别的。每个IP地址被设为32个二进制数,通常用四段数以点分十进制形式来表示。在以太网单元中,每段数用两个十六进制的数来表示[3]34。

以太网单元的IP地址用安装在其后面的8个十六进制旋转开关来进行设置。对于CS1W型PLC,可将SW1和SW2,SW3和SW4,SW5和SW6,SW7和SW8组合在一起,就得到了单元的IP地址。在本设计中,IP地址设置为 CA.72.6A.11,也就是202.114.106.17。

3 通信协议

通信协议是通信的双方互相遵守的约定,本文中的通信协议(以C表示)由7个字节组成,见表1,现对各个字节进行说明。

表1 通信协议配置

C0:可取3个值:00、11、01。00表示让PLC向PC发送数据,11表示PC向PLC发送数据,01表示让PLC关闭Socket连接。

C1、C2、C3、C4:发送或者接收数据的地址。此地址可以是PLC内存中的任何一个区域。PLC接收到之后,将其转换成十六进制数(两个字),送到Socket服务参数区的发送/接收地址单元(对于CS1W型PLC,为D30024和D30025),作为要发送和接收数据的起始地址。

C5、C6:发送或者接收数据的字节数。由于PLC的Socket服务参数中的此项范围为0~07C0,所以通信协议中用两个字节来表示,PLC接收之后,先将其转换成十六进制数,再送到Socket服务参数区的发送/接收数据字节数(对于 CS1W型 PLC,为D30023)单元中。

通信协议存放在内存D中从D01000开始的7个连续单元中。

4 上位机程序设计

4.1 上位机程序要实现的功能

上位机作为服务器主要实现以下功能:

监听:服务器启动后,处于监听状态,当有客户端申请连接时,便与之建立连接,以进行通信。

断开连接:服务器既可以单方面断开连接,也可以响应客户的断开而关闭连接;关闭连接之后若要进行再次通信,则要重新开始监听。

接收数据:客户有数据送来时,服务器将其接收,并放于缓存中。

发送数据:服务器调用Send()命令,将缓存中的数据发送给客户。

状态显示:能够显示服务器当前的状态。

4.2 上位机程序的实现

上位机程序采用Visual C++6.0来实现,主要程序代码如下:

5 下位机程序设计

Socket服务参数区在CPU单元的DM区,Socket服务请求开关在Socket服务参数区中设置。对于以太网单元号为0的情况,Socket的服务参数在DM中的地址为D30018~D30027(以CS1W型PLC为例),共10个字单元。表2列出了1号Socket服务参数在内存D中的位置以及每个Socket服务参数区的配置。

表2 欧姆龙PLC Socket服务参数区配置

程序流程图如图3所示,在此流程图中,省略了以TCP方式建立连接的细节过程,而主要是关于建立连接之后PLC与服务器之间的数据通信。

用CIO00000~CIO00003分别表示打开、关闭、发送和接收开关的请求位;用CIO00100~CIO00103分别表示打开、关闭、发送和接收的错误标志,以显示错误信息;用CIO00200~CIO00203分别用于控制打开、关闭、发送和接收指令的执行,以达到只执行一次的目的。

用CIO00300表示程序判断位,以确定程序下一步的走向;用CIO00400表示接收命令开关位,此命令由服务器发送,用于控制PLC执行何种操作,命令长二十个字节,存放在以D01000开始的十个连续字单元中。

图3 下位机通信流程

6 结束语

欧姆龙PLC具有很强的通信功能,其以太网模块采用应用广泛的TCP/IP协议,数据通信速度快,程序设计简单。文中的通信软件采用Visual C++6.0编写,性能稳定,可靠性高。本文的通信方法已用在工业现场,数据可以实时传输至工业上位机,方便保存、处理和分析。

[1]曹卫,史旺旺,陈虹.OMRON PLC在以太网中的通信及实现[J].测控技术,2004,23(12):50 -51.

[2] 刘利.可编程序控制器通信与网络[M].北京:机械工业出版社,2006.

[3] OMRON.OMRON PLC CS1W-ETN01 Ethernet unit operation manual[M].Japan OMRON,2008.

[4] BAO WEIMIN.Application of windows socket technique to communication process of the train diagram network system based on client/server structure[J].Journal of Southwest Jiaotong University,2001,9(2):8-14

[5] 王德力,刘希宝.Socket编程技术[J].辽宁师专学报,2002,4(2):42-43,46.

[6]高恩勇,谢德银.利用Delphi编写Socket通信程序[J].沧州师范专科学校学报,2004,20(4):56-58.

猜你喜欢

欧姆龙通信协议IP地址
铁路远动系统几种组网方式IP地址的申请和设置
人民币上的圆圈
人民币上的圆圈
IP地址切换器(IPCFG)
人民币上的圆圈
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
人民币的圆圈
基于DMX512通信协议的多路转发器设计与研究
基于NS-3的PLC多频通信协议仿真平台设计与实现