RS Logix500 alarm handling

vernon1

Member
Join Date
Jan 2007
Location
WEST MIDLANDS
Posts
60
Hi Guys ,I have an application that uses discrete outputs to drive an 8 bit binary text display for alarm messages.
This unit can be pre-programmed with text that corresponds to an 8 bit binary signal.
Probably have about 100 possible alarm conditions.
I need to generate some code to display each alarm for about 4 secs as they come in.
Anybody done this before , or got some examples i could have a look at?

Thanks in advance.
 
Use FBC and display the changed value.
This 8Bit Binary stuff is pretty old school. If you look at AB-SLC functions there is a function just for this type of thing....

Fairly simple logic if you have programmed before.
Some of us here depend on jobs to bring home the bacon. Are you doing this for a living, or are you just a student?

No disrepect, but if you are a consultant or end user maybe you should read some manuals.....
 
Let me see if I can help you. A couple of years ago I did a an alarm program for an SLC5/04 that did something like what your asking. What we wanted to do was have the PLC monitor and log alarms within it and then upload the last 100 alarms from an integer file.

The alarm needed to be time tagged hence the alarm message was divided into Four integer files each with 100 elements.

The First N7:X contained Year and Month example N7:X = 0712 (December,07)

The second contained Date and Hour example N8:X = 2508 (25th,8am)

The third contained Minute Second example N9:X = 4025 (min = 40 Sec 25)

And the Fourth contained a pre defined alarm code which was also two part where the first two digits were the equipment and the second two was the alarm definition. example Boiler #1 equipment code was 01, Alarm Low Water Cut off Code was 15 hence N9:X = 0115

You could just use the last one N9. But since you only require the most recent alarm it could be any integer that you write the alarm message to.

When a technician went to check a problem he would go online with the processor using excel and a VBA application that I created the four integer file would been uploaded from the processor and sorted out converted into plain text.
It would have looked like this

Equipment Alarm Date
Boiler #1 Alarm Low Water Cut Off 07/12/25 8:40:25




(The list would continue on here)


This may sound complex but it was actually simple..
In the PLC you use the ONS instruction to create the alarm message say N10:0 = 0115 when the Alarm low water cut off switch is active. And send this to your display for 4 secs. If you require the time stamp feature you could run a sub routine that would multiply Year by 1000 and add it to month and store it in N10:1 and do the same for Month and date to N10:2 and Date and second and store it to N10:3. You could use the Copy Instruction to kick the last data out of the four integer alarm files COPY N7:0 to N7:1 Length 99 If I remember. Do the same for the others then move the most recent alarm you have stored with time stamp (N10:0-3) into the 0 files of N7-9
.

Might I add this was in my younger years I am sure if put to this task today Id think of something else. Hope I could have been some help id check back with this topic see what you came up with.
 
vernon1 said:
Hi Guys ,I have an application that uses discrete outputs to drive an 8 bit binary text display for alarm messages.
This unit can be pre-programmed with text that corresponds to an 8 bit binary signal.
Probably have about 100 possible alarm conditions.
I need to generate some code to display each alarm for about 4 secs as they come in.

ALARMS As they come in means to me that, you need to store all of them as fast as they can be detected, and then display each of them in succession for a minimum of four seconds each, so that no ciritical information is lost in hte process.

Use a FIFO type structure.

Let the stack be pushed by new alarm conditions, and pulled every four seconds.

Instead of FFL/FFU, I, personally, like to use a simple file and two pointers. Each new alarm increments the pointer "AlarmNew", and populates N16:[AlarmNew] with "AlarmCode". Then the follower pointer "AlarmDisplayed" is allowed to move one step toward the value of AlarmNew every four seconds.

These pointers are programmed with wrap-around, so that there is no shuffling of massive lengths going on. Just a handful of indirect addresses in conditional MOVes and a MVM at the end to drive the 8 useful bits that are wired to the Display.

Then you can easily store the last 256 new alarm conditons in a SLC, (and up to 1000 in a PLC5 I think) with no processing penalty when it is "full".

You will find it very useful to use other files in parallel to timestamp these events too as others have suggested.

Paul
 

Similar Topics

I am updating an older RSlogix 500 program and am just wondering whether to leave the alarm latching the way it was done or convert it. Currently...
Replies
7
Views
2,302
I've got a Micrologix 1100 with ethernet and I'm trying to configure communications to a Fanuc R30iB controller. I'm pretty sure you have to set...
Replies
0
Views
102
So here's my situation, I have been tasked with modifying the logic to mimic a button press in the PLC. I have two identical machines however one...
Replies
6
Views
538
Hello, I'm new to programming. I'm using RSLogix500 to modify an existing program for a SLC500. My plan was to use one of the existing inputs...
Replies
26
Views
1,983
Hi Newbie here :yeah: Can one of you experts help me with setting up a simple BTR and BTW to just test 4 analogue inputs 4-20ma (1974-if4i)...
Replies
11
Views
997
Back
Top Bottom