现场总线技术及以太网的工业化是当今工业控制领域的技术热点之一[ 1 ]。 以太网是目前应用最为广泛的局域网, 80% 的网络连接中都是基于以太网的。它不仅应用于办公自动化及智能仪表, 而且大举进军工业自动化领域, 在工业控制局域网中得到了很好的应用[ 2 ]。由于以太网具有传输速率高, 传递容量大等优点, 故将其应用于远程监控将成为理想之选择。本文利用实验室现有的实验设备, 设计了以太网远程监控系统, 将以太网从管理层延伸到控制层, 通过网络实现了远程监控和"从会议室到传感器"的集成。
1 硬件设计
利用实验室现有条件, 构建的硬件体系如图1 所示。系统的硬件构成如下:
图1 实验平台结构体系图
1. 1 管理层--PC 机及远程internet
在本系统中以太网传输介质采用10Baset-T 双绞线, 使得系统拓扑为星型结构。借助一个16 口的Hub, 将处于办公室的PC 机和远程的internet 服务器及车间级的PCC 控制子站直接相联。在本系统中, 管理层包括一台PC 机及本地登录远程internet 的服务器。以太网接口硬件采用常用的以太网卡, 降低了系统构建的设备成本, 且缩短了开发周期。
1. 2 控制层--PCC 控制单元及触摸屏人机接口
处于控制层的核心控制单元采用奥地利贝加莱公司(B&R) 生产的可编程计算机控制器PCC (P rogrammable Computer Controller)。贝家莱PCC 根据系统规模不同, 分为2003 (百点以下)、2005 (数百点)、2010 (千点左右) 等3 个系列[ 3 ]。本系统中CPU 模块采用IF260, 属2005 中型系列。人机接口采用HITECH 公司的触摸屏与液晶屏合一的彩屏, 规格为2400×1600。此面板具有防水防尘工业级设计, 适用于各种恶劣环境。有LPT 口输出打印报表, 另有COM 1 和COM 2通过RS232与PC 机或PCC 相联。
1. 3 现场层--CAN 网络
现场包括3 台型号为6SE7016 的西门子变频器, 两台型号为E82EV 571的LENZ变频器, 通过CAN总线采用菊花链的形式互联至PCC。由于所有变频器均处于电气柜中, 距离很短, 通讯速率可高达500Kb/s. 除1# 主令变频器外, 其它4 台变频器各带一位置传感器以检测松紧架的位置, 并将位置偏移量信号送至变频器的辅助频率输入端, 用以调整织物的恒速恒张力运行。此外, 在电气柜面板上还设有准备、启动、点动、升频、降频、停止、急停、复位按钮和相关指示灯。
2 功能分析
由系统层次结构图(图1)可清楚地看出, 本系统为一典型的三级工业控制网络。处于管理层的PC机通过以太网监测控制层和现场层的实时信息, 必要时还可通过向控制层的子站申请系统控制权, 将分散控制转为集中控制, 使得实现控制系统的异地监控和故障诊断成为可能。同时, PC 机还可向控制层的子站递交系统控制权, 将系统由集中控制转为分散控制. 这种控制形式的灵活切换, 更便于工业企业内部管理部门与生产部门的信息沟通, 为企业内部各部门间的信息开放化及交流创造了条件。
控制子站的核心控制单元PCC 包含CPU 模块、通讯模块和输入输出模块。它们完成所有数字量和模拟量的采集, 根据系统功能要求实现相应变量的控制算法和控制策略, 及时输出现场执行机构所需的各种控制信息; 接收现场人机接口(触摸屏)输入的, 或远端管理层(PC 机或internet 服务器) 的控制命令并执行相应的动作, 同时向现场人机接口(液晶屏) 或远程终端(PC 机或internet 服务器) 传送实时控制信息及系统状态。在本控制系统中, 核心控制单元PCC 除完成以上基本功能外, 还要完成系统控制权力的交接及判别。
本系统中的现场层采用由CAN 总线串接起来的5 台变频器带动执行机构, 以及各种开关量信号和传感器检测信号。5 台变频器带动的执行机构要实现织物的恒速恒张力运行。除主令变频器无传感器外,其他4 台变频器所带的传感器用以检测织物恒速恒张力的运行情况。系统运行速度由主令变频器决定, 且主令变频器所带电机的运行速度可预设和临时修改。
3 软件设计
本系统设计涉及的软件较多, 其中远端PC 机的应用程序是在VisualBasic 可视化编程环境中开发的。核心控制单元PCC 有其特定的开发平台Automation Studio(A S)。A S 是奥地利贝加莱公司推出的, 支持用户开发PCC 应用程序的软件包。A S 提供的编程语言非常丰富, 有梯形图LAD、指令表IL、高级编程语言ANSIC 及BASIC 等。本系统控制部分采用BASIC 语言编程。人机界面是在软件ADP3中实现的。系统的软件结构如图2 所示。
图2 以太网远程监控系统的软件结构图
3. 1 远端PC机程序设计
远端PC 机的应用程序在VisualBasic 可视化编程环境中开发。在VB 中, 网络编程通过添加
Winsock网络控件进行。这种方法屏蔽了网络编程细节, 缩短了系统开发周期[ 4 ]。利用Winsock 控件可以与远程计算机建立连接, 并通过用户数据报协议(U ser Program Protocol,UDP) 或者传输控制协议(Transm ission Control Protocol) 进行数据交换。
由于试验平台的管理层与控制层之间的通讯软件是在TCP/IP 协议的基础上编写的, 使得在组建以太网络的时候软件编程变得简单。因为使用高级语言编程, TCP/IP 协议被装入WinSock 控件使用。编程人员只需对WinSock 的网络属性了解之后即可编程, 而无需了解过多网络细节。从中确实可以感觉到利用以太网在IT 行业成熟技术的便利性。 另外, 在本系统管理层与控制层的以太网通讯中使用了TCP 协议, 而未用UDP 协议, 是因为考虑到TCP 是一种面向连接的可靠通讯协议。虽然TCP 通讯的连接和释放过程需要占用一定的PC 资源, 但对于安全性要求很高的工控网络来说, 可靠性还是要优先保障的。再说,在本系统中, 管理层与控制层之间并不是频繁地建立和释放通讯连接, 所以当通讯连接一旦建立起来, 所有通讯过程都能从底层协议上予以保证。
(1) 通信协议的选择及设置 网络编程模式一般采用客户--服务器模式(Client-Server) , 该模式描述的是进程之间的服务和被服务的关系。在这种模式下, 大多数网络应用系统由两部分组成: 客户(Client) 和服务器(Server)。客户是主叫方, 服务器是被叫方。 客户与服务器的通信关系一旦建立, 通信就可以是双向的, 客户机和服务器都可以发送和接收信息[ 5 ]。
本系统将PCC 作为客户端, 将远端PC 机作为服务器, 二者之间的通信使用TCP 协议。应用程序使用的协议按如下方式设置: 在属性窗口中单击协议, 然后选择sckTCPP rotocol, 如图3 所示;也可使用程序代码来设置Protocol 属性, 即Winsock。 Protocol= TCPP rotocol。
图3 应用程序协议设置
(2) 创建TCP 服务器 本服务器端应用程序使用TCP 协议, 需要"监听"指定的端口。当客户端发出连接请求时, 服务器端能够接受请求并建立连接。在连接建立之后, 客户端与服务器可以自由地互相通讯。主要程序如下:
Private Sub tcpServer_ConnectionRequest (ByV alrequestD A sLong)
If tcpServer State < > sckClosed Then '检查控件的State 属性是否为关闭。
tcpServer Close '若不是, 在接受新的连接之前先关闭连接。
tcpServer A ccept requested '接受具有requestD 参数的连接。
End Sub
所谓端口是应用程序访问TCP/IP 的入口点。端口属于TCP/IP 软件的一部分, 是一个16B IT 的地址, 用端口号来标识[ 4 ]。 端口号分为两类: 熟知端口和一般端口。 前者是专门分配给一些最常用的应用程序, 数值为1~ 1023, 由Internet 分配数值权威机构IANA 分配和控制; 后者不受IANA 控制, 数值为1024~ 65535, 只要不发生使用冲突, 任何应用程序均可分配使用。 基于上述原因, 本服务器端口号设为8002。
(3) 远端PC 机与PCC 通讯的主要程序 发送部分的关键程序:
Private Sub send_Click ( ) '名为txtSendData 的TextBox 控件中包含了要发送的
tcpServer SendData txtSendData Text '数据。 用户往文本框中键入数据时, 使用SendData 方法发送输入的字符串。
接收部分的关键程序:
Private Sub tcpServer_DataA rrival(ByVal bytesTotalA sLong)
Dim iA s Integer
Dim R_TCP_DATA (32) A s Single
Fori = 0 To 32
tcpServer GetData R_TCP_DATA (i) '使用GetData 方法将接收到的数据存放入大小为33
Next i '个字节的数组中。
End Sub
(4) 对接收到数据的处理 本系统通过以太网传递到远端PC 的数据为现场的实时信息, 包括各个电机的转速、频率、转矩及5 台变频器的运行状态、故障报警等信息; 还包括控制层的控制命令信息, 如准备、启动、点动、停止、升频、降频等命令。在VB中调用GetData 方法将接收到的数据存放入一个特定的数组中, 根据自定义的协议对这些数据进行程序处理, 即可实现远端PC 机的监控及控制功能。 各监控界面在此不予赘述。
3. 2 PCC 端通讯模块及主要程序流程介绍
(1) 添加Ethernet库 在应用程序开发平台AS上编程的简易之处在于, 它将许多系统功能模块化, 用户只需添加相应模块, 调用其中函数, 便可达到完成所需功能的目的。 本次设计为以太网远程监控,即PCC 需要与远程PC 机进行通信, 添加Ethernet 库, 即可实现远程通信功能。 该库包含如下函数:
UDPopen ( ) , UDPclose ( ) , UDPsend ( ) , UDPrecv ( )
TCPserv ( ) , TCPclient ( ) , TCPsend ( ) , TCPrecv ( ) , TCPclose ()
在本次设计中, 通信协议采用TCP 协议, 故程序中只用到第二种函数。 各函数功能在此不予介绍。
(2) 模块TCP_IP 本模块主要功能为实现PCC 与远端PC 机间通过ETHERNET 进行信息交换。它包括向远端PC 申请连接, 发送和接收数据, 以及在适当的时候关闭连接。 其程序见流程图4。
图4 模块TCP_IP 的流程
4 结束语
由于资金限制, 目前采用的是共享式以太网集线器, 而且在管理层没有采用更多的远程PC 参与监控。 但这种硬件体系结构作为在实验室使用已能满足要求, 即使要将其向工业现场移植也很容易, 只需将共享式集线器换成交换式集线器, 将其他远程PC 或带有以太网接口的控制层或现场层的设备直接插入集线器, 或通过集线器级联即可。
参考文献:
[1] 现场总线CAN 原理与应用技术[M]. 北京: 北京航空航天大学出版社, 2003. 11-14.
[2] 刘原. 工业计算机网络及现场总线技术[J]. 西安工程科技学院学报, 113-127.
[3] 齐蓉. 可编程计算机控制器原理及应用[M]. 西安: 西北工业大学出版社, 2002. 13-73.
[4] 范逸之. VisualBasic 与分布式监控系统-RS-232/485 串行通信[M]. 北京: 清华大学出版社, 2002. 56-70.
[5] [美]TM ParkerMark Sportack. TCP/IP 技术大全[M]. 前导工作室译. 北京: 机械工业出版社, 1998. 100-123.
通讯作者: 丁学文(1955) , 男, 陕西省渭南市人, 西安工程科技学院教授. E-mail: ding450616@yahoo. com. cn