LUAに関するVisual HMI:main.lua構造体、データ型宣言、エラーチェック、サブモジュール

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

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、このポートに印刷出力を使用した物理画面デバッグ。

LUAに関するVisual HMI:main.lua構造体、データ型宣言、エラーチェック、サブモジュールFigure

4. dofileサブモジュール管理

function on_init
  dofile "config.l"     - パラメータ設定。
  dofile "prot.l"   ●合意のParse
  dofile "ui.l"         インターフェースの論理
End of Endシングル

グローバル変数はモジュール間で共有され、名前の競合に注意してください(g_、m_などの接頭辞付きの慣習)。

3つの穴_ENCRYPT_1を設定するとスクリプトが暗号化されます。スクリプトを再コンパイルしてダウンロードし、デバッグ期間は0のままです。②書類コードは工程と一致することUTF-8/GB 2312混合中国語の混乱;シリアルポートJ 2(115200 8 N 1)のデバッグ出力。USB-TTLでログを確認します。

Guangzhou Dai Cai Technology Visual HMI開発ドキュメント(hmi-doc.gz-dc.com)LUAチュートリアル“LUAとは何か”、著作権はDai Cai Technologyに帰属します。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.