fifo help in rslogix 500 please

stu

Member
Join Date
Aug 2005
Location
England
Posts
779
Hi guys
I am trying to get how fifo work in my head and I have attached a program that I have got working but not sure about the unload, I have done 2 one will be for flour weight 10 samples and the other will be water weight 10 samples does this look right thanks stu
 
The 'Unload' (FFU) in each should be to a seperate 'N' register, and not an indexed (#) one. Just as the FFL brought a number from a fixed 'N' register INTO the FIFO the FFU will remove the one at the end, sending it to the designated fixed 'N' register and decrement the number of items in the FIFO (and turning off the /DN bit.)

The /DN will be triggered when the FIFO is full. You can immediately, or at some point before another sample comes in, use the FFU to unload the first (or tenth back) sample which was moved into the FIFO using the FFL command.
 
Ok thanks , so I need to change the unload fifo to a different N,
And take out the reset dn. Bit is that right
 
I'm sorry that I might have confused you. It is the 'Dest' target in the FFU command which must change from #N7:10 to some unused 'N' register. And yes, take out the RES. The FFU will cause the /DN to turn off until the next FFL occurs which will again fill up the FIFO.

There's nothing which says you have to wait until the /DN bit is true to use FFU. If R6:0.POS is greater than 0 then you can call the FFU.

And it might be good to put an XIO of R6:0/DN before the OSR in rung 0 to prevent attempting to put another item into the FIFO if it is already full.
 
So there is nothing that goes in front of the FLU then .Thank you for your help , im trying to be better at programming. Thanks again
 
If your intent is to only 'unload' if the FIFO is full then go ahead and use the R6:0/DN as a condition. I was just noting that it isn't required to wait until the FIFO is full to perform an unload.
 
If I wanted to have a decimal point in the valve (from a load cell ) I would have to use a float would I not a N
 
If I wanted to have a decimal point in the valve (from a load cell ) I would have to use a float would I not a N

You can have an implied decimal point with an integer. That is the way it was done before PLCs had floating point data types.

If all eyes are on the same page.

1234 Div 100 is 12.34
1234 Div 10 is 123.4
 
Last edited:
Hi guys
I took the RES out of the FFU rung and changed the FFU destination N word to one that's not being used, and now the
It doesn't reset and ideas
 
Make it look similar to the attached picture.

It is not clear what your goal is with the FIFOs. What are you trying to do with those? A guess is that you are saving the last 10 weights, but then when you unload, what do you do with each weight? Right now, each will disappear into N7:20 and N7:40.

FIFO Problems .jpg
 
Last edited:
If all you want is two chains of ten values each then this file with two rungs should provide that. Of course in reality you'll have real values. I'm assuming that the oldes value which is unloaded from the FIFOs has no other use and just gets overwritten each time.
 

Similar Topics

Hello all, I need some guidance creating a FIFO array to display data into an HMI. The data will be the sum of jams of a conveyor section in an...
Replies
5
Views
2,666
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,953
Hello Friends I need to save 2 tags (String and DINT) in a FIFO of 10 elements. When a programmed condition is true, this 2 tags should enter...
Replies
3
Views
4,555
Hey, I am trying to implement a FIFO as a sort of memory option when I am trying to log the last 30 values of a variable. Due to the lack of...
Replies
10
Views
4,241
I have read the various threads on the FFU/FFL uses. I am trying to chase down an issue I am having with a program one of my predecessors wrote. I...
Replies
15
Views
3,790
Back
Top Bottom