电磁流量计 4-20mA 模拟量采集接入 ThingsCloud

2022/10/12

articles/2022/20221012170931_a7d2dcfcb4b48edffa6886dcc177ce17.png

流量计的用途

不同于普通水表,流量计主要测量流速。

articles/2022/20221012200640_87f06cbc46722ce7e8d2cc0bc91927e9.png

流量仪表广泛适用于冶金、电力、煤炭、化工、石油、交通、建筑、轻纺、食品、医药、农业、环境保护及人民日常生活等国民经济各个领域,是发展工农业生产,节约能源,改进产品质量,提高经济效益和管理水平的重要工具在国民经济中占有重要的地位。

  • 能源计量

能源计量是科学管理能源,实现节能降耗,提高经济效益的重要手段。流量仪表是能源计量仪表的重要组成部分,水、人工燃气、天然气、蒸汽和油品这些常用的能源都使用着数量极其庞大的流量计,它们是能源管理和经济核算不可缺少的工具。

  • 环境保护

流量计在烟气排放、污水、废气处理流量计量方面有着不可替代的位置。中国是以煤为主要能源的国家,全国有上百万个烟囱不停地向大气排放烟气。烟气排放控制是根治污染的重要项目,每个烟囱必须是安装烟气分析仪表和流量计,组成连椟排放监视系统。烟气的流量沆量有很大因难,它的难度为烟囱尺寸大且形状不规则,气体组分变化不定,流速范围大,脏污,灰尘,腐蚀,高温,无直管段等。

  • 交通运输

管道运输必须装备流量计,它是控制、分配和调度的眼睛,亦是安全监没和经济核算的必备工具。

接入电磁流量计到 ThingsCloud

这个示例,我们介绍电磁流量计如何接入 ThingsCloud 平台,并上报测量速度。

电磁流量计是流量计的一种类型,适用于导电流体的测量,例如:自来水、工业污水、各种电解质液体等,利用电磁效应对流体测量流速。

我们用的电磁流量计采用 4-20mA 模拟量信号输出,所以还需要一台支持 4-20mA 模拟量输入和网络通信的 RTU。将电磁流量计和 RTU 连接后,RTU 采集模拟量信号,同时提供 Modbus 从机服务。

RTU 如何连接 ThingsCloud

自带网络通信的 RTU 接入 ThingsCloud 的方法和 DTU 完全相同,请浏览 DTU 接入示例教程。本示例不限于特定的 DTU 产品。

顺便提一下,对于支持 Modbus RTU 输出的设备,请参考以下示例:

顺便说一下,有些电磁流量计也支持 RS485/Modbus 输出,这样就不需要单独的模拟量采集,只需要用支持 Modbus RTU 透传的 DTU 即可,具体步骤和以上示例相似。

添加属性定义

根据流量计口径的不同,这款的量程是 14-140 m³/h。我们在设备类型中,找到 功能定义,添加属性定义,如下图:

articles/2022/20221012161455_f25d37ed2f63d9fdf32642055d863588.png

配置 Modbus 寄存器

接下来,确保设备类型的接入协议设置为Modbus RTU 透传,在设备类型的 Modbus 配置中,设置属性对应的设备端 Modbus 寄存器参数。

参考 RTU 的模拟量采集 Modbus 寄存器手册,我们知道第一路 AI 的寄存器是:

  • 起始地址:0x00C0
  • 寄存器数量:1
  • 数值单位:uA

我们对设备类型的 Modbus 设置如下:

articles/2022/20221012161844_c93933b9bc9f13881049d3652a1bcdb8.png

接下来,记得开启 属性智能转换,并设置正确的自定义数据流标识符,自定义数据流用于云平台和 DTU 之间收发 Modbus RTU 报文,通常默认创建的自定义数据流标识符为 stream,请您根据实际情况为准。

通过任务查询数据

Modbus 数据上报需要主机发起查询,也就是从云平台下发查询指令,通过 DTU 透传到终端设备。

我们来创建 Modbus 查询任务,如下图:

articles/2022/20221010221501_b53aee7e704c19bd1779ec992923dadb.png

保存任务后,我们可以手动点击单次运行任务,也可以在任务的定时选项中,设置定时时间间隔,例如 5 分钟,这样便可以每 5 分钟获得最新的数据。

查看数据

通过云平台的智能 Modbus 解析,在设备概要页面的属性中,我们可以实时看到设备最新上报的属性数据,如下图:

articles/2022/20221012162137_94cea61c40ad055b80c671708a13aff0.png

这时采集到的电流信号是 6830uA,也就是 6.83mA。

通过模拟量生成流速数值

接下来还需要自动将电流模拟量转为数字量,使用 ThingsCloud 规则引擎可以轻松完成这个转换。

创建一个属性上报预处理规则。

articles/2022/20221012162601_df03e7de2d7a6ce801e5be7149662601.png

articles/2022/20221012162636_1d521d9b8bd943ac4ee99c0a25d53b2d.png

在云函数中使用如下代码:

articles/2022/20221012163102_33b49c5bc1518a0576e510d8299d8287.png

module.exports = function (report_attributes) {    /**     * report_attributes:   上报的属性对象,同时作为函数返回值。函数中可更新属性对象。     */         if (report_attributes.analog_value !== undefined) {        // 得到电流信号 mA        var analog_ma = report_attributes.analog_value / 1000;        report_attributes.flow_speed = 14 +             (analog_ma - 4) / (20 - 4) * (140 - 14)    }    return report_attributes;}

articles/2022/20221012163128_802e4f5c2b96429b3dca83fe09a3d514.png

规则创建成功后,再次读取模拟量,会看到生成流速数值,如下图:

articles/2022/20221012163223_0f5761a5981dd57553899049c381e9dd.png

再来一些计算值

流量计设备只负责输出当前的测量速度,对于用户而言,还希望知道一些信息和数据,例如:

  • 今日的最大流速、最小流速;
  • 当前流速级别,是否超限?

我们以今日最大流速和最小流速为例,继续完善上边的预处理规则,增加一些代码,完整云函数如下:

module.exports = function (report_attributes) {    /**     * report_attributes:   上报的属性对象,同时作为函数返回值。函数中可更新属性对象。     */         if (report_attributes.analog_value !== undefined) {        // 得到电流信号 mA        var analog_ma = report_attributes.analog_value / 1000;        report_attributes.flow_speed = 14 +             (analog_ma - 4) / (20 - 4) * (140 - 14);                    // 调用 ThingsCloud 内置函数,读取设备当前属性,也就是上次上报后的数据        const attrs = Cloud.getCurrentAttributes();                // 记录本次上报的年月日        report_attributes.report_date = Cloud.Utils.dateFormat("YYYYMMDD");                if (report_attributes.report_date !== attrs.report_date) {            // 如果是新的一天首次上报            report_attributes.min_speed = report_attributes.flow_speed;            report_attributes.max_speed = report_attributes.flow_speed;        } else {            // 今日的非首次上报,计算最大值和最小值            report_attributes.min_speed = Math.min(attrs.min_speed, report_attributes.flow_speed);            report_attributes.max_speed = Math.max(attrs.max_speed, report_attributes.flow_speed);        }    }    return report_attributes;}

然后我们回到设备类型的功能定义,增加两个属性定义:

articles/2022/20221012165547_4d232d91760a61a01c85a9772a8b4568.png

采集一段时间后,可以看到计算出的今日最大流速和最小流速。

articles/2022/20221012170700_c769b2af7dc4b2016ab02bd3db766a38.png

编辑 App 设备界面

通过 ThingsCloud 的零代码用户应用平台,可以快速生成手机 App,为终端客户或者企业成员创建用户账号,分配设备给用户。

articles/2022/20221012163351_6698cb89e3e70df947359f568dba6461.png

articles/2022/20221012170027_4fb4faea2787d07129e848448c35ef0f.png

更多功能

设备接入成功后,您在 ThingsCloud 的探索之旅才刚刚开始,请浏览:

关于 ThingsCloud

ThingsCloud 是物联网设备统一接入平台,帮助企业在极短的时间内搭建个性化的物联网平台和应用,并适应不断变化的发展需求。

ThingsCloud 可接入各类网关,传感器、执行器、控制器、智能硬件等,实现数据采集、远程控制,数据分析、告警通知、智能联动。同时还可以零代码生成项目应用 SaaS 和用户应用 App,并开放 API 和实时消息,能够和其它系统集成对接。

通过使用 ThingsCloud,企业可以大大缩短搭建物联网系统的时间,节省软件开发费用,降低定制开发的风险,快速落地数字化和智能化项目。

立即搭建您的物联网平台?

接入设备,搭建可视化应用,仅需不到 30 分钟

进入控制台

更多博客

应用场景

全球 80% 的数据将来自物联网,不论是传统行业还是新兴行业,都将利用更多有价值的数据来驱动业务,实现降本增效。