Post by timvh on Get Alarm status in Codesys
CODESYS Forge
talk
(Post)
You are right, that you can use the GetState method, but it is not that simple. You first have to get a list of (filtered) alarms from the AlarmManager. You can find an example in Forge how to do this. See https://forge.codesys.com/prj/codesys-example/alarm-manager/home/Home/ Then you can go through this list to get the state of all the (filtered) alarms. See below the code which you could use. This is all based on the example from forge. Create a program: // This example shows how to access alarms via structured text. PROGRAM PLC_PRG VAR xInit : BOOL := TRUE; udiResult : UDINT; fbAlarmFilterCriteriaAll : FB_AlarmFilterCriteriaAll; fbAlarmManagerClient : FB_AlarmManagerClient; itfAlarmManagerClient : IAlarmManagerClient := fbAlarmManagerClient; xAlarm1 : BOOL; xAlarm2 : BOOL; xWarning : BOOL; iNrOfAlarmsInAlarmList : INT; iNrOfActiveAlarmsInAlarmList : INT; paitfAlarm: POINTER TO ARRAY [0..0] OF AlarmManager.IAlarm; iAlarmIndex : INT; eAlarmState: AlarmManager.AlarmState; END_VAR IF xInit THEN xInit := FALSE; fbAlarmManagerClient.itfAlarmFilterCriteria := fbAlarmFilterCriteriaAll; // register alarm client to get updated about alarm status / changes udiResult := AlarmManager.g_AlarmHandler.RegisterClient(itfAlarmManagerClient, 0, 0); END_IF // Polling the number of alarms udiResult := AlarmManager.g_AlarmHandler.GetActiveAlarms(itfAlarmManagerClient, parritfActiveAlarms => paitfAlarm, iCountActiveAlarms => iNrOfAlarmsInAlarmList); iAlarmIndex := 0; iNrOfActiveAlarmsInAlarmList := 0; WHILE iAlarmIndex < iNrOfAlarmsInAlarmList DO eAlarmState := paitfAlarm^[iAlarmIndex].GetState(); IF eAlarmState = AlarmManager.AlarmState.Active OR eAlarmState = AlarmManager.AlarmState.ActiveAcknowledged THEN iNrOfActiveAlarmsInAlarmList := iNrOfActiveAlarmsInAlarmList + 1; END_IF iAlarmIndex := iAlarmIndex + 1; END_WHILE See below some details about the function blocks: One function block should implement the IAlarmFilterCriteria interface. This can be empty except a few methods. FUNCTION_BLOCK FB_AlarmFilterCriteriaAll IMPLEMENTS AlarmManager.IAlarmFilterCriteria Method implementation (others related to interface are empty) METHOD AreAllAlarmClassesSelected : BOOL AreAllAlarmClassesSelected := TRUE; METHOD AreAllAlarmGroupsSelected : BOOL AreAllAlarmGroupsSelected := TRUE; METHOD GetPriorityFrom : USINT GetPriorityFrom := 0; METHOD GetPriorityTo : USINT GetPriorityTo := 255; The other function block should implement IAlarmManagerClient and get a reference to the FB which implements the IAlarmFilterCriteria FUNCTION_BLOCK FB_AlarmManagerClient IMPLEMENTS AlarmManager.IAlarmManagerClient VAR_INPUT itfAlarmFilterCriteria: AlarmManager.IAlarmFilterCriteria; END_VAR Method implementation (others related to the interface are empty) METHOD GetFilterCriteria : AlarmManager.IAlarmFilterCriteria // see VAR_INPUT for filter GetFilterCriteria := itfAlarmFilterCriteria; Off course you have to add the AlarmManager to your application and add some alarms to it.
Last updated: 2025-09-02
Import RsLogix 5000 project to Codesys
CODESYS Forge
talk
(Thread)
Import RsLogix 5000 project to Codesys
Last updated: 2023-09-07
IMAGE DISPLAY ACCORDING TO INPUT VARIABLE
CODESYS Forge
talk
(Thread)
IMAGE DISPLAY ACCORDING TO INPUT VARIABLE
Last updated: 2023-09-12
Retain memory change to ZERO
CODESYS Forge
talk
(Thread)
Retain memory change to ZERO
Last updated: 2023-09-19
Fail to download missing libraries
CODESYS Forge
talk
(Thread)
Fail to download missing libraries
Last updated: 2021-11-12
Moved To: Control double acting valve
CODESYS Forge
talk
(Thread)
Moved To: Control double acting valve
Last updated: 2016-10-18
How to configure OPC-UA server
CODESYS Forge
talk
(Thread)
How to configure OPC-UA server
Last updated: 2018-12-03
SoftMotion interface to analog axes
CODESYS Forge
talk
(Thread)
SoftMotion interface to analog axes
Last updated: 2016-12-08
Lock usb port to a device
CODESYS Forge
talk
(Thread)
Lock usb port to a device
Last updated: 2017-06-07
Device descriptor: how to create...
CODESYS Forge
talk
(Thread)
Device descriptor: how to create...
Last updated: 2018-09-12
RFC2217 Serial to Ethernet devices
CODESYS Forge
talk
(Thread)
RFC2217 Serial to Ethernet devices
Last updated: 2017-08-03
Login-to-PLC problems
CODESYS Forge
talk
(Thread)
Login-to-PLC problems
Last updated: 2016-09-21
Bit access to DWORD Variable
CODESYS Forge
talk
(Thread)
Bit access to DWORD Variable
Last updated: 2019-12-18
Raspberry Pi to Codesys 2.3
CODESYS Forge
talk
(Thread)
Raspberry Pi to Codesys 2.3
Last updated: 2014-01-29
modbus from serial to tcp
CODESYS Forge
talk
(Thread)
modbus from serial to tcp
Last updated: 2017-06-05
Logging to a SoftPLC remotely?
CODESYS Forge
talk
(Thread)
Logging to a SoftPLC remotely?
Last updated: 2020-10-02
LoadFile - delete button goes to exception
CODESYS Forge
talk
(Thread)
LoadFile - delete button goes to exception
Last updated: 2018-11-23
Unable to import device description error
CODESYS Forge
talk
(Thread)
Unable to import device description error
Last updated: 2021-07-29
How to get object attributes
CODESYS Forge
talk
(Thread)
How to get object attributes
Last updated: 2018-01-30
PFC200 Update to 4.9.0.0 - No Connection
CODESYS Forge
talk
(Thread)
PFC200 Update to 4.9.0.0 - No Connection
Last updated: 2023-09-27
PFC200 Update to 4.9.0.0 - No Connection
CODESYS Forge
talk
(Thread)
PFC200 Update to 4.9.0.0 - No Connection
Last updated: 2023-09-28
eCockpit - unable to start simulation
CODESYS Forge
talk
(Thread)
eCockpit - unable to start simulation
Last updated: 2023-10-20
User Management - REFERENCE TO VisuUserMgmtProvider
CODESYS Forge
talk
(Thread)
User Management - REFERENCE TO VisuUserMgmtProvider
Last updated: 2023-11-17
Post by exkrim19 on Unable to connect to this device
CODESYS Forge
talk
(Post)
What worked for me with this error was to go to Tools -> Update Raspberry Pi, select Install, and from the popup screen, there are options to change your installation (I changed it to single core, instead of multicore), and I was then able to connect to my Rpi 4.
Last updated: 2024-06-28
Access to user group IDs
CODESYS Forge
talk
(Thread)
Access to user group IDs
Last updated: 2024-07-10
To search for an exact phrase, put it in quotes. Example: "getting started docs"
To exclude a word or phrase, put a dash in front of it. Example: docs -help
To search on specific fields, use these field names instead of a general text search. You can group with AND or OR.