"# VisualHMI \u5b9a\u65f6\u5668\uff1astart_timer\/on_timer \u4e0e\u5012\u8ba1\u65f6\u5b8c\u6574\u6848\u4f8b\n\n> 2026-08-04 | 2026-08-04\n> http:\/\/www.modbus.cn\/en\/51500.html\n\n**LUA \u811a\u672c, \u4e32\u53e3\u5c4f\/HMI \u5f00\u53d1**\n\n---\n\nVisualHMI \u63d0\u4f9b **32 \u4e2a\u8f6f\u4ef6\u5b9a\u65f6\u5668**\uff08\u7d22\u5f15 0~31\uff09\uff0c\u914d\u5408 on_timer \u56de\u8c03\u5b9e\u73b0\u5ef6\u65f6\u3001\u5468\u671f\u3001\u5012\u8ba1\u65f6\u903b\u8f91\u3002\u6ce8\u610f\uff1a\u8f6f\u4ef6\u5b9a\u65f6\u5668\u7cbe\u5ea6\u53d7\u7cfb\u7edf\u8d1f\u8f7d\u5f71\u54cd\uff0c\u4e0d\u9002\u5408\u786c\u5b9e\u65f6\u63a7\u5236\u3002\n\n## 1. API\n\n\u51fd\u6570\u8bf4\u660estart_timer(timer_id, timeout, countdown, repeat)\u542f\u52a8\u5b9a\u65f6\u5668\uff1atimeout \u5355\u4f4d ms\uff08\u6700\u5c0f\u7ea6 10~20ms\uff09\uff1bcountdown 0=\u987a\u8ba1\u65f6\/1=\u5012\u8ba1\u65f6\uff08\u53ea\u5f71\u54cd\u663e\u793a\u8c03\u8bd5\uff0c\u4e0d\u6539\u53d8 on_timer \u884c\u4e3a\uff09\uff1brepeat 0=\u65e0\u9650\u91cd\u590d\/N=\u89e6\u53d1 N \u6b21\u540e\u81ea\u52a8\u505c\u6b62stop_timer(timer_id)\u7acb\u5373\u505c\u6b62\u6307\u5b9a\u5b9a\u65f6\u5668on_timer(timer_id)\u8d85\u65f6\u7edf\u4e00\u56de\u8c03\uff0c\u7528 timer_id \u533a\u5206\u5e76\u53d1\u5b9a\u65f6\u5668get_timer_value(timer_id)\u83b7\u53d6\u5f53\u524d\u8ba1\u65f6\u503c\uff08ms\uff09\uff0c\u652f\u6301\u987a\/\u5012\u8ba1\u65f6\n\n![\u5b9a\u65f6\u5668API](https:\/\/www.modbus.cn\/wp-content\/uploads\/2026\/08\/visualhmi\/lu004_1.png)\n\n## 2. \u5012\u8ba1\u65f6\u6848\u4f8b\uff08\u5b8c\u6574\uff09\n\n\u573a\u666f\uff1a\u8bbe\u5b9a\u65f6\u957f\uff08\u5c0f\u65f6+\u5206\u949f\uff09\uff0c\u6309\u542f\u52a8\u952e\u5f00\u59cb\u5012\u8ba1\u65f6\uff0c\u5269\u4f59\u65f6\u95f4\u663e\u793a\uff0c\u5230 0 \u81ea\u52a8\u590d\u4f4d\u5e76\u53d1\u6307\u4ee4\u7ed9\u4e3b\u677f\u3002\n\n**\u753b\u9762\u914d\u7f6e**\uff1a\u4f4d\u72b6\u6001\u6307\u793a\u706f LW1002\uff08\u5207\u6362\u5f00\u5173\uff09\u63a7\u5236\u542f\u505c\uff1b\u6eda\u8f6e\u63a7\u4ef6 LW1000\uff08\u65f6\uff0c24 \u9879\u5019\u9009 0~23\uff09\u3001LW1001\uff08\u5206\uff09\u8bbe\u65f6\u957f\uff1b\u6587\u672c\u63a7\u4ef6 LW1010 \u663e\u793a\u5012\u8ba1\u65f6\u3002\n\n**LUA**\uff1a\n\n```\n_TIMER_REPEAT_ = 0  -- \u603b\u79d2\u6570\n_TIMER_CNT_    = 0  -- \u5df2\u8ba1\u79d2\u6570\n\nfunction on_update(slave, vtype, addr)\n  if vtype == VT_LW then\n    if addr == 0x1002 then\n      local sw = get_uint16(VT_LW, 0x1002)\n      local hour = get_uint16(VT_LW, 0x1000)\n      local minu = get_uint16(VT_LW, 0x1001)\n      if sw == 1 and _TIMER_REPEAT_ &gt; 0 then\n        _TIMER_REPEAT_ = hour*3600 + minu*60\n        stop_timer(0)\n        start_timer(0, 1000, 0, _TIMER_REPEAT_)  -- \u6bcf\u79d2\u89e6\u53d1, \u5171repeat\u6b21\n      else\n        stop_timer(0)\n        _TIMER_REPEAT_ = hour*3600 + minu*60\n      end\n    end\n  end\nend\n\nfunction on_timer(timer_id)\n  if timer_id == 0 then\n    _TIMER_CNT_ = _TIMER_CNT_ + 1\n    local remain = _TIMER_REPEAT_ - _TIMER_CNT_\n    local h = math.floor(remain\/3600)\n    local m = math.floor((remain%3600)\/60)\n    local s = remain%60\n    set_string(VT_LW, 0x1010, string.format(\"%02d:%02d:%02d\", h, m, s))\n    if remain &lt;= 0 then\n      stop_timer(0)\n      set_uint16(VT_LW, 0x1002, 0x00)  -- \u590d\u4f4d\u6309\u94ae\n      set_uint16(VT_LW, 0x1003, 0x01)  -- \u53d1\u6307\u4ee4\u7ed9\u4e3b\u677f\n    end\n  end\nend\n```\n\n![\u5012\u8ba1\u65f6\u8fd0\u884c](https:\/\/www.modbus.cn\/wp-content\/uploads\/2026\/08\/visualhmi\/lu004_2.png)\n\n\u5b9a\u65f6\u5668\u4e09\u5751\uff1a**\u2460timeout \u6700\u5c0f 10~20ms\uff0c\u8bbe 1ms \u4e0d\u4f1a\u66f4\u51c6\uff1b\u2461countdown \u53c2\u6570\u53ea\u5f71\u54cd get_timer_value \u7684\u663e\u793a\u65b9\u5411\uff0con_timer \u89e6\u53d1\u903b\u8f91\u4e00\u6837\uff1b\u2462\u8f6f\u4ef6\u5b9a\u65f6\u5668\u53d7\u7cfb\u7edf\u8d1f\u8f7d\u5f71\u54cd\uff0c\u8981\u505a\u7cbe\u786e\u65f6\u5e8f\uff08\u5982\u7535\u673a\u63a7\u5236\uff09\u522b\u6307\u671b\u5b83**\u3002\n\n\u6574\u7406\u81ea \u5e7f\u5dde\u5927\u5f69\u79d1\u6280 VisualHMI \u5f00\u53d1\u6587\u6863\uff08hmi-doc.gz-dc.com\uff09LUA \u6559\u7a0b\u300c\u5b9a\u65f6\u5668\u300d\uff0c\u7248\u6743\u5f52\u5927\u5f69\u79d1\u6280\u6240\u6709\u3002\n\n---\n*modbus.cn*\n"