一种基于Lua和uloop的标准Modbus传感器读取方法与流程

文档序号:36735214发布日期:2024-01-16 12:48阅读:25来源:国知局
一种基于Lua和uloop的标准Modbus传感器读取方法与流程

本发明涉及传感器读写,特别是一种基于lua和uloop的标准modbus传感器读取方法。


背景技术:

1、现有技术通过传感器数据读取组件,发送modbus传感器读取命令,按照编码解析数据,再数据传送物联网平台;导致现有技术具有如下缺点:反复适配;当出现新的传感器的时候难免要出现新的适配,那这个过程可能就要涉及到一大段代码的修改和整理。比如:传感器的数据采集引发的接口修改或者,传感器信息重新写死。代码庞杂;如果适配新的传感器,无疑会导致代码库会越来越庞大,不适合管理和修改。重复编译;现有的程序结构,当适配新的传感器时,无疑重新编码,然后就会重复编译下载。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种基于lua和uloop的标准modbus传感器读取方法,通过lua脚本解析传感器数据,当后续新的标准modbus传感器接上时,只需要修改配置文件和修改传感器的解析脚本。无需重复编译和修改源码。

2、为实现上述目的,本发明采用如下技术方案:一种基于lua和uloop的标准modbus传感器读取方法,包括以下步骤:

3、步骤1:前端配置丙面提交配置信息至后端服务;

4、步骤2:修改配置文件并重新启动modubs通用组作;

5、步骤3:获取传感器原始数据;

6、步骤4:调用lua脚本解析具体数据;

7、步骤5:调用ubus广播传送至mqtt组件至物联网平台。

8、在一较佳的实施例中,在网页配置文件的设置上,采用luci框架编写代码,通过openwrt的mvc架构完成组件的前后端服务;定义前端服务接口,通过entry函数,定义服务的地址,跳转函数,服务名称,优先级,方便用户点击访问。

9、在一较佳的实施例中,定义网页内容,通过map组件定义网页的数据框、下拉框选项和文本框,本网页采用lua脚本编写。

10、在一较佳的实施例中,在后端服务上,调用luci框架中的http组件完成修改配置文件的请求,并通过util组件重启modbus服务,使得组件服务重新读取配置文件采集数据;在配置文件中,定义传感器所属串口、从机地址、读使能及采集周期;也定义传感器占用串口的属性。

11、在一较佳的实施例中,在modbus通用组件的设计上,采用uloop框架、ubus总线、libmodbus开源库和uci配置框架接口;采用uci统一配置接口获取配置文件信息,写入组件的结构体当中;通过libmodbus开源库,注册一个modbus_rtu主控制器,调用modbus_new_rtu函数,创建一个上下文环境,设置控制的串口属性,并建立连接;通过openwrt自带的ubus接口,,创建ubus对象,加入ubus总线,方便后续传感器的数据流动;

12、通过uloop定时器启动数据采集服务,系统判断timeout参数不大于1时,开启采集模式;系统查询传感器链表,获取传感器的从机地址和读取的寄存器地址,并调用modbus_read_registers函数完成采集。

13、在一较佳的实施例中,在脚本中定义传感器的数据处理方法;在获取到传感器数据后,根据配置文件中的传感器数据处理的方法,来便捷处理传感器数据;

14、通过lua_getglobal加载传感器数据处理函数名称,通过lua_pushnumber加载要传入的参数,通过lua_pcall进行lua函数处理;

15、调用传感器数据处理函数,解析脚本;通过cjson模块组成json的数据包。

16、在一较佳的实施例中,解析数据完成后,通过ubus广播发向其它组件,方便数据上传网络和数据的其它方向处理。

17、与现有技术相比,本发明具有以下有益效果:

18、1.通过lua脚本解析传感器数据,当后续新的标准modbus传感器接上时,只需要修改配置文件和修改传感器的解析脚本。无需重复编译和修改源码。

19、2.通过配置文件定义modbus传感器的所有信息

20、3.通过设备web网页修改配置文件。



技术特征:

1.一种基于lua和uloop的标准modbus传感器读取方法,其特征在于包括以下步骤:

2.根据权利要求1所述的一种基于lua和uloop的标准modbus传感器读取方法,其特征在于,在网页配置文件的设置上,采用luci框架编写代码,通过openwrt的mvc架构完成组件的前后端服务;定义前端服务接口,通过entry函数,定义服务的地址,跳转函数,服务名称,优先级,方便用户点击访问。

3.根据权利要求1所述的一种基于lua和uloop的标准modbus传感器读取方法,其特征在于,定义网页内容,通过map组件定义网页的数据框、下拉框选项和文本框,本网页采用lua脚本编写。

4.根据权利要求1所述的一种基于lua和uloop的标准modbus传感器读取方法,其特征在于,在后端服务上,调用luci框架中的http组件完成修改配置文件的请求,并通过util组件重启modbus服务,使得组件服务重新读取配置文件采集数据;在配置文件中,定义传感器所属串口、从机地址、读使能及采集周期;也定义传感器占用串口的属性。

5.根据权利要求1所述的一种基于lua和uloop的标准modbus传感器读取方法,其特征在于,在modbus通用组件的设计上,采用uloop框架、ubus总线、libmodbus开源库和uci配置框架接口;采用uci统一配置接口获取配置文件信息,写入组件的结构体当中;通过libmodbus开源库,注册一个modbus_rtu主控制器,调用modbus_new_rtu函数,创建一个上下文环境,设置控制的串口属性,并建立连接;通过openwrt自带的ubus接口,,创建ubus对象,加入ubus总线,方便后续传感器的数据流动;

6.根据权利要求1所述的一种基于lua和uloop的标准modbus传感器读取方法,其特征在于,在脚本中定义传感器的数据处理方法;在获取到传感器数据后,根据配置文件中的传感器数据处理的方法,来便捷处理传感器数据;

7.根据权利要求1所述的一种基于lua和uloop的标准modbus传感器读取方法,其特征在于,解析数据完成后,通过ubus广播发向其它组件,方便数据上传网络和数据的其它方向处理。


技术总结
本发明提供一种基于Lua和uloop的标准Modbus传感器读取方法,包括以下步骤:步骤1:前端配置丙面提交配置信息至后端服务;步骤2:修改配置文件并重新启动modubs通用组作;步骤3:获取传感器原始数据;步骤4:调用lua脚本解析具体数据;步骤5:调用ubus广播传送至MQTT组件至物联网平台。本发明通过lua脚本解析传感器数据,当后续新的标准modbus传感器接上时,只需要修改配置文件和修改传感器的解析脚本。无需重复编译和修改源码。

技术研发人员:张志远,李自强,詹家坤,王知军,陈友武,黄祖海
受保护的技术使用者:福建中锐网络股份有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1