Visual HMIシステムコールバック関数:on_init/on_run/on_press/on_update

freeFree Technical Resource

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

システムコールバックはLUAとHMIカーネル間で行われるイベント·インタフェースカーネルは特定のタイミングで関数を自動的にチューニングします。ポーリングやトリガーは必要ありません。各コールバックのトリガータイミングと制限を理解することは、安定したスクリプトを書くための前提条件です。

1.コールバックの概要

コールバックトリガー·タイミング目的は
on_init()電源投入後に1回実行dofileロードモジュール、初期化パラメータ/PLC/ドライブボード
on_run(screen)サイクル実行set_run_cycle設定サイクルコアスケジューリングエントリ、定期的なタスク
on_press(state,x,y)タッチイベント、最大100ms 1回キーストローク処理、アイドルスタンバイ
on_update(slave,vtype,addr)変数の値の変化データ駆動型ロジック(推奨)
on_screen_change(screen)画面切り替え後画面初期化、同期

2. on_run:定期的なスケジュール(注意)

on_runはサイクルコールバックであり、サイクルよりもはるかに短く動作します。3つの禁止:

  • Modbus RTU Master高周波書き込み簡単なバスブロッキング--on_runで毎秒フレームを書き込まないでください。
  • 使用不可delay_ms、長いループ、ネットワーク同期- メインループをブロックし、画面全体のカード
  • set_run_cycleデッドロックの禁止コールバックのサイクル変更は決してトリガーされない。
function on_init
  set_run_c1000     1 秒周期を設定する。
End of Endシングル
function on_run screen
  毎秒1回行うこと:ステータスポーリング、タイムアウト判定
End of Endシングル

3. on_press:タッチコールバックとアイドルスタンバイ

on_press state x y、state 0=持ち上げ、1=押し、2=長押し。最大100msごとにトリガーされます。典型的な利用は、アイドルスタンバイ省電力:しばらくの間、自動消去/ジャンプ画面に触れていません。

_IDLE_TIME OUT = 300000   5分間の無操作。
_idle_tick = 0
function on_press state x y
  _idle_tick = 0          タッチでタイムをリセットする
End of Endシングル
function on_run screen
  _idle_tick = _idle_tick + 1000   サイクル1sの仮定
  if _idle_tick = _IDLE_TIMEOUT then
    set_screen 0         メイン画面に戻ります。
    _idle_tick = 0
  End of Endシングル
End of Endシングル

4. on_update:データ駆動型(これを優先)

on_update slave vtype addr変数の値が変化したときにトリガーされます。データ駆動型モード--on_runよりも省資源をポーリングします。知っておくべき3つの特徴:

  • 外部シリアルポート/Modbusマスタ書き込みがトリガーされない-HMI内部変数の変更にのみ有効
  • on_updateイントロset_xxxがマスクされた無限再帰を防ぐため、変更は再起動しません。
  • グローバル変数_EN_ON_UPDATA_API_制御スイッチ--0を設定して一時的に無効にし、一括初期化時に使用
_EN_ON_UPDATA_API_ = 0    --初期化中にオフになったコールバック
-- ...バッチ書き込みレジスタ。。。。
_EN_ON_UPDATA_API_ = 1    --コールバック

function on_update slave vtype
  if vtype ==_LW then
    addr === 0 x 1000の場合
      --LW 1000が変更され、ビジネスを処理
    End of Endシングル
  End of Endシングル
End of Endシングル

5. on_screen_change:画面切り替え後の初期化

画面切り替えが完了すると、画面の初期化、状態同期、リソースのロードを行います。画面を切断する前よりも安定して処理します。

4つの穴on_runでdelay_ms/ロングループを禁止する主な循環を破壊する。Modbusマスターはon_runで高周波書き込みをしないバスの渋滞は不明。set_xxxはon_updateでコールバックを再起動しません。連鎖を期待しないでください。レジスタを一括初期化する前に_EN_ON_UPDATA_API_を0に設定する嵐を防ぐ。

Guangzhou Dai Technology Visual HMI開発ドキュメント(hmi-doc.gz-dc.com)LUAチュートリアル“システムコールバック”、著作権所有Dai Dai 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 *.