Using bit-shift register to track a produkt

mulderm

Member
Join Date
Jun 2003
Location
Netherlands
Posts
298
Hi everybody,

I want to use a bit-shift register (BSL) to track a produkt.
I´m using 12 conveyor´s and on the end of each conveyor there
is a photoeye.
When the produkt is arrived the first conveyor, the conveyor1 is
running.
When the produkt is arrived on the end of conveyor1 (photoeye is '1')
the conveyor 1 and 2 are running.
When the produkt is arrived on the end of conveyor2 (photoeye is '1')
conveyor 2 and 3 are running and conveyor1 is stopped (if there is
no new produkt).etc. etc.
I want to now on which conveyor the product is arrived.
How can I use a bit-shift register for this?

Can anyone help me?

Greetings,

mulderm
 
Last edited:
I'm not sure a bit shift is the best way to do this unless you are doing this for a class assignment and the BSL instruction is mandated.

I would look at what event STARTS and STOPS each conveyor noting that conveyor one is a special case as it must be on before any sensor is actuated. So, then look at conveyor 2.

Conveyor 2 gets STARTED when the prox at the end of Conveyor 1 gets actuated....and it gets STOPPED when the prox at the end of Conveyor 3 gets actuated 👨🏻‍🏫 .... hmmmm START ..... STOP .....START /STOP ... What you need is a START/STOP circuit for each conveyor!
 
Hi ndzied1,

The conveyor must stopped if there is no product coming up.
The first conveyor is running when the product is coming
from an other station.
I want to know if the product is arrived on a conveyor place
using a shift-register to tell me the place.
Example: Upside conveyor6 is a machine that controls
the product is in a good state.
When the product is not good ('1') these information must coming to the end of conveyor12.

Greetings,

mulderm
 
Last edited:
I'm sorry, I thought you were trying to use the Bits to control the conveyors.

There was just a thread on the BSL instruction on this board which is found Here

As Joejoe points out a FIFO might be of use here also.

Bit shifts are best when you have an exact number of stations for the product to be at. Then, for instance if station 3 is an inspection station and you find a bad part, you turn on the bit which corresponds to Station 3. As the parts get moved you shift the bits and when the part comes out at station 12, you check the bit to see if the part is good or bad.

But, your situation sounds a little different.

For starters, are there ever more than one part on a conveyor at a time? Are there different numbers of parts on each conveyor at different times? In this case, the situation is more complicated because you don't know how large to make your bit array.

Here a FIFO (On the SLC 500 platform the load and unload instructions are FFL and FFU) would probably be a better choice. So long as you stay within the max size of the FIFO buffer, you can load every time a part enters a section and unload when it leaves a section and the fifo takes care of how many parts are within the section. But, you would need a FIFO for each conveyor section. When you unload a value from one conveyor section you would then load that value into the FIFO for the next section. The nice thing about this is that you would now have 16 bits of information for each part so you could track at which station the part failed.

If all this sounds like what you want/need, give a few more specifics and you can get more help.

Sorry for the confusion of the original post.
 
Using bit-shift register to track a product

mulderm,

To use a Bit-Shift Register to track the product, you must have an input that is tied to the movement of the conveyor. You cannot do it right if you only have photswitches looking at the product on the conveyor. YOU MUST HAVE A POSITIVE FEEDBACK FROM THE CONVEYOR MOTION. You can use a proximity switch that looks at a target on the conveyor shaft. Every time the shaft turns, it gives a "1" pulse. This will mean that the conveyor has traveled some known distance. You can calibrate your proximity switch by making the target shorter or longer (or you can just put a convenient target on it and then measure how far the conveyor travels for each pulse). You then use this pulse to shift your bits. For every pulse, you shift 1 bit left. The bits in your register then become a symbol for the product position on the conveyor. Your Bit-Shift Register must be long enough to represent the entire length of your conveyor. For example, if you have a conveyor that is 10 meters long, and for each pulse bit your conveyor travels 1 centimeter, then you need a bit shift register = 1 bit/cm x 100 cm/m x 10 m = 1000 bits. If you are using 16-bit words, then make yur Bit Shift Register >= 63 words long.

Now, you input a "1" bit into the shift register when a product is detected by your photoswitches, BUT THE "BIT SHIFT" OR MOVEMENT OF THE BIT IS CAUSED BY THE MOVEMENT OF THE CONVEYOR. Then the shift register will track the position of the product. You can actually see it move if you open the data file at the memory location where you made your shift register.
 
Last edited:
mulderm:

We really need to know the answers to some questions to help you further:

1. Is there ever more than one part on a conveyor at a time?

2. Do the parts enter the conveyors at random intervals or are they at specific positions (for example, on a segmented conveyor)?

If you are having trouble with understanding the questions, I can make some sketches to help.

Let us know
 
By stating that you "want to use a bit-shift register (BSL) to track a produkt" severely limits your possibilities. Is there some specific reason why you want to use a shift register?... :confused:

Since there can be multiple products on the conveyor(s), you're probably going to need a separate shift register for each product that you need to track, but all they will tell you is where each product is in the system. There will be no data associated with the product. IOW, a shift register is NOT what you should be using for this application.

A FIFO for each conveyor is better suited to the task, even if each conveyor would only have one product at a time on it. Although, if that's the case, a simple WORD shift could also be used. The word would contain any data associated with each product as it moves from conveyor to conveyor. On second thought, go with the FIFO... That makes the most sense!... :D

beerchug

-Eric
 
Hi Mulderm,

START...STOP...START...STOP for short time can be reducing life time of the motor, but if it ('START...STOP...START...STOP') should be done for your system, please make sure n cek first, OK.

I give an other way for your conveyor sys, no need move/shift bit.

T1
PE1 +-----+
---|/|-+---|C |-
| | | C11
+---|R |-----( )-
+-----+
Timer reset if R=0
C11=1 when (FE1=0 and time < preset), or R=0 or FE1=1


STR PE2 STP1 C1
---|P|----+----|/|---+----|/|-------( )
| |
C1 | C11 |
---| |----+----| |---+

T2
PE2 +-----+
---|/|-+---|C |
| | | C21
+---|R |------( )-
+-----+
Timer reset if R=0
C21=1 when (FE2=0 and time < preset), or R=0 or FE2=1


PE1 PE3 STP2 C2
---|P|----+----|/|---+----|/|-------( )
| |
C2 | C21 |
---| |----+----| |---+

same way for C3,4...12.

Notes:
- PE1,2... : Photoeye1,2...
- C1,2... : Output for Conv1,2...
- C11,C21... : Internal relay for timer 1,2...

Timer provided for keep run the conveyor when there are many produkt on the conveyor after the first produkt is arrived on the end of next conveyor.
Timer preset value is moving time from tail pulley conveyor until end of conveyor (head pulley) plus 5..10%.

Thks & regards
Azdi
 
Hello everybody,

Answers for the Questions:

1 There is only one part on a conveyor.
2 The parts enter the conveyors (non-indexed conveyor = 3 phase
motor) when there is no part on the conveyor and stop by the
photosensor.

I`m realised that I must use a Fifo-shift register.
But must I use 12 Fifo´s?

Greetings,

mulderm
 
I`m realised that I must use a Fifo-shift register.
Maybe, Maybe not. The fact that only one part is on a conveyor at a time helps.

Just curious, what is the product?

Now, I'm still not clear on something. Is the cycling of the conveyors meant to make sure only one part is on a conveyor at a time or is there some other means of keeping the products separated?

Is there a separate need to track good/bad parts through the system or is the tracking only to control the start/stop of the coneyors?
 
I have attach a file where you, i hope, can see what I mean.
The product is a Tyre with variabele dimensions.
Every tyre have 3 production parameters, these are variabele
depending about the dimensions and material.
These 3 parameters must be arrived at the end of conveyor 12 where
the machine proces block is for handling the tyre.
All the tyres, with different parameters, must be arrived by the
procesblock.
The parameters for each tyre will given by conveyor1.
What I want is to shift the parameters from conveyor1 to conveyor2,
from conveyor2 to conveyor3 etc. etc.
The control for the conveyor´s is all working (what I all ready have told).
I hope it´s now clear.
Sorry for the language problem.

mulderm

rollenbaan.jpg
 
Last edited:
mulderm,

Now it is clear what you are doing! When language is a barrier, pictures and diagrams do help! What is your native language? I understand that this board will translate between languages, but computer translations can lose some technical details.

What you need is to do a Word-Shift Register, also called a First-In, First-Out buffer by some. Instead of shifting 1 bit, you need to shift 3 "words" each time the tire moves from photoswitch to photoswitch. Because you have 12 conveyors, that means you need a PLC memory space equal to 3 words x 12 = 36 words or 36 x 16 = 576 bits long. This space should be set aside or reserved, and not used for anything else.

You would then set up 12 rungs of ladder logic with a series of 12 MOVE commands, using the above memory space. Each MOVE command, when triggered by a photoswitch, would move your 3 tire parameters to the the next consecutive 3-word memory location. This way, when a tire exits the 12th conveyor, the 3-word parameter will be coming out of the 12th MOVE command. That is pretty simple when you think about it. Most PLC's have several different commands that can be use to move data from one memory location to another.

You will need to add some additional logic to handle the times when the conveyors stop with a tire under a photoswitch. Do you shift or move the 3 parameters in that situation, or wait until the conveyor restarts? You will have to decide that one!
 
Last edited:

Similar Topics

Good Morning , I appreciate your help on a previous post.Your advice helped me understand more. My next question involves the same project...
Replies
8
Views
3,561
Hi guys, I have a question about a sequencing program I am trying to make work. What I have is an baking oven conveyor with various equipment on...
Replies
2
Views
6,649
I have an application where I need to detect a bad product on a conveyor, and then reject the bad product off of the conveyor. The conveyor does...
Replies
6
Views
6,642
Hi, I'm just looking for a simple way to make a button in excel (via VBA I presume) to toggle a bit in RSLogix 5000. I just got FactoyTalkLinx...
Replies
9
Views
549
After watching The Universe is Hostile to Computers from Veritasium, I suddenly remembered a lost weekend years ago trying to reproduce the same...
Replies
12
Views
4,421
Back
Top Bottom