Smart questions
Smart answers
Smart people
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Member Login




Remember Me
Forgot Password?
Join Us!

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips now!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

Join Eng-Tips
*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Donate Today!

Do you enjoy these
technical forums?
Donate Today! Click Here

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Jobs from Indeed

Link To This Forum!

Partner Button
Add Stickiness To Your Site By Linking To This Professionally Managed Technical Forum.
Just copy and paste the
code below into your site.

jde777 (Electrical) (OP)
9 Oct 07 9:15
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.
controlsdude (Electrical)
10 Oct 07 8:51
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.

jde777 (Electrical) (OP)
10 Oct 07 12:03
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?
controlsdude (Electrical)
10 Oct 07 15:12
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.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!

Close Box

Join Eng-Tips® Today!

Join your peers on the Internet's largest technical engineering professional community.
It's easy to join and it's free.

Here's Why Members Love Eng-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close