Issue
How does the controller determine which workstation will log the alarm into the SQL database when using "Enhanced Alarm logging"?
Product Line
Andover Continuum
Environment
- Workstation
- Enhanced Alarm Logging
Cause
Alarms will be delivered by a NetController to all Workstations that have Ids between 191 and 254 assuming a teach was done. The first Workstation to receive the Alarm will log it in the Database. There is a ratcheting algorithm that is used by the NetController to determine which Workstation will be the first one to receive Alarms. In many applications, it is necessary to control which workstation will be the first to receive the alarm and log it in the Database. Knowing how the algorithm works provides the ability to design a system with a designated alarm logging workstation.
Resolution
The algorithm is as follows:
- The Netcontroller will take its own AccNetid and mask it with 63 stripping off the 2 high bits of its id leaving a result in the range of 1 to 63.
Further explanation of the binary masking:
- NetControllers with Ids between 1 and 63, result is their ID.
- NetControllers with Ids between 64 and 127, result is their ID - 64 (ID range of 0 to 63).
- NetControllers with Ids between 128 and 190, result is their ID - 128 (ID range of 0 to 62).
That result is then added to 190 and that is the ID of the first Workstation to get the Alarm and Log it in the Database.
If there is not a Workstation with that ID (or the workstation with that ID is offline), the NetController will send the alarm to the Workstation with the next highest ID above the one calculated by the ratcheting algorithm. If none of the Workstation Ids are higher than the one calculated, the routine will loop around and use the lowest Workstation ID to send to the first.
Example 1:
NC1, id1
NC2, id2
NC3, id3
WS1, id191
WS2, id192
WS3, id193
Result of ratcheting routine:
NC1 sends to WS1 first
NC2 sends to WS2 first
NC3 sends to WS3 first
Example 2:
NC1, id1 1+190=191
NC2, id2 2+190=192
NC3, id3 3+190+193
WS1, id201
WS2, id202
WS3, id203
Result of ratcheting routine:
NC1 sends to WS1 first
NC2 sends to WS1 first
NC3 sends to WS1 first
Example 3:
NC1, id101 101-64=37, 37+190=227
NC2, id102 102-64=38, 38+190=228
NC3, id103 103-64=39, 39+190=229
WS1, id191
WS2, id192
WS3, id193
Result of ratcheting routine:
NC1 sends to WS1 first
NC2 sends to WS1 first
NC3 sends to WS1 first