技术频道

MODBUS 通讯协议在600MW 火电机组DCS 中的应用

摘要:
    详细介绍MODBUS 通讯协议的主要过程,通过DCS 系统与几种PLC 通讯的实例,介绍了MODBUS通讯接口在内蒙古岱海电厂DCS 中的应用。  
  关键词:
    MODBUS;DCS;通讯 
    随着国内600MW发电机组自动化项目的实施,集散控制系统(DCS)在火电厂热工自动化领域已广泛使用,在众多的使用场合,普遍存在DCS与其他专用控制系统混合使用的情况,这些专用控制系统包括PLC、数据采集器和各种智能仪表。这种使用不仅由于DCS设备价格昂贵,更由于数据采集器,PLC等有比DCS更优的分散性、性价比和控制速度等性能,从而构成规模更大、性价比更优的控制系统,若将该混合系统融合成一个整体,使所有监视、控制都在DCS上进行,就涉及DCS与其他专用控制系统的通讯。本文着重介绍内蒙古岱海电厂#1机组使用MODBUS通讯接口实现上述通讯的方法。
    控制系统之间的通讯历来让人望而生畏,如今值得欣慰的是几乎所有控制系统都具有MODBUS 通讯接口,使得系统间变得相对简单。MODBUS是GOULD INC注册的通讯协议商标,因为它有许多优点而被罗克韦尔(ROCKWELL)、通用电气(GE) 、西门子(SIEMENS)等国内外公司的产品广泛采用,作为与主系统(DCS)通讯的主要途径。  
  1.串行接口及MODBUS 通讯协议概述  
    MODBUS 通讯协议规定了2 种通讯方式。RTU(REMOTE TERMINAL UNIT)方式通讯采用8 位字节的二进制数据通讯,数据校验采用CRC 循环冗余校验,通讯速度较快;ASCII 方式采用7 位ASCII 码进行通讯,数据校验采用LRC 逻辑冗余校验,通讯速率较慢。在一个通讯系统中,只能选用一种通讯方式,两种方式不能并用。在我们的应用系统中一般使用RTU 的通讯方式,后面的叙述都是以RTU通讯方式为基础。MODBUS 通讯协议将通讯的双方规定为“主站”(MASTER)和“从站”(SLAVE)。每台从站都有自己的唯一编号,这个编号被称作从站地址,地址范围为1-255,通讯时先由主站发出通讯申请指令字符串,指令字符串由从站地址开头,从站只接受与自己地址相同的指令字符串,然后根据功能码类型,做出相应的回答,对发送给其他从站的指令字符串则不予理会。
  MOSBUS 通讯时主站发出的指令字符串(报文)的通常格式如表1。
  


  

    从站地址:主站指明的接收命令的从站地址。
    功能码:功能码决定本次通讯要求从站执行的动作,功能码占1 个字节,表2 为MODBUS 协议规定的标准功能码,某些设备的MODBUS 协议只兼容其中的一部分功能码。
  


  

    数据起始地址:通讯时读出、写入数据的起始地址。MODBUS 有多种批量数据操作功能码,可同时读出或写入多个具有连续地址的数据。数据起始地址占用2 个字节。
    数据量:命令中进行读出或写入的数据数量,这些数据从起始地址开始连续地址排列,在对模拟量进行操作时,每个数据具有2 字节;在对数字量进行操作时每8 个数据为1 个字节。数据量占用2 字节。
    CRC 冗余校验:MODBUS 通讯协议采用CRC-16 冗余校验进行通讯错误校验,其校验方法是将整个通讯字符串(不包括最后两个校验字节)的所有字节进行移位并进行异或计算,接收方按同样的方法对收到的所有字符串进行校验,并将结果与收到的冗余校验结果进行比较,若一致则表明收到的字符串正确,否则接收到的字符串有错误,所传输的数据不会被采用。
    MODBUS 通讯双方以寄存器地址将双方的数据对应起来,数据类型有数字量、模拟量两种,寄存器地址分下面四类。
    1)内部数字量保持线圈,寄存器地址以1 开头,地址表示为1XXXX,内部数字量保持线圈(寄存器)可理解为设备的内部数字量中间寄存器,用于存放逻辑运算的中间结果,可读可写,与设备的I/O通道无关。
    2)外部输入数字量线圈、继电器,寄存器地址以2 开头,寄存器地址表示为2XXXX,外部输入数字量线圈、继电器(寄存器),可理解为设备的数字量I/O 通道,每个寄存器和一个固定I/O 通道相对应,寄存器的状态代表数字量的状态,可读可写。
    3)外部输入模拟量存储器,寄存器地址以3 开头,地址表示为3XXXX,外部输入模拟量存储器(寄存器) ,可理解为设备的模拟量I/O 通道,每个寄存器和一个固定I/O 通道相对应,寄存器的数值代表模拟量通道的数值,可读可写。
    4)内部模拟量保持存储器,寄存器地址以4 开头,地址表示为4XXXX,内部模拟量保持存储器(寄存器) 可理解为设备的内部模拟量中间寄存器,用于存放数值运算的中间结果,可读可写,与设备的I/O 通道无关。    
  2. MODBUS的通讯过程  
    MODBUS是典型的主从式通讯协议,每个通讯网络中只能有一个主站,从站的数量不能超过255个,通讯时主站首先向从站发送通讯请求命令字符串,从站接收到命令字符串后,根据命令字符串中的命令码向主站做出相应的回答,完成一次通讯。整个的网络通讯都是由主站进行调度。下面举例说明几种常用功能码的通讯过程。
    例1:假定主站要求17从站返回地址为0020~0056的内部数字量保持线圈的状态,主站发出的通讯请求命令字符串如表3。
  


  

    从站地址:标明被读设备的地址,此例为地址为11。
    功能码:此例为01。
    数据起始地址:从站内部数字量保持线圈设定范围内的任何值,起始地址占2个字节,高位在前。此例为中为0013(MODBUS协议规定通讯字符串中的地址比实际地址小“1”)。
    数据量:从起始数据地址开始,欲读取的连续地址的内部数字量的数量,该位占用2个字节。假定17从站制0020~0056地址的内部保持线圈状态如表4所示,则正常情况下从站回信字符串如表5。
    



  

    从站地址和功能码与主站命令字符串相同。
    字节量:所传数据字节的数量,每个数据字节包含8个数字量保持线圈状态。字节数量在1~250之间。本例中为5个字节。
    数据状态:0020~0056地址的保持线圈状态,注意:每个字节中,高地址位在前。
    例2:假定主站要求17从站传回地址为40108-40109的内部模拟量保持存储器的数值时,主站将发送如表6所示的通讯请求命令字符串,正常情况下从站回信字符串如表7。
  



  

    数据状态1:地址为40108的内部模拟量保持存储器的内容为022B。
    数据状态2:地址为40109的内部模拟量保持存储器的内容为0000。
    例3:假定主站欲将17从站的173地址单元的内部数字量保持寄存器设置成“1”(ON),主站发送通讯请求命令码字符串如表8,正常情况下从站应答字符串如表9。
  


  

    数据位(高位):开关状态值ON=FF/OFF=00。
    数据位(低位):一直为00。
    DCS与PLC之间通常采用支持MODBUS通讯协议的串行接口通讯方式。RS-232C是一种应用最广泛的串行通讯接口,在不使用调制解调器(MODEM) 时的通讯距离最远不超过15m。RS-422/485串行通讯接口在不使用MODEM时的通讯距离为1.2km,同RS-232C的区别只是在接口的电气规格方面。作为DCS工程师应该了解RS-232C的机械规格,通常规定数据终端设备DTE(Data Terminal Equipment)方的接口为25/9脚针式插座,数据电路终端设备DCE(Data Circuit terminating Equipment)方的接口为25/9脚孔式插头。RS-232C串行接口最常用的9针的信号定义如表10所示。通讯参数包括通讯波特率、起始位位数、字节位数、停止位位数、奇偶校验方式等,只有通讯双方的通讯参数设置相同,才能保证正常通讯。
  


  

  
  2.系统简介
    内蒙古岱海发电有限责任公司位于内蒙古自治区乌兰察布盟凉城县境内的岱海湖南岸,厂址东距北京市370km,西距呼和浩特市110km,东南距丰镇市55km,在凉城县的西南方28km。岱海发电有限公司一期建设工程#1、#2 机组为两台600MW 亚临界参数燃煤发电机组,锅炉由北京巴布科克· 威尔科克斯有限公司供货,汽轮机由上海汽轮机厂供货,发电机由上海电机股份有限公司供货。
  


  

  
    机组主要控制设备采用了西门子公司TELEPERM XP 分散控制系统。每台机组包括3 个电源柜、15 个系统柜(包括2 个APF 柜,1个扩展柜,1 个CM 通讯柜)、20 个端子接线柜、7 个继电器柜、1个ETS 机柜、2 个MEH 机柜,3 对冗余的过程站(PU)、1 对冗余的历史站(SU)、1 个工程师站(ES)、6个操作员站(OT)、1 台值长站及5 台打印机等组成。另有公用系统5 个机柜,其中包括1 个电源柜。
    机组的其他控制系统较多且控制分散独立,如数字电液控制系统(DEH)采用西屋公司OVATION 系统,电气控制系统(FCS)采用国产南京东大金智DCAP-4000M 主控单元,远程I/O 采用无锡贝尔IDAS-2000 分散式智能数据采集网络,汽轮机安全控制系统(TSI)所配置的监视检测仪表是采用美国本特利·内华达公司的3500 系列,其他如锅炉吹灰,等离子点火,汽轮机旁路系统等PLC 的型号厂家繁多,因此将各系统进行集中监视和控制就成为必然,本工程设计采用了西门子公司的CM104 通讯模件作为DCS 与第三方PLC 或DCS 通讯,接口采用MODBUS 通讯协议。
    如图2所示:锅炉吹灰(MODICON PLC,组态软件CONCEPT)、旁路系统(MODICON PLC,组态软件CONCEPT)、DEH 系统(西屋OVATION,组态软件OVATION)、FCS(国产通讯管理机)设计中按照厂方要求采用了双路通讯连接。尽管其他系统控制柜与DCS 控制柜在同一电子间内,但通讯距离均超过15m,也就采用RS-485 远程通讯方式。DCS 系统通讯模件CM104 作为主站,第三方设备作为从站。每个CM 可以提供6 个9 针RS-232C 串行接口即可同时与6 套PLC 通讯,RS-232C 到RS-485 接口之间的转换使用PHOENIX 公司的产品。
  


  

    
  3.应用实例介绍与分析
    TELEPERM XP 与外围系统(这里统称为PLC)通讯用的模件处理器CM104,支持MODBUS 协议,工程中按照连接分为4 组共使用了6 个。岱海电厂使用的多种独立的PLC 及成套的PLC 监控系统需要与DCS 通讯的,如表12 所列。CM104 的控制组态包括硬件及各类输入输出组态,在此不作介绍。
    DCS 与PLC 的通讯大致可分为两种情况: 1)当PLC 与DCS 距离在15m 之内时,可将DCS 的CM104与PLC 的CPU 或者通讯模件采用RS-232C 直接连接方式。2)当PLC 与DCS 距离为数十米至1.2km 时,为了保证PLC 与DCS 的通讯效果,CM104 与PLC 之间将采用RS-232C 接口转化成RS-485/RS-422 接口。我们采用PHOENIX 公司的PSM-EG-RS-232C/RS-485-P/2D 模块作为RS-232C 转为RS-485 接口的适配器,其内部跳线设置:RS-485 BUS-END 为ON 即需要终端电阻,DTE/DCE 跳线设置为DCE 即数据电路终端设备方。CTS RTS / 和CTS RTS / 跳线设置为CTS RTS / 即硬件流控制模式。TELEPERM XP系统与PLC、FCS、IDAS 等第三方设备通讯连接概貌如图1 所示。在岱海电厂设计中所有通讯方式都是采用RS-485 远程方式。
    


  

  3.1 锅炉吹灰及汽机旁路系统
    设计中CM104 的MODBUS RS-232C 接口采用标准的9 芯RS-232C 串行接口,经过PHOENIX 公司的PSM-EG-RS-232C/RS-485-P/2D 接口适配器转为RS-485 接口,锅炉吹灰厂家自带ADAM-4520 模块也是RS-232C 转为RS-485/RS-422 接口的适配器。将PLC CPU11303 的MODBUS RS-232C 接口转为RS-485与DCS 通讯。实际使用中通讯经过两次的接口转换后连接不上。通过实验发现两个厂商接口转换适配器兼容性差。解决方法为使用同一厂商的适配器(ADAM-4520)后通讯连接正常。PLC 的通讯参数设置:Modbus Slave Address =1,Baud Rate = 9600 ,Data Bit = 8 (RTU 方式),Stop BIT = 1,Parity = Even Parity。由于其PLC 设计未使用冗余配置且理论上也不能实现双路的通讯连接。
    汽机旁路系统采用的PLC 也是MODICON QUANTUM 系列,CPU 434 为冗余配置,每个CPU 有2 个MODBUS RS-232C 接口,可以实现通讯连接的冗余,即每个PLC 各送一路信号进同一个CM104,但由于冗余的CPU 之间并不能根据通讯的中断故障进行切换,所以实际应用中也不能实现双路的通讯连接。其接口同样需要从RS-232C 到RS-485 的转换, 接口适配器选用了PHOENIX 厂商的PSM-ME-RS-232C/RS-485-P,接口经过两次转换但不存在兼容性问题。这再次证明了DCS 与吹灰系统通讯故障的原因。PLC 的通讯参数设置:Modbus SlaveAddress =1 ,Baud Rate = 9600 ,Data Bit= 8 (RTU 方式),Stop BIT = 1 ,Parity = Even Parity。CM104与MODICON PLC通讯连接如图3。
  
    


  

  3.2 数字电液控制系统(DEH)
    数字电液控制系统(DEH)采用西屋公司OVATION控制系统。其通讯模件Link Controller Modules(LC:1C31169G02)提供了2个接口:J1口RS-232C为编程接口,J2口RS-485/422为通讯应用接口,设计中同样采用了RS-485远程通讯方式,正常施工接线后通讯却连接不上。经过与OVATION厂家的探讨,西屋公司对RS-485和RS-422的接线标准是相同的,即要采用4线制全双工串行连接。解决方法为选用RS-232C到RS-422的接口转换适配器,采用4线制全双工连接后通讯正常。LC模件通讯参数设置:Modbus Slave Address =1 ,Baud Rate =9600 ,Data Bit = 8 (RTU方式) ,Stop BIT = 1 ,Parity= Even Parity。由于其系统没有配置两块LC模件故实际没有实现双路的通讯连接。要注意的是OVATION系统不仅要在工程师站做通讯测点的相关组态。其LC模件也需要通过J1编程接口写入相应的通讯配置文件。CM104通过LC模块与OVATION系统进行RS-422通讯连接如图4.
    


  

  3.3 BENTLY 3500 汽机安全监视系统(TSI)
    Bently 3500汽机安全监视系统2套,其MODBUS通讯模块为通讯网关MODBUS RS-485输入/输出模块(卡件),同DCS的通讯采用一主二从(主方在终端位置)的4线制全双工接口方式。通讯电缆连接方式如图5所示。
  


  

    在此TELEPERM XP的CM104下挂2套Bently 3500 ,故下列参数设置必须相同。Bently 3500系统:Modbus Slave Address 分别为1 ,2。Baud Rate = 19200 ,Data Bit = 8(RTU方式) ,Stop Bit =1 ,Parity = None。其MODBUS RS-485输入输出模件内置了终端拨码开关,因此把RACK2的通讯模块MODBUS 1接口下拨码开关RX-TERM为ENABLE即需要终端电阻。 
  3.4 锅炉等离子点火系统
    等离子点火系统采用了西门子S7-300 系列PLC,用CP341 卡作为MODBUS 通讯模块。CP341 卡有1 个15 针串行接口,支持MODBUS 协议。PLC 通讯参数设置为Modbus Slave Address = 1 ,Baud Rate= 19200 ,Data Bit = 8(RTU 方式) ,Stop Bit = 1 ,Parity = None。主站DCS 的CM104 串口经过RS-232C 到RS-485 接口的转换后与CP341 通讯不正常, 检查PHOENIX 的PSM-EG-RS-232C/RS-485-P/ZD 接口转换适配器,只有数据发送请求指示灯RTS 正常显示。而从站的CP431 模件的通讯状态指示只有接收指示灯RxD 正常。通讯线路断开后,CM104 和CP341 分别连接笔记本电脑,使用MODSIM32 和MODSCAN32 软件分别模拟仿真通讯的“从站”和“主站”进行诊断,发现数据经过接口适配器转换后报文格式不正确,导致从站没有响应而不能给主站返回数据。解决方法:更换其他厂家的RS-232C/RS-485 接口适配器后通讯正常。通讯连接如图6。
  


  

  
  4.实施过程中的注意事项
    当连接和组态工作正确无误后,PLC和DCS会进入正常的数据通讯状态。这可以从卡件的状态灯上反应出来。一般卡件上都会有表示错误状态、数据传送和数据接收的相应指示作为判断通讯状态和进行故障诊断的依据。
    当通讯不正常时,卡件的状态指示灯会立即显示错误状态。此时应先检查硬件错误再检查软件错误,如通过软件组态功能块的诊断信息来查找故障原因。在软件编程方面,要注意以下两点:
  1)要确保PLC和DCS的通讯速率一致,建议使用9600或19200常用的通讯速率,而且最好不要增加奇偶校验。
  2)要保证通讯数据地址的有效性,如果有“地址错位”的情况,偏置可以在主站CM104中设置,而部分通讯第三方厂家也具有该功能,这也需要双方事先协调好。
    在硬件方面,要注意以下方面:确保使用屏蔽的ITP电缆,同时注意在接线时一定要正端连接正端,避免接反。在接口适配器的选型上,由于各厂商设计规范不尽相同,尽量使用认可度高、实用效果好的产品;如果通讯经过两次接口转换,最好选用同厂商的同型号产品,避免存在兼容性问题。  
  5.结束语
    通讯实施后,在传输信号的质量上以及维护上都有了比较明显的改善,岱海电厂#1机组目前已经投入使用,PLC上所有监视、控制都可以在DCS上进行。通讯的实时性很好,但部分控制信号如发短脉冲指令时(<1秒)在精度上略显不足。对于DCS项目工程师在控制方面的设计与组态也许不会感到有什么困难,但对于把不同厂家的PLC与DCS连接起来则可能会感到很困难。以上是笔者在内蒙古岱海电厂一期2×600MW机组调试PLC与DCS通讯时的一点总结并具有一定的代表性,希望能给同行提供一些帮助。


文章版权归西部工控xbgk所有,未经许可不得转载。