打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
DCS与ESD数据通讯的实现

 王明成,王玉成,何  彦

1  前言
为改善柴油质量,甘肃玉门油田分公司炼化总厂扩建了柴油加氢装置,但由于其危险性高,在控制系统时需考虑DCS与ESD(Emergency Shut Down)系统独立设置。DCS用于对生产过程进行连续动态监控,使生产装置在设定值下平稳运行;而ESD系统用于对生产过程的关键参数及过程工作状况进行连续监视,检测其相对于预定安全操作条件的变化,当所监测的过程变量超过其安全限定值时,ESD系统即取代DCS进行操作,按预置的安全逻辑顺序动作,将过程设置成安全的非正常操作状态,把发生恶性事故的可能性降到最低。柴油加氢装置DCS选用ABB公司的Freelance2000系统,ESD选用Moore公司的QUADLOG系统。为便于DCS操作人员了解ESD联锁过程数据,有必要将ESD关键参数传至DCS中进行显示,这就涉及到DCS与ESD间数据通讯的问题。

2  Modbus从设备
在DCS与ESD通讯时,ESD作为Modbus的从设备,QUADLOG系统提供的Modbus从功能块库能将QUADLOG的控制器设置成Modbus的从设备,从设备提供数据响应Modbus主设备发出的请求。
Modbus从功能块库提供了MODBUS_S和SERIAL功能块,Modbus主设备要能从Modbus从设备取得数据,MODBUS_S功能块必须将这些数据映射成Modbus主设备能识别的寄存器(Registers)或线圈(Coils)地址,然后主设备通过Modbus协议读取这些寄存器或线圈地址。把数字量如布尔值映射为线圈(地址从00001到09999)或输入线圈(地址从10001到19999);把模拟量如实数、整数映射为输入寄存器(地址从30001到39999)或保持寄存器(地址从40001到49999)。
2.1  SERIAL功能块
该功能块用来初始化Modbus通讯端口、激活从设备的串行端口,以便同Modbus网络和Freelance2000进行通讯,该功能块如图1所示。
EN为TRUE,激活该功能块并产生一个ID号,该ID号提供给串行通讯功能块如MODBUS_S使用。激活后,SERIAL功能块处理串行功能块和连接到串口的主设备的请求。在SERIAL提供的参数表中,可设置串行通信的波特率、数据位、奇偶校验、停止位、流量控制、超时和串口号。

                         

    

   图1  SERIAL功能块      图2  MODBUS_S功能块

2.2  MODBUS_S功能块
该功能块将QUADLOG系统的控制器设置成Modbus从设备,使用Modbus协议使QUADLOG系统同Modbus主设备Freelance2000交换数据,MODBUS_S功能块如图2所示。
EN为TRUE时,MODBUS_S响应Freelance2000的读请求;ID是SERIAL功能块产生的ID号,且该ID号可供同一个控制器中的多个MODBUS_S使用;ADDR是分配给控制器作为Modbus从设备的地址,Freelance2000发出的请求必须使用该地址才能同QUADLOG控制器进行正常通讯;START是Freelance2000读取数据的起始地址;NUM是线圈或寄存器数量;DATA是存放实际数据的数组。
3  Modbus主设备
Freelance2000是Modbus主设备,采用AC800F现场控制器。同ESD的串行通讯由FI820接口模件完成,在FI820下必须设置一个Modbus主对象(MODM_DEV),在该对象中组态并完成相关设置以实现通讯。
在Modbus主功能块库中,提供了Read-coil、Read-register和转换功能块。由于在数据通讯时,Read-coil比Read-register简单,故只介绍后两者。
(1)  Read-register功能块
读寄存器功能块有三种类型:MODM_R1R,MODM_R8R,MODM_R16R,分别最大输出1个、8个、16个报文数据。该功能块通过Freelance2000的串行接口从ESD读取数据并将读来的数据转换成Freelance2000 WORD数据类型。
(2)  转换功能块
由于实数在ESD中占用两个寄存器地址,在通讯过程中,读寄存器功能块分别将其读为尾数和指数,并转换成实数格式。
4  Freelance2000与QUADLOG系统的数据通讯
4.1  QUADLOG系统软件的实现

图3  QUADLOG系统程序流程图

在柴油加氢装置中,DCS与ESD进行数据通讯的点数大约有200多个位号,为叙述方便,仅举4个压缩机轴振动位移传给DCS进行显示。QUADLOG系统程序实现如图3所示。
MODBUS_S的ID输入值来自SERIAL块,ID为“2”表示SERIAL在控制器的串行端口2上进行通讯;控制器作为从设备的地址设为10;由于从QUADLOG系统的模拟卡件的内存读取模拟数据,数据应放入保持寄存器,保持寄存器地址从40001~40009,所以START的起始地址设为40001;由于压缩机轴振动位移是实数,占用两个寄存器,故NUM为位移个数的两倍,NUM等于8;SLVDATA是一维数组,维数为4,用来存放传给DCS的4个位移数据,SLVDATA[1]……SLVDATA[4]分别存放DI_101……DI_104值。Freelance2000从QUADLOG系统读取的寄存器地址范围从40001到40008,DI_101值映射为寄存器地址40001和40002,DI_102值映射为寄存器地址40003和40004,DI_103值映射为寄存器地址40005和40006,DI_104值映射为寄存器地址40007和40008。
4.2  Freelance2000软件的实现 

图4  Freelance2000工作原理框图

使用Modbus协议,通过Freelance2000的串口读取QUADLOG系统SLVDATA数组元素映射成的寄存器。在Freelance2000为读取寄存器,将8输出的读寄存器功能块放入组态区域。由于实数映射成两个寄存器,因此R01读的是40001寄存器,R02读的是40002寄存器,要能把两个寄存器还原为实数,还要把转换功能块放入组态区,R01连至转换功能块的指数管脚,R02连至转换功能块的尾数管脚,转换功能块将读取来的报文数据转换成对应的压缩机轴振动位移数据,并在DCS上显示出来,位号为DI_101。其它三个位移同理可得,全部8个输出的连接如图4所示。
在MODM_R8R的参数表中还要进行一些设置后,Freelance2000才能同ESD进行正常通讯。在Interface name中设该功能块的MODM_DEV对象;在Slave addr中设ESD控制器的地址,此处为10;Function code设为读保持寄存器;Start addr是MODBUS_S的START地址,地址为40001;Register count是MODM_R8R的最大输出个数:8个。
4.3  QUADLOG系统与Freelance2000硬件结构
QUADLOG系统的控制器有两个串口P1和P2。P1用于模块间通讯,P2用于同DCS交换数据。FI820也有两个串口Ser1和Ser2,均可用于同ESD进行通讯。但是,每个串口必须插入一个MODM_DEV对象,然后在该对象下组态,在对象的参数表中可进行参数设置:串行通信的波特率、停止位、奇偶校验、帧和串口标准;DCS与ESD间串行通讯的标准有:RS232、RS422、RS485。RS232的最大通讯距离只有20m,而RS422和RS485的最大通讯距离可达1200m,最大通讯速率可达12M。由于该厂的DCS与ESD相距较远,故选用RS485标准,ESD端必须使用RS232/RS485转换器将RS232转换成RS485,Freelance2000可软件组态成RS485。DCS与ESD的硬件连接如图5所示。

图5  DCS与ESD的硬件连接

5  结语
本文仅介绍了DCS从ESD读数据,利用相应功能块同样可实现DCS写数据到ESD,DCS将实数或整数转换成尾数和指数,传至Write register功能块的两个相邻的wi和wi+1(i为奇数)。如果通讯的数据是数字量,就更为简单,无需利用转换功能块进行转换,把数值量映射成线圈地址即可,一个数字量只占用一个线圈地址。

0
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ABBAC900F学习笔记202:modbus通讯13
如何实现西门子S7-300 PLC与DCS控制系统的通信
【原创分享】设备改造案例:S7-200PLC与横河DCS系统的通讯实现
SIS与ESD、DCS、PLC傻傻分不清楚?看了这个才知道!
西门子S7-200 SMART与变频器MODBUS-RTU通信例程
如何实现DCS系统与变频器间的通讯
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服