Sign in to follow this  
Followers 0
mracer

FIFO and String Data?

6 posts in this topic

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

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.).

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