1
关注中国自动化产业发展的先行者!
2024
2024中国自动化产业年会
2023年工业安全大会
OICT公益讲堂
当前位置:首页 >> 案例 >> 案例首页

案例频道

基于物联网技术在污水处理厂 水表数据采集的实现
  • 企业:     领域:运动控制与伺服系统     行业:市政     领域:物联网    
  • 点击数:1362     发布时间:2022-03-31 15:29:28
  • 分享到:
某再生水厂水表数据需要采集到系统,根据位置和厂区自控设备的部署情况选取最优的策略。本次进厂水表远离现有系统和电缆通道,采用传统PLC加DCS的 方式,施工成本高昂。厂技术团队另辟蹊径,尝试以无线的方式对数据进行采集传输,研发了基于PCB层面的控制器设计、光伏及系统低功耗设计、LoRa传输的私有协议设计,应用WAMP系统,并编写了数据入库程序,开发了BS和CS架构的数据查询应用。

★北京城市排水集团有限责任公司刘伟,张建强,杨自强

★北京显通恒泰科技有限公司张彤

★北京城市排水集团有限责任公司裘岩

某水厂目前安装厂区进水两块自来水水表,用以测量整个厂区水区和泥区的自来水用量。本次水表数据采集利用物联网及无线技术,实现比传统PLC采集少土方施工的技术方向,以“WAMP”为数据平台、“ESP8266MCU”为边缘计算核心及“LORA”为通讯载体定期发送数据给中心端,实现了以太阳能为能源,搭建的现场数据采集系统。数据保存方面,本次研究单独部署了一个开源“LAMP”系统,也就是使用“linux”作为操作系统,“Apache”网页服务,“Mysql”数据库,“PHP”服务应用。数据分析采“边缘计算”,即用物联网的特征“万物互联”,不同于传统工控控制端在PLC,物联网在物端有计算控制和通讯能力,发生在现场的数据采集数据分析处理和计算。根据运行情况给仪表端“ModbusRTU”从站供电,作为“ModbusRTU”主站采集从站数据,转换数据格式,并编写报文,启动“LORA”工作,并发送报文,最后关闭外部电源进入休眠模式完成整个采集流程计算,最后在数据访问端开发了基于CS的c#程序和基于BS架构的PHP服务。

某再生水厂水表数据需要采集到系统,根据位置和厂区自控设备的部署情况选取最优的策略。本次进厂水表远离现有系统和电缆通道,采用传统PLC加DCS的方式,施工成本高昂。厂技术团队另辟蹊径,尝试以无线的方式对数据进行采集传输,研发了基于PCB层面的控制器设计、光伏及系统低功耗设计、LoRa传输的私有协议设计,应用WAMP系统,并编写了数据入库程序,开发了BS和CS架构的数据查询应用。

1 系统结构概述

本次主要研究以下几个方面:

(1)数据采集和保存

(2)数据存储

(3)数据访问

(4)数据应用

1.1数据采集和保存

某再生水厂目前的数据保存在相对封闭的DCS数据库系统,可以查询归档的历史数据,但是访问相对不方便,一般通过DCS界面进行访问查询。

行业内倡导的“双网融合”目标是让工控网在安全稳定的基础上结合IT网络,为用户提供更为方便的访问方式。

本项目以探索的方式,部署了一个WAMP系统,即使用Windows操作系统,Apache网页服务,MySQL数据库,PHP服务应用。

1.2数据存储

数据库中包含一张数据表名称为“his_xhm_simbase”,用于存储记录过程数据,如不同工艺设备代号、记录时间、工艺单位等。

本项目开发了数据接入服务程序。该应用运行期间会侦听串口LoRa模块的报文并进行解析,用SQL语句把数据写入数据库。

1.3数据访问

基于数据库的IT应用方式很多,目前开发的程序主要是基于CS架构和基于BS架构的浏览器查询数据。未来随着数据的数量和接入点的增多,基于大数据的工艺优化程序成为可能。

1.4控制器研发

供电单元:现场供电采用太阳能电池板、充电模组、铅酸电池构成的供电系统,该系统提供5VDC和12VDC两路直流电源供给;

通讯单元:采用LoRa433MHz模块,定期发送数据给中心端;控制单元现场部署一套ESP8266物联网单元和配套支持电路。

2   系统设计

基于物联网技术水表数据远传的设计主要包括以下几个部分:

(1)基于水表的低功耗设计;

(2)基于LoRa模块数据采集低功耗设计;

(3)系统硬件复位电路的设计;

(4)系统边缘计算设计与控制。

2.1基于水表的低功耗设计

本次研究采用光伏供电,除了要保证自身MCU控制系统供电外,还要考虑给水表进行供电。

水表工作不需要电源,但是和水表的Modbus模块通讯的时候,需要给它提供12VDC的电源。这个电源如果一直提供,在没有外部供电的情况下,会对光伏和储能模块提出比较大的能耗需求。设计研究的方案是在MCUESP8266休眠的时候,断开给仪表12V的供电,我们选择的是松下电子的光耦合固态继电器AQW212EH,电路实现如图1所示。

image.png

图1 水表485供电硬件电路设计

2.2基于LoRa模块数据采集的低功耗设计

LoRa模块采用壹佰特的E32-TTL-1W,该模块是一款基于SEMTECH公司SX1278射频芯片的无线串口模块(UART),采用透明传输方式,工作在410~441MHz频段(默认433MHz),1W发射功率,LoRa扩频技术,TTL电平输出。

该模块提供了低功耗的管脚配置,在M1管脚和M2管脚都为高电平情况下,发射模块进入休眠模式,其休眠电流为2^A,工作期间在发射时候670mA@30dBo

在微控制单元(MicrocontrollerUnit,MCU)休眠的时候,GPI。管脚处于释放状态,无法为E32模块提供适合的高电平信号使其进入休眠。需要使用一个SS8050

的三极管做一个电平转换电路,此时提供2个高电平输出;当MCU唤醒后,给出GPIO高电平,经过转换后给出M0M1低电平,使它们进入工作状态。如图2所示。

image.png

图2 LoRa模块数据采集硬件电路设计

2.3系统硬件复位电路的设计

在失去电源后,如果MCU处在休眠模式,则GPIO16会给出一个低电平脉冲,脉冲出现后将不再重复输出。如果增加一个外围电路,在电压降低到临界值或者电压升高到临界值时,单独给出低电平脉冲到reset管脚,或许可以解决“假死”后自恢复问题。选择TL7705AC做了一个外部复位电路。

本系统是由太阳能电池板进行供电、铅酸电池进行电能保存,失电后如果光伏恢复,首先电流要大于100mA解决MCU“假死”的供电电耗,如果有富余电能,光伏会缓慢给电池充电,在电池电压升高触发阈值后,会给MCU一个低电平脉冲。复位情况如图3所示。

image.png

图3 复位逻辑时序图

 

MCU接收到复位信号会启动,但是ESP8266启动电流为200~500mA,相对于刚刚充电到临界电压的电源系统来说负担很重,无法维持正常的运行状态,造成关机。

改进措施:增加C1电容,延长TD时间,希望给电源系统更多的充电时间。

随后问题又出现了,MCU在reset低电平的时候也有很大的功耗,在reset低电平情况下无法提供足够的充电电能。此再生水厂使用的进水水量数据报送频率实际上是1天1次,目前把数据报送频率调整为1800秒(30分钟)一次,把每天24X60X2=2880次减少为48次。电源系统可以实现长期稳定工作。

2.4系统边缘计算与控制

边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的幵放平台,就近提供最近端服务。其应用程序在边缘侧发起,产生更快的网络服务响应,满足行业在实时业务、应用智能、安全与隐私保护等方面的基本需求。边缘计算处于物理实体和工业连接之间,或处于物理实体的顶端。而云端计算,仍然可以访问边缘计算的历史数据。

简而言之,物联网的特征是“万物互联”,不同于传统工控控制端在PLC,物联网在物端有计算控制和通讯能力,发生在现场的数据采集、数据分析处理和计算就是“边缘计算”。

具体计算内容如下:

(1)根据运行情况给仪表端“ModbusRTU”从站供电;

(2)作为“ModbusRTU”主站采集从站数据;

(3)转换数据格式,编写报文;

(4)启动“LoRa”工作,并发送报文;

(5)关闭外部电源进入休眠模式。

3   系统数据接收与存储

(1)系统数据的接收与存储;

(2)系统数据的查询与显示。

3.1系统数据的接收与存储

安装本次开发的CS架构软件:“某再生水无线数据串口接收程V02B”软件,该软件界面如图4所示。

image.png

图4 软件开发

功能有四个方面。

(1)接收:在串口安装了“LoRa”接收装置并转

为串口数据,接收到不同设备发送的JSON报文;

(2)解析:接收到报文会进行JSON格式的解析,得到接收变量和对应值;

(3)辨析:把解析的数据进行分析处理,如果对应的key和value不符合识别规则,则没接收到;

(4)入库:以SQL语言把数据保存到数据库hisxhmsimtable中。数据表如图5所示。

 

image.png

图5 数据表存储

3.2系统数据的查询与显示

基于MySQL数据库的数据展示,在IT行业就有无穷多的案例说明和应用。本次研究是基于CS架构开发的应用。图6为CS客户端方式的水表查询软件界面,用户输入查询的开始、结束时间和变量名称,就可以查询对应的历史数据,转成曲线,另存csv文件等功能。

image.png

图6 数据查询界面

 

4典型代码

4.1数据合成

Modbus的HoldingRegisters是16-bit整型,从站仪表的数据给出的32-bit的长整数,当MCU用F03指令读取从站的保持寄存器HoldingRegisters的数据,合成整数方面查阅技术资料,得到如下结论:

实际仪表数据二数据高位*0xff+低位数据。代码段实现如下:

for(inti=0;i<MBcounts;i++)

{

uMybuf[i]=ModbusRTUClient.read();DEBUGLOG(H[%d]\t\nH,uMybuf[i]);

}

longlsum=uMybuf[0]*65536+uMybuf[1];

水表提供的数据是0.01立方米为基本单元,最终得到的整数应转换后再除以100。

4.2Modbus中浮点数的识别转换

Modbus还能以数据高位和数据低位的合成方式实现浮点数的合成,解析高低数据,我们写了一个方法用于实现这一功能,代码如下:

floatuint2float(uint_uintB,uint_uintA)

{

DEBUGLOG("DBG_uintA=%d\t_uintB=%d\t\n",_uintA,_uintB);

intintSign,intSignRest,intExponent,intExponentRest;

floatfaResult,faDigit;

intSign=_uintA/32768;

intSignRest=_uintA%32768;

intExponent=intSignRest/128;

intExponentRest=intSignRest%128;

faDigit=(float)(intExponentRest*65536+_uintB)/8388608;

faResult=(float)pow(-l,intSign)*(float)pow(2,intExponent-127)*(faDigit+1);

DEBUGLOG("intSign=%d\tintSignRest=%d\tintExponent=%d\tintExponentRest%d\tfaDigit%d\t\n",intSign,intSignRest,intExponent,intExponentRest,faDigit);

returnfaResult;

}

作者简介:

刘  伟(1988-),男,河北保定人,中级工程师,硕士,现就职于北京城市排水集团有限责任公司,研究方向为工业自动化控制。

参考文献:

[1]林惠霞,武永华,张淑城.基于BF592的摄像直读无线远传抄表装置的设计[J].自动化技术与应用,2020,39(01):140-143.

[2]乔芝忠,杨琦.电子远传水表兼容性与互换性问题及其对策[J].给水排水,2017,53(12):110-114.

[3]侣金玲.无线远传大口径水表的数据采集与管理系统[D].石家庄:河北科技大学,2013.

⑷吉健红.浅谈自来水远传水表抄表系统的几次技术改进[J].科技资讯,2012,(23):218.

[5]白天明.无线智能水表的设计与研究[J].科技传播,2010,(19):80,79.

[6]王卫国,韦萌.基于CC1100的无线抄表系统[J].计算机与数字工程,2009,37(01):171-173.

[7]王春.智能无线远传水表设计及应用研究[D].北京:北方工业大学,2009

 摘自《自动化博览》2022年第三期

热点新闻

推荐产品

x
  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件: