• 采用Modbus协议实现DCS系统中监控级数据集成———采用Modbus协议实现DCS系统中监控级数据集成

      数据集成是DCS系统中的关键。一个典型DCS系统从结构上可分为四层[1]:现场级、控制级、监控级和治理级。本文讨论的是监控级,在这一级有很多并列的子站,一般采用计算机作为为机接口,各站点可按功能划分,分别采集相应的现场信号和控制某些局部设备。但是,各站点之间不是孤立的,它们必须互相配合、协调才能保证产品质量和实现连续生产,这就需要各站点能互通讯息。另外,上级治理网也需要与监控级子站交互数据,以实现全局的监控和优化。


                 然而,子站是采用不同开发平台、不同通讯协议组成的异构系统,可能由不同的厂家和个为开发。要为每种协议写一个转换接口或驱动是比较繁琐的,特别是在站点和协议较多的时候。因此,怎样有效集成数据,避免信息孤岛的出现,是DCS系统中常碰到难点题目之一。


                 比较好的方法是各站点都采用标准协议进行数据通讯,而不必为每一种协议开发一个通讯接口。目前这方面的协议比较多,Modbus就是其中的一种。


            

     


             1 Modbus协议简介


                 Modbus协议包括ASCII、RTU、PLUS、TCP等,并没有规定物理层。此协议定义了控制器能够熟悉和使用的消息结构,而不管它们是经过何种网络进行通讯的[2]。标准的Modicon控制器使用RS232C实现串行的Modbus。RS232C规定了连接器针脚、接线、信号电平、波特率、奇偶校验等信息,Modbus的ASC水、RTU协议则在此基础上规定了消息、数据的结构、命令和就答的方式,如图1所示。数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave真个数据,实现双向读写。


            

     

        图2是一个典型的Modbus应用示例。Modbus可以应用在支持Modbus协议的PIC和PLC之间、PLC和个人计算机之间、计算机和计算之间、远程PLC和计算机之间以及远程计算机之间(通过Modem连接),可见Modbus的应用是相当广泛的。由于Modbus是一个事实上的产业标准,很多厂家的PLC、HMI、组态软件都支持Modbus,而且Modbus是一个开放标准,其协议内容可以免费获得,一些小型厂商甚至个人都可根据协议标准开发出支持Modbus的产品或软件,从而使其产品联进到Modbus的数据网络中。因此,Modbus有着广泛的应用基础。


                 在实际应用中,可以使用RS232、RS485/422、Modem加电话线、甚至TCP/IP来联网。所以,所以,Modbus的传输介质种类较多,可以根据传输间隔来选择。


             2 Modbus的具体应用


                 这里先容的Modbus的具体应用是某厂的水泥生料生产质量控制系统。此系统中一共有5个子站:钙铁分析仪、四元素分析仪、料位位/料浆塞、配料秤、配库。每一个子站由一台计算机和相关软、硬件组成,控制系统组成如图3所示。


            

     


                 从图3可看出,系统基本上是两个控制回路:一路由钙铁分析仪、配料秤及控制算法组成,实现磨前精配,即出磨生料质量的在线实时闭环控制;另一路由四元素分析仪、料浆塞、料位仪组成,实现摩后调配,即进窑前料浆质量的均化控制。配库算法在第二条回路中起控制、优化和网络接口的作用。系统控制参数的改变由两个事件触发:钙铁仪分析的结果和四元素分析的结果。这两个分析结果由对用户定期采得的实际生产中的样品的分析得到。从图3还可看出,各站之间是相互联系的,它们的协作关系到生料生产的质量。


                 在网络设计中,不仅要实现各站之间数据交换,同时还要考虑到网络的灵活性、通用性、可扩展性。例如,数据源站点应能比较轻易地增减数据、目标站点可能有多个、数据流向应该是双向的、所有生料系统的数据需送到厂级DCS中,因此网络的实现比较复杂。


                 由于Modbus协议具有多样性、可靠性等特点,而且是产业级标准协议,完全可以适合具体应用,因此用Modbus实现网络。


                 要在每个站点都用源程序实现Modbus是不实现的,由于应用程序开发平台不一样,有Visual C++等,不可能实现代码复用。但是,每个站点读写Modbus数据的操纵又是相同的,为解决这个题目,我们采用COM技术。COM也是软件模块之间数据通讯的标准。COM的特点是语言无关性、对时程的透明性和可以实现二进制重用。由于它的接口是开放的,所以支持COM技术的客户程序可以通过其公共接口调用COM组件的内部功能。众所周知,在Windows2000中,COM+甚至是构成操纵系统的基础。


                 最后,采用ATL开发出了两个COM组件,即Modbus Master组件和Modbus Slave组件。ATL是一个基于C++模拟技术的框架,它主要用在甚至COM的软件开发上,使用它可以大大简化组件的开发过程并进步代码的效率[5]。Master和Slave组件都包含ASCII、RTU、TCP三种方式,实现了Class0、Class1规定的功能[3]。每个子站的客户程序不需要了解Modbus的具体协议和实现方式,只需调用组件公然出来的方法,就可以与远程计算机交换数据,实现Modbus协议透明、网络数据传输透明。例如Slave真个组件,客户端只需修改其连接数据就可以使变化反应到Master端,而Master端修改了数据后,Slave端会触发事件通知客户。


                 网络结构没有使用点对点的连接,而是采用了星型连接,在一个站点上建立一个实时数据库,相当于一个数据中心。所有站点都只与数据中心相连,各站数据也发送到数据中心集中。网络结构见图4。


            

     


             3 讨论


                 3.1 关于具体应用


                 图4所示的网络结构中,一方面,系统封装了Modbus协议和网络的实现,实现了功能复用,减少了重复操纵,并且使网络调试比较方便;另一方面,星型结构使增加数据、增加站点都很方便,原则上每个站点都可以取得任意站点的数据,而不需要增加新的连接。在图4所示的网络结构下,可以方便地把配库和配料秤相连,实现半库调配(根据料浆质量反馈控制配料秤配方),将控制回路增加到3条。部分实时数据还可以存进历史数据库,以便长期保存和事后分析查询。


                 3.2 Modbus协议的其它特点


                 除了在简介中提到的应用广泛的特点外,Modbus还有其它特点。Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,由于TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中假如某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。


                 Modbus定义了很多功能,对产业上的实际应用考虑比较全面。而且协议仍在发展中,用户还可自定义功能码。可见,Modbus的扩展性是比较好的。


                 对于一些重复发送的检测数据,可以采用Unsolicited方式,即Master端不需发送请求,而由Slave端主动发送数据。这样可以降低网络数据流量,以进步传输速度。因此,Modbus协议应用也比较灵活。


                 3.3 与NetDDE协议的对比


                 NetDDE协议有几个缺点:一是技术太老,Win98平台上没有32位的API,只有16位的,因此在32位平台上实现起来较困难,而且NetDDE不能实现串行连接;二是传

     
     
    网站首页  |  关于我们  |  联系我们  |  广告服务  |  版权隐私  |  友情链接  |  站点导航