和利时MACSV与西门子S7-200之间的通讯
摘 要:流程工业的大型设备通常由设备厂家配套的PLC就地控制,为了能在中央控制室DCS系统的操作员站直接对设备进行监控,经常要做DCS与PLC的通讯。通过介绍和利时MACS系统与西门子S7-200通讯的硬件配置及软件组态,为今后同行业类似工程的实施提供了借鉴。
关键词:MACS系统 PLC S7-200 通讯 MODBUS协议
0.引言
我公司20万吨离子膜及25万吨VCM项目的集散控制系统(DCS)采用的是和利时公司MACSV系统。项目中2套空压制氮装置为浙江瑞气集团生产,其控制系统为西门子公司S7-200型的PLC。原设计DCS与PLC互为独立,由操作工在现场对空压制氮装置就地监控,后来工艺人员提出直接在DCS操作站上监控设备运行的要求,于是利用工厂停车检修的机会对两套系统进行改造,实现了互相通讯。
1.系统组成
MODBUS协议的PLC与MACSV系统的通讯有两种方案。一是直接在一台操作员站上安装一块MOXA卡,通过此卡直接连接现场PLC配备的RS485口,两个PLC现场直接并联,如下图中的上部方框内的PLC。二是增加一块和利时公司自产FM020通讯模块,该模块支持Profibus-DP 总线协议与Modbus 协议,通过Profibus-DP 总线与控制器进行参数与数据交换实现DP 从站功能,同时通过Modbus 通讯协议获取或下发Modbus 数据。FM020 模块在Profibus-DP 一侧只能做Profibus-DP 从站;在Modbus 一侧既可以做Modbus 主站,也可以做Modbus从站。FM020 作为主站时最多可连接18 个Modbus 从站,如图中右下方虚线椭圆部分。由于厂家提供了S7-200的485接口和MOXA卡,经微机组人员讨论选用前一种方案,MACSV作为主站,S7-200作为从站,整个网络结构如图所示。
1.1.DCS系统
本套装置MACSV系统包括离子膜(0号域)、氯乙烯(1号域)、乙炔(2号域)三个域,由监控网、系统网和控制网三个层次组成。每个域的SNET相对独立,采用确定性实时以太网通讯协议,保证网络安全。域间通过MNET连接在一起,以太网通讯协议。三个域互为独立又能在操作员站通过口令登录到不同的域而进行相互监控。监控网(MNET)主要节点为工程师站、操作员站、服务器站;系统网主要节点为工程师站、服务器站、现场控制站。控制网(CNET)位于现场控制站内部,主要有DP主站(主控单元)和DP从站(智能I/O单元——输入/输出模块)。
1.2.PLC系统
两套S7-200采用并联与DCS通讯,每套系统包括1台K-TP178触摸屏、1台CPU224XP CN、1台EM222 CN、1台EM231 CN组成。触摸屏为现场显示工艺流程和工艺参数;CPU224XP CN为中央处理单元(带2个串行通讯口,port1与触摸屏通讯、port0口与MACSV进行通讯);EM222 CN为数字量扩展模块;EM231 CN为模拟量扩展模块。
1.3.MODBUS协议
MODBUS协议是主从站通讯协议,用异步串行口完成通讯,物理层采用RS485或RS232。传输速率可以达到115kbps,理论上可接(寻址)一台主站和至多247台从站。受线路和设备的限制,最多可接一台主站和32台从站。MODBUS协议有两种传输模式,RTU方式通讯采用8位字节的二进制数据通讯,数据校验采用CRC循环冗余校验,通讯速度较快;ASCⅡ方式采用7位ASC码进行通讯,数据校验采用LRC逻辑冗余校验,通讯速度较慢。在一个通讯系统中,只能选用一种通讯方式,两种方式不能并用。MODBUS有两种通讯方式:应答方式和广播方式。应答方式是主战向某个从站(地址为1~247)发出命令,然后等待从站的应答;从站接到主站命令后,执行命令,并将执行结果返回给主战作为应答,然后等待下一个命令。广播方式是主站向所有从站(从站地址为0)发送命令,不需要等待从站应答;从站接到广播命令后,执行命令,也不向主站应答。
MODBUS通讯双方以寄存器将双方的数据对应起来,数据类型有数字量、模拟量两种,寄存器地址分为四类:1)内部数字量保持线圈,寄存器地址以1开头,地址表示为1XXXX;2)外部输入数字量线圈、继电器,寄存器地址以2开头,寄存器地址表示为2XXXX;3)外部输入模拟量存贮器,寄存器地址以3开头,地址表示为3XXXX;4)内部模拟量保持寄存器,寄存器地址以4开头,地址表示为4XXXX。
1.4.通讯的硬件配置
选用0号域的61#操作员站兼作通讯站。在通讯站主机上安装了MOXA通讯卡(型号为CP-132ULV2/PCI,2个RS422/485串口)。DCS与PLC之间通讯介质采用带屏蔽的双绞线,接口采用标准的DB9串行接口。 PLC一侧接DB9串行接口针脚的3(+)、8(-),与CPU自带的PORT0口相连;通讯站一侧接DB9串行接口针脚的3(+)、4(-)与MOXA通讯卡所带的串口连接。
2.软件组态
在做好硬件连接后,可以用MODBUS从站主站模拟器进行测试。在笔记本上运行模拟MODBUS从站模块ModSim32.exe模拟现场PLC。在通讯站运行模拟MODBUS主站模块modscan32.exe,运行设置如下:
1.运行modscan32.exe
2.从菜单connection中选择connect对串口进行配置,参数与通信的设备设置相同。
3.Device ID 设置是通信的设备的站地址
4.选择03:HOLDING REGISTER
5.按下“Reset Ctrs”
6.观察灰色区的数据内容如在尖括号内数据不断刷新就可以了
第4步可以根据实际选择,在第6步看到数据刷新就说明硬件的物理连接没有问题。
2.1.PLC软件组态
在原有软件编程的基础上新增加MBUS_SLAVE和MBUS_INIT两个控制功能块。MBUS_SLAVE被用于为MODBUS主设备发出的请求服务;MBUS_INIT被用于启用和初始化或禁止MODBUS通讯。如图所示:
能否通讯成功的关键是对MBUS_INIT功能块进行设置。MODE选择1,通讯地址设定12,通讯速率设定9600,校验参数设定为2偶校验,时延参数设定为0,数字量通讯点数设定128,模拟量寄存器通讯的点数设定为32,V内存中的字保持寄存器数目设定为30,V内存中保持寄存器的起始地址VB1396。
2.2.DCS软件组态
通信执行文件名是MvModbusMDT.exe,该模块通过串口实现将现场遵循Modbus协议的设备数据采集到MACSV系统中,并可给设备下发控制。本模块支持多种模拟量数据类型,支持DCS系统多域,支持任意域中的服务器双网冗余。
采用标准MODBUS协议、RTU方式,作为MODBUS主站进行通信,支持功能码如下
01H | 请求接收开关量 | 02H | 请求接收开关量 |
03H | 发送单个开关量 | 04H | 请求接收模拟量 |
05H | 发送单个开关量 | 06H | 发送单个模拟量 |
0FH | 发送多个开关量 | 10H | 发送多个模拟量 |
模拟量支持多种数据类型可配,数据类型如下
1:无符号短整型(16bit)
2:有符号短整型(±15bit)
3:无符号整型(32bit)
4:有符号整型(±31bit)
5: 浮点型(32bit)数据的储存格式为:字节2字节1字节4字节3
6: 浮点型(32bit)数据的储存格式为:字节4字节3字节2字节1
7: 浮点型(32bit)数据的储存格式为:字节1字节2字节3字节4
8: 浮点型(32bit)数据的储存格式为:字节3字节4字节1字节2
首先在通信站上正确配置文件MvModbusMDT.INI,该项目对本文件参数进行配置如下。
【COM_CONFIG】 ----串口配置
PORT=3 ----串口号
TIMEOUT=200 ----读串口数据超时时间,单位:毫秒
INSIDEINTERVAL=50 ----命令间间隔时间,单位:毫秒
OUTERINTERVAL=50 ----设备间间隔时间,单位:毫秒
BAUDRATE=9600 ----波特率,单位:位/秒
DATABIT=8 ----数据位,常用7位,8位
STOPBIT=1 ----停止位,常用1位,2位
PARITY=2 ----校验位(0-无校验,1-奇校验,2-偶校验)
【COMMUNICATION_PERIOD】 ----通信周期配置
PERIOD=2000 ----通信周期,单位:毫秒
【SERVER_CONFIG】 ----MACSV服务器配置
SVRPORT=7325 ----MACSV服务器端口号,为7316-8000任一数字
DOMAINNUM=2 ----域的个数
【DOMAIN2_CONFIG】 ----第二个域的服务器参数配置
DOMAIN=1 ----MACSV服务器的域号
SERVER1=sever3 ----MACSV服务器1的名称
SERVER2=sever4 ----MACSV服务器2的名称
S1IP1=130.0.0.3 ----MACSV服务器1的IP地址1
S1IP2=131.0.0.3 ----MACSV服务器1的IP地址2
S2IP1=130.0.0.4 ----MACSV服务器2的IP地址1
S2IP2=131.0.0.4 ----MACSV服务器2的IP地址2
SUBSTATIONNUM=2 ----第二个域的子站个数
【DOMAIN2_SUBSTATION_ORDER】 ----第二个域的子站配置
ORDER1=12 ----第一个子站的站号
ORDER2=11 ----第一个子站的站号
【DOMAIN2_ARG_NUMBER】 ----第二个域的各子站通信协议数配置
SUB1_ARG_NUMBER=5 ----第一个子站的通信协议数
SUB2_ARG_NUMBER=5 ----第二个子站的通信协议数
【DOMAIN2_SUB1_ARG1】 ----第二个域第一个子站第一个协议的配置
FUNCTION=3 ----功能码
STARTADDR=0001 ----起始地址
POINTNUM=3 ----点数
POINT1=AM12_0001 ----第一个点点名
MULTIPLE1=1 ----第一个点缩放倍数
POINTTYP1=5 ----第一个点数据类型
……
【DOMAIN2_SUB1_ARG2】 ----第二个域第一个子站第二个协议的配置
FUNCTION=1 ----功能码
STARTADDR=0000 ----起始地址
POINTNUM=8 ----点数
POINT1=DM12_0001 ----第一个点点名
……
【DOMAIN2_SUB1_ARG5】 ----第二个域第一个子站第五个协议的配置
FUNCTION=2 ----功能码
STARTADDR=0000 ----起始地址
POINTNUM=4 ----点数
POINT1=DIM12_0001 ----第一个点点名
……
【DOMAIN2_SUB2_ARG1】 ----第二个域第二个子站第一个协议的配置
FUNCTION=3 ----功能码
STARTADDR=0001 ----起始地址
POINTNUM=3 ----点数
POINT1=AM11_0001 ----第一个点点名
MULTIPLE1=1 ----第一个点缩放倍数
POINTTYP1=5 ----第一个点数据类型
……
读取和下发开关量数据时,点类型和放大倍数这两个参数无效,可以不做配置;采用06H功能码下发单个模拟量数据时,点类型参数无效,默认的点类型为有符号短整型。
文件正确配置完毕后,将可执行程序MvModbusMDT.EXE,配置文件MvModbusMDT.INI以及pcomm.dll拷到同一安装目录下。运行MvModbusMDT.exe文件,该文件通过串口将PLC内的设备数据采集到MACSV系统中,并可给设备下发控制,如通讯正常显示X号设备第X个协议的功能码X正确,说明配置文件没有问题。
通讯站配置完毕,在工程师站打开数据库总控,选择1号域工程,添加AM(DM)中间变量。点名为通讯站中的点名、点说明为PLC通讯所读取的点解释、量程上下限根据实际设定、站号设定为0。配置完后进行数据库总控完全编译生成控制器工程文件,分别下装服务器。在MACSV图形组态工具中对添加的变量进行动态组态,然后下装各个操作员站。操作员既可看到PLC通讯来的数据并可以控制。
3.结束语
到目前为止,各种数据采集、控制都运行正常。制氮机组上的各种数据都能在DCS中监视,现场机组的启停在DCS上也能控制。使用MODBUS通讯结构简单、易维护、编程方便,更重要是造价低廉大大降低了生产成本。(转帖)