FUNCTION_BLOCK RALARM
The RALARM function block is used to receive alarm information of alarms from a PROFIBUS DP or a PROFINET IO subsystem.
Code-Example: receive Alarm
PROGRAM PLC_PRG VAR ralarm : CommFB.RALARM; alarm : CommFB.AINFO_TYPE; convertID : CommFB.ID_TO_ADDR; addr : CommFB.ADDR_TYPE; message : STRING; END_VAR ralarm.EN := TRUE; ralarm.MODE := CommFB.RALARM_MODE.ALL_ALARMS; // receive all alarms from all devices connected to the controller ralarm.F_ID := PN_Controller.MasterID; // Filter ID, if MODE = ALL_ALARMS use MasterID here, else the ID of a slot/subslot ralarm(ainfo := alarm); WHILE(ralarm.NEW) DO convertID(EN := TRUE, ID := ralarm.ID, ADDR := addr); IF(convertID.ENO) THEN IF(addr.SYSTEM = CommFB.IO_SYSTEM_TYPE.PROFINET_IO) THEN message := 'Station '; message := concat(message, addr.PN.D.STATIONNAME); message := concat(message, ' (Slot = '); message := concat(message, TO_STRING(addr.PN.SLOT)); message := concat(message, ') sends an alarm !'); //Log Alarm to PLC-Logger CmpLog.LogAdd2(CmpLog.LogConstants.LOG_STD_LOGGER, 555, CmpLog.LogClass.LOG_WARNING, 0, 0, message); END_IF END_IF ralarm(ainfo := alarm); // exec-again END_WHILE
InOut: |
|