55xGenComm1_29
45
Interrogating the alarm status
Polling GenComm page 3, register offset 6 will provide information regarding the state of the alarm
blocks. For instance bits 11,12 and 13 report on the state of Warning, Electrical trip and Shutdown
alarms. Should any of these indicate the presence of an active alarm, then the alarm blocks must
be interrogated to identify which alarm blocks are currently active.
Should an active alarm condition be identified during the above process, GenComm Page 8 should
be read to determine which of the blocks are active. Once an active alarm block is found, you must
use the following formula to locate the address of the alarm’s text string.
AlarmGenCommPage = ( 32 + RegisterOffset );
AlarmRegisterOffset = ( 64 * ( AlarmSubBlockNumber) );
InActiveStringAddress = ( AlarmGenCommPage * 256 ) + AlarmRegisterOffset;
ActiveStringAddress = InActiveStringAddress + 32;
This may seem very complicated for what appears to be a simple operation ( monitoring alarm
conditions ) but means you only read the large block of data containing alarm block status and
alarm text strings when it is required to do so.
EXAMPLE : Calculating alarm string addresses
Register Offset Alarm Name Bits
2 UnderSpeed 13 – 16
Overspeed 9 – 12
Fail to Start 5 – 8
Fail to come to rest 1 – 4
The AlarmSubBlock numbers are derived from the fact that each register within GenComm page 8
contains the state of four alarms. Divide the highest significant bit number of the alarm by four, and
subtract this number from 4. Ie For Fail to Start, ( 4 – ( 8 / 4 ) ) = 2;
The active string address for Fail to Start is :
GenComm Page = ( ( 31 + 2 ) ) = 33;
RegisterOffset = ( 64 * 2 ) = 128;
RegisterOffset of ActiveString = 128 + 32 = 160;
ActiveStringAddress for Fail to Start = ( 33 * 256 ) + 160 = 8608 or 0x21A0