Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

ALMD/ALMA instruction in RS5000

Status
Not open for further replies.

jde777

Electrical
Sep 9, 2005
170
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.
 
Replies continue below

Recommended for you

Fast and easy way
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.

 
I'm trying to use Structured Text to trigger lots of alarms without many lines of code. I've come up with the following logic, but have a problem with the ALARM_DIGITAL data type. Here's the code:

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?
 
an array of boolean might be the problem. I made that mistake early in my contrologix experience and caused me problems (I had to rewrite logic).

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.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor