一、適合范圍
本文檔適用于VisualHMI平臺,Lua腳本語言為V5.3版本,配合工程可以完成大部分的內部邏輯處理
二、概述
VisualHMI的Lua腳本支持32個定時器(軟件定時器),索引從0~31。當開啟的定時器,超時溢出后,觸發定時器回調,在回調函數里面執行相應操作。
API說明
1.start_timer(timer_id,timeout,countdown,repeat)
啟動定時器,超時后系統自動調用 on_timer(timer_id)
? timer_id:定時器 ID, 0~31
? timeout:超時時間, 單位毫秒
? countdown:0 順計時, 1 倒計時
? repeat:重復次數, 0 表示無限重復
2.stop_timer(timer_id)
停止定時器
? timer_id:定時器ID,0~31,和start_timer搭配使用
3.on_timer(timer_id)
定時器超時回調函數
? timer_id:定時器ID,0~31
4.重點:on_timer()是系統函數,使用時候,主動觸發
三、教程實現
功能實現
首先建立一個HMI工程以DC80480M070為例。如3-1所示
圖3-1 新建工程
控件配置
先添加一個位狀態指示燈,關聯LW1002寄存器,用于控制定時器的開啟、關閉。再添加兩個滾輪控件,分別關聯LW1000、LW1001寄存器,用于定時的時間設置,以“時”控件為例,勾上控件權限,設置為按下開關按鈕后,禁止滾輪滑動。最后添加一個文本控件關聯LW1010寄存器,用于顯示倒計時。
圖3-2 控件配置
Lua腳本預覽
1.點擊位狀態指示燈,當值等于1時候,觸發定時器開啟;值為0時候,關閉定時器。同時,獲取倒計時的時間,并復位相關變量和控件值,代碼如下所示:
2. 定時器每秒回調觸發on_timer(...),一共觸發TIMER_REPEAT次,累計回調的次數TIMER_CNT,并計算出剩余的次數;當TIMER_CNT和TIMER_REPEAT相等時,表示定時結束,發送指令到PLC設備,代碼如下所示:
地址:深圳市龍崗區坂田街道深匯大廈1棟1108
郵箱:fujq@gz-dc.com
銷售與技術支持:付先生 13828461018