Modbus RTU通讯协议在流浆箱控制系统中的应用
来源:网络 2012-07-02 关键词:Modbus RTU 通讯协议 流浆箱控制系统 1 引言 现场总线技术是当今自动化领域发展的热点之一,是实现工业控制网络化的重要技术。许多自动化公司都开发了多种现场总线技术标准,例如Profibus,LonWorks,Modbus等,Profibus,LonWorks总线功能强,可靠性高,但同时价格也比较昂贵,比较适用于大中型控制系统。而基于RS485接口的Modbus通讯协议较适用于小型控制系统或单机控制系统,为实现低成本,高性能的主从式计算机网络监控提供了可能。 Modbus协议是MODICON公司开发的开放式现场总线通信协议,它符合OSI标准协议集中数据链路层规定的高级数据链路控制协议,但做了简化处理。由于其功能比较完善而且使用简单,数据易于处理,协议开放,因而在各种智能设备中被广泛采用。 2 应用背景
图1 控制系统结构图 在纸张抄造的过程中,成纸的均匀度取决于纤维在流浆箱中的分散程度和流浆箱唇板开口的均匀度。在车速超过250米/分的纸机上,必须配备气垫式流浆箱,其主要控制参数是总压、浆位和浆速/网速比。控制总压的目的是为了使从流浆箱流送到网上的纸浆流量和流速均匀稳定,控制浆位的目的是为了获得适当的纸浆流域,以减少横流和浓度的变化。 产生和保持可控的喘流以限制纤维的絮聚。由于流浆箱控制系统为强耦合系统,在总压调节时会影响浆位,而在浆位调节时又会影响总压,若处理不当会引起振荡,或持续性的波动,会严重影响抄纸质量,故需要解耦控制。 流浆箱控制系统结构如图1所示,其中控制器选用ABB AC31 50系列PLC,由于解耦控制算法在上位机中实现,而且对流浆箱控制系统调节的快速性有一定要求,这样就需要高性能,低成本的通讯总线来完成上位机与PLC的快速数据交换。 ABB AC31 50系列PLC具有两个串行通讯端口COM1和COM2。COM1具有Modbus、ASCII和Programming三种模式,通常诊断和下载程序用COM1;COM2具有CS31和Modbus两种模式,现场上位机与PLC通讯时使用COM2的Modbus模式,其最高通讯速度可达187.5K,实际使用时采用了57.6K的通讯速度。 3 Modbus通讯协议介绍 作为现代自控系统中常用的协议之一,Modbus采用主从应答方式,即只有一个设备作为主机能主动发送询问信息,其它设备都是作为从机响应主机的命令或将所需的信息返回至主机。该协议支持在串行总线上有一个主机和247个从机,每个从机具有唯一的地址。读取或写入信息除要求从机地址外,还需要数据寄存器的地址。 Modbus协议可使用两种模式进行通讯:ASCII和RTU,这两种模式在报文结构、功能命令上是相同的,仅帧信息的表示方法不同而已。它们的区别是:采用RTU模式通讯时,信息是以8位二进制方式传输的,而采用ASCII时,信息是以字符为基本单位传输的,每个字符都用ASCII码表示。ASCII的优点是通用性好,读取容易。但在相同传输速率下,RTU 模式比ASCII模式传输效率提高一倍。本文将介绍RTU模式通讯的实现方法。 Modbus帧格式由地址、功能码、数据段、校验码组成,数据段内容根据主-从或从-主关系可包括寄存器起始地址、寄存器数、数据位,格式如下:
每一帧数据以至少3.5个字符的间隔时间(T1-T2-T3-T4)标志开始和结束,整个信息帧必须以连续的信息流进行传输,从而保证CRC校验的正确。其中: 地址为8位,从机的有效地址范围是0-247,其中0是广播地址。 功能码为8位,有效编码为1-255。 数据段可由多组数据组成,主要包括从机要完成功能码功能所需的附加信息。 CRC为此帧数据的循环冗余校验码,用于保证整帧数据传输的正确性。 4 上位机与PLC通讯的具体实现
图2 定时器程序流程 作为Modbus主机的上位机通过Modbus通信协议可以访问从机ABB AC31 50系列PLC里所有类型的输入、输出、内部及常量数据。但是为使上位机更高效地读取PLC中的数据,需要将要读取的数据合理安排,这里我们将上位机需要访问的所有输入、输出、内部字或位数据经转换都在PLC中以一定顺序按地址连续地存放在内部字存储区中,以便上位机每次只用一条读请求命令读取此块内部字存储区,即可获取所需的全部PLC数据。这样可以显著的提高通讯效率,同时简化上位机程序。我们将读请求命令存在 QueryData数组中,如下: Dim QueryData(1 to 8)As Byte QueryData(1) = (&H1) ‘PLC地址为1 QueryData(2) = (&H3) ‘功能码为3,读取n个数据 QueryData(3) = (&H2E) ‘数据地址为2E60 QueryData(4) = (&H60) QueryData(5) = (&H0) ‘数据个数为81个 QueryData(6) = (&H51) QueryData(7) = (&H8D) ‘校验码 QueryData(8) = (&H0) 将QueryData数组通过MSComm控件发送给PLC,这样PLC就会将其所需的全部数据(从PLC地址2E60开始到2EB0结束的81个地址连续的数据)一次返回给上位机。 由于Modbus协议采用主从应答方式,即上位机程序中需要定时或循环发送读取PLC数据的读写请求命令,而PLC对收到的每一条请求命令按协议规则进行回应。如此一应一答循环往复实现数据采集和控制命令的发送。同时为了避免读写冲突,要控制每两条请求命令发送的时间间隔。下面这段程序简单的说明了读、写命令发送是如何控制的: While (1) DoEvents If bNeedToWriteNewData Then ‘写命令 MSComm1.Output =SetData TimeDelay (100) ‘延时100毫秒 ReceiveData = MSComm1.Input bNeedSendNewData = False Else ‘读命令 MSComm1.Output = QueryData TimeDelay (100) ‘延时100毫秒 ReceiveData = MSComm1.Input buf = ReceiveData ‘处理、转换 Call PrecessPLCData(buf) End If Wend 实际应用中采用定时读写的方式,流程如图2所示。上位机将处理、转换过的数据存入数据库,并以动态趋势和历史趋势的形式显示出来,同时提供报警指示。所有关键参数都要获得相应权限后方可从上位机写入PLC。 上位机使用Windows2000操作系统,监控程序用VB6.0编写,这样可以保证上位机稳定的运行,监控程序通过串口从 ABB AC31 PLC可获得各现场过程值和参数,也可随时根据工艺要求对PLC中的参数进行更改设置,从而对生产过程实施有效控制,在更改车速时,系统会自动更改总压设定值,使浆网速比满足条件。同时对各种可能出现的故障给出了在线帮助和排查方法,极大的方便了操作工的使用和维护。 5 总结 本控制系统在某纸厂五万吨生产线中已成功使用,现场运行稳定,压力、液位曲线非常平稳,控制效果和通讯速度方面令人满意,已顺利通过验收,也为抄造高品质的纸张提供了有力的保障。Modbus通讯协议以其格式简单、编程容易、传输距离远、通讯可靠、通讯速率高、设备间连接成本低等优点使得它将能得到更广泛的应用。
我要收藏
个赞
评论排行