A-B plc5 tracking parts thru machine

tom_stalcup

Lifetime Supporting Member
Join Date
Jan 2004
Location
fresno
Posts
461
Recently, I was asked to track product moving thru our machines, and reject them based on an existing input signal. This didn't seem horribly hard to me, but I did run into a few "learning experiences" that might make it easier for the next person to deal with.
Setup:
12 stations moving thru the machine in one block, with a couple of signals for each station. Once the stations reach the end of the machine(50 or so stops later), they are indexed onto a discharge line that feeds the 12 stations in series. During these steps, the product is filled, sealed, etc.


Digging thru the help files, at first a FFL(FILE FILL) command seemed to be the easiest way to do it.
excerpt from help files
You can perform file shifts by specifying a source element address one or more elements greater than the destination element address within the same file. This shifts data to lower element addresses. You can use this technique to store data of assembly line events instead of using FIFO load/unload instructions.
© 1997 Rockwell Software Inc.

Hmmmm..... worked fine, as long as i only wanted to shift 1 word down 1 block... If there's a way to shift multiple words down multiple blocks using this command, someone let me know...... I tried a variety of different addressing schemes, and didn't get any of them to work the way I wanted to. I could either move data down 1 block, or I could fill the entire block with the data in the 1st block, but couldn't move the data down the tracking area properly.

I ended up using a COP(COPY)command, and this worked exactly the way I thought the help files said the FFL command would work.

Once I got the data down to the discharge of the machine, I set up a BSR to move the reject signal to the proper place, and then used a couple of timers to tell the machine exactly where to reject, with the sequence being started with an existing encoder(of sorts).

VIOLA! Done(for now)

Is there a way to use the FFL command for something like this? Just because I couldn't figure it out doesn't necessarily mean you can't do it..... It just means I couldn't figure it out.
 
I think you need to study the instructions more closely

tom_stalcup said:
Digging thru the help files, at first a FFL(FILE FILL) command seemed to be the easiest way to do it.
FFL = Fifo Load
FLL = File Fill

The FLL instruction moves the value in the source word to as many words in the destination file as specified by length.

tom_stalcup said:
Is there a way to use the FFL command for something like this? Just because I couldn't figure it out doesn't necessarily mean you can't do it..... It just means I couldn't figure it out.
Neither FFL (with FFU) nor FLL work as a shift register.

tom_stalcup said:
I ended up using a COP(COPY)command, and this worked exactly the way I thought the help files said the FFL command would work.
This is the way to make a word shift register. The method has been discussed here before.

tom_stalcup said:
VIOLA! Done(for now)
A Viola is a string instrument like an over-size violin.

The French expression is "Voila" meaning "there" or "there it is".
pronounced "vwallah"
🍺
 
I think you need to study the instructions more closely
:unsure:
Well... I WAS trying to study the instuctions when I tried using the FLL(thanks for the correction by the way FLL/FFL). I have used the FLL before(to put 1 set of data into 12 locations, the way it's supposed to work)
I think my main point there is that the help files are a little misleading, since it DOES seem to say that you can use the FLL for "data tracking of assembly line events"...

It just doesn't let you track it very far(say, about as far as a MOV statement would let you).o_O
A Viola is a string instrument like an over-size violin.

The French expression is "Voila" meaning "there" or "there it is".
pronounced "vwallah"

Darn it! My spell checker(the one in my head) didn't pick that up. The silly thing must be broken again..... :)
 
Tom,

You could set up 12 Bit Shift Registers (BSR, BSL instructions in Rockwell Software)with each having Length = 50 bits. Each time a station moves, shift the tracking bit 1 bit position. Then for each of the 50 stops, you can track each station position exactly. If a station is rejected, set the tracking bit to 0. As long as it stays 1, the station continues on its way.
 
Here's a working example of FFU/FFL. It uses N17:1 through N17:59 for the FIFO and N17:0 for the unload position. In my example, each time the value at N7:0 changes, the data is "stacked" in the FIFO. The first screen shot shows the data table after the first three entries into the stack have been made. Notice that the first data item enters at N17:1, then N17:2, etc. This was done intentionally (look at the addressing of the instruction).

FFU_FFL_1.jpg


When the control POSition is equal to the length the DoNe bit will be set. When this is true, the first branch will execute the FFU instruction, unloading the value at N17:1 into N17:0 and shifting all the data down one position. Here is a picture of the data table with a full stack. The newest entries go into the [file].pos address, and the oldest is unloaded at the Destination of the FFU instruction.

FFU_FFL_2.jpg
 

Similar Topics

I am using the following formula and I am getting error, Invalid Expression - too many closing parenthesis. when i copy the formula to notepad or...
Replies
4
Views
145
Preface: Kinda long, so I made section titles Intro: I just want to see if anyone here has seen anything similar. A PLC5-40 series C enhanced...
Replies
3
Views
364
Hi, can anyone help me get a pdf file for this RSP files. They are from a PLC5. Thanks
Replies
5
Views
506
Hello all, I am seeing this behaviour where an integer file (N46:33), has an integer in binary (11110) which is 30 in decimal. I did a...
Replies
7
Views
511
Back
Top Bottom