都 爽
(北京燕山玉龙石化工程股份有限公司,北京102500)
随着计算机技术和过程控制技术的迅速发展,DCS、PLC等各类现场控制系统的开放性能越来越好。过去在不同厂家的控制系统之间,很难通过数据通迅技术实现系统间的数据交换。现在各控制系统生产商都遵循统一的国际通讯标准,这使得不同系统间的数据通讯成为可能,而且应用越来越广泛。
本文主要介绍了浙江中控公司ECS-700 DCS系统多功能通讯接口卡COM741-S的MODBUS通讯设置方法,与西门子PLC控制系统的通讯组态过程,以及怎样利用第三方软件测试MODBUS通讯是否正常。
COM741-S卡是一块多串口多协议通讯接口卡,是ECS-700 DCS系统与其他智能设备(如PLC、变频器、称重仪表等)互连的网间连接设备,是SCnetIII网络节点之一,在SCnetIII中处于与主控卡同等的地位。其功能是将用户智能系统的数据通过通讯的方式连入DCS系统中,通过SCnetIII网络实现数据在DCS系统中的共享,实现通过DCS读取第三方智能设备的实时数据。
ECS-700系统的每套控制站最多可以带7个串行通讯模块。4路隔离的RS-232或RS-485串口通讯。
COM741-S支持标准的通讯协议MODBUS协议,支持主站Modbus Master模式,支持模块级冗余配置,同时还支持用户自定义通讯协议。
同步方式:起-停方式:通信波特率:(2400-57600)bit/s。每路串口下挂设备的波特率、校验方式等通信参数必须相同。
每个通信模块的4个串口最多可带64个设备,其中单路串口最多可接入32个设备。
每个串口的通讯参数都可以不相同,一个串行通讯模块最多可以在四个串口分别支持四组不同的通讯参数。
COM741-S串行通讯模块是通过IO扩展总线的方式接入控制系统,其数据可以直接在控制器中参与运算,在逻辑上等同于一块I/O连接模块。COM741-S硬件组态与主控卡组态方法一致。配合上位机软件VisualField进行逻辑编程。
COM741-S串行通讯模块通过模块基座上的接线端子连接外部设备,其配对模块基座为MB727-S,RS-232/485通讯方式由基座上的跳线与相应的软件设置决定。
基座和PLC的连接方式:使用MB727-S基座,则COM741-S节点地址设定为1,即地址跳线1处插上跳线帽,设置为ON,其他跳线空置。共有0,1,2,3四个通道,确定使用设备的第一条串口,即COM 0,外部设备与基座的2、4端子分别连线,其中端子2为485-,端子4为485+,其余为空,则通讯方式为RS485通讯。若通讯方式为RS232,则外部设备与基座的1、3端子分别连线,其中端子1为RX1,端子3为TX1,其余为空。
COM741-S通讯组态主要由以下几个部分组成:
(1)添加COM741-S串行通讯模块并设置冗余方式。进入硬件组态软件VFIOBuilder,选择目标主控制器,添加COM741-S串行通讯模块并设置地址,选中添加的串行通讯模块,在窗口中选择相应的冗余模式(一对一冗余或一对二冗余)。如图1。
图1 冗余模式
(2)对串口的通讯参数进行设置并组态。对之前设定的使用设备串口(COM 0)进行设置,包括模式(支持Modbus主站、自定义主站),波特率(1200~57600kbps)、物理接线(RS232、RS485)、数据位(支持5、6、7、8个通讯数据位)、停止位(1、1.5、2位)、校验方式(无校验、奇校验、偶校验、标志校验、空格校验)。如图2。
图2 对设定的使用设备串口进行设置
令,再选中Modbus命令,在属性页中设置参数。设置参数主要包括命令属性设置、命令参数设置和位号信息设置。
命令属性设置主要包括命令名称、命令类型(根据功能号自动转换,不可修改,输出命令为写出命令,将使用AO、DO位号、输入命令为读取命令,将使用AI、DI位号)、刷新周期(一般情况下,该值设置为与控制器的控制周期相同)。
命令参数设置主要包括设置功能号,可选择读取DO(线圈)、读取DI(状态)、读取AI(输入寄存器)、读取AO(保持寄存器)、写入DO(线圈)和写入AO(保持寄存器)。设置MODBUS协议的起始地址。设置从起始地址开始算起需要处理的线圈或寄存器的数量。
位号信息设置主要包括位号类型和位号数量。在位号自动扫描时将根据此处所选位号,在位号表软件中生成相应的位号类型,不同的功能号所支持的位号类型有所不同。位号数量根据位号类型及需要处理的线圈或寄存器位号的数量,由系统自动生成。如图4。
图4 通信命令设置
(3)设置设备参数。选择之前设定的使用设备串口(COM 0)添加设备,设置设备参数,主要包括设备名称、地址(0~255,非外部设备拨码实际地址)、响应时间(一般设置为0,让串行通讯模块自动修正)、间隔时间(一般设置为0,让串行通讯模块在0~10ms之间自动修正)。如图3。
图3 设置设备参数
(4)通讯命令设置。包括添加Modbus命令和设置Modbus命令参数,先选中已添加设备,增加Modbus命
(5)完成COM741-S通讯组态后,保存设置,所有组态设置完成后,在组态管理软件中,进行编译与下载。
通过ECS-700系统的串行通讯卡COM741-S的MODBUS设置组态流程我们可以看到,COM741-S设置组态的流程步骤、参数设置与ECS-100系统的串行通讯卡FW248基本相同,增加了通讯卡的通讯参数范围,使其可与更多的智能设备进行通讯传输。FW248卡主要采用多种功能性模块,如GW_MODBUS_RTU主机设置模块主要设置了从站地址、功能码、所要读/写的数据起始位和读取的数据数量,GW_GETCMDINFO模块的功能是获取命令诊断数据,GW_SETCOM模块是设置串口通讯协议的,操作人员需要了解各种模块的功能、每种模块的各个参数引脚的功能设置。与FW248卡相比较,COM741-S卡直接采用表格、菜单的形式进行参数设置,将需要设置的参数列表化、选项化,不可设置、直接读取的参数则不可选取设定,COM741-S卡更为简单、方便。
西门子S7-200,S7-300系列PLC中MODBUS组态设置要用到专门的MODBUS库。对于S7-200系列PLC要用到MODBUS程序库,主站侧需用“MBUS_CTRL”和“MBUS_MSG”程序库,从站侧需用“MBUS_INIT”和“MBUS_SLAVE”程序库。对于S7-300系列PLC,除了需要MODBUS master和MODBUS Slave驱动程序外,还需要串行通讯模块的驱动程序:ptp driver,驱动程序安装顺序为先安装串行通讯模块的驱动程序,然后安装MODBUS master或MODBUS Slave驱动程序。以S7-200系列PLC MODBUS通讯为例。
S7-200系列PLC MODBUS组态配置PLC作为主站时,需用“MBUS_CTRL”和“MBUS_MSG”程序库。其中“MBUS_CTRL”程序库中,“Mode”引脚为通讯协议选择,为1时为MODBUS通讯方式,“Baud”为波特率,“Parity”为校验选择;“MBUS_MSG”程序库中,“Slave”是从站的地址,“RW”为读写模式,“Addr”是读写从站的数据地址。
S7-200系列PLC作为从站时,按照上面的MODBUS通讯实例,其组态程序如图5所示。从站侧使用“MBUS_INIT”和“MBUS_SLAVE”程序库。
图5中,“MBUS_INIT”程序库来设置MODBUS通讯协议、所通讯的数据数量。“Mode”引脚为通讯协议选择,为1时为MODBUS通讯方式,“Baud”为波特率,“Parity”为校验选择,“MaxIQ”“MaxAI”为最大数字量、模拟量点,取决于CPU类型和最大值。为MODBUS从站通讯最主要的设置;“MBUS_SLAVE”程序库被用于为Modbus主设备发出的请求服务,并且必须在每次扫描时,EN输入开启,执行该指令。以便允许该指令检查和回答Modbus请求。
图5 S7-200系列PLC MODBUS从站通讯实例
同DCS MODBUS从站一样,S7-200从站只需将通讯协议和从站模块触发后就可以了,等待MODBUS主站命令操作。
在ECS-700 DCS、S7系列PLC做好MODBUS通讯组态后,可以先通过第三方软件模拟测试,查看通讯组态的正确与否。
第三方的软件,常用的有ModScan32和Modbus Slave;其中ModScan32用作主站来测试和MODBUS从站的通讯,Modbus Slave可用作从站来测试和MODBUS主站的通讯。这些软件都可以在网上下载。
以上实例,用ModScan32来模拟主站和从站通讯,其配置如图6所示。
图6 ModScan32用作主站来测试和MODBUS从站的通讯配置图
Modbus Slave可用作从站来测试和MODBUS主站的通讯,其配置如图7所示。
图7 Modbus Slave可用作从站来测试和MODBUS主站的通讯配置图
第三方软件的使用,能够较好地分辨通讯中主、从站的通讯程序配置是否正确,较少地减少通讯双方因为通讯问题存在的分歧。
燕化公司某化工装置成套压缩机设备使用的是西门子S7-200系列PLC,现需将PLC与ECS-700 DCS通过MODBUS通讯连接起来,使操作人员可以在DCS监控设备的运行状况。
现约定PLC与DCS通讯串口设置如下:
波特率:9600kbps
数据位:8位
停止位:1位
奇偶校验方式:无校验
MODBUS从站地址为:2
PLC为MODBUS从站,DCS为MODBUS主站。
已知PLC所要与DCS通讯的数据地址及参数如表1所示。
表1 PLC所要与DCS通讯的数据地址及参数
则,MODBUS从站侧初始化MODBUS从站及串口设置程序如图8所示。
图8 S7-200系列PLC MOUBUS从站组态实例
PLC系统接入ECS700系统,确定使用COM741-S基座的第一条串口,即COM0、DCS作为MODBUS主站,先对串口COM0进行设置,如图9所示。
图9 COM0串口设置图
选择COM0添加设备,设备参数设置如下:
名称:PLC
地址:0(DCS主站设置地址)
地址:2(外部设备拨码地址)
响应时间:0ms(让串行通讯模块自行修正)
间隔时间:10ms,设置完成后,如图10所示。
图10 设备参数设置图
右键选中设备PLC,添加通讯命令,即添加cmd,cmd1完成以250ms为周期,读取40010号开始的6个寄存器,设置完成后如图11所示。
图11 通讯命令设置图
根据S7-200 PLC的使用说明,4XXXX寄存器为输入寄存器,对于DCS系统,应使用4号功能码,即本模块“读AI”功能号实现,读取地址XXXX+1。读取位号类型为2字节整型模拟量输入。
从上述实例及介绍中,可以看出MODBUS通讯需要注意的地方为:除了主站、从站侧要统一串口设置(波特率、数据位、停止位、奇偶校验位)之外,还要统一MODBUS从站地址,然后根据从站侧的地址来确定主站侧需要使用的功能码。
MODBUS作为一种工业控制器的网络通讯协议,随着小型成套设备的成熟,和大型DCS系统的通讯日渐增多,其在DCS与小型成套设备之间进行联网、监控方面发挥着重要作用,本文以浙江中控公司ECS-700 DCS控制系统与西门子S7-200系列PLC控制系统为例,详述了如何应用Modbus RTU通讯协议以及检测方法,使得控制器之间的通讯变得更加简易和清晰。
目前,燕化公司某化工装置现有成套压缩机设备的PLC控制系统,与ECS-700 DCS采用了MODBUS通讯,运行状态及数据传到DCS系统中,使生产工艺技术人员、操作人员很方便地在DCS操作台上了解设备的运行状态,加强了对装置的安全监控。MODBUS通讯调试成功、投用后,运行平稳,没有出现任何问题,对装置的安全、平稳生产起到了重要的作用。