LUAはVisual HMIのスクリプト言語であり、HMIを“表示端末”から“実行可能なホスト”に変える役割を担っています。プロトコルParse、論理判断、データOperation、ファイルOperationはすべてスクリプト内にあります。main.luaのプログラム構造とシステムコールバックを理解してから、すべてのAPIを配置する場所があります。
1. main.lua基本構造
_ENCRYPT_= 0 ― ― LUAスクリプト暗号スイッチ(量産暗号置1) データ型定義(プロトコルによって異なりますが、Modbusが一般的に使用します) VT_LW = 1 --内部変数(パワーダウンは保存されません) _RW = 2 --フラッシュパワーダウンセーブエリア VT_0 x = 10 【COIL】 VT_1 x = 11 --インポート VT_3x = 12 --入力レジスタ VT_4x = 13 - レジスタを保持する システムコールバック関数(自分で調整せずに自動的に呼び出される) function on_end --電源投入後に1回実行 function on_run screen end - 実施サイクル function on_update slave vtype end--変数の変化 function on_w screen end - 自分を描く
main.luaはエントリファイルであり、プロジェクトのコンパイル時にパッケージ化される。大プロジェクトの提案サブモジュールon_initにdofile "xxx.lua"を分解して、メンテナンスしてください。
2.編集ツールとコーディング
ノートパッド++、Luaエディタ、VS Codeエディタを推奨します。コードは注意が必要ファイルエンコーディングとHMIエンジニアリング設定は一貫している必要があります(UTF-8またはGB 2312)、エンコーディングは中国語で文字化けしません、文字列の比較もすべて間違っています。
3.エラーチェック方法(LUAはブレークポイントなしでデバッグ)
LUAはインタプリタ言語であり、ブレークポイントは単一ステップではない。仮想画面デバッグの一般的な3種類の例外:
- nil値エラー未定義変数/テーブル要素にアクセスする-変数の初期化を最初にチェックする
- エラーの種類:numberテーブルを文字列で連結する場合nil--print印刷型確認
- メモリオーバーフローの再起動:グローバル累積データは解放されません-ループが常にtable.insertかどうかを確認する
TTLデバッグシリアルポートJ 2、ボーレート115200 8 N 1、このポートに印刷出力を使用した物理画面デバッグ。

4. dofileサブモジュール管理
function on_init dofile "config.l" - パラメータ設定。 dofile "prot.l" ●合意のParse dofile "ui.l" インターフェースの論理 End of Endシングル
グローバル変数はモジュール間で共有され、名前の競合に注意してください(g_、m_などの接頭辞付きの慣習)。
Guangzhou Dai Cai Technology Visual HMI開発ドキュメント(hmi-doc.gz-dc.com)LUAチュートリアル“LUAとは何か”、著作権はDai Cai Technologyに帰属します。
Leave a Reply