Help - Search - Members - Calendar
Full Version: FIFO and String Data?
Forums.MrPLC.com > PLCs and Supporting Devices > Allen Bradley
mracer
I have a project that I would like to do a FIFO with string data. It’s a part number that would look something like this. 123A45B78. When I looked at the instruction set I see that a ST file is no included in the FIFO list.
Is there some way of doing this with a ML1100 or a SLC 505?
I would like to set up a way of tracking a part through our paint line.
Thanks
Marv
panic mode
description is not very clear. are you trying to track parts withing one string or each string would be one part number
and there would be bunch of strings? (i guess later one is what you would like to do...).

so how many parts you plan on tracking (fifo depth)? based on question you are clearly unaware of memory size in
those controllers and memory consumption of string data types. when you make an array of them (string type datatable(s))
memory consumption goes up quickly to rather large value.

for example i don't think ML1100 will let you have more than some 100 strings or so even if there is NOTHING else
(no any other data table or programs) which most likely means this if you have to stay with RSL500 consider SLC505
(and probably not the 16k version, maybe not 32k version either, try to create required tables and compile program,
see what memory you have left...).

you need to look closer how to optimize memory use. for example i would leave strings where they are and just fifo
integers that represent string number (reference to product).
BobLfoot
QUOTE(mracer @ Jan 9 2008, 09:17 PM) [snapback]63589[/snapback]

I have a project that I would like to do a FIFO with string data. It’s a part number that would look something like this. 123A45B78. When I looked at the instruction set I see that a ST file is no included in the FIFO list.
Is there some way of doing this with a ML1100 or a SLC 505?
I would like to set up a way of tracking a part through our paint line.
Thanks
Marv

IF as panic mentioned you detemine you have the memory to store your number of strings I would suggest the following. Use a counter C5:0 for example going from 1 to X with X being your most number of parts. Store you string data in ST10:[C5:0.ACC] and put C5:0.ACC into your FIFO. This way you ahve all your data but your FIFO is shifting only integers. This is more efficient.
panic mode
yes, the counter preset would have to match max number of parts tracked at any time (and there would have to be same number of strings of course).
also counter would have to self reset when DN is high (rollower) so that all ACC values values are unique (i would use 0 to X-1 as X would be same as 0 due to rolloever).
there are other ways to optimize memory use and maybe even use ML1100 for example if the part ID is fixed lenght or at least known to fit in limited number of characters.
mracer
I'm not sure I am following.
So the first bar code would go to ST10:0, the next would go in ST10:1 and so on?
I'm getting lost on how the counter will be used.

Right now I am taking the string data (ST10:0) and moving it depending on the size. If len=>6 or <10, it is a part number and gets moved to ST10:2.
If the Len is >2 and <4 it is the part count and gets moved to ST10:3
The Plant Metric's picks this data up from there.
If Len=5, it's an employee ID #
I also need to "0" out ST10:0 after the move so the bar code gun and send the next data.
That has all worked vary well.
Now I'm ready to take it to the next level.
With the Part number, I can tell if the washer pump PSI needs to be turned down(some parts gets blown off with high PSI) also the cure oven temp changes with some parts.
I have also been asked if I can make this data available to the Planers so that they may see where there parts are (JIT-Just in Time) for Assy Line planing.
I am using the RTA Ethernet interface, 435 i think is the PN, and it's worked well for me.
Thanks for the input.
I know I can get this working. I just need someone to point me in the right direction.


panic mode
you are right,

if max number of items to be tracked is 100 (just an example) then
when .ACC=100 you reset counter (so .ACC goes back to zero):

ST10:00 = tracked item1
ST10:01 = tracked item2
ST10:02 = tracked item3
...
ST10:98 = tracked item99
ST10:99 = tracked item100
ST10:00 = tracked item101 (counter rollower)
ST10:01 = tracked item102
ST10:02 = tracked item103
...
ST10:98 = tracked item199
ST10:99 = tracked item200
ST10:00 = tracked item201 (counter rollower)
ST10:01 = tracked item202
ST10:02 = tracked item203
...
ST10:98 = tracked item299
ST10:99 = tracked item300
ST10:00 = tracked item301 (counter rollower)
ST10:01 = tracked item302
ST10:02 = tracked item303
...
etc.

since we accounted for tracking of only 100 parts, when part 101 is in, last one (part1) is out etc. this means that 100 tracked parts in this case would be 2,3,4,5,...99,100 and 101 but the strings (which are not moving) would show parts 101,2,3,4...99 (101 is in place of part1, on next increment 102 would be in place of part2 etc).
note this is only principle and you need to think of your own preferences and any special cases that may apply to your project (no part for example, any flags or attributes to be "attached" to tracked part etc.).


This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.