Modbus TCP在排污总量控制系统上的应用

2016-04-26 06:24电子科技大学冯皓晨
自动化博览 2016年2期

电子科技大学 冯皓晨

The Application of Modbus TCP in the Total Pollutant Discharge Control System



Modbus TCP在排污总量控制系统上的应用

电子科技大学 冯皓晨

The Application of Modbus TCP in the Total Pollutant Discharge Control System

摘要:本文介绍了排污总量控制系统的主要功能,并且阐述了Modbus TCP在排污总量控制系统中的应用情况。

关键词:Modbus TCP;排污总量控制系统

目前,污染物总量控制是以环境质量目标为基本依据,政府环保管理机构以行政手段对区域内各污染源的污染物或重点污染物的排放总量实施控制。而随着排放污染物的增加和不断变化,迫切需要通过工业信息化手段来解决污染物的总量控制。

排污总量控制系统采集企业各排污口各类监测数据,通过设置总量控制指标,为总量减排指标的落实提供科学依据,实现对工业企业重点污染排放物的浓度及总量的双控制,为巩固和落实总量减排工作成果提供了科学的方法。

1 系统概述

排污总量控制系统是用于对工业企业主要污染物的排放数据进行实时采集、监视、自动控制和管理的一套应用管理系统。系统由触控一体机、数据采集控制器、在线监控应用软件组成。系统应用示意图如图1所示。

图1 系统应用示意图

系统应用过程中包含定量、监视、关阀、开阀等环节。

(1)定量:对企业废水排放总量和污染物(COD或氨氮等)排放总量进行设置等。

(2)监视:实时获取企业污染物的排放总量数据和阀门运行状态,在接近总排放量限额时(如90%),进行报警。

(3)关阀:企业的实际排污量达到总排放量限额时,自动下发关阀指令关闭电动阀门。

(4)开阀:对排污阀门被关闭的企业,在购买排污量后,再重新设置并且导入排污量后,自动下发开阀指令开启电动阀门。

2 系统功能

排污总量控制系统在线监控应用软件界面如图2所示。系统包括以下功能:

(1)设置系统排放量:设置排放总量信息,并且存储到数据采集控制器中,作为污染物排放量的上限指标。

(2)实时监视:以文本和图像形式查看流量计数据信息(瞬时流量、累计流量)、阀门实时状态信息。

(3)实时数据查看:查看流量计、阀门实时数据信息。

(4)历史数据查看:查询系统数据库中已保存的排放量历史数据信息。

(5)报警提示功能:当总量超过允许总量的90%、100%时,系统会进行分级别预警,可直接启动报警,并保存报警信息记录,启动关闭阀门操作。

(6)自动阀门控制:系统检测到余量排放完时,自动关阀。重新购买和设定排放量后,自动开阀。

(7)日志信息查询:系统可查询系统中指定时间内的操作日志信息。

(8)报警信息查询:系统可查询系统中指定时间内的报警信息。

图2 排污总量控制系统界面

3 Modbus TCP在系统中的应用

Modbus是由Modicon在1979年发明的,是全球第一个真正用于工业现场的总线协议。1996年施耐德公司推出了基于以太网TCP/IP的Modbus TCP协议,Modbus TCP是一个请求/应答协议,通过功能码与寄存器地址进行数据读写操作。Modbus在2004年成为我国的国家标准。

在排污总量控制系统中,在线监控应用软件与数据采集控制器的通信功能都是应用Modbus TCP来实现的。Modbus TCP中共包括13类功能码,本系统中用到了其中5种功能码,如表1所示。

表1 Modus TCP5种功能码

在实际应用中,数据采集控制器作为Modbus TCP Server,在线监控应用软件作为Modbus TCP Client,在线监控应用软件先要通过Socket对象和502端口连接数据采集控制器,然后根据功能需要向Modbus TCP Server发送构造字节数组进行寄存器的读写操作。

(1)设置系统排放量:设置排放总量信息,并且存储到数据采集控制器中。此处首先读取数据采集控制器中存储的排放总量信息,然后对其进行设置,最后将新数值写入保持寄存器,需要使用的Modbus TCP的功能码为3和16。读取保持寄存器的主要字节构造代码如下:

List sendMessage = new List(255);

sendMessage.AddRange(GetBytes(this.NextDataIndex()));//1~2 位 标识位

sendMessage.AddRange(new byte[]{ 0,0 });//3~4位 modbus标识

sendMessage.AddRange(GetBytes((short)6));//5~6位 后续byte数量

sendMessage.Add(0);//7位 默认为0

sendMessage.Add((byte)3);//8位读保持寄存器功能码

sendMessage.AddRange(GetBytes((short)startAddress));//9~10 位 读起始地址

sendMessage.AddRange(GetBytes((short)registerCount));//11~12 位 读取的寄存器数量

图3 设置系统排放量界面

(2)实时监视:获取流量计数据信息(瞬时流量、累计流量)、阀门实时状态信息,需要使用的Modbus TCP的功能码为4 和2。读取输入状态的主要字节构造代码如下:

List sendMessage = new List(255);

sendMessage.AddRange(vt.GetBytes(this.NextDataIndex()));//1~2 位 标识位

sendMessage.AddRange(new byte[]{ 0,0 });//3~4位 modbus标识

sendMessage.AddRange(vt.GetBytes((short)6));//5~6位 后续byte数量

sendMessage.Add(0);//7位 默认为0

sendMessage.Add((byte)2);//8位 读输入状态功能码

sendMessage.AddRange(vt.GetBytes((short)startAddress));//9~10 位 读起始地址

sendMessage.AddRange(vt.GetBytes((short)registerCount));//11~12 位 读取的寄存器数量

图4 实时监视界面

(3)自动阀门控制:系统检测到累计排放量达到限值时,自动关阀。购买排放量并且导入后,自动开阀。并且显示当前阀门状态。需要使用的Modbus TCP的功能码为5。写入线圈状态的主要字节构造代码如下:

List sendMessage = new List(255);

sendMessage.AddRange(GetBytes(this.NextDataIndex()));//1~2 位 标识位

sendMessage.AddRange(new byte[]{ 0,0 });//3~4位 Modbus标识

sendMessage.AddRange(GetBytes((short)6));//5~6位 后续byte数量

sendMessage.Add(0);//7位 默认为0

sendMessage.Add((byte)5);//8位写状态位功能码

sendMessage.AddRange(GetBytes((short)startAddress));//9~10 位 写入地址if(ceilStatus)

{

sendMessage.AddRange(BitConverter.GetBytes((short)255));//11~12 位 写入状态位on

}

else

{

sendMessage.AddRange(dt.GetBytes((short)0));//11~12位 写入状态位off

}

图5 阀门状态界面

4 应用情况

目前,排污总量控制系统已经在工业现场进行了实验应用,对污水实时和累计排放总量进行了数据监视,对排放总量接近存储排污量限值时进行报警,当排放总量达到存储排污量限值时自动关闭电动阀门停止排污。

5 总结

基于Modbus TCP实现的排污总量控制系统,实现了读取和写入数据采集控制器中相关寄存器中的数据,从而实现工业现场排污数据的读取和阀门状态的监视与控制,目前主流的数据采集控制器均支持标准的Modbs TCP通讯协议,所以本系统具有广泛的现场适用性。通过系统的成功部署与运行,有效地实现了对工业企业排放污染物的浓度及总量的双控制,在实际应用中还可以将累计排污数据发送到环保部门的在线监测平台,使环保部门清晰了解每个工业企业的污染物排放情况,从而为环境治理以及环保执法提供了有力的保障。

参考文献:

[1]张力军等.主要污染物总量减排管理实用手册[M].中国环境科学出版社,2008.

[2]王琴.污染源总量控制实施[J].能源环境保护,2013,27(2):61-64.

[3]耿元一.Modbus TCP国际领先 工业以太网前景看好[J].机电一体化,2005(4):15.

[4]邬书金等.基于Modbus TCP协议实现PC机与PLC的串行通信[J].可编程控制器与工厂自动化,2009(9):63-64.

冯皓晨(1996-),男,黑龙江大庆人,现就读于电子科技大学自动化专业。

[新闻]

横河电机收购云数据服务企业 强化先进解决方案

2016年1月12日,横河电机集团宣布收购美国公司Industrial Evolution Inc.,以增强为过程行业提供先进解决方案的能力。Industrial Evolution公司是基于云的工厂数据共享服务的供应商,此次收购是通过横河电机的全资子公司Yokogawa Venture Group Inc.完成的,它是最近为工业自动化与控制业务进行战略并购而设立的。

在工业自动化与控制领域拓展先进解决方案业务是横河电机的“Transformation 2017”中期经营计划中确立的其中一项主要战略。基于Industrial Evolution的云计算环境,横河电机将提供数据服务(DaaS),这是能为全球客户带来新价值的先进解决方案。

Industrial Evolution利用基于云的DaaS技术,采集多个工业设施的设备和系统中的实时过程数据,并直接或以定制形式将这些数据提供给运行这些工业设施的公司及客户和供应商。Industrial Evolution的服务能够从受防火墙保护的系统中采集数据,并通过网站或移动终端与授权用户安全地共享这些数据。

Industrial Evolution是该领域的先驱,它的数据采集与共享服务被各种各样的公司采用。该服务可用于各种应用中,如在多个公司的授权用户之间共享关于石油天然气田操作的数据,与由第三方运行的工厂的投资者实时共享数据等。Industrial Evolution以易于使用的形式提供数据,获得了用户的高度认可。

横河电机一直提供先进的套装软件解决方案,使客户能提高生产率、安全性和能源效率,并优化设施的使用。以Industrial Evolution基于云的服务作为核心技术,横河电机将为客户带来新价值,从而强化其先进解决方案业务。

横河电机解决方案服务事业本部的部长兼副总经理Satoru Kurosu评论这次收购:“横河电机致力于识别客户业务中面临的挑战,与他们一起找出增加新价值的解决方案,从而与客户一起实现可持续性增长。在工业领域,Industrial Evolution在利用IoT方面是先驱,他们的技术将有助于我们扩展解决方案的范围,为客户提供新价值。”

Industrial Evolution的CEO Simon Wright评论道:“Industrial Evolution的客户将从横河电机获得巨大收益,包括在全球拓展业务、增强竞争力等。我们希望通过不断改进技术,成为基于云的先进解决方案的一流供应商。”

作者简介