イベントメカニズム
ランタイムシステムは、「イベント」を使用して、PLCの開始/停止/リセット、例外の発生などのイベントを通信します。 「イベントメカニズム」を使用すると、選択したイベントがトリガーされるとすぐにメッセージを受信することができます。
次のアプリケーション関連のイベントが転送されます。
EVT_StartDone
EVT_StopDone
EVT_ResetDone
EVT_ExitDone
EVT_AllBootprojectsLoaded
EVT_CmpApp_Exception
EVT_StateChanged
EVT_CmpDevice_InteractiveLogin
EVT_CmpMgr_LicenseState
配信 uds_events.py
サンプルは CODESYS_EventHandler
イベントへの登録を実装するクラス。
このクラスには eventid
だけでなく、 componentid of
登録するイベントの liEvents
リスト:
liEvents = { "CmpApp_EVT_StartDone" : (0x00000002, 0x10000 + 2), "CmpApp_EVT_StopDone" : (0x00000002, 0x10000 + 4), "CmpApp_EVT_ResetDone" : (0x00000002, 0x10000 + 6), "CmpApp_EVT_ExitDone" : (0x00000002, 0x10000 + 15), "CmpApp_EVT_AllBootprojectsLoaded" : (0x00000002, 0x10000 + 25), "CmpApp_EVT_CmpApp_Exception" : (0x00000002, 0x00080000 + 28), "CmpApp_EVT_StateChanged" : (0x00000002,0x10000 + 43), "CmpDevice_EVT_CmpDevice_InteractiveLogin" : (0x0000000E, 0x00010000+ 1), "CmpMgr_EVT_LicenseState" : (0x00000001, 0x00010000 + 9) }
さらに、イベントが発生したときに呼び出されるコールバック関数を指定する必要があります。
def callbackfunction_start(componentid, eventid): print("Start event occured")
以内に Main
、イベントは次のように登録され、必要なコールバック関数が指定されます。
componentid, eventid = liEvents["CmpApp_EVT_StartDone"] myEventHandler_Start = CODESYS_EventHandler(componentid, eventid, callbackfunction_start) myEventHandler_Start.start()
今コールバック関数 callbackfunction_start
ランタイムシステムがStartに変更されるとすぐに呼び出されます。
基になるメカニズムを次の図に示します。

Linuxのメンバーとしてのみインターフェースを使用する | はい |
プロセス分離 | はい |