一、 项目背景
天津纪庄子再生水厂是国家在全国重点扶持的五个中水项目之一, 设计日产量为 5万立方米/天,主要用于给生活(居民区),工业区供水。其中生活区供水为 2立方米/天,工业区供水为 3万立方米/天。
整个厂区的自动化控制又分为进水泵房,加氯,加药,CMF,臭氧发生间,出水泵房,滤站共 7个 PLC站组成。其中进水泵房与出水泵房采用罗克韦尔自动化公司的 RSLOGIX5000系列 PLC,通过 CONTROLNET与中控室进行通讯。加氯,加药,臭氧发生间,CMF及滤站采用罗克韦尔自动化公司的 SLC500系列 PLC,通过 DH+网进行通讯,全厂的通讯采用LOGIX5000系列的 DHRIO模板将 DH+网的数据采集后由 CONTROLNET传送到中控室计算机。计算机监控系统由罗克韦尔自动化公司的 RSVIEW组成,负责整个厂区的设备监控及报警。现场各子站控制柜上设有触摸屏,用于各工段的设备状态显示及报警。在七台高压柜上安装了西门子的综合继保,用于输出各种电器的分合闸及电量信号,在十四台现场电器控制柜上安装了 EMP420A的智能型电器仪表用于输出设备的电流,电压及功率,这些仪表都安装有 MODBUS输出接口,由 MVI56- MCM模块将这些电量数据传输到PLC。
大家对 ControlLogix系统及网络之间的通讯已非常熟悉,但 ControlLogix与第三方产品的通讯往往是我们调试中的难点,下面我们就 ControlLogix系统与 Prosoft公司的 MVI56- MCM模块的通讯,详细介绍如下:
二、硬件接线及初始化操作
2.1整体示意图:
2.2超级终端
对 MCM模块的初始化要用超级终端(Hyper Terminal),使用超级终端时要注意选择相对应的波特率等参数,参数设定完成后,MCM模块需重新上电,才可监视 MCM的数据表。
2.3 MCM模块的硬件设定
MCM模块可通过短路棒设定为 RS232,RS422及 RS485三种通讯协议。本应用选用RS485通讯。
2.4电能表的接线
本应用中 Modbus设备使用的是DAETECH 公司的 EPM420A型网络电力仪表,接线如图:
2.5 MCM模块的软件组态
在 RSLogix5000软件中的I/O Configuration中添加 1756-Module,连接参数中的输入及输出尺寸可根据用户的通讯量的大小设置。
模块添加完成后,需要产生如下图所示的主要接口 Tag,以便和电能表通讯。也可以参照例程产生所需 Tag。
我们重点要关注 MCM1 Tag。
三、模块主要参数设置说明
3.1 MCM1.ModDef 数据传送参数
MCM1.ModDef 是用来设定模板的数据库。模板共有 5000个用来读/写的寄存器。
WriteStartReg: 从 PLC到模板传送数据的寄存器起始地址。
WriteRegCnt: 从PLC到模板写数据的寄存器地址的长度。
ReadStartReg: 从模板到PLC传送数据的寄存器起始地址。
ReadRegCnt: 从模板到PLC读数据的寄存器地址的长度。
ErrStatPtr: 模板状态数据的寄存器起始地址。
3.2 MCM1.Port ModBus 通讯参数
MCM1.Port 是用来组态模板通讯的串口组态。 MCM1.Port [0] 对应 Port1,MCM1.Port [1] 对应Port2。
Enable: 通讯口使能。
Type: Modbus Master / Modbus Slave 方式。
Protocol: Master RTU / Modbus ASCII
Baudrate: 波特率。
Baarity: 奇偶校验位。
DataBits: 数据位。
SlaveID: 当该口为 Master方式时,此参数为零,只有当该口为 Slave 时,可设 1—255。即 Slave ID 号。
CmdCount: Modbus Master 命令的数量。
3.3 MCM1.P1Cmd,MCM1.P2Cmd Modbus Master 命令
MCM1.P1Cmd,MCM1.P2Cmd 是用来设定模板的 Modbus master 命令。每个口多可组态 100个 Modbus master 命令。
读/写命令:
Enable: 命令使能。
Int Address: 读/写数据的起始地址。
PollInt: 数据传送的时间间隔。
Count: 从Slave设备上读/写数据字的数量。
Swap: 数据交换的方式。
Device: Modbus Slave 设备的节点地址。
Func: 向Slave设备读/写命令的 Modbus 功能码。读命令为 3或 4,写命令为 6或16。
DevAddress: 与读/写命令相对应的 Modbus Slave 设备的寄存器地址。
3.4 MCM1.ReadData, MCM1.WriateData 读/写数据区
MCM1.ReadData: 读数据区。一个从 Master 设备写到作为 Slave设备的通讯口,或从 Slave设备读取的数据。这个位置的数据是从 MVI56-MCM模块返回到ControlLogix处理器的。
MCM1.WriateData: 写数据区。位于 MCM1.WriteData中的数据是 ControlLogix处理器的信息及需要写到模板的内部数据库的信息。包括写到 Slave设备的信息(设为 Master时),或写到模板的信息(当口组态为 Slave时)。
四、 Modbus 通讯协议执行过程
应用 Modbus RTU协议,EPM420电能表提供了和 SCADA系统直接连接的 RS485通讯模式的选择。Modbus 协议中,主机通过网络传送给从机以下内容来建立起主从通讯方式:
1. 从机地址
2. 定义所请求动作的操作码
3. 要发送的数据
4. 校验码
从机返回的内容包括:
1. 所采取的动作
2. 返回的数据
3. 校验码
如果错误发生在接收信息时或从机不能执行要求的操作,从机将会产生一个出错信息并作为响应送出。
RS485网络允许的大长度为 3900英尺。包含控制器在内多可连接 32个节点。
数据传输速率在 2400,4800,9600,19200范围内可选择。
每个参数放在一个寄存器内,用 Modbus总线代码 04来访问所有的参数。
用 Modbus总线协议可看到或改变需要的参数。Modbus 03命令用来读参数,16号命令用来写参数。
注意,无论是读还是写,数据长度都要乘以 2,因为 ControlLogix数据是 32位的,而电能
表的数据地址是 16位的。如果电能表读上来的数据是浮点数,而 ControlLogix的数据地址用的是整型数据类型,则数据还要通过梯图程序进行转换。
五 、结束语
ControlLogix系统以其**的技术在各个行业都有许多成功的应用,借助单一的 ControlLogix平台,完全可以满足用户的不同要求。和第三方产品(Modbus, Profibus….)丰富的通讯功能,使它扩展了应用的灵活性。天津纪庄子再生水厂项目中的现场电器控制就是 ControlLogix 和 Modbus通讯的成功应用,我们相信 ControlLogix系统在今后的应用中定会发挥更大的作用。