FIFO instruction

realolman

Member
Join Date
Mar 2009
Location
here
Posts
584
RSLogix 5000 Compact Logix controller

Could someone give me an explanation or post a link to an explanation for the use of FFL and FFU instructions
In particular, I don't know what they're asking for with the control parameter

I want to put 10 REAL s in a FIFO stack

I don't get much outta the help ... seems that it shouldn't be too hard, but I'll be durned if it's soakin into this ol skull

thank you
 
well, I read it but I didn't get much out of it.

I want to keep track of ten reals

I understand the source

Could the FIFO be an array ... such as a Tag called TenReals[Index] and index be the accumulator of a counter? Or the sum of some addition?

Actually I'm not sure I get the point of the FIFO with the FLL and the FLU at all

Seems like you might be able to do it easier some other way... Seems that I should just be able to create this FIFO and on a rung some where, MOV a number into the FIFO and it would put it on top and move every thing else on down ... I don't understand all the other stuff... What is the CONTROL?
 
I don't know what they're asking for with the control parameter

the CONTROL does the same thing in RSLogix5000 as the R6:0 does in RSLogix5 and RSLogix500 ...

specifically, the CONTROL serves as a "pointer" ...

so ... just as a TIMER structure is used for keeping time – and just as a COUNTER structure is used for keeping a count – the CONTROL structure is used for keeping track of where the processor is "pointing" (or "aiming") into a file/array ...

think of it as the processor's "electronic finger" which it uses to march along step-by-step through the array ... notice that the control structure has a POSITION ... this number will automatically change in value as the FIFO instruction marches along through the various locations which make up the FIFO array ...

the POSITION value will automatically be substituted/inserted into the [SQUARE BRACKETS] portion of the array's tagnames ...

Seems like you might be able to do it easier some other way ...

in SOME cases that's undoubtedly true ... many people jump onto the "built in" FIFO bandwagon when doing a simpler COP command would indeed be easier to set up – and to understand ...

suggestion: why don't you tell us exactly what you meant when you said:

I want to keep track of ten reals

once we know what you're actually trying to get accomplished, we might be able to tell you exactly how to get it done ... you might want to take a look at the "ratchet" and the "ripple" ideas in the TWO posts which start here:

http://www.plctalk.net/qanda/showthread.php?p=360484&postcount=3

.
 
Last edited:
thanks for another in your always excellent explanations...

I have a conveyor on which objects are being conveyed. Laser measurements will be performed on these objects that will result in a "real" data type with a decimal point number.

There are a few tests that will be done, one after another, and farther on down the line the objects will be passed or rejected based upon the tests. I need to know when the bad object is at the reject position... an air blast

I can and probably will just keep track of pass or fail of the tests with bits, but there is at least one test that I would like to keep track of the "real" data type of the last ten objects in order.... and then ditch the first one when the eleventh one comes along

There is an example in the instruction help that seems to me to be illustrated wrong... seems to me the most recent value should go in the 0 position and the oldest values should keep being shuffled down through the FIFO "buffer" till they reach the last element and then go off into the netherworld. It seems to me that it is necessary to manipulate the FIFO to control the positions of the data from the ladder logic, and I don't understand what the advantage of the FIFO is.... seems to me this stuff should be taken care of automatically... perhaps just do a MOV of , as in my case, a real data type into a FIFO, and it keeps moving the data down through itself . Seems to me that the programmer has to manipulate it himself and the parameters are pretty obscure
 
Last edited:
based on what you've just posted, the "ratchet" idea is going to be a lot easier to work with ...

the problem with using a FIFO for this project is that once the array gets full, then you'd have to use a FFU (FIFO Unload) instruction to advance the stored data - to make room for the next incoming value ...

it CAN be done with a FIFO - but the "ratchet" will be a lot easier - and it will advance the data through the array just the way that you mentioned ...
 
well, if his eyes get as tired and bleary as mine do sometimes, then it's understandable that some of the little details could be missed ...
 

Similar Topics

Hey guys, I have a scenario where I need to fill a data register with characters, likely alpha numeric. Lets say I have 4 momentary push...
Replies
4
Views
1,971
I am working on a new project in an injectionmolding facility to control the material distribution system. I am looking for an instruction\...
Replies
2
Views
1,136
Hi all, How to apply FIFO instruction in RsLogix 500 so that it can operate same like FIFW/FIFR from Melsoft? Thanks in advance
Replies
4
Views
5,001
hi every one, I have a question about FIFO instruction, i need to to store data in just like the fifo does, but i need to do it with float point...
Replies
7
Views
3,099
Hi i'm trying to use PUSH and FIFO but it seems not to work just like i need or probably i'm doing something wrong, here is the problem: I do...
Replies
4
Views
6,802
Back
Top Bottom