Could you please explain a FAL instruction in a PLC5 ?

Rob S.

Member
Join Date
Sep 2008
Location
Maryland
Posts
739
A customer has a AB PLC 5/30. I am trying to get my head wrapped around
a FAL instruction . Could you please explain what a FAL instruction does , and what it is used for ? It is part of an alarm segment . They are getting alarms on their HMI that does have any real world relationship. For example .....
P/V Alarm # 6
Alarm Identification 6 ( a real alarm would "Damper not Open "
PLC Bit Address N96:00/5 ( this bit is not used in the program anywhere )

FAL

Control R6:10
Length. 32
Position. 0
Mode. All
Dest. #N96:100
Expression. #N96:0

Thanks so much in advance.
 
The FAL instruction can do several different operations depending on the expression used.

In your case (example) it's a copy instruction.
It copies words N96:100 thru N96:131 to words N96:0 thru N96:31.

See pdf
 
Last edited:
So what tells you it is being used as a Copy ?
and what does the Control R6:10 do for this instruction ?

Thanks for your help.
 
Think of it as a CPT instruction (with indirect referencees) surrounded by a FOR/NEXT loop. Think of the start, end and indexes etc which you would have to keep track of. That's what is in the Control file.
 
So Mickey has the source and destination backwards.

The "#" symbol lets you know that this is a starting address. The length helps to identify the ending address.

The FAL I think is one of the most powerful instructions in the PLC-5. It will allow you to go one-to-many, many-to-one, or many-to-many.

So for example, you want to capture a temperature once a minute and store it. You want one hour worth of data. The source address is always the same but you want the destination to increment/step through a data file. That would be one-to-many using Incremental mode. Each transition from false to true would increment to the next address in the destination. An example:

Control: R6:0
Length: 60
Mode: INC
Destination: #N10:0
Expression: N9:13 (analog temperature)

Lets say you have a data file with 1000 Celsius temperatures and you need them all converted to Fahrenheit. You could have something like:

Control: R6:1
Length: 1000
Mode: ALL
Destination: #N10:0
Expression: (#N9:0 * 1.8) + 32

Same example, but you want to lessen the effect on scan time. So instead of all 1000 values being converted in the same scan you decide to limit the controller to 100 per scan.

Control: R6:1
Length: 1000
Mode: 100
Destination: #N10:0
Expression: (#N9:0 * 1.8) + 32

Now, once it is triggered it will do the first 100 on that scan and then the next 100 on the next scan and so on until it completes. Unlike incremental mode, this "NUMERIC" mode only has to go true once and it will continue to execute on subsequent scans even if the rung transitions false.

Hope that helps

OG
 
Followup -

You can tell it is a COPY based on the expression. Whereas in my last example I was performing math on the value and then copying that result to the destination.

The R6 address is for the instruction status. The DN bit as well as the Length and Position ll come from this location. The Position is applied to any source or destination with a "#" preceding it.

So if I have a source of #N9:0 and the position reads "2" then my source is actually N9:2. If my destination reads #N10:0, then it is actually N10:2

If my destination reads N10:0, then it is always N10:0 since there is no "#".

OG
 
Thanks guys . I forgot to type the description of the FAL
Above the instruction FAL

Move Alarm Words For Comparing
 
Ummm, doesn't the pound sign denote indexed addressing?

It does when used in a word level instruction like a MOV. The address of N7:0 would mean just that; integer file 7 element 0.

If it were identified as #N7:0 then that becomes the starting address for the index. So if the index register (S:24) had say a "5" in it, the address would actually be N7:5.

But, in a File level instruction indexing is done using the POS (position) element of the Control register. Exact same function as indexing, it just uses R6:x.POS instead of the index register.

So yes, you are correct, the "#" indicates indexing (really in all cases) it just comes down to where is the index getting its value. You'll see also that in some File instructions like the COP and the FLL it automatically adds the "#". Whereas others like the FAL leave it up to you which piece will be indexed.

OG

PS - Sometimes I really miss the good old PLC-5 :)
 
Last edited:
Thanks guys . I forgot to type the description of the FAL
Above the instruction FAL

Move Alarm Words For Comparing

Based on that comment - if I had to guess, I'd say that it's copying the status of all alarms to a reference table, so that next scan it can compare "alarms now" to "alarms last scan" to see if there are any new ones.

Total guesswork, but who doesn't like a bit of blind speculation? :whistle:
 
The problem the customers are having is alarms are coming up that are not legitimate faults because the bit that looks like it is associated with the fault is not found within the program. For example....

P/V Alarm # Alarm Identification PLC Bit Address

6 6 N96:0/5 (not found within the program)

9 Supply Fan Fault N96:0/8 ( is found within program )

I need to try to find a way to prevent these false alarms from coming up, but
before I can do that , I need to understand how the code is written.

The customer claims that it is a result from us converting a Panelview to a Panelview Plus . I can't imagine that.

Another question . In FactoryTalk View / Alarm Setup / Messages /
What is Trigger Filter ?

Thanks
 
So if the PanelView is writing directly to those tags/addresses, then they will potentially come up as unused in the PLC-5 since it has no way of knowing where this external device (PanelView) is writing.

The Alarm trigger filter is just a way to narrow down the list of all of the triggers you might have. That way you can look at alarms for a specific filter without seeing potentially hundreds of other alarms. In that window you are only affected what is displayed on your development PC. That setting would not affect the PanelView itself.

OG

BTW I am saying PanelView out of habit. I do mean PanelView Plus.
 
Last edited:
It seems like those bits would be coming from the PLC 5 , since the code is what
is monitoring the field devices and operation.

The reason I am asking about the Alarm Trigger Filters , I was wondering if I could filter those false alarms.
 
I appreciate so much your wisdom and your help. A few other questions......
I have several erroneous fault messages coming up. For example ......
In FactoryTalk View / Alarm Setup / Messages I have

Trigger ( Alarm_14 ) , Trigger Value ( 1 ), Message ( 209 ) Erroneous ,
Display ( unchecked ) . Still displays fault.

Trigger ( Alarm_14 ) , Trigger Value ( 2 ) , Message ( Blower OL 's Tripped ) ,
Display ( Checked ) . Displays real fault .

My questions are,Where would the"Trigger Values"be coming from ?In my simple
mind I would think that if I had a fault I would place a MOV in a rung and move that fault number in the Trigger Value, like a multistate indicator . I know it says
the column cannot be blank , but what if I would be a trigger value of 0 in the erroneous faults. Do you think it would ignore that fault from triggering ?

Thanks in advance.
 

Similar Topics

Just for readers in the US, when I write 'gas' I mean it as a state of matter, not shorthand for gasoline :-) I don't understand the logic of a...
Replies
39
Views
11,172
Good Morning , Could you please explain to me what a S:FS is , what the purpose of it is and why would it be used in a rung. Thanks so much.
Replies
4
Views
1,720
Good Afternoon , We have a number of Kinetix 6000 Servo Drives and motors. I'm trying to understand these a little ( really alot ) better...
Replies
16
Views
6,361
Good Afternoon , We have a new machine from Italy , and for some reason , the servo actual positions quit updating on the HMI. I looked at...
Replies
6
Views
1,718
Hello, I started my new job at a factory and I found that when I opened the PLC cabinet there are "ABB contactors" that are connected to the PLC...
Replies
9
Views
3,329
Back
Top Bottom