Mecanismo de eventos
El sistema de tiempo de ejecución utiliza "eventos" para comunicar eventos como el inicio/parada/reinicio del PLC, la aparición de una excepción, etc. Con el "mecanismo de eventos", es posible recibir un mensaje tan pronto como se haya activado un evento seleccionado.
Se reenvían los siguientes eventos relacionados con la aplicación:
EVT_StartDone
EVT_StopDone
EVT_ResetDone
EVT_ExitDone
EVT_AllBootprojectsLoaded
EVT_CmpApp_Exception
EVT_StateChanged
EVT_CmpDevice_InteractiveLogin
EVT_CmpMgr_LicenseState
el entregado uds_events.py
muestra proporciona la CODESYS_EventHandler
clase que implementa el registro a un evento.
Esta clase necesita la eventid
así como el componentid of
del evento a registrar, que se almacenan en el liEvents
lista:
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) }
Además, se debe especificar una función de devolución de llamada que se llamará cuando ocurra el evento:
def callbackfunction_start(componentid, eventid): print("Start event occured")
Dentro Main
, se registra un evento de la siguiente manera y se especifica la función de devolución de llamada necesaria:
componentid, eventid = liEvents["CmpApp_EVT_StartDone"] myEventHandler_Start = CODESYS_EventHandler(componentid, eventid, callbackfunction_start) myEventHandler_Start.start()
Ahora la función de devolución de llamada callbackfunction_start
se llama tan pronto como el sistema de tiempo de ejecución ha cambiado a Inicio.
El mecanismo subyacente se muestra en la siguiente figura:

Uso de la interfaz solo como miembro de Linux | sí |
Separación de procesos | sí |