彭竹,吴胜昔,向国海,顾幸生
(1.华东理工大学 自动化研究所,上海200237;2.上海慧时软件有限公司,上海200233)
智能化、网络化和集成化是工业自动化技术的发展方向,当前多种工业现场总线产品共存的现状阻碍了工业控制系统的网络化集成。通过网关将具有标准总线接口的产品集成到现有控制系统,是提高系统的性能并扩展其应用范围的有效途径[1]。Anybus网关主要解决系统集成过程中众多标准从站产品的接入问题。该网关作为具有独立功能的子系统,通过原网络协议与控制系统进行通信[2-3]。
本文详细介绍了利用网关作为PLC的Profibus DP从站以及作为现场设备的Modbus主站在某一生产过程系统中的作用以及如何配置来实现系统的数据采集。给出了系统结构设计、通信组成设计,并研究了网关的工作原理、内部寄存器输入输出区以及它的配置工作ABC Config Tool[2]。最后概述了采用网关在数据采集中的优势,以及网关本身的特点和在工业现场多种通信协议之间的转换所起的作用[4-6]。
笔者论述的网关设计应用于某一大型生产流程的数据采集系统。系统要求控制器读取Modbus协议的变频器和仪表数据,读取时需要在PLC中加入读取Modbus协议指令,而采用网关可以直接以读取Profibus-DP从站的形式将仪表数据打包为一个数据块送入控制器,无需复杂的编程。文中采用的是HMS公司的Anybus网关产品,用户可以从EMS系统中浏览实时的能耗数据、运行记录、交接班记录、实时和历史趋势、报警等信息[1]。
系统构成如图1所示,系统上位机采用Intouch监控软件[7],Historian历史数据库,实现对整个生产流程的数据采集。下位机采用S7400系列PLC,实现对现场各种智能仪表,包括变频器、DIRIS仪表、软启动器的信息采集等操作。
图1 系统结构示意
该项目采用S7400PLC作为Profibus主站,Anybus Communicator X-gateway(ABC)-AB7000作为Profibus从站,ABC下面连接现场设备,如变频器,网络仪表等,这些设备作为ABC的Modbus从站,对它们来说,ABC是 Modbus主站。在这里,ABC相当于一个协议转换器,可以将Modbus协议数据传送给Profibus协议,也相当于一个通信接口,供不同的通信协议之间的转换。Anybus接单点串行子网和多点串行子网的结构如图2所示。笔者在设计方案中,由于变频器和仪表数量比较多,采用多点串行子网结构。
一个Anybus可以最多连接31个节点,即最多31个 Modbus从站,并支持 RS-232,RS-422,RS-485[3]标准。Profibus接口支持所有普通的波特率,最高可达12Mbit/s,每个方向最多可传输244Byte的输入输出数据[4]。
Anybus属于第三方工业网络连接产品,提供了简单和灵活的方式将自动化设备或系统接入多种现场总线和工业以太网的解决方案[8]。ABC相当于一个硬件平台,而ABC Config Tool是其软件,该配置软件可从www.anybus.com下载。ABC被设计用来在串行子网和上层网络之间交换数据,和其他大多数网关设备不同的是:它对子网没有固定的协议,可以被配置成几乎任意一种串行通信模式[9]。ABC可以以三种模式收发串行电报:循环的、根据状态变化的、根据上层控制系统网络发布的触发事件,还可以监视下层子网的某些通信状态,当数据发生变化的时候通知上层网络。ABC所包含的一个重要的部分就是ABC Config Tool,它给ABC提供下层网络协议的描述,无需编程,相反,一个可视化的协议描述可以说明串行通信的不同部分[10]。
图2 网关子网结构示意
PLC通过内部缓存区和作为其DP从站的ABC交换数据。其中Profibus网络:ABC的输入数据区域的数据复制到PLC的输入内存区,PLC将数据复制到ABC的输出数据区域。Modbus网络:ABC将变频器的输入寄存器的数据复制到自己的输入数据区域,并将来自PLC的数据复制到变频器的输出寄存器。
网关采用的子网协议有以下几种:
a)Master Mode。该 模 式 下,ABC 作 为Modbus主站,和串行子网之间的通信通过Query-Response的形式进行,在子网上的节点即从站必须被ABC定义了地址后才可以发布信息。当ABC发布一个Query(查询)到子网上时,被定义地址的节点就发布一个Response来回应这个Query,节点在没有收到Query时是不允许即时发布Response的。在这种模式下,ABC可以通过Broadcast(广播)向所有的节点发送Query。ABC Config Tool自带有经常用到的Modbus RTU commands向导,可以方便地通过这个向导来配置。
b)Generic Data Mode。该模式下,ABC和下层子网上的节点之间没有主从站之分,任何一个节点包括ABC本身,都可以即时的产生和消费信息,通信是以Produce-Consume的形式发生。节点不需要发布Response来回应ABC,也不需要等待ABC发布Query后才可以发布信息。ABC通过Produce向节点发送信息,而节点通过Consume来接收。同样的,节点通过Produce向ABC发送信息,ABC通过Consume来接收。
笔者设计的网关应用,上层网络代表的是S7400PLC,下层网络为测量现场电机参数的网络仪表和变频器。网关内部缓冲区包含三个部分:输入数据区域、输出数据区域和通用数据区域。输入数据区域的数据是来自下层网络的数据,通过网关将其传送至上层网络;输出数据区域的数据是由上层网络向下层网络写的数据,输入和输出区域都最多可以传送244Byte的数据;通用数据区域的数据不能传送至上层网络,它是下层网络设备之间传递的数据,也可以作为内部数据缓冲区暂时保存下层网络节点的数据,这片数据区域的真实大小取决于下层网络之间传递的数据数量。ABC可以处理多达1 024Byte的通用数据[7]。
ABC Config Tool是通过建立通信协议块来描述下层子网之间的通信的。首先建立节点Node,它代表子网上的设备;然后是Transaction,它代表一个完整的串行电报,由几个框架对象(Frame Objects)组成。一个Frame Objects可以是一个常数、限定的值或者数据块等。
当用配置软件ABC Config Tool对下层网络进行配置时,不同的数据区域在ABC的内部缓存区域映射的地址分别为输入区域是十六进制的0X000—0X0F3;输出区域是十六进制的0X200—0X2F3;通用区域是0X400—0X???(通用区域的大小是由实际的下层网络之间传递的数量决定)。
该系统需要采集5栋大楼里的数据,每栋大楼里的采集系统都是相同的,都有一个S7400PLC作为Profibus主站,若干个网关AB7000作为Profibus DP从站,每个网关下面又接若干个变频器或网络仪表作为其Modbus从站。文中以其中一栋大楼里的1个网关与其下面的设备为例来介绍网关的数据采集和配置过程。某个网关下面接有3台变频器,每台变频器采集的数据有输出频率、输出电流、输出电压、输出功率、输出功率因数以及变频器故障代码。每台变频器上插有1块Modbus采集卡,每块采集卡有A,B,C,D 4个双输入双输出通道,每个方向最多可传输8个数据,它 们 分 别 为 DATALINKA 1,DATALINKA 2,DATALINKB 1,DATALINKB 2,DATALINKC 1,DATALINKC 2,DATALINKD 1,DATALINKD 2,一共8个数据区域,由于本采集卡每个通道为32位,即每个DATALINK区域是32位的。因为每台变频器采集的数据共有6个,只需A,B,C 3个通道就可以了,故在DRIVERTOOLS里面把采集卡的通道数设置为15。每个变频器采集的参数都是16位的,每个DATALINK的高16位是用不到的,即DATALINKA2,DATALINKB2,DATALINKC2的数据均为零,并不需要将其在上位机中显示,就不需要读入控制器,这样在配置ABC时用Modbus向导进行配置时就不需要将这些高16位的数据读出来。具体配置:打开ABC配置工具,新建一个文件,有 Wizard-Modbus RTU Master,Wizard-CompactComExtLink和空白配置三种模式可供选择,选择第一种模式在向导的引导下按下列步骤完成:
a)连接到网关的现场总线类型——选择Profibus DP。
b)物理标准为RS-485,波特率为9 600bits/s,奇偶校验为None,数据位为8个,停止位为1个。
c)设备名称:AB7000-1。添加参数:添加6个参数,第1个参数命名为output frequency,数据方向选择为“读”,寄存器地址设为30012,长度为1个字,Modbus命令为04-读输入寄存器;第2个参数命名为output current,寄存器地址设为30014,其他与第1个参数相同;第3个参数到第6个参数的名称依次为output voltage,output power,output power factor,PF fault,地址依次为30016,30018,30020,30022。
d)单击添加节点,添加3个节点依次命名为PF700-1,PF700-2,PF700-3,子网地址分别设置的与实际相应的变频器的物理地址相一致,设备类型全选为AB70001。
e)分别在3个节点下添加第三步里面的6个参数,退出向导。
f)打开刚配置好的文件,打开子网监视器,可以看到输入区域有36Byte的数据。
该设计中,Modbus转Profibus DP中,网关AB7000扮演了三种角色:建立Modbus主站和Profibus DP主站之间的连接通信(Modbus主站模式);建立Modbus从站和Profibus DP主站之间的连接通信(Modbus从站模式);建议非标串口设备和Profibus DP主站之间的连接通信(通用模式)。自该系统运行以来,有效保证了整个数据采集系统的正常运行。使用AB7000的Anybus网关将Modbus转成Profibus DP协议,可以方便自动化工业现场的控制和操作。
[1]习博,方彦军.工业以太网中网络通信技术的研究[J].微计算机信息,2005(02):34-37.
[2]赵健颖,陈波.工业网络互联与Anybus解决方案[C]//第七届工业仪表与自动化学术会议.2006:87-90.
[3]杜金利.基于Anybus-S的Ethernet/IP工业以太网的网络接口技术研究[D].天津:天津理工大学硕士论文,2008.
[4]潘洪跃.基于Modbus协议通信的设计与实现[J].测量与设备,2002(04):35-37.
[5]孙伟,赵光明,葛建勋,等.风冷站自动控制系统的实现[J].制冷与空调,2009,23(04):53-55.
[6]龙剑,李风保,潘泽友.基于工业以太网的污水处理自动控制系统[J].自动测量与控制,2007,26(04):78-80.
[7]但斌斌,孙明金,李雪强.基于Intouch和Siemens PLC的HMI开发[J].微计算机信息,2008,24(01):24-25.
[8]顾萍,李宗昌.RS-485和Profinet网关设计[J].软件导刊,2011,10(02):121-122.
[9]赵建华,赵中伟,喻益超.基于Profibus总线的中央空调控制系统[J].自动化仪表,2005,26(07):56-58.
[10]王峰.S7-300通过S7-200实现 Modbus-RTU 通信[J].电工技术,2008(02):59-61.
[11]吴万涛.基于工业以太网的Modubs网关研究与设计[D].南京:河海大学,2008.