時(shí)間:2021-06-29 作者:眾山科技
用戶(hù)可以配置Lua代碼來(lái)判斷獲取數據的大小,并根據上下限閾值執行不同的操作。
示例:采集一個(gè)溫濕度、光照度傳感器數據,首先配置好相應的參數
配置的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代碼太長(cháng),配置的對話(huà)框也很長(cháng),可以直接點(diǎn)Enter回車(chē)配置
正常模式Lua代碼為(方便閱讀):
Lua代碼實(shí)現效果:
當光照度小于或等于1000時(shí),串口打印illumination normal,關(guān)閉DO1,并且不往服務(wù)器上報數據;當光照度大于1000時(shí),先判斷次數,串口打印count數量,如果Lua腳本連續執行5次光照度都大于1000,串口打印High illumination warning!,DO1打開(kāi),并且將采集的數據立即上報到服務(wù)器。
賦值語(yǔ)句為local y=data.x,其中x為功能標識符(必須為英文),y為獲取的標識符值,后面就是判斷變量的大小和執行相應的操作。所有操作可以通過(guò)SHELL腳本執行,具體請參考腳本編程手冊。ModbusToJson.count 表示計數,如果采集很頻繁告警以后就會(huì )一直上報數據,通過(guò)Modbus To Json.count計數可以設置上傳周期。
說(shuō)明:
?、賒ata.x為獲取功能標識符的值,標識符只能配置為英文
?、?/span>Modbus轉Json.count為計數的個(gè)數,初始為0,可以通過(guò)判斷ModbusToJson.count數量設置告警周期
?、跕PUB指令表示是否立即發(fā)布數據到服務(wù)器,@PUB=1表示發(fā)送,@PUB=0或者不配置表示不發(fā)送,只有等到了上報周期才發(fā)送。
?、堋癝HELL=”后面可以是所有支持的腳本指令
?、莓斪詈笠粭l功能標識符的指令發(fā)送完成執行一次Lua代碼,執行周期=變化周期*標識符數量
一般流程為:先定義一個(gè)變量獲取標識符值,設定變量閾值,判斷大小,(bool值則判斷真假,0為假,1為真),然后根據判斷執行具體的操作,所有操作可以通過(guò)SHELL指令執行,比如打印信息,上報數據,開(kāi)/關(guān)繼電器等。