Forums.MrPLC.com: FIFO Instruction of RS Logix5000 - Forums.MrPLC.com

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

FIFO Instruction of RS Logix5000 Rate Topic: -----

#1
User is offline   dsc 

  • Sparky
  • PipPipPip
  • Group: MrPLC Member
  • Posts: 74
  • Joined: 19-May 05
  • Gender:Male
  • Location:Malaysia
Hello guys,

I'm new bie of RSLogix 5000. Could anyone know how to use FIFO instruction during application?Plz provide me any block/instruction of FIFO. Thank you.




0

#2
User is offline   rdrast 

  • Sparky
  • PipPipPip
  • Group: MrPLC Member
  • Posts: 47
  • Joined: 09-March 05
What are you actually looking for?

XIC Tracking_Enable BST XIC Run_Fwd_Ftg_Pulse FFL Speed_Act Speed_Act_Array[0] Speed_Act_FIFO_CTRL 1000 800 NXB BST XIC Speed_Act_FIFO_CTRL.DN NXB XIC Run_Rev_Ftg_Pulse GRT Speed_Act_FIFO_CTRL.POS 0 BND FFU Speed_Act_Array[0] Speed_Fifo_Out Speed_Act_FIFO_CTRL 1000 800 BND

That (all one line) is a basic FIFO load/unload set.
It will shift the value in (Speed_Act) every foot. After 1000 shifts (feet), it will begin shifting the value out to Speed_Fifo_Out. It will also shift out if the line is run in reverse until the FIFO is empty.

No provisions were made in the example for clearing the output register when the FIFO is empty, or before it has been filled.

A more complex example (and the above) is attached. Attached version is a stripped down version of using a user defined type to store information which is processed later by a database. The FIFO is used to hold events until the database can deal with them.

Attached File(s)


0

#3
User is offline   dsc 

  • Sparky
  • PipPipPip
  • Group: MrPLC Member
  • Posts: 74
  • Joined: 19-May 05
  • Gender:Male
  • Location:Malaysia
Hello,


Thanks for your FIFO basic example.

For your info, I need to perform a program to convey a product from a sailo to 4 different hopper.Only 1 hopper could be filling at 1 time.The conveying process will start automatically when the operator push the START button on Control panel.The conveying request will only happen if any of the 4 hopper give a low level signal to PLC(Compact Logix L32-E). My question is,how to perform a selection where the conveying request will only occur based on FIFO selection? This mean the PLC will only scan the 1st earliest bit which given by any of the 4 hopper.I use RS Logix 5000 software for this programming method.

Is there possible for me to use the FIFO instruction?

Thank you.
0

#4
User is offline   paulengr 

  • Propeller Head
  • PipPipPipPipPipPip
  • Group: MrPLC Member
  • Posts: 1,416
  • Joined: 27-March 05
  • Gender:Male
  • Location:North Carolina
  • Country:United States
    United States

View Postdsc, on 29 March 2011 - 09:57 PM, said:

Hello,


Thanks for your FIFO basic example.

For your info, I need to perform a program to convey a product from a sailo to 4 different hopper.Only 1 hopper could be filling at 1 time.The conveying process will start automatically when the operator push the START button on Control panel.The conveying request will only happen if any of the 4 hopper give a low level signal to PLC(Compact Logix L32-E). My question is,how to perform a selection where the conveying request will only occur based on FIFO selection? This mean the PLC will only scan the 1st earliest bit which given by any of the 4 hopper.I use RS Logix 5000 software for this programming method.

Is there possible for me to use the FIFO instruction?

Thank you.


In other words to queue up the events as far as "what happened firs?

It can be done with a FIFO but with the overhead involved and only needing 4 entries, it is probably easier to do it another way.

Remember with a FIFO, there are essentially two main operations: loading a value (FFL), and unloading a value (FFU).

Each conveyor would need state bits telling whether it is "waiting" or not. Then whenever the empty signal is generated, add it to the FIFO queue (FFL) ONLY if the "waiting" bit is cleared. Then set this bit to prevent the conveyor from being queued more than once.

The filling routine simply checks to see if the FIFO is empty (there is a status bit for this). If it is empty, it does nothing but idle. If it is not empty, then it unloads a value (FFU) and begins loading the specified conveyor. Once loading is completed, it clears the "waiting" bit. The loading system also needs a "busy" state, "current conveyor", etc., to keep filling the same area until complete before moving on. Alternatively it could be set up to stop filling after a timer expires, allowing it to round robin while not waiting for everything to totally fill before going on to the next one.

So basically the FIFO is just an event queue, nothing more.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users