当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:物联网技术涵盖了多种多样的形式,在工商业燃气无线抄表平台设计中,Redis技术有效分担了数据采集服务器的负荷,延长了电池的使用寿命,是一种高效、快速、简捷的新技术。

0 引 言

燃气在城市建设中的应用越来越广泛,用户种类和数量迅猛增长,用气结构呈现多元化。要实现对燃气的合理利用, 燃气的计量收费管理工作非常重要 [1]。燃气表用户大致分为工业用户与居民用户两种,由于两种燃气表的使用环境不同, 因而抄表方式也存在很大的差异,但大体可分为两种,即人工抄表和自动抄表。人工抄表耗时大,成本高,存在入户不及时、错抄、漏抄的可能,因此自动抄表大势所趋 [2]。随着无线通信行业技术的发展,越来越多的无线技术被应用到电力、水力和燃气的无线抄表系统中。

目前在民用燃气抄表系统中的无线采集方案多由无线燃气表、集中器、手持机及后台抄表系统组成。无线燃气表采用LoRa 或 ZigBee 无线扩频技术,将各住户家中的燃气数据定时上送到集中器,在集中器上安装 GPRS 通信模块,定时远传给后台抄表系统中。当抄表遇到故障时可根据后台抄表系统的提示定位到具体用户,再派专业的技术人员到现场通过手持机重抄或检查故障。这种抄表方式有效解决了燃气公司目前使用单纯基表带来的数据收集不及时、入户难、无法了解移表、拆表和窃盗气现象及难于保障安全监测等问题,相比传统的RS 485 集中自动抄表方式解决了布线困难的问题,非常适合部分年代久远小区的改造。

但工业用户不宜采取以上方式。对于民用无线抄表,小区住户集中,集中器的安装较方便,一般一个采集器可通过LoRa 无线连接至少 200 台燃气表,便于集中采集管理并减少通过GPRS 上送数据的流量。可对于各工业用燃气用户来说, 不具备地理上的集中优势,用户分散排布,无法集中安装燃气表。对于这种散落分布的工业燃气用户,可在燃气基表上加装GPRS 通信模块,使每个分散的工业用户作为独立个体直接上传数据到后台系统中,避免因地理位置分散,给抄表人员带来的极大不便,同时也节省了大量人力、物力和财力。

1 思想架构

1.1 系统架构设计

在工业燃气皮膜表基表上直接加装 GPRS通信模块后, 从燃气表上读取的数据可实时或定时上传到后台抄表平台系统中。抄表平台采用 B/S架构,任意联网的浏览器只要具有一定的权限都可进行访问操作。底层燃气表通过GPRS方式通信, 采用 TCP/IP互联网传输协议,应用层协议为《工业预付费远程表通讯协议》。后台软件系统分为数据采集服务前置端,客户操作服务端两大类。系统架构如图 1所示。

Redis技术在物联网工商业燃气无线抄表平台的设计与应用

无线燃气表每隔一小时会采样保存一个点,每天通过GPRS 定时上线一次,上线后将 24 个点的数据同时发送到数据采集服务器,服务器将数据直接写入后台数据库。但这种频繁的I/O 操作较耗时,抓取每个设备数据到数据成功写入数据库大约需要 3 s 的时间。随着在某个时间点上线设备数量增多,数据的延迟时间将增加,导致每个燃气表的维持在线时间加长,增加了燃气表的功耗,减少了电池的使用时间。频繁更换电池不仅增加了使用成本,也为用户带来了不必要的麻烦,此时考虑将数据采集服务器部分的数据库交互部分与采集部分独立开来,以分担数据采集服务器的负担,Redis 技术因此被引入。

1.2 Redis简介及特性

Redis(Remote Dictionary Server)基于远程字典服务, 是非关系型数据库(Not Only SQL,NoSQL)产品之一,它支持网络、key-value 模型等存储系统, 可用作数据库、高速缓存和消息队列代理 [3]。Redis 的出现,很大程度补偿了memcached key/value 存储的不足,在部分场合可对关系数据库起到很好的补充作用。其支持的存储 value 类型包括 string(字符串),list(链表),set(无序集合),zset(sorted set 有序集合)和 hash,也可将 Redis 看成一个数据结构服务器。这些数据类型都支持 push/pop,add/remove 及交集、并集和差集运算,Redis 支持各种不同方式的排序。数据缓存在内存中, 可周期性地把更新的数据写入磁盘或把修改操作写入追加的记录文件,并实现 master-slave(主从)同步。它提供了 Java, C/C++,C#,PHP,JavaScript,Perl,Object-C,Python, Ruby,Erlang 等客户端,使用方便。

Redis 是基于 C/C++ 开发的一款 K-V 数据库,特点是运行快,使用类 Telnet 协议 [4]。

Redis 具有如下特性 :

(1)性能高。Redis 读的速度是 110 000 次 /s,写的速度是 81 000 次 /s ;

(2)丰富的数据类型。Redis 支持二进制案例的 Strings,Lists,Hashes,Sets 及 Ordered Sets 数据类型操作 ;

(3)Redis 的所有操作都是原子性的,同时 Redis 还支持对几个操作全并后的原子性执行 ;

(4)丰富的特性。Redis 还支持 publish/subscribe(发布订阅模式),通知,key 过期等。

1.3 Redis的使用

安装好 Redis 数据服务器,确定好通道名称,采用发布 / 订阅方式,即数据采集服务器通过 Redis 的发布方式将采集的数据发布到 Redis 数据服务器中,任务完成即返回。客户Web 访问服务器通过订阅方式将接收到的发布数据批量写入数据库中,实现整体数据采集,有效分担数据采集服务器的工作,实现了分布式架构。在当前的物联网大环境下,Redis 技术突显了分布式架构的技术优势。

2 实现方法

本次设计的数据采集服务器软件平台用 Java 语言编程实现,TCP/IP 部分采用开源的 Mina 框架实现了多线程的整合调度,再配合 Redis 技术,采用 JSON 格式发布 / 订阅的消息,规范统一。

连接 Redis 服务器代码如下:

Public static void ConnectRedis()

{

if(jedisPool!=null)

{

jedisPool.destroy();

jedisPool=null ;

}

Jed isPoolCon f ig m Jed isPoolCon f ig = new

JedisPoolConfig();

// 最大空闲连接数,默认 8 个

mJedisPoolConfig.setMaxIdle(8);

// 可用连接实例的最大数目,默认值为 8

// 如果赋值为 -1,则表示不限制

mJedisPoolConfig.setMaxTotal(GloableData.

RedisConnectCount);

// 等待可用连接的最大时间,单位 ms,默

认值为 -1,表示永不超时。如果超过等待时间,则直接抛出

JedisConnectionException

mJedisPoolConfig.setMaxWaitMillis(10000);

// 在 borrow 1 个 jedis 实例时, 是否提前进行

validate 操作 ;如果为 true,则得到的 jedis 实例均是可用的 ;

mJedisPoolConfig.setTestOnBorrow(true);

mJedisPoolConfig.setBlockWhenExhausted

(true);

mJedisPoolConfig.setTestOnReturn(true);

mJedisPoolConfig.setTimeBetweenEvictionRuns

Millis(30000);

jedisPool=newJedisPool(mJedisPoolConfig,

GloableData.RedisAddress, GloableData.RedisPort);

}

将发布的数据发送到 Redis 服务器上的代码如下;

Public static void PublishDataTORedis(String strData)

{

Jedisjedis = null ;

try

{

jedis = jedisPool.getResource();

String strChannel=GloableData.RedisChannelName ;

jedis.publish(strChannel, strData);

nRedisCount++ ;

}

catch(Exception e)

{

logger.info("Redis 发送异常:{}",Common.

getStackTree(e));

jedisPool.returnBrokenResource(jedis);

// 归还异常的 jedis 对象

}

finally

{

// 返还到连接池

close(jedis);

}

}

从上述代码中可以看出 Redis 的使用非常简便,大大缩短了开发周期并有效分担了数据采集服务器的工作负荷。采用 Redis 技术后,每个燃气表的采集时间缩短到 500 ms以内,燃气表确认服务器收到数据后立刻下线,有效节省了电池电量,收到了良好的效果。

3 结 语

无线燃气抄表技术已被广泛用于各燃气公司,数据上送到平台后,可扩展的业务,如统计查询、对比分析、线上线下预付费等,均可利用互联网方式进行,使用户有更好的体验和更灵活的操作方式。

本文提到的 Redis 技术已经成功应用到无锡燃气公司对部分工商业燃气用户的改造项目中,采用华润物联网软件平台实现了对燃气用户数据的读取和统计,具有广阔的应用前景。





本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭