ALMD/ALMA instruction in RS5000
ALMD/ALMA instruction in RS5000
(OP)
Here's the problem - it's easy to set up a single alarm, no need for arrays. However, if I want to trigger multiple alarms, I have two choices (that I can think of):
1. Write 1 rung per alarm. Since I want to create a test system with 20,000 alarms, that's not very appealing.
2. Find a way to create an "array" of alarms, passing different ALARM_DIGITAL or ALARM_ANALOG tags to the same ALMD/ALMA instruction.
Any help would be appreciated.
1. Write 1 rung per alarm. Since I want to create a test system with 20,000 alarms, that's not very appealing.
2. Find a way to create an "array" of alarms, passing different ALARM_DIGITAL or ALARM_ANALOG tags to the same ALMD/ALMA instruction.
Any help would be appreciated.





RE: ALMD/ALMA instruction in RS5000
Create alarm lists based on your inputs of plc. Of course their are other alarms that are native to plc, (minor faults)
Bit pattern file follows the inputs of plc.
Example: inputs on 0,1,2,5, create alarms for 0,1,2,5 and keep the rest of the word as spare alarms.
if your sending to a host system, then do a change of state.
Keep an image file of the alarms and when you have a new alarm, trigger a send and copy the alarm file to the alarm image file.
If your sending to an HMI, it will just handle this by its alarm page by your plc setting an alarm at that bit.
Alarm text on the HMI or host should just be a copy of the inputs with a massage for fault text on top of the inputs.
RE: ALMD/ALMA instruction in RS5000
For Index := 0 To 9 Do
ALMD(MyAlarmDigitalBaseTag, Alarms[Index], ProgAck[Index], ProgReset[Index], ProgDisable[Index], ProgEnable[Index]);
End_For;
In the ALMD instruction, all the parameters except for the first are type Boolean. This allows me to create arrays and conveniently access everything using the same index. The problem is the first parameter must be of type ALARM_DIGITAL. This data type does not allow me to create an array. Can anyone think of a way to get a variable address name as the first parameter of this ALMD instruction?
RE: ALMD/ALMA instruction in RS5000
If you look at the general instruction help most instructions do not operate on an array of booleans. I think if you can create some other tag with a data type other than an array of booleans it should work.