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