{"id":51496,"date":"2026-08-04T20:16:18","date_gmt":"2026-08-04T12:16:18","guid":{"rendered":"https:\/\/www.modbus.cn\/51496.html"},"modified":"2026-08-04T20:16:18","modified_gmt":"2026-08-04T12:16:18","slug":"visualhmi-lua-api-%e5%a4%a7%e5%85%a8%ef%bc%9a%e5%9b%9e%e8%b0%83-%e9%80%9a%e4%bf%a1-%e5%af%84%e5%ad%98%e5%99%a8%e8%af%bb%e5%86%99%e5%87%bd%e6%95%b0%e9%80%9f%e6%9f%a5%e8%a1%a8","status":"publish","type":"post","link":"http:\/\/www.modbus.cn\/en\/51496.html","title":{"rendered":"VisualHMI Lua API \u5927\u5168\uff1a\u56de\u8c03\/\u901a\u4fe1\/\u5bc4\u5b58\u5668\u8bfb\u5199\u51fd\u6570\u901f\u67e5\u8868"},"content":{"rendered":"<p>\u8fd9\u662f VisualHMI LUA \u7684<strong>API \u603b\u8868<\/strong>\uff1a\u7cfb\u7edf\u56de\u8c03\u3001\u901a\u4fe1\u63a7\u5236\u3001\u5bc4\u5b58\u5668\u8bfb\u5199\u3001\u5b57\u7b26\u4e32\u3001\u4e32\u53e3\u3001\u5b9a\u65f6\u5668\u3001\u753b\u56fe\u3001\u6587\u4ef6\u3001\u6570\u636e\u5e93\u5168\u5957\u51fd\u6570\u3002\u5f00\u53d1\u65f6\u67e5\u8fd9\u4e00\u7bc7\u5c31\u591f\u3002<\/p>\n<h2>1. \u7cfb\u7edf\u56de\u8c03\u51fd\u6570<\/h2>\n<table border=\"1\" cellpadding=\"6\" style=\"border-collapse:collapse;font-size:14px\">\n<tr>\n<th>\u51fd\u6570<\/th>\n<th>\u89e6\u53d1\u65f6\u673a<\/th>\n<\/tr>\n<tr>\n<td>on_init()<\/td>\n<td>\u4e0a\u7535\u52a0\u8f7d\u540e\u6267\u884c\u4e00\u6b21<\/td>\n<\/tr>\n<tr>\n<td>on_run(screen)<\/td>\n<td>\u4e3b\u5faa\u73af\u5468\u671f\u8c03\u7528\uff08set_run_cycle \u8bbe\u5468\u671f\uff09<\/td>\n<\/tr>\n<tr>\n<td>on_update(slave,vtype,addr)<\/td>\n<td>\u53d8\u91cf\u88ab\u4fee\u6539\u65f6\uff08\u7528\u6237\u64cd\u4f5c\u6216\u811a\u672c\uff09<\/td>\n<\/tr>\n<tr>\n<td>on_screen_change(screen)<\/td>\n<td>\u753b\u9762\u5207\u6362\u5b8c\u6210\u540e<\/td>\n<\/tr>\n<tr>\n<td>on_press(state,x,y)<\/td>\n<td>\u89e6\u6478\u4e8b\u4ef6\uff080\u62ac\u8d77\/1\u6309\u4e0b\/2\u957f\u6309\uff09<\/td>\n<\/tr>\n<tr>\n<td>on_usb_inserted(driver)\/on_usb_removed()<\/td>\n<td>U \u76d8\u63d2\u62d4<\/td>\n<\/tr>\n<tr>\n<td>on_sd_inserted(dir)\/on_sd_removed()<\/td>\n<td>SD \u5361\u63d2\u62d4<\/td>\n<\/tr>\n<tr>\n<td>on_parse_timestamp(screen,control,timestamp)<\/td>\n<td>\u65f6\u95f4\u6233\u89e3\u6790\uff08\u6570\u636e\u8bb0\u5f55\u63a7\u4ef6\uff09<\/td>\n<\/tr>\n<\/table>\n<h2>2. \u901a\u4fe1\u63a7\u5236<\/h2>\n<table border=\"1\" cellpadding=\"6\" style=\"border-collapse:collapse;font-size:14px\">\n<tr>\n<th>\u51fd\u6570<\/th>\n<th>\u8bf4\u660e<\/th>\n<\/tr>\n<tr>\n<td>set_notify(enable)<\/td>\n<td>\u901a\u4fe1\u5e27\u6536\u53d1\u901a\u77e5\u5f00\u5173\uff1a1=\u4f7f\u80fd on_cmd_resp\uff0c0=\u5173\u95ed<\/td>\n<\/tr>\n<tr>\n<td>select_slave(slave_id)<\/td>\n<td>\u9009\u62e9\u5f53\u524d\u4ece\u673a\uff080 \u8d77\uff09\uff1b\u914d\u5408 set_slave_site \u6620\u5c04\u5b9e\u9645\u7ad9\u53f7<\/td>\n<\/tr>\n<tr>\n<td>set_slave_site(idx, slave_id)<\/td>\n<td>\u8bbe\u7f6e\u4ece\u673a\u5e8f\u53f7\u4e0e\u7ad9\u53f7\u6620\u5c04<\/td>\n<\/tr>\n<tr>\n<td>set_endian(en)<\/td>\n<td>\u5b57\u8282\u5e8f\uff1a0=\u5c0f\u7aef\uff08\u9ed8\u8ba4\uff09\uff0c1=\u5927\u7aef<\/td>\n<\/tr>\n<tr>\n<td>create_resp_que()<\/td>\n<td>\u521b\u5efa\u54cd\u5e94\u961f\u5217\uff0c\u4f7f\u80fd on_cmd_resp \u56de\u8c03<\/td>\n<\/tr>\n<tr>\n<td>start_read(index,vtype,addr,quantity,cycle,cycle_run,mode)<\/td>\n<td>\u540e\u53f0\u81ea\u52a8\u8f6e\u8be2\u8bfb\u4ece\u673a\u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>stop_read(index)<\/td>\n<td>\u505c\u6b62\u6307\u5b9a\u7d22\u5f15\u7684\u8f6e\u8be2<\/td>\n<\/tr>\n<tr>\n<td>stop_all_read()<\/td>\n<td>\u505c\u6b62\u5168\u90e8\u8f6e\u8be2<\/td>\n<\/tr>\n<tr>\n<td>set_auto_read(en)<\/td>\n<td>0=\u811a\u672c\u63a7\u5236\u8bfb\u53d6\uff08\u914d start_read\uff09\uff0c1=\u81ea\u52a8<\/td>\n<\/tr>\n<\/table>\n<h3>2.1 start_read \u53c2\u6570<\/h3>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px\">start_read(index, vtype, addr, quantity, cycle, cycle_run, mode)\n-- index: \u8f6e\u8be2\u4efb\u52a1\u7d22\u5f15(0~N)\n-- vtype: \u53d8\u91cf\u7c7b\u578b VT_4x\/VT_0x \u7b49\n-- addr: \u8d77\u59cb\u5730\u5740\n-- quantity: \u6570\u91cf\n-- cycle: \u8f6e\u8be2\u5468\u671f(ms)\n-- cycle_run: 0=\u5b9a\u65f6\u5668\u89e6\u53d1, 1=\u753b\u9762\u89e6\u53d1\n-- mode: 1=\u81ea\u52a8\u540e\u53f0\u8f6e\u8be2(\u9ed8\u8ba4)<\/pre>\n<p>\u4f8b\uff1a<code>start_read(1, VT_4x, 0x2000, 10, 3, 2)<\/code>\u2014\u2014\u7d22\u5f15 1\u3001\u4fdd\u6301\u5bc4\u5b58\u5668 0x2000 \u8d77 10 \u4e2a\u3001\u5468\u671f 3ms\u3002<\/p>\n<h2>3. \u5bc4\u5b58\u5668\u8bfb\u5199 API\uff08\u901f\u67e5\uff09<\/h2>\n<table border=\"1\" cellpadding=\"6\" style=\"border-collapse:collapse;font-size:14px\">\n<tr>\n<th>\u51fd\u6570<\/th>\n<th>\u8303\u56f4<\/th>\n<th>\u5730\u5740\u8de8\u5ea6<\/th>\n<\/tr>\n<tr>\n<td>set_bit \/ get_bit<\/td>\n<td>\u4f4d\uff080\/1\uff09<\/td>\n<td>1 \u4f4d<\/td>\n<\/tr>\n<tr>\n<td>set_uint16 \/ get_uint16<\/td>\n<td>0~65535<\/td>\n<td>1 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_int16 \/ get_int16<\/td>\n<td>-32768~32767<\/td>\n<td>1 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_uint32 \/ get_uint32<\/td>\n<td>0~4294967295<\/td>\n<td>2 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_int32 \/ get_int32<\/td>\n<td>-2^31~2^31-1<\/td>\n<td>2 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_uint64 \/ get_uint64<\/td>\n<td>0~2^64-1<\/td>\n<td>4 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_int64 \/ get_int64<\/td>\n<td>-2^63~2^63-1<\/td>\n<td>4 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_float \/ get_float<\/td>\n<td>IEEE754 \u5355\u7cbe\u5ea6<\/td>\n<td>2 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_double \/ get_double<\/td>\n<td>IEEE754 \u53cc\u7cbe\u5ea6<\/td>\n<td>4 \u5bc4\u5b58\u5668<\/td>\n<\/tr>\n<tr>\n<td>set_string \/ get_string<\/td>\n<td>\u6700\u5927 2048 \u5b57\u8282<\/td>\n<td>\u5b57\u8282\u6570\/2<\/td>\n<\/tr>\n<tr>\n<td>set_uint16_ex<\/td>\n<td>\u6279\u91cf\u5199\uff0c\u6700\u591a 120 \u4e2a<\/td>\n<td>\u8fde\u7eed<\/td>\n<\/tr>\n<tr>\n<td>set_array<\/td>\n<td>\u6279\u91cf\u5199 Lua \u8868\uff0c\u6700\u591a 120 \u5b57<\/td>\n<td>\u8fde\u7eed<\/td>\n<\/tr>\n<\/table>\n<p>vtype \u53d6\u503c\uff08Modbus\uff09\uff1aVT_0x=10\uff08\u7ebf\u5708\uff09\u3001VT_1x=11\uff08\u8f93\u5165\u70b9\uff09\u3001VT_3x=12\uff08\u8f93\u5165\u5bc4\u5b58\u5668\uff09\u3001VT_4x=13\uff08\u4fdd\u6301\u5bc4\u5b58\u5668\uff09\u3001VT_LW=1\uff08\u5185\u90e8\u53d8\u91cf\uff09\u3001VT_RW=2\uff08\u6389\u7535\u4fdd\u6301\uff09\u3002FX3U \u53e6\u6709 VT_X\/VT_Y\/VT_S\/VT_M\/VT_D\/VT_T\/VT_C\u3002<\/p>\n<h2>4. \u5176\u4ed6\u5e38\u7528<\/h2>\n<ul>\n<li><code>get_date_time()<\/code>\uff1a\u8bfb\u53d6\u7cfb\u7edf\u65f6\u95f4\uff08\u5e74\/\u6708\/\u65e5\/\u65f6\/\u5206\/\u79d2\/\u661f\u671f\uff09<\/li>\n<li><code>delay_ms(ms)<\/code>\uff1a\u5ef6\u65f6\uff08\u614e\u7528\uff0c\u963b\u585e\u4e3b\u5faa\u73af\uff09<\/li>\n<li><code>feed_dog()<\/code>\uff1a\u5582\u770b\u95e8\u72d7\uff08\u8d85\u957f\u4efb\u52a1\u91cc\u9632\u590d\u4f4d\uff09<\/li>\n<li><code>redraw()<\/code>\uff1a\u5f3a\u5236\u5237\u65b0\u753b\u9762\uff08\u89e6\u53d1 on_draw\uff09<\/li>\n<li><code>set_pen_color(color)<\/code>\uff1a\u8bbe\u7f6e\u753b\u7b14\u989c\u8272\uff08RGB565\uff09\uff0c\u4f9b on_draw \u7ed8\u56fe\u7528<\/li>\n<li><code>print(...)<\/code>\uff1a\u8c03\u8bd5\u8f93\u51fa\uff08\u865a\u62df\u5c4f\u8bbe\u7f6e\u7a97\u53e3\/\u5b9e\u4f53\u5c4f\u8c03\u8bd5\u53e3\uff09<\/li>\n<li><code>pcall(f)<\/code>\uff1a\u4fdd\u62a4\u8c03\u7528\uff0c\u6355\u83b7\u8fd0\u884c\u65f6\u9519\u8bef\u4e0d\u5d29\u811a\u672c<\/li>\n<\/ul>\n<p style=\"text-align:center\"><img decoding=\"async\" src=\"https:\/\/www.modbus.cn\/wp-content\/uploads\/2026\/08\/visualhmi\/lu000a_1.png\" style=\"max-width:100%;border:1px solid #eee;margin:8px 0\" loading=\"lazy\" title=\"VisualHMI Lua API \u5927\u5168\uff1a\u56de\u8c03\/\u901a\u4fe1\/\u5bc4\u5b58\u5668\u8bfb\u5199\u51fd\u6570\u901f\u67e5\u8868\u63d2\u56fe\" alt=\"VisualHMI Lua API \u5927\u5168\uff1a\u56de\u8c03\/\u901a\u4fe1\/\u5bc4\u5b58\u5668\u8bfb\u5199\u51fd\u6570\u901f\u67e5\u8868\u63d2\u56fe\" \/><\/p>\n<div class=\"tip\" style=\"border-left:4px solid #f7941e;padding:10px 14px;background:#fff8ef;margin:14px 0\">API \u540d\u5b57<strong>\u5927\u5c0f\u5199\u654f\u611f\u3001\u4e0b\u5212\u7ebf\u4e0d\u80fd\u7701<\/strong>\uff08set_uint16 \u5199\u6210 setuint16 \u76f4\u63a5 nil \u62a5\u9519\uff09\u3002on_cmd_resp \u662f\u901a\u4fe1\u56de\u8c03\u6838\u5fc3\uff1aset_notify(1)+create_resp_que() \u4f7f\u80fd\u540e\uff0c\u6bcf\u5e27\u54cd\u5e94\u90fd\u4f1a\u56de\u8c03\uff0c\u914d start_read \u505a\u811a\u672c\u4e3b\u5bfc\u7684\u901a\u4fe1\u3002<\/div>\n<p style=\"color:#888;font-size:13px\">\u6574\u7406\u81ea \u5e7f\u5dde\u5927\u5f69\u79d1\u6280 VisualHMI \u5f00\u53d1\u6587\u6863\uff08hmi-doc.gz-dc.com\uff09LUA \u6559\u7a0b\u300cLua API\u300d\uff0c\u7248\u6743\u5f52\u5927\u5f69\u79d1\u6280\u6240\u6709\u3002<\/p>\n<span id=\"magicpostMarker\"><\/span>","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u662f VisualHMI LUA \u7684API \u603b\u8868\uff1a\u7cfb\u7edf\u56de\u8c03\u3001&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"categories":[3131,3126],"tags":[3320,3321,3323,3322,3147,3134,3324],"class_list":["post-51496","post","type-post","status-publish","format-standard","hentry","category-hmi-lua","category-hmi-dev","tag-lua-api","tag-on_cmd_resp","tag-on_usb_inserted","tag-set_endian","tag-start_read","tag-visualhmi","tag-3324"],"_links":{"self":[{"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/51496","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/comments?post=51496"}],"version-history":[{"count":0,"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/51496\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/media?parent=51496"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/categories?post=51496"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/tags?post=51496"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}