化工厂DCS与PLC的Modbus通讯应用研究论文
本厂的双螺杆挤出机控制系统采用西门子s 7-300PLC,上位监控机位于现场厂房内,中央控制室的岗位操作人员不能对其监视,为方便岗位操作人员对现场装置的运行情况进行实时监控,决定将此装置的运行参数引入DCS控制系统。
Modbus协议具有数据传输量大、侦错能力强、实时性好等特点,该厂的DCS系统和此装置控制系统都有支持Modbus通讯接口,所以采用Modbus通讯方案来实现DCS系统和该控制系统之间的通讯功能。通讯卡安装、组态及通讯协议设置
2.1 安装及硬件组态
安装:CP341进行Modbus从站通讯时,需要安装硬件狗,按照安装说明把硬件狗插入到CP341卡的背面插槽中。针对该项目将CP设计安装在和CPU同一机架上UR(0),通过U型连接件将CP341和其前面的信号模块卡连接起来,然后通过紧固螺丝将其固定在机架上,最后将24V电源线接到CP341卡的电源端子上给其供电。CP341电气接口按照RS485接口类型方式进行连接,组成半双工通讯,根据CP431-RS485接口定义连接4T(A)-号和11 T(B)+号接线端子。
硬件组态:通过双击SIMATIC MANAGER图标进入管理器窗口,点击窗口左面的SIMATIC300站点,在窗口的右面出现Hardware图标和已组态的CPU图标,双击Hardware图标进入项目的硬件组态画面,根据CP的实际安装位置,在硬件目录中选择CP341(6ES7 341-1CH01-0AE0)通讯卡将其拖放到与CPU同一个机架UR(0)的第十个插槽,然后点击保存和编译按钮对硬件组态进行保存编译,然后将CPU硬件置于Stop位,把组态的硬件下载到CPU中。在CP341参数设置对话框的Protocol菜单中选择MODBUS SLAVE选项,然后点击Load drivers加载CP的驱动。
注意:首次组态通讯卡后需要编译下载到CPU,否则在加载CP341驱动时将会加载不成功。
2.2 通讯协议设置及功能码对应从站地址设定通讯协议设置是定义通讯时的波特率、帧特性以及从站地址,通讯双方的协议设置一致是通讯成功的关键,以下是针对该厂的通讯协议设置。通讯协议方式选择RTU(远程终端)方式,进入CP341通讯卡的Protocol协议设置窗口,在Modbus-Slave菜单下设置从站地址为3(地址范围1~255),波特率选择9600、数据位8、停止位1、奇偶校验选择偶校验(even),在Interface菜单中按照上文所说的实际连线方式,选择操作模式为半双工(RS485)两线制操作模式,选择Signal R(A)0Volt Signal R(B)5 Volt的接线方式。
功能码对应从站地址的设定:按照该厂要求只需在DCS进行该装置的监视,故功能码FC01、05、15及FC02对应的M、Q、T、C、I等数据区不需要进行设定,使用其默认值0即可。在FC03、06、16功能码菜单下设定程序中没有使用的基本数据块DB7,FC04功能码菜单下设定程序中没有使用的基本数据块DB8,在Limits菜单下MIN DB中设定DB7,MAX DB中设定DB8,来限定MODBUS访问的数据区只是在这两个数据区中,根据该厂的通讯要求Modbus只需要读取SIMATIC输入寄存器,不需FC03功能读取保持寄存器,DB7数据块实际上未用。程序编写
在程序的块文件夹里插入数据块DB7、DB8、DB80和DB81,插入功能FC15、FC16,以下对插入到程序中新对象作用分别作介绍:DB8数据块区是用于存放将要传送到DCS的数据,该项目中创建了数据类型为WORD的20个数据字存储区。DB80数据块作用是作为FB80功能块的工作数据区也称为背景数据区,不需要进行任何设置。DB81数据块中是存放FB80通讯功能块的参数初始值。FC15功能是实现调用CP341的通讯功能块FB80。FC16功能是实现将要传送到DCS的数据通过使用MOVE传送指令传送到DB8数据块里面。FC15、FC16的功能能够被执行需要在组织块OB1主程序中调用。每次CPU冷启动或暖启动之后,都要执行MODBUS通讯FB的初始化,通过CP_START输入处的上升沿激活初始化,因此在组织块OB100(CPU暖启动)或OB101(CPU冷启动)中添加程序。该项目中在OB100中添加如下一段程序:
AN DB81.DBX0.0 // 设置CP_START
S DB81.DBX0.0 //
A DB81.DBX0.1 // 重置 CP_START_FM
R DB81.DBX0.0 //
LADDR是CP的基址,使用硬件配置中CP的地址,该项目中地址为496。
START_TIMER定时器,定时器超时初始化,该项目中使用定时器T200,START_TIME S5Time,时间值超时初始化,该项目按照常规设置为5秒,其余参数则按其初始值设置即可。将CPU置于STOP位,把新编写的程序全部下载到CPU中,然后再将其置于RUN位。通讯测试方法及测试
测试时通过Modbus通讯测试软件来分别充当主站、从站与PLC和DCS进行通讯,通过发送或接受报文的方式查看通讯情况是否正常。
测试软件Mdbus32作主站和PLC进行通讯测试,电气连接通过RS485转RS232的转换器连接至PC机的DB-9针串行数据口,Modbus测试软件通讯协议设置按照PLC方进行,确保双方的协议设置一致。设定从PLC读取数据的Modbus起始地址及数据个数,点击在线按钮将通讯伙伴连接,打开测试软件的监视器窗口监视读取数据的情况。实际的通讯情况证明通讯双方的电气接线及通讯设置均正确,实现了数据的正确传送,CP341通讯卡的通讯指示灯RXTX交替闪烁。DCS和CP341通讯的实现
FBM224现场总线组件是I/A Series系统中作通讯的卡件,提供4个Modbus总线接口(RS-422和/或RS-485),传输数据类型是2字节或4字节的带符号整数或不带符号整数,4字节单精度浮点值或二进制值,字节交换和位交换可选,据此应注意在I/A系统的ICC程序组态器中对通讯点的读取要正确填写其数据类型和数据位的长度。该项目中做主站的设置Modbus地址从1开始,对应Modbus消息帧的寄存器编号值是0,则访问SIMATIC数据区是从数据字DB8.DBW0开始访问此DB,更高的Modbus寄存器编号访问此后的数据字。要保证通讯数据地址的有效性,防止出现通讯地址错位。结语
辽阳石化140万t/年连续重整装置控制系统采用DCS(集散控制系统)、PLC(可编程控制器)相结合的方式完成对整个装置的自动控制。其中DCS系统采用霍尼韦尔新一代的Experion PKS控制系统,实现对整个装置的整体控制。PLC采用TRICON控制系统,完成对循环氢气压缩机组K261的控制。Tricon PLC独立于PKS系统,在正常情况下,TRICON系统自动运行,不需要人为干预。但为了撑握DCS操作人员监视压缩机过程的数据,有必要将压缩机的关键数据传至DCS中进行显示,这就涉及到PKS与TRICON之间的数据通讯问题。这里我们利用MODBUS通讯协议实现Honeywell PKS系统与Tricon PLC之间的串行通讯。
1 Modbus协议简介
Modbus是Modicon公司于1979年提出的一种通讯协议,经过多年的实际应用,已经成为一种应用于工业控制器上的标准通讯协议。有了它,不同厂商生产的控制系统可以连成工业网络,进行集中监控。此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通讯的。它描述了控制器请求访问其它设备的过程,以及怎样侦测错误并记录,它制定了消息域格局和内容的公共格式。当在Modbus网络上通讯时,此协议决定了每个控制器需要知道它们的设备地址,识别按地址发来的消息,决定要产生何种动作。如果需要回应,控制器将产生反馈信息,并用Modbus协议发出。
1.1 Modbus报文
如图1所示,Modbus通讯使用查询-响应会话技术,即主设备初始化查询,从设备做出响应。主设备单独和从设备通讯,也能以广播方式和所有从设备通讯。Modbus主设备查询的格式:从设备地址、功能代码、起始地址、所查询的数据量、错误检测域。从设备响应消息的格式:从设备地址、功能代码、数据长度、响应的数据、错误检测域。
1.2 Modbus传输方式
Modbus协议有两种传输模式:ASCII(美国标准信息交换代码)或RTU(远程终端单元)。它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。用户选择想要的模式,包括串口通信参数(波特率、校验方式等)。在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。ASCII模式通信的主要优点是字符发送的时间间隔可达到1秒而不产生错误。RTU模式通信的主要优点是:在同样的波特率下,可比ASCII方式传送更多的数据。
1.3 错误检测方法
标准的Modbus串行网络采用两种错误检测方法。奇偶校验对每个字符都可用,帧检测(LRC或CRC)应用于整个消息。其中CRC(循环冗余校验)用于RTU模式;LRC(纵向冗余校验)用于ASCII模式。它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧。用户要给主设备配置一预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作出正常响应。如果从设备侦测到传输错误,消息将不会被接收,也不会向主设备作出回应。这样超时事件将触发主设备来处理错误。发往不存在的从设备的地址也会产生超时错误。
2 系统结构及TRICON系统组态
如图2所示,Honeywell PKS系统采用冗余结构,通过CISCO(思科)Catalyst 2960系列交换机把控制器、服务器、操作站连接在一个FTE(容错以太网)网络中。基本网段IP地址为10.1.0.1;子网掩码为255.255.255.0。Tricon系统采用三重化冗余的结构,主要包括3块控制器、2块冗余通讯卡及其它I/O卡件。两套系统通过串口服务器Moxa NPort5630连接在一起。
2.1 通讯模件配置
TCM 4351(Tricon通讯模块)作为Tricon专有通讯卡件支持多种通讯协议及物理连接方式。具有2个网口,4个串口,1个专用调试口,可以实现10/100 M以太网,RS232/485等。冗余的4351通讯卡安装在Tricon主机架的第7个槽位,保障了通讯的可靠性及安全性。每一个串口具有一个唯一的地址,并且可以被组态为MODBUS主站或者从站。我们采用PLC与DCS point-to-point(点对点)的拓扑结构,采用RS-485两线制半双工的数据传输方式,连接头为DB9标准接口。最大传输距离为1 220 m。
如图3所示,使用TriStation 1131组态软件设置TCM卡的串口参数。设置通讯协议为MODBUS SLAVE RTU;从站地址为1;允许写端口;波特率为19200;8位数据传输格式;1位停止位;进行奇校验;传输模式为RS485,两线制的RS485必须勾选握手协议。
2.2 数据地址
如表1所示,Modbus地址由5位数字组成,包括起始的数据类型代号,以及后面的偏移地址。
如表2所示,实型数据的地址比较特殊。Tricon控制器通过Modbus协议传输32位浮点型数据需要使用特殊的映射通讯地址。它把一个32位的浮点型数据映射为两个16位的整型数据,其中高16位映射为一个Modbus整型地址n,低16位映射为n+1。例如:地址为41001的Memory REAL,Read/Write(可读/写内存实型)数据,对应的MODBUS地址高16位为42001,低16位为42002。
2.3 串口服务器组态
MOXA串口服务器Nport 5630-8为串口设备连接到以太网提供了便捷的传输方式。只需要做一些简单的配置任务,就可以使现有的串口设备做好了联网的准备。此外,NPort5630系列可以直接进行串口和以太网接口的双向传输数据;同时集中管理串口设备和分散的主机系统。其特点如下:
(1)简单易用的LCM状态显示及设置。
(2)10/100 M自适应以太网络。
(3)8个RS-485/422串口。
(4)所有串口信号带突波保护(15 KV ESD)。
(5)提供TCP Server,TCP Client,UDP等操作模式。
(6)提供ARP、web console、telnet console等进行设置。
(7)提供SNMP MIB-II来提供网络管理。
(8)支持静态IP、DHCP、BOOTP协议。
主要参数设置如下:
(1)网络设置
IP CONFIG:STATIC;IP 地址:10.1.0.79/80;子网掩码:255.255.255.0,网关:10.1.0.254。
(2)串口设置
波特率:19200;数据位:8;停止位:1;奇偶校验:奇;接口:RS485 2wire;操作模式:TCP server;PORT1端口号:4001。
如图4所示,串口服务器端的物理连接采用RJ-45接口,其中引脚5接Data-、引脚6接Data+、引脚7接GND。Tricon TCM端采用标准DB9 Female连接头。
3 Experion PKS系统组态
Experion PKS系统主要采用Configuration Studio组态软件包中的Quick Builder软件实现第三方通讯点的组态。包括:Channel(通道)、Controller(控制器)、Point(点)三方面的组态设置。为了更好地理解,我们以TIC2605(K261压缩机组润滑油温度控制回路)为例说明组态过程。整个控制回路包括4个参数,分别为测量值(PV)、设定值(SP)、输出值(OP)以及操作模式(MD)。
3.1 通道组态
通道组态用于建立MODBUS通讯协议的连接,参数的设置要跟串口服务器相对应。定义一个名称为K261CH的Modbus通道。主要参数设置如下:通讯报警边缘限Marginal Alarm Limit(MAL)用于产生一个高优先级的通讯故障报警。MAL的计算公式:控制器数量开方X每个控制器MAL值。通讯失败报警限Fail Alarm Limit(FAL)设置一般为通道MAL的2倍。端口类型选择Terminal Server;协议为Modbus RTU;Terminal Server TCP Host Name(串口服务器TCP IP地址)为10.1.0.79、冗余端口设置为10.1.0.80;Terminal Server TCP Port No(串口服务器TCP端口号)为4001,对应Nport 5630第一个端口。
3.2 控制器组态
这里建立的控制器是依据Modbus协议定义的逻辑控制器,而不是物理上的控制器。控制器对应具体的数据类型,我们建立4个Modbus控制器,分别为K261CTLAI (只读模拟量控制器)、K261CTLAIH(可读/写模拟量控制器)、K261CTLDI(只读数字量控制器)、K261CTLDO(可读/写数字量控制器),对应的数据类型分别为Input Register、Holding Register、Digital Input和Digital Output。PLC Station ID(从站地址)设为1,Channel Name(通道名称)是K261CH。
3.3 点组态
如图5所示,我们建立一个名称为TIC2605的模拟量点,必须指定Parent Asset(区域),这里为REF;扫描周期一般设置为5秒;量程为0~100℃。控制点的Source Address(源地址)设置是关键也是难点,设置的正确与否将直接影响通讯结果的正误。源地址的格式为“控制器 地址 解析码”,其中控制器和解析码由控制点的数据类型决定,地址为去掉功能号的Modbus通讯地址。TIC2605控制回路的源地址组态参数详见表3。
整型数据是Modbus通讯中一种常见的数据类型,PKS系统提供了一些常用的16位整型数据解析码,详见表4。
Tricon PLC中输入整型测量值PV的数据范围为819~4095,PKS系统没有合适的解析码。我们使用PKS系统软件包中的“User-defined Data Format”工具建立自定义的数据格式。打开Station软件,从菜单栏中选择 Configure>Application Development>User-defined Data Formats。建立一个名称为KJC_1的解析码,其中Data type(数据类型):INT2 (16位整型);Conversion type(转换类型):Linear(线性);Field value(现场值):Node1=819;Node2=4095;Converted value(转换值):Node1=0;Node2=1。这样解析码KJC_1就把数据819~4095进行线性量程转换成为0~1。
对于32位的实型数据,PKS系统提供4种常用的解析码,分别为:IEEEFPB(大端格式);IEEEFPBB(字节交换的大端格式);IEEEFPL(小端格式);IEEEFPLB(字节交换的小端格式)。我们以设定值SP为例说明实型数据的读取方式。例如SP值为47,对应的32位浮点数为3C 42 00 00。在Tricon内存中为大端存取模式,其中MSB(最高有效位)3c 42两个字节存放在低地址42001中,LSB(最低有效位)00 00两个字节存放在高地址42002中。PKS系统读取Modbus浮点型数据是按address、address-1方式读取。所以读取到的数据格式为00 00 3c 42,这种数据格式也就是交换字节的小端格式IEEEFPLB。
4 总结
PKS系统与Tricon PLC之间的通信已经完成,两系统流程图画面上显示的数值完全一致,能够很好地对这些数据进行监控。PKS系统与Tricon PLC之间的顺利通信,使操作人员在监视工艺过程运行情况的同时,还能及时监视压缩机组某些重要测量点的实时值,不但减小了PKS系统的控制负荷,提高了控制精度,而且费用较低、安装方便,降低了系统的投资成本。
参考文献
[1]Honeywell.Experion Quick Builder Guide.EP-DSX285,R310,2007,11:75-131.
[2]TRICON.Communication Guide for Tricon v9-v10Systems.Tricon Manual,2009,11:74-88.
【化工厂DCS与PLC的Modbus通讯应用研究论文】推荐阅读:
应用化工专业毕业论文11-10
绿色化学与化工论文11-15
纳米材料在化工生产中的应用材料工程学论文07-12
应用化工实习报告10-13
纳米材料在化工生产中的应用11-20
应用化工技术个人简历06-09
化工专业实习基地的建设论文09-16
化工技术经济与管理09-26
化工安全生产与管理11-16
化工安全概论 课程论文05-31