Documentation

Multiple Alarm Memory (BD50)

Block name

BD50_ALARM_MEMORY

ST call

PROGRAM TEST_BD50
VAR
BOOL1, BOOL2, BOOL3, BOOL4, BOOL5, BOOL6:BOOL;
FB : LIB.CORE.V1_0.BD50_ALARM_MEMORY;
END_VAR
FB.IN[1] := BOOL3;
FB.IN[2] := BOOL4;
FB(ACK:=BOOL1,RESET:=BOOL2);
BOOL5 := FB.OUT[1];
BOOL6 := FB.OUT[2];
END_PROGRAM

Library

LIB\CORE

Version

V1.0

Description

The block is an alarm memory, with up to 16 alarms.

Inputs

Input Type Description Default value
IN MULTIIOBOOL Inputs of the alarm signals as an array [False,...,False]
ACK BOOL Acknowledge. If IN=TRUE and rising edge comes to ACK then ACKNOWLEDGED=TRUE (while keeping MEMORY=TRUE)  False
RESET BOOL Reset of the alarm memory and ACKNOWLEDGED output. False
IN0,IN1,..,IN15 BOOL Inputs of the alarm signals  

Outputs

Output Type Description
OUT MULTIIOBOOL Alarm output signals as an array.
ACKNOWLEDGED MULTIIOBOOL Indication that an alarm has been acked
MEMORY BOOL Alarm memory
ALRSTATUS INT Status of the alarm block (bit 8 indicates IN=TRUE, bit 9 indicates ACKNOWLEDGED=TRUE, bit 10 indicates MEMORY=TRUE)
OUT0,OUT1,..,OUT15 BOOL Alarm output signals. OUT is in TRUE until an alarm has been reset.

Function

This block is dedicated to deal with alarm states. The alarm signal is at the IN input. A rising edge on the IN input sets MEMORY to TRUE (alarm memory). The alarm can be reset by a rising edge at the RESET input. If IN=FALSE at the reset time, then MEMORY goes to FALSE. If the alarm is active (IN=TRUE), it can not be reset by the RESET input, but may be acknowledged by a rising edge brought to the ACK input. Note that in ST, the indeces are 1...16 rather than 0...15.

alrstatus values:

  • alrstatus=256 - at least one alarm is active.
  • alrstatus=512 - at least one alarm has been acknowledged
  • alrstatus=1024 - memory = true, alarm was active but has not been reset.

The alrstatus value may be addition of more of these states.

Application example