赵劲松,田 龙,司华良
(云南云天化股份有限公司红磷分公司,云南 开远 661600)
可编程逻辑控制器(programmable logic controller, PLC)作为一种广泛使用的控制系统,往往用于小单元装置和关键设备机组的控制,可形成独立的通信控制单元网络。对流程化生产装置而言,需要生产装置各单元数据信息的互通互连,形成统一的生产操作控制体系。本文通过对Modbus通信协议数据交换原理的研究,利用数据通信的方法实现远程PLC与主控分散控制系统(distributed control system,DCS)的通信。
磷矿浆浮选技术改造项目自动压滤机装置控制系统使用西门子S7-200 PLC为核心的逻辑控制系统,采用Modbus_RTU通信协议建立与ABB Freelance2000 DCS之间的通信,把PLC数据引入到DCS操作画面进行监控。
磷矿浆生产主装置控制系统选用ABB Freelance2000(AC800F 现场总线版),配置了冗余的以太网模件E813E、Profibus-DP模件FI830F和串行接口模件FI820F。自动压滤机装置控制系统采用的PLC为SIEMENS (西门子)SIMATIC S7-200,CPU为226CN,分别配置2块DI/DO扩展模块(EM223)、1块AI模块(EM231)组成。
西门子S7-200 CPU-226CN PLC支持2个RS-485通信/编程口,具有点对点(point to point,PTP)通信协议、MPI通信协议和自由方式通信能力。Port0通信口支持Modbus RTU协议,成为Modbus RTU从站。此功能是通过S7-200的自由通信口模式实现。
1.2.1 Modbus通信协议简介
Modbus协议为MODICON 公司产品,是全球工业领域最流行的通信协议之一。MODBUS 协议已经基本被工业自动化设备,包括PLC、DCS、智能仪表等作为通信标准[1]。不同生产制造商的检测控制设备均能够通过此MODBUS 协议进行数据交换,实现集中监控。
1.2.2 通信系统硬件组成和连接方式
磷矿浆生产主装置DCS的控制器AC800F单元使用了冗余的以太网模件E813E、Profibus-DP模件FI830F和串行接口模件FI820F。其中,以太网模件E813E用于连接操作员站和工程师站。Profibus-DP模件FI830用于控制器与S800 I/O站连接,进而对主装置的现场数据进行采集。PLC与DCS的通信连接如图1所示。
图1 PLC与DCS的通信连接图
①在PLC作为从站,对于S7200串口通信的组态,先用MBUS-INIT指令使能和初始化Modbus通信,其只在第一个循环周期内执行一次[2-3]。编程时使用SM0.1调用子程序MBUS_INIT指令进行初始化从站,并指定相应参数。初始化从站框图如图2所示。
图2 初始化从站框图
Mode:输入数值选择通信协议;当设置为1时,将PLC的端口0指定为Modbus协议并启用协议;当设置为0时,将PLC的端口0指定给PPI,并禁止Modbus协议。
Addr:指定PLC的从站地址,取值1~247。
Baud:波特率设置,可选1 200、2 400、4 800、9 600、19 200、38 400。
Parity:奇偶校验,设置与Modbus主站奇偶校验一致。0=无校验;1=奇校验;2=偶校验。
Delay:附加字符间延时,默认值为0。
MaxIQ:参与通信的最大I/O点数,默认值为128。
MaxAI:参与通信的最大AI寄存器数目,0~32间数值设置。32用于CPU224、CPU226。
MaxHold:参数设置Modbus地址为保持寄存器数目(VW)。
HoldStart:参数为保持寄存器的起始地址(VB)。
Done:初始化成功后置1。
Error:错误代码,0=无错误。
②编程时使用SM0.0调用MBUS_SLAVE指令,用于服务来自Modbus主站的请求。调用命令必须在每个循环周期都执行,以便检查和相应Modbus请求。组态设置如图3所示。
图3 组态设置图
Done:当MBUS_SLAVE指令响应Modbus请求时Done输出接通,没有服务请求时断开。
Error:输出包含该指令的执行结果。
③从站地址与S7-200的地址对应。
Modbus地址是以00001、30004的形式出现。Modbus与S7-200数据存储区对应关系如表1所示。
表1 Modbus与S7-200数据存储区对应关系
表1中:T为S7-200中缓冲区的起始地址,即HoldStart
④ABB DCS的通信参数组态。
在系统硬件中插入串行接口模件,并设置Modbus RTU的通信参数。Modbus RTU串口通信的基本参数包括[3]:波特率、数据位、停止位和奇偶校验。其中,波特率表示的是传输速率,数据位一般默认为8位,停止位一般设为1位,奇偶校验可选择无奇偶校验、奇校验或偶校验。对于挂在同一条ModbusRTU串口通信总线上的所有节点来说,这些基本参数都必须一致。
⑤ABB DCS中读取PLC通道数据的组态。
在系统项目树中的FBD组态中插入MODBUS主读多个线圈模块,并设置Modbus的通信参数。设置参数包括:从站地址、读取从站输入、输出数据类型、数据长度等。通过ABB CBF编程软件中的FBD功能图块读取到PLC的通信数据并进行转换,在人机界面上显示。
MODBUS串行通信协议规定了消息、数据结构、命令和应答的方式。数据通信采用主从方式,主站发出数据请求消息,从站接收到正确消息后就可以发送数据到主站以响应请求;主站也可以直接发送消息修改从站的数据,实现双向读写[4]。主-从查询回应周期如图4所示。
图4 主-从查询回应周期示意图
Modbus RTU通信技术成熟可靠、开放透明,企业应用门槛低,组态方便、灵活。Modbus协议在化工企业中DCS与PLC通信得到广泛应用。但其也有缺点:传输数据量大时,通信速度很慢,满足不了生产要求[5]。如果应用Modbus TCP/IP协议,通过以太网通信可极大提高传输速率,应用更为简便。
从磷矿浆尾矿自动压滤装置S7-200 PLC与Freelance2000的通信情况来看,系统一直稳定可靠,数据显示、报警均正常。操作人员不仅可以很方便地在DCS操作画面上看到压滤机的各运行参数,而且可以在DCS上操作、查看各参数的历史记录(包括数字量及模拟量)。利用这一功能,还能有效地对压滤机跳停事故进行调查分析。该系统对优化生产操作控制起到辅助作用,对其他类似项目具有借鉴和推广作用。