Does AB1500 PLC has an instruction like this one in AD “Filter Over Ti

piscis

Member
Join Date
May 2003
Posts
241
Does anyone know if AB1500 PLC has an instruction like this one in AD “Filter Over Time - BCD (FILTER) IB-422” Or may know how to accomplish the same thing in AB?


8-26-2009 7-31-19 AM.jpg
 
The example referring to in that link is unfortunately of no use to me on this project. You cannot use the instruction “COMPUTE” on a AB1500. Does anyone knows how to add this function analog filter on this PLC any other way?
 
The formula in the box says it all. New = Old + (Raw - Old)/FDC

At each moment when you have a new analog reading you determine the difference between it and the previous filtered value. The you preserve only a part of that to add to the previous filtered value to get the newest filtered value.

Prepare these memory areas (float would be best):

Old - which will be your filtered reading
Raw - which receives the newest reading from the analog module
Raw_Minus_Old - which will contain the difference between the newest reading and the old filtered reading
Divisor - this is the fraction of the difference you want to use
Raw_Minus_Old_Div - which will contain the fraction of the new difference you want to retain.

1. Process newest analog reading into the float value 'Raw'
2. Subtract this newest value from the previous filtered value. Store in 'Raw_Minus_Old'
3. Multiply 'Raw_Minus_Old' by your fraction you wish to keep (Divisor). Store this in 'Raw_Minus_Old_Div' (Note 1.00 is no filtering. As the fraction gets smaller you have more and more filtering. You won't use a number greater than 1.00)
4. Finally add 'Raw_Minus_Old_Div' to 'Old'

'Old' is your filtered reading. In the formula 'New' is the value of 'Old' on THIS scan (or iteration of the filter). 'Old' is the value on the previous time. They can actually be the same location.
 
So what happens when...

What if the difference between Raw and Old is smaller than FDC? The New value will not change? One should keep the remainder from each divide. The remainder should be added to the difference between Raw and Old before
dividing. After the divide the remainder should be stored for next time.

I would not implement this in BCD or INTs. Floats would be easiest then one doesn't need to hassle with the remainder.
 

Similar Topics

Hi I have a ifix 5.5 application where the operator opens a valve by clicking on a screen object. I can trace from object to data base that it is...
Replies
2
Views
42
Hi, i am using DVP-14SS2 PLC, after program written to plc, when power is reset, plc doesn't run. always need to connect to pc for the run mode.
Replies
0
Views
36
I am trying to connect with a Schneider plc which has a firmware version only available in Somachine v4.2. In Machine expert After taking upload...
Replies
0
Views
122
They are installed in a control panel that was made in France and are intended for the termination of analog inputs. Each of the red capped...
Replies
4
Views
432
Back
Top Bottom