成都众山科技有限公司官网 成都众山科技有限公司官网

028-64267900

了解更多众山讯息——多年的通信软硬件开发经验使公司在通信产品开发和技术服务方面有着丰富的经验和雄厚的实力

了解更多众山讯息

多年的通信软硬件开发经验使公司在通信产品开发和技术服务方面有着丰富的经验和雄厚的实力

在线咨询
首页 > 新闻资讯 > 行业资讯

Json网关用户Lua代码说明

时间:2021-06-29 作者:众山科技

  用户可以配置Lua代码来判断获取数据的大小,并根据上下限阈值执行不同的操作。

  示例:采集一个温湿度、光照度传感器数据,首先配置好相应的参数

Modbus参数

用户Lua代码说明

  配置的Lua代码:

  local temp=data.illumination if temp>1000 then ModbusToJson.count=ModbusToJson.count+1

  count_str=tostring(ModbusToJson.count) SHELL="@CS=count:"..count_str if

  ModbusToJson.count==5 then ModbusToJson.count=0 SHELL="@CS=High illumination

  warning!@D=1@DO1=1" end else SHELL="@CS=illumination

  normal@D=1@DO1=0@PUB=1" end

  注:如果Lua代码太长,配置的对话框也很长,可以直接点Enter回车配置

  正常模式Lua代码为(方便阅读):

Lua代码

  Lua代码实现效果:

  当光照度小于或等于1000时,串口打印illumination normal,关闭DO1,并且不往服务器上报数据;当光照度大于1000时,先判断次数,串口打印count数量,如果Lua脚本连续执行5次光照度都大于1000,串口打印High illumination warning!,DO1打开,并且将采集的数据立即上报到服务器。

  赋值语句为local y=data.x,其中x为功能标识符(必须为英文),y为获取的标识符值,后面就是判断变量的大小和执行相应的操作。所有操作可以通过SHELL脚本执行,具体请参考脚本编程手册。ModbusToJson.count 表示计数,如果采集很频繁告警以后就会一直上报数据,通过Modbus To Json.count计数可以设置上传周期。

  说明:

  ①data.x为获取功能标识符的值,标识符只能配置为英文

  ②Modbus转Json.count为计数的个数,初始为0,可以通过判断ModbusToJson.count数量设置告警周期

  ③@PUB指令表示是否立即发布数据到服务器,@PUB=1表示发送,@PUB=0或者不配置表示不发送,只有等到了上报周期才发送。

  ④“SHELL=”后面可以是所有支持的脚本指令

  ⑤当最后一条功能标识符的指令发送完成执行一次Lua代码,执行周期=变化周期*标识符数量

  一般流程为:先定义一个变量获取标识符值,设定变量阈值,判断大小,(bool值则判断真假,0为假,1为真),然后根据判断执行具体的操作,所有操作可以通过SHELL指令执行,比如打印信息,上报数据,开/关继电器等。