Sign in to follow this  
Followers 0
Veeger

Ffl and ffu slc500

15 posts in this topic

I am trying to change my program on a machine. Heres the rundown. I eject parts from machine and at that point the machine tells SLC good or bad. Then it travel's down 30' of conveyor and it comes to point where it must swap either to bad or good line. Have no way tracking which one is which except the way I do it> Currently i am setting a RTO which times only when conveyor is running and am using latches along with that. What I would like to do is change that to a FFL/FFU with at max 10 parts on conveyor at any time. I have'nt ever used the FFL/FFU  and its somewhat unclear to me. I won't load the whole file just the Test FFL.rss i am playing with. Its for a SLC503 and its RSLOgix 5.00. I only have a fixed SLC in the shop to play with and it does'nt support FFL/FFU. Guess what I'm asking is does this look correct. If Bad i set B9:0/0 then FFL loads the File with that bit set and if not it loads a blank file I am presuming.                                                   Mark   Eject                                          Bad               B9:0/0 ---| |--------------------------------| |----(OSR)---( )---                                             |                                             |   _FFL_                                             |--|                                                 |Source       B9:0                                                 |FIFO          #N7:0                                                 |Control       R6:0                                                 |Length       10                                                 |Position      0                                                   Make Photo and unload           Photo                               _FFU_ -------- | |------------------------|                                                 |FIFO          #N7:0                                                 |Dest          B3:1                                                 |Control       R6:0                                                 |Length       10                                                 |Position      0                                                       Photo                                  Send Bad     Bad Part                                                 B3:1/0 -----| |--------------------------------| |--------( )-----                                               |                                               |                                               |   Send Bad     Good Part                                                      B3:1/0                                                ------|/|--------( )----- Another presumption is if i unload then it will set the bit on since the file it loaded had 1 bit set. And if blank it unloads but sets nothing. Lost here and hope someone can set me straight on these FFL's since they look like they can do what I want. Or do I need to condition the bits its loading/unloading? I assume also that regardless whether i fill the FIFO stack that on unload it grabs first one set although it may be only at 3 or the 10 maximum will fit on conveyor.  If you include a file make sure it's RSLogix5.00 or export to SLC. The boneheads I work with stopped the updates at 5.00 even though I told them there would be fixes to some problems shortly. They wanted to get on one version and stick with it till a major upgrade or at least one command line junky who does'nt like RSLogix. He's stuck in the 70's Thanks for any help FFL.rss

Share this post


Link to post
Share on other sites
I am not too hip on Fifo Load and Fifo Unload, but I have used alot of BIT SHIFTs. They work pretty good. Can you write the code using a bit shift? I could explain how I use bit shifts if you need me too. Let me know.

Share this post


Link to post
Share on other sites
Yes i have looked at them but have'nt used. This FFL looks interesting and it will do everything for you. Once loaded it shifts the stack up and will unload off the top. I just wanted to try something new. I've dug up a little info off the web but was hoping someone that used them knew a few tricks.  :)

Share this post


Link to post
Share on other sites
I think that the FIFO load/unload would work if you can gaurentee that there will be 10 parts on the conveyor at all times. If at any time someone took one off of the conveyor, You would still load and unload with a span of ten, therefore, your part status would be offset by 1. If this is an accumulation type conveyor with photoeyes/prox's at every staging point then you could only allow the conveyor to index one out if there were 10 present, but if this is a belt there will be more complications. It is still possible using FFL/FFU, you 'll just have to spice up the whole thing up with a little indirect addressing.

Share this post


Link to post
Share on other sites
Veger, To answer your orginal question. What you have there should work if you want to use a FIFO LOAD. Using a bit to load as you have posted in your example. I see nothing wrong with your thinking. And your example code you have posted makes good sense and should work just fine for what you are tracking. (The one bit either on or off in the FIFO for the parts traveling...) But just as 93ltl said, becareful about using FIFO on a conveyors. If you have ANY operators around they could remove a product and throw your whole FIFO out of wack. I've seen this happen a few times. Even my original reply using a BIT SHIFT could be thrown out of wack if a product is removed. Which is simpler than a FIFO LOAD for what you are tracking, could be the same problem. I think it's great the you want to try new instructions to track your product. That's the only way to learn and understand how to use the code, it learn by example or learn by doing. Eject      Bad                                                   B9:0/0 ---| |-----| |----(OSR)--------------------------------------------(L)--- *Latch the BIT you want to shift to indicate a failure                                                 Make Photo and unload Photo                           ---| |--------------------------------------------------|File =#B11:0 |control = R6:0 |Bit Address = B9:0/0 |Length = 1 *Whatever condition advances the next part, you shift the condition of B9:0/0 into B:11/0 Make Photo and unload Photo                                                                  B9:0/0 ---|/|----(OSR)----------------------------------------------------(U)--- *Unlatch the condition of BIt shift after you moved tracking bit                                              Photo                                                        Bad Part                                                 B11:0/10 ---| |---------------------------------------------| |-------------( )-----                                              |                                              |                                              |                 Good Part                                                 B11:0/10                                               ----|/|-------------( )----- *Start reading the 10th bit of the B11:0 file to watch the status of the TEN PRODUCT on the conveyor

Share this post


Link to post
Share on other sites
chakorules - Thanks for that sample Chako. If i don't get this FFL going I had decided to try Bit Shift. And I already have the operator thing solved. They can't control the discharge section of these unless they drop it to manual. If they do I simply clear everything and they have to unload the lines manually. They already know and do that. They lose 2-3 minutes but they accept that so i have'nt told them i could fix it. At a later date I plan on fixing where they can drop to manual and I still track them Units irregardless since I have a few photocells along this line. One to make sure it was'nt false eject, one before the turntable to stop any others from entering till its ready and one on the table. 93lt1 - Since i have the operator unload covered right now. The first in is the first out regardless if you have loaded 3 to the stack or 10 and it automatically shifts the register for you. Thats why i wanted to experiment with this. It uses the S:24 index register bit to keep track of where its at and that bit resets itself to last state after a fault or anything. Since its also using the R6:0 for control you add a line if stack becomes empty then do a reset on R6:0 itself R6:0.DN               R6:0 --| |--------------(RES ) and at same time I load my stack with all 0's using the Fill File to make sure. Theres other things I have found and am still debugging before i try it out. I allways add the uh oh's just in case. I'm sure we all try to think of every possible situation and make sure its coded to handle that beforehand. :D

Share this post


Link to post
Share on other sites
OOPS.....I guess I should make sure I am making sense before I start leading people the wrong way. I know how it works I just had a hard time getting it out through this keyboard. How about this, delete the part about staging 10 before an index?? :)

Share this post


Link to post
Share on other sites
May I add a different perspective to overcome the obstacle of an operator removing a part? It's called zone shifting in the conveyor industry. Each of the 10 zones gets tagged good/bad part. Lets say the a bad part sets zone 1 bad bit to 1. With the movement of conveyor (or timer used for virtual PE), the bad bit value is shifted to the next downstream zone, zone 2. Etc. Etc. This methodology is to track the zone, not the part. So your PE (photo eye) or virtual eye (zone timer) triggers a "load enter zone"(LEZ) and a "load left zone"(LLZ). When the tagged zone with bad bit set is shifted to Zone 10, you sweep bad part, whether there is a part there or not. In series with "if bad bit, sweep," you can use an PE/PROX to set "if actual part is present". This sequence is more code intensive than fifos, but the reliability is worth the extra rungs of logic. Depending on your real world requirements, you can enhance the basic logic above to look at parts too. This is done with a "Valid load entering zone" (VLEn), and "Valid Load Exit zone" (VLEx). Of course the hardware expense increase when having to validate if actual valid load in zone because a sensor is needed for each zone. If you mechanically zone conveyor, 10 solenoid and 10 PE would be needed. The least expensive is to use one zone, or pro conveyor, and use timers in place of 10 PEs. Just have an actual PE in zone 10 (most downstream zone) or sweep when bad bit set, whether there is a part or not.

Share this post


Link to post
Share on other sites
This is such a cool forum, I hurried and answered with out first setting up my signiture. :>/ Thought that might be rude, so this post is just so you will know who I am. I am Don who post above this one. :>) Good luck

Share this post


Link to post
Share on other sites
BIN95 Thats basically what I'm doing with this FFL. If when eject its bad it sets the bit indicating bad and starts moving down the conveyor. I have a Photo there to make sure I have an eject otherwise nothing moves (fail safe). If a second one is ejected and its good it sets good bit. The neat thing about this FFL is when it reaches point where it goes either to good line or bad it unloads the first 'File' in which is bad and so forth and then the stack shifts by one. So in actuality i have 10 zones in this particular file and can make it up to 128. I've said 10 since thats all that will fit in the space of this conveyor so to be safe i make my stack 12. I think on normal run all i'll have is 3-4 on the line. No way to get em off line unless they fall off for some un seen reason cause they weigh upwards of 200lbs and thats the small one, but then i think the operator would immediately switch to manual or E-stop which i've fixed to clear my stack.

Share this post


Link to post
Share on other sites
Question/comment Are not bit shift and FIFO concepts the same thing with the bit shift working on a bit within a word and a FIFO working on a word in a stack. Application sounds more like a bit shift operation. If only to conserve memory. Ihave use the FIFO system when I was required to reject an item and also attach the reason for the rejection.

Share this post


Link to post
Share on other sites
Just to reply and say I've got it going with the FFL. Works real smooth. Somewhat modified from my original version but it still works and I have room to add extra information that may be needed in the future like reason ejected that Ian mentions. I've learned a lot from this one so it was well worth it.

Share this post


Link to post
Share on other sites
Veeger: Congratulations! Ian: no they're not the same. A shift register operates synchronously - for every item shifted in, one is shifted out. A FIFO operates asynchronously - load and unload (shift in & out) happen at differrent times (normally). Data entered in a shift register must be shifted the length of the register (one position per shift pulse) before it is available to shift out. Data loaded in a FIFO can be immediately available for unload, regardless of length. For tracking applications, a shift register will track position, whereas a FIFO will track sequence. Back in the days of norbits, a FIFO was called a queueing register. In some ancient A-B literature (anybody heard of 1774?) they are called asynchronous shift registers. ....around about the time that "V-ger" episode of Star-Trek was produced

Share this post


Link to post
Share on other sites
Thank you I have also learnt more from this question

Share this post


Link to post
Share on other sites
Gerry You explained it better than I could have but I knew that was the problem with using shift register. I would have to have the 10 in their before it shifted out. There are other ways to look at what you have loaded and manipulate it that way but the FFL was perfect for my application since i needed to track the sequence and unload in same order it went in. With the FFL which is a FIFO= First In First Out As I mentioned the section could have as many as 10 or maybe even just 1 on it. We're averaging 40 - 50 an hour. And have hit 60. On another note whoever ordered the conveyor ordered a very fast gearbox and I'm not sure of ratio now but old one was so sloo--ooow. I designed this with that in mind with possibly 4-6 on it at any time before the conveyor showed up in plant. This thing is so fast it only takes about 20 seconds to hit the unload photo. We actually laugh at it because we don't have any in the plant like it. If you can imagine a 50KVA transformer weighing 500lbs. covering 30 feet in 20 seconds its really hilarious. But we're already looking at downsizing the ratio. It is really heavy duty conveyor and theres no problems but it just don't look like it will be good on the chains. "V-ger" episode of Star-Trek was produced OOps ya caught me. The very first time I created a username on the web I had just finished watching a re-run on that episode.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0