开放式PLC数据采集控制器设计与研究

2013-09-17 10:31李跃武朱海林
微型电脑应用 2013年9期
关键词:调用IP地址开放式

李跃武,袁 敏,朱海林

0 引言

随着现代工业技术和计算机技术的迅速发展,数据采集系统在各种工业领域中应用的十分广泛,对于各种制造型企业,数据采集无疑是企业管理系统正常运作的一个关键。工业控制趋于网络化控制,现场总线技术使得各设备间的数据通信更加方便,网络化的数据采集系统技术得到广泛应用。在工业控制中,PLC、DCS、智能仪表等设备采集现场数据,通过现场总线与上位机通信,将数据发送给上位机,上位机显示并处理现场数据。随着以太网技术的不断发展,在确定性、速度和优先法则方面有了很大提高,能够胜任数据采集和控制对实时性、可靠性、抗干扰性的严格要求。以太网已被证明是未来数据采集和控制网络的最佳解决方案。

开放式数据采集系统可以通过以太网交换机与多个S7-1200 PLC相连,通过Prodave以S7协议为基础以及Modbus/TCP协议接收S7-1200采集的数据,可选择这两种通信方法与S7-1200建立通信。支持PLC通信方式、连接数量、IP地址、插槽号、机架号、读写操作、数据类型、数据块号、起始域、数据长度的设定。提供数据库对采集数据汇总管理。与其他客户端相连时,可以作为服务器将采集的现场数据直接发送至其他客户端。

1 系统结构

开放式数据采集系统包括用户层、服务器层和现场层。如图1所示:

图1 开放式数据采集系统的结构

用户层实现了用户通过调用数据库数据监控现场数据,或者通过以太网TCP服务直接调用采集系统的数据;服务器层是开放式数据采集系统的核心,完成了数据从现场层的采集、数据库实现、数据发送等功能;现场层包括西门子S7-1200PLC等设备,用于采集现场数据。系统通过以太网交换机与若干S7-1200互联实现通信,通过多线程接收S7-1200发送的数据。

开放式数据采集系统的特点如表1所示:

表1 开放式数据采集系统的特点

PC安装Window XP操作系统,通过Delphi软件编程实现与现场设备的通信。系统主要通过两种方法实现与现场设备的通信,分别为Prodave以太网通信和Modbus/TCP通信,这两种方法可以根据实际需求供用户选择。系统数据库服务器,支持数据的管理和远程Internet监控。

2 系统Delphi软件设计

开放式数据采集系统是以PC为硬件平台,在Windows XP操作系统环境下利用Delphi7通过软件方法编程实现PC与S7-1200的通信。主要介绍了Delphi7利用西门子Prodave实现PC与S7-1200的以太网通信;利用Modbus/TCP协议实现了PC与S7-1200的以太网通信。从而实现了一种开放式数据采集系统。

2.1 Prodave通信

在工业生产制造过程中,由于PC应用程序的功能越来越强大,对于MPI、PPI等非公开协议无法在应用程序中编程通信,所以西门子公司提供了Prodave软件包,用于建立PLC于PC之间的数据连接[1]。西门子公司提供的Prodave软件包主要应用于S7-300系列PLC,应用于S7-1200时需要作相应的变通。Prodave软件包提供了动态链接库(DLL)可以在Delphi坏境下调用。Delphi调用动态链接库的方式有静态调用和动态调用两种,调用Prodave软件包中的函数使用静态调用的方式。使用静态调用时需要先将DLL代码载入到内存中,即需要事先申明,例如申明LoadConnection_ex6函数的方式如下:

以Prodave以太网通信实现PC与S7-1200的通信。通过以太网连接PC与S7-1200,设置PC-PG接口,选择TCP/IP(Auto),访问点选择“S7ONLINE(STEP7)”。

通过SIMATIC TIA PORTALV11软件在S7-1200的DB块中写入数据,再通过Delphi编程调用Prodave函数,读取DB块中的内容,以验证方法的可行性。

Delphi调用Prodave函数前需要将Prodave.pas文件复制到工程目录下,同时在单元文件*.pas文件interface部分中uses字段申明Prodave,以确定本单元要使用Prodave.pas。

在Delphi7环境下建立一个TThread类线程TFieldReadThread,用于实现PLC的读操作。

在连接成功后,通过Delphi7提供的ListView控件显示连接号,连接方式,PLC地址,机架号,插槽号以及MLFB信息。现场共有20台S7-1200,IP地址分别为192.168.0.10,192.168.0.11,……192.168.0.29。PC的IP地址与PLC在同一网段内,为192.168.0.5,子网掩码为255.255.255.0。开放式数据采集系统可自由添加PLC的IP地址,并自由选择连接方式,插槽号以及机架号,与若干台PLC相连,系统已连接了9台PLC,如图2所示:

图2 PC与S7-1200建立Prodave以太网通信

开放式数据采集系统可对PLC的数据块、数据起始域、长度以及数据类型设定,并进行读或写的操作。通过Prodave以太网通信方式选择10台S7-1200与PC实现通信,并采用多线程方法读取各个S7-1200中的数据,图3中所示当前显示读取的是PLC5,IP地址为192.168.0.14的S7-1200中DB2起始域为0数据长度为50字节的数据,通过切换选项卡,可查看任意PLC的数据,如图3所示:

图3 PC与S7-1200的Prodave以太网通信

2.2 Modbus/Tcp通信

2.2.1 Modbus/TCP协议简介[2,3,4]

Modbus通讯服务提供了客户机/服务器在以太网上的TCP/IP网络连接的设备之间的通信。可用于实时信息交互,为PC机和设备之间提供联机服务。Modbus/TCP协议在应用层采用Modbus消息定义,在传输层和网络层采用TCP/IP,用于以太网通讯。

一般的Modbus协议定义了一个独立于底层通信层的简单的协议数据单元PDU(Protocol Data Unit)。Modbus协议的映射在特定的总线或网络可以在应用数据单元ADU(Application Data Unit)介绍一些额外的字段,其帧格式如图3所示。当Modbus协议封装在TCP/IP网络上时其帧格式如图4所示:

图4 一般Modbus协议格式

Modbus协议常用的功能码有01(读线圈状态)、02(读离散输入量)、03(读保持寄存器)、04(读输入寄存器)、05(写单线圈)、06(写单保持寄存器)、15(写多线圈)、16(写多保持寄存器)等。

Modbus应用协议头(Modbus Application Protocol Header),分4个域,共7个字节,分别为事物标志、协议标志、长度、单元标志。所有的Modbus/TCPADU通过TCP上注册的502端口上发送。

2.2.2 Modbus/TCP通信的实现

在Delphi 7编程环境下,在PC机建立Modbus客户端,以西门子公司的S7-1200 PLC作为服务器,通过以太网实现Modbus/TCP通信。S7-1200 PLC的IP地址为192.168.0.1,通过以太网将PC机和S7-1200连接起来,并设置本地连接TCP/IP协议属性,使用IP地址192.168.0.5,子网掩码255.255.255.0,这样PC机和S7-1200就构成了客户端/服务器模式。

通过SIMATIC TIA PORTAL V11软件对S7-1200编写Modbus/TCP服务器程序,对DB2数据块写入数据,在PC机上,使用Delphi 7编写Modbus/TCP客户端程序。通过Delphi 7提供的VCL组件IdTCPClient来创建TCP服务,在IdTCPClient控件的对象监视器中设置其Port属性为502。Modbus/TCP协议读写保持寄存器程序流程图,如图5所示:

下面给出Modbus协议请求协议数据单元主要代码:

通过以太网实现PC机与S7-1200的通信后,对S7-1200持寄存器进行读取和写入操作,如图6所示:

图6 Modbus/TCP通讯流程图

通过Modbus/TCP协议对PLC8,IP地址为192.168.0.17进行采集,图中显示为Modbus/TCP协议报文。

2.3 数据汇总

对现场设备所采集的数据的记录管理很重要,PC内安装MySQL数据库管理系统,用于记录管理PC接收到的数据。MySQL数据库管理系统是开源、小型、关系型数据库管理系统,支持SQL,应用广泛。

2.3.1 建立数据库

通过MySQL Command Line Client客户端软件使用SQL语句建立数据库db_sjhz,用于存储开放式数据采集控制器所采集的数据。在数据库db_sjhz内建立两个表tab_mbtcp和tab_prodave,分别用来记录和管理Modbus/TCP通信的数据和Prodave通信的数据。主要语句如下:

2.3.2 实现数据库管理

通过Microsoft OLE DB Provider for ODBC Drivers实现delphi7与MySQL数据库db_sjhz的连接。连接结构,如图7所示:

图7 PC与S7-1200的Modbus/TCP通信

Delphi 7通过ADOConnection实现与MySQL的连接,如图8所示:

图8 数据表结构

将数据显示在数据控制组件DBGrid中,如图9所示:

图9 通信数据录入数据库表中

DBGrid所显示数据为Prodave通信采集数据。可以通过切换选项卡,选择Prodave或Modbus/TCP数据的汇总,分别将两者通信方式所采集的数据录入表tab_prodave和tab_mbtcp中。

2.4 数据发送

PC采集现场的数据可以通过两种方式发送,一是通过数据库发送,由客户端调用数据库数据监控现场数据;二是建立TCP服务器,通过以太网直接将数据发送至其他客户端。

如10图所示:

图10 数据发送

TCP服务器启动服务后,IP地址为192.168.0.3的TCP客户端与服务器建立连接,发送请求数据,服务器做出响应信息发送至客户端,完成数据的发送。

3 结论

以PC为硬件,在Windows XP环境下通过Delphi7编程实现Prodave和Modbus/TCP通信,实现了开放式数据采集控制器。实验结果说明这种方法通信效果稳定良好,可以依据不同的工作情况选择Prodave和Modbus/TCP两种通信方式中的一种,或者两种通信方式同时运行,对数据的监控更加实时可靠。通过数据库技术实现对采集数据的高效管理。以MySQL数据库或者TCP服务器的方式将数据发送至其他客户端的方式,使得采集控制更加灵活便利。另外通过Prodave也可以实现与西门子S7-300,S7-200等PLC实现通信。

[1]SIEMENS.PRODAVE MPI/IE V6.0[G]Manual,2005,5

[2]Modbus Messaging Implementation Guide v1.[OL]http:www.modbus.org.2002,5

[3]MODBUS Application Protocol Specification[J]V1.1b,Modbus-IDA,2006,10

[4]OPEN MODBUS/TCP SPECIFICATION[M]Release 1.0,1999

[5]MySQL 5.5 Reference[G]Manual,2013

猜你喜欢
调用IP地址开放式
开放式数字座舱软件平台IndiGO
铁路远动系统几种组网方式IP地址的申请和设置
核电项目物项调用管理的应用研究
小学作文开放式教学的思考
开放式计算机实验教学自主学习平台
IP地址切换器(IPCFG)
开放式弹簧机数控系统开发
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
基于系统调用的恶意软件检测技术研究