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

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

LUAはVisual HMIのスクリプト言語であり、HMIを“表示端末”から“実行可能なホスト”に変える役割を担っています。プロトコル解析、論理判断、データ操作、ファイル操作はすべてスクリプト内にあります。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構造体、データ型宣言、エラーチェック、サブモジュール插图

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

function on_init
  dofile "config.l"     - パラメータ設定。
  dofile "prot.l"   ●合意の解析
  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に帰属します。

この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注