Need help tracking data on a batch process

mrchris76

Lifetime Supporting Member
Join Date
Jun 2014
Location
Lake Oswego, OR
Posts
15
Hello all,
I am working on a tracking system, using RSLogix5000, for my factory that will allow me to transfer data for each product load at each step of my process. The data will be displayed using Wonderware. The total process takes place on a system that is the length of 1.5 football fields so the guys at one end are not privy to what is happening at the other. Most of the programming has not been too hard since there are points in the process where the product stops and the next load will not transfer until the previous load has moved on. I used these stops, triggered by photoeyes, as the conditions for transferring data to the next step in the process. My problem is that the in the middle of the process is a section where the product moves at a constant speed until the end of the section. This section is 144 feet and there can be up to 20 loads in this section at any given time. The section is broken into 9 sections and there is one photoeye per section but the product does not stop moving once it enters.

- I tried using the photoeyes to transfer the data like I did on the rest of the system. This did not work since multiple photoeyes would be covered at the same time. This causes the system to propagate the data in section 1 all the through to section 9 at times.


- I tried using timers to time the loads through each section and transfer the data when the timers were done. Again I ran into the problem of having multiple items triggering at the same time. If I only had one load going through it works but I couldn’t figure out how to make it work using multiple loads.

- I tried using FFL function but the number of loads in the section varies and there are gaps in the process at times that need to be accounted for.


I am hoping one of you guys can point me in the right direction because I am at a loss as to how to make this work.

Thanks in advance.
 
mrchris76,

in regards to the problem section - several questions - suggestions.

#1 is there a photocell at the enterance to identify product?
since it moves at a constant speed, look for a no product signal and start timing it to section 2. when the product clears section 1 allow new product. i would use 2 photocells for each area in the entire section.

#2. since there are 9 Zones, note i said Zones and this is key. create 9 working zones for this 1 section of the production line. as the product moves to each zone, move the data into that zone.

i have used this in the past and it worked for me.
regards,
james
 
Option 1.
Use the 9 COP instructions and 9 arrays. Generate a pulse To Match Conveyor speed. I would pulse every 2" of travel. If Conveyor Runs at 60ft per minute. And you said you have 9 conveyors over 144' then that equals nine 16ft conveyors. So you travel time for each conveyor should be 16 seconds. If you pulse every 2" of travel then you need an Array Length of 97. 16x12=192/2=96 So that would be 6 pulses per foot. Or 1 pulse every 166.6 milliseconds. So I would create a Timer for 167 milliseconds and use timer done to reset itself. then compare timer ACC if >= 84 milliseconds then activate pulse OTE. This will give you a pulse every 83 milliseconds. On 83 off 83 use the the pulse bit when conveyor is running to COP Array[1] to Array[0] for length of 96. So your Array will be constantly pulsing when conveyor is running. Notice that the Array Length is 97 not 96 that allows you to copy 1-96 and paste into 0-95. Now, when your induct eye is true move your data into Array[96] then it will pulse that data thru the array. When your data pulses to Array[0] then your done with conveyor length. Now you can transfer data to storage and move to next conveyor when it's induct eye is true.

Option 2.
Make an Array for Total 144 feet of conveyor. if all conveyors move at same speed.

Warning : this will not work if product is allowed to Accumalate on any travel conveyor if allowed to accumalate on the last conveyor that's fine then your back to first in first out only on last conveyor.
 
Map your conveyor with one array. Every scan, update the position of a pointer that moves through this array pointing at the entry position. It is okay if the size of this array is a bit bigger than the real distance of travel, but not less. Each entry point is calculated as an offset from this calculated pointer (with wraparound handled). The exit point is also an offset from the pointer, basically following behind it, sweeping the data off the end of the conveyor as the encoder or otherwise calculated position drives the main position pointer around and around and around. There is not a bunch of data being shuffled, just some math for the pointer and some math for each action along the way that is an offset from that.

This makes it easier to have, for example, an array of these maps for 20 data elements for each batch that get popped into their spots along the way through the process, they never have to move until they get neatly swept off the end about the same time the real batch falls off the end of the section under this logical control. It also does not matter how big the array (within CPU file size limits) as far as processing overhead since you do not have to FIFO thousands of data points every few seconds.
 
Last edited:

Similar Topics

This is my first post on PLCS.net. It seems like most of the topics are hardware based issues, but I am looking someone whom is willing to help me...
Replies
13
Views
8,792
So i've been at this for a long while, i have Citect Scada 2018, i have full access to everything but i can't seem to find any option or...
Replies
0
Views
20
I'm fairly new to Rockwell software, I've had some basic training in the past but nothing too advanced. My company and I use Reliable products for...
Replies
11
Views
342
Hi all, I am having issues accessing my Cimplicity software - the site code changed after re-install and I am no longer able to attain a new key...
Replies
10
Views
169
Good day all! Can someone help me with the procedure to update Beijers E700 firmware? The Panel I am working on is firmware 2.04v and I would...
Replies
1
Views
72
Back
Top Bottom