{"id":51596,"date":"2026-08-04T21:03:01","date_gmt":"2026-08-04T13:03:01","guid":{"rendered":"https:\/\/www.modbus.cn\/51596.html"},"modified":"2026-08-04T21:03:01","modified_gmt":"2026-08-04T13:03:01","slug":"visualhmi-%e5%88%86%e6%9c%9f%e5%ba%94%e7%94%a8%e8%87%aa%e5%ae%9a%e4%b9%89%ef%bc%9a%e5%8a%a8%e6%80%81%e5%af%86%e7%a0%81-lua-%e5%85%83%e8%a1%a8%e6%96%b9%e6%a1%88","status":"publish","type":"post","link":"https:\/\/www.modbus.cn\/en\/51596.html","title":{"rendered":"VisualHMI \u5206\u671f\u5e94\u7528(\u81ea\u5b9a\u4e49)\uff1a\u52a8\u6001\u5bc6\u7801 Lua \u5143\u8868\u65b9\u6848"},"content":{"rendered":"<p>\u7cfb\u7edf\u5206\u671f\u662f\u300c\u5230\u671f\u524d\u9501\u5b9a\u300d\uff0c\u81ea\u5b9a\u4e49\u5206\u671f\u662f\u300c\u5230\u671f\u624d\u9501\u300d\u2014\u2014\u66f4\u8d34\u5408\u771f\u5b9e\u79df\u8d41\u573a\u666f\u3002\u8fd9\u7bc7\u7528 Lua \u5143\u8868\u5c01\u88c5\uff0c\u5b9e\u73b0\u65f6\u95f4\u7cbe\u51c6\u89e6\u53d1 + \u52a8\u6001\u5bc6\u7801\uff08\u7b97\u6cd5\u5916\u7f6e\uff0c\u4e0d\u9884\u5b58\u9759\u6001\u5bc6\u7801\uff09\u3002<\/p>\n<h2>1. \u4e24\u79cd\u65b9\u6848\u533a\u522b<\/h2>\n<table border=\"1\" cellpadding=\"6\" style=\"border-collapse:collapse;font-size:14px\">\n<tr>\n<th>\u7ef4\u5ea6<\/th>\n<th>\u7cfb\u7edf\u65b9\u6848\uff08\u524d\u7f6e\u9501\u5b9a\uff09<\/th>\n<th>\u81ea\u5b9a\u4e49\u65b9\u6848\uff08\u5230\u671f\u9501\u5b9a\uff09<\/th>\n<\/tr>\n<tr>\n<td>\u89e6\u53d1\u65f6\u673a<\/td>\n<td>\u914d\u7f6e\u540e\u5373\u751f\u6548<\/td>\n<td>\u5f53\u524d\u65f6\u95f4 \u2265 \u622a\u6b62\u65f6\u95f4\u624d\u9501<\/td>\n<\/tr>\n<tr>\n<td>\u7528\u6237\u611f\u77e5<\/td>\n<td>\u63d0\u524d\u88ab\u9501<\/td>\n<td>\u521a\u597d\u5230\u671f\u88ab\u9501<\/td>\n<\/tr>\n<\/table>\n<h2>2. \u8bbe\u8ba1\u8981\u70b9<\/h2>\n<ul>\n<li><strong>\u52a8\u6001\u5bc6\u7801<\/strong>\uff1a\u7531\u5916\u90e8\u51fd\u6570 password_func(date) \u5b9e\u65f6\u7b97\uff08\u5982\u5e74+\u6708+\u65e5\uff09\uff0c\u4e0d\u9884\u5b58\uff0c\u9632\u9006\u5411<\/li>\n<li><strong>\u8d85\u7ea7\u5bc6\u7801<\/strong>\uff1a\u5355\u4e00 uint32\uff0c\u4e00\u952e\u5168\u5c40\u89e3\u9501\uff0c\u73b0\u573a\u8fd0\u7ef4\u515c\u5e95<\/li>\n<li><strong>\u81ea\u6821\u9a8c\u70ed\u66f4\u65b0<\/strong>\uff1a\u542f\u52a8\u68c0\u6d4b\u65e5\u671f\u53d8\u66f4\uff0c\u914d\u7f6e\u4fee\u6539\u540e\u81ea\u52a8\u91cd\u5199\u5b58\u50a8<\/li>\n<li><strong>\u72b6\u6001\u6301\u4e45\u5316<\/strong>\uff1a\u65f6\u95f4\/\u5f00\u5173\/\u89e3\u9501\u8fdb\u5ea6\u5b58 VT_RW \u975e\u6613\u5931\u533a\uff0c\u6389\u7535\u4e0d\u4e22<\/li>\n<\/ul>\n<h2>3. \u5b9e\u4f8b\u5316\uff08main.lua\uff09<\/h2>\n<p>Stage.new(base_addr, stage_dates, password_func, super_password)\uff1a<\/p>\n<pre style=\"background:#f5f5f5;padding:10px;border-radius:4px\">-- base_addr: VT_RW \u8d77\u59cb\u5730\u5740\uff0c\u8fde\u7eed\u5b58\u50a8\u6240\u6709\u914d\u7f6e\n-- stage_dates: 3\u671f\u622a\u6b62\u65e5\u671f\u5217\u8868\uff0c\u5fc5\u987b\u9012\u589e\n-- password_func: \u5bc6\u7801\u8ba1\u7b97\u51fd\u6570\n-- super_password: \u8d85\u7ea7\u5bc6\u7801\ndofile(\"stage.lua\")\ng_stage = Stage.new(0x1000,\n  {{2023,11,1},{2023,12,1},{2024,1,1}},\n  function(d) return d[1]+d[2]+d[3] end,\n  123456)<\/pre>\n<p>\u6a21\u5757\u7528\u95ed\u5305 + \u5143\u8868 OO \u5b9e\u73b0\uff0c\u652f\u6301 1~10 \u671f\u3001\u72b6\u6001\u5168\u5b58 RW \u533a\u3002\u6838\u5fc3\u5224\u5b9a get_eligible_stage() \u4e25\u683c\u6bd4\u5bf9\u7cfb\u7edf\u65f6\u95f4\u4e0e\u622a\u6b62\u65e5\uff0cnow \u2265 deadline \u624d\u9501\u5c4f\u3002<\/p>\n<p><!-- MISSING ot04_Installment_Usgae_1.png --><\/p>\n<div class=\"tip\" style=\"border-left:4px solid #f7941e;padding:10px 14px;background:#fff8ef;margin:14px 0\">\u81ea\u5b9a\u4e49\u5206\u671f\u6bd4\u7cfb\u7edf\u5206\u671f\u7075\u6d3b\uff0c\u4ee3\u4ef7\u662f\u8981\u81ea\u5df1\u5199 Lua \u6a21\u5757\uff08stage.lua\uff09\u3002\u6700\u5173\u952e\u7684<strong>\u52a8\u6001\u5bc6\u7801\u4e0d\u9884\u5b58<\/strong>\u2014\u2014\u5bc6\u7801\u7b97\u51fa\u6765\u5373\u5f03\uff0c\u5373\u4f7f\u88ab\u4eba dump \u51fa RW \u533a\u4e5f\u53ea\u770b\u5230\u67d0\u671f\u7684\u7ed3\u679c\uff0c\u9006\u5411\u4e0d\u51fa\u7b97\u6cd5\u3002\u72b6\u6001\u5fc5\u987b\u843d RW \u533a\uff0c\u5426\u5219\u91cd\u542f\u4e22\u5931\u89e3\u9501\u8fdb\u5ea6\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\uff09\u5176\u4ed6\u6280\u672f\u6559\u7a0b\u300c\u5206\u671f\u5e94\u7528(RW-\u81ea\u5b9a\u4e49)\u300d\uff0c\u7248\u6743\u5f52\u5927\u5f69\u79d1\u6280\u6240\u6709\u3002<\/p>\n<span id=\"magicpostMarker\"><\/span>","protected":false},"excerpt":{"rendered":"<p>\u7cfb\u7edf\u5206\u671f\u662f\u300c\u5230\u671f\u524d\u9501\u5b9a\u300d\uff0c\u81ea\u5b9a\u4e49\u5206\u671f\u662f\u300c\u5230\u671f\u624d\u9501\u300d\u2014\u2014\u66f4\u8d34\u5408&#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":[3126,3132],"tags":[3402,3134,3397,3401,1664,3403],"class_list":["post-51596","post","type-post","status-publish","format-standard","hentry","category-hmi-dev","category-hmi-other","tag-stage-lua","tag-visualhmi","tag-3397","tag-3401","tag-1664","tag-3403"],"_links":{"self":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/51596","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/comments?post=51596"}],"version-history":[{"count":0,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/posts\/51596\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/media?parent=51596"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/categories?post=51596"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.modbus.cn\/en\/wp-json\/wp\/v2\/tags?post=51596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}