Logic Question : Tracking Parts

knichols

Member
Join Date
Nov 2005
Location
South Carolina
Posts
19
I'm currently using a PLC to get results from a tester, and mark the part if its bad like 34 parts down the line. This is working great, but I would like to use my HMI so anyone can change which part is getting marked. Basically the good or bad signal is coming in 60 mS after a trigger signal on 3 lanes and I'm doing a bit shift right. Then im saying if like 34 bits into my 64 bit array is low during during this trigger interval, signal the videojet. So, for my HMI to change it, the "examine if open" would have to be modified, and I don't think the HMI can do this. The PLC is a micrologix 1200, and the HMI is an ST401. Let me know if something sounds stupid or doesnt make sense. Have no fear of insulting me.
 
I'm assuming you have either a large shift register or a few cascaded ones that function to track the parts.

I've done this using an HMI screen (or a few) that are set up like a map of the machine, that gives the operator a chance to toggle a bit with a "soft" button at any point on the machine.

It's a lot of "busy work", but construct a flip flop for each bit you wish to give the operator the ability to toggle.

This works great after a mchine "crash" to reset the machine to a known state.
 
This may or may not be an option, I am not familiar with your HMI. With some HMI's it is possible to use a "list" that works like a selector switch. When you choose one of the selectors in the list the others can/will be turned off.

An On/Off switch is nothing but a 2 position switch, this works the same way but you can have as many positions as needed...more or less, that depends on the HMI and PLC capabilities. It should not be a problem to create a 16 position switch with most brands.
 
Don't bother reading beyond "IGNORE THE REST OF THIS..."

I seriously considered your question... and the more I considered your question... the more I tried to "see what you see" (which I can't)... and the more I became confused as to what the heck you are talking about.

You posed your question with a ton of assumptions... your primary assumption was that we can "see" what you can see and that we "know" what you know... WRONG!

We can't see what you see, and we don't know what you know... you're gonna have to help us with our pi$$-poor ESP capabilities. You gotta help us "see" what you see and help us "know" what you know.

90% of the effort required to develop a reasonable solution for any given problem is to first develop a reasonable question!

PLEASE... try to pose the question again in a more sensible manner.

Pretend that YOU don't know of this situation and that someone is asking you for help... what kind of information would YOU need just to be able to understand the situation? (Don't Assume ANYTHING!)


IGNORE THE REST OF THIS...

First... your question is not very clear... I can read it, but it doesn't make a lot of sense.

What is a "videojet"? What does it do?

At first, you indicate that you want to control which part is "being" marked. It seems that this would happen at the time of the testing... no? Are you talking about disabling the testing of one of the three lines?

It almost sounds like you want to be able to negate the test result. If so, how can it be that you would want to change the test-produced "mark" on a part at all, let alone on a part 34-places down the line?

Putting that aside...

Typical HMIs are capable of sending a "soft" signal by means of a key on the HMI. The key is usually associated with a particular internal-relay bit.

The function of the key can usually be assigned...
Assuming a particular key is associated with a particular internal-relay and that the particular internal-relay is C100... pressing the particular key might produce one of the following actions on the internal-relay...

C100 is SET ON
C100 is RESET OFF
C100 goes ON for a moment and then goes OFF (Momentary Pulse)
C100 is Toggled (If ON, if goes OFF and stays OFF... If OFF, it goes ON and stays ON)

That's about all that can be done to the bit... in fact, that is all that can be done to the bit.

So, now you can control the action of a particular bit... how can C100 affect bit-34 in your register?

The MicroLogix 1200 seems to be quite lacking in capability... especially with respect to directly accessing a specific bit in a shift register.

If it is your intention to "flip" the status of a particular bit in the register,

THIS IS WHERE I QUIT TRYING TO BE CARNAC the MAGNIFICENT!
 
Quote Have no fear of insulting me.
You did ask for it.

Seriously the HMI cannot change the state of the input that has decided the state of the part. But you can set it up so that the HMI can tell the PLC not to use the real world input but to do what you tell it via the HMI pushbutton. Make sense to you.
Regards Alan Case
 
The question is...

What is he trying to change... items being tested, or the test result, or what?

Changing the status of a part-bit 34-parts downline sounds like he is trying to "doctor" the test results.

So... ?

And, BTW Alan, you can definitely use the HMI to disable an Input, or Force a "1-shift on test" or Force a "0-shift on test".
 
Last edited:
Terry I disagree. A HMI cannot change the state of an input.
The input is either off or on dependant on what is happening in the real world. You can use the HMI to decide whether to use the input value or to use another value but you can't change what the input state is. (This thread is based on a ML1200) As far as using the HMI to disable an input then that is also impossible short of faulting the processor. Even with an SLC all you can do with a HMI is disable a whole card not an individual input.

Regards Alan Case
 
Maybe I "assumed" too much

but I would like to use my HMI so anyone can change which part is getting marked.
With that statement and the mention of multiple lanes etc I took it to mean their is a choice of parts...at least 3 because there are 3 lanes.

I did not fully understand the whole process but the gist I got was their were "different" parts and he needed to select which parts were tested/tracked.

After re-reading the post several times I agree with Terry, the question is poorly phrased. Its open to interpretation which is not conducive to obtaining the proper answer.
 
Seems I've created quite a stir, I apologize for poor wording. I guess when you do something day in and day out, you take it for granted.

Ok, what I have is RFID tags going down a line at about 100 ft/min. The tag is over my tester for about 80mS. I usually use c# software to do this, but this speed is too much even for the fully loaded dells i have. Anyway, while its over the tester, a reader reads the tag ID and tells the plc yay or nay. This result is put into a 64 bit array or register or whatever(B3:1-4) The three lanes constitutes basically duplicating this three times in the logic.

Now, if a tag fails, 34 triggers down the line it should fire the videojet, which is a big overpriced printing system. The current program i have in the plc uses like b2:14 (for lane one) i believe to determine whether it will mark. Well, if you want to mark maybe 40 down the line, I would want to use b2:8 or something.

Ideally I would like the HMI to have a number pad where you would type the number and the plc would respond accordingly, but i don't know if this is possible. Worst case, I could just put recipes in and use toggling bits to control which recipe is being used. This would be alright, but the number pad would be awesome.

If this explanation falls short, I apoligize. I am new to plcs, and really new to this forum.

Thanks
 
Sounds like you want to change the "unload" bit....

If so, using a bit shift is going to make you write some logic. Write from the HMI to an integer in the PLC. Then use EQU instructions to trigger your array bits true or false. Each bit you want alter will require a different integer value. For instance if you have 10 bits to alter, 1-10, write a 1 to the integer for bit one. When there is a 1 in the integer, the associated bit, #1, will become true (and the others false). If you want to alter #2 write a 2 to the integer and the #2 bit will be true while all others are false.
 
First of all, don't worry about bit numbers at this point. You still need to define the process so stick with machine relative facts. We can superimpose the code on top of that later.

I got two completely different things out of your two posts. In the first post I thought you wanted to change whether the item at the printer is the being marked. After your last post it sounds like you want to define where the priner is. At least that's what I get out of the fact that you might want to mark at the 40th position as opposed to the 34th position. But then again it could be neither of these.

I'm still a little confused with what you are trying to do.

Sorry,
Keith
 
kamenges has got the point exactly. I'm trying to define where the printer is... The tags may also be spaced differently so while the printer doesn't in reality move, to the plc it does.

I really don't know what rube is suggesting exactly. Each time a tag passes, it gets a trigger, and the value for the tag will be shifted in. I guess by unload you mean the last bit in the array? I'm still thinking about what your saying, but at least you guys are starting to see what im dealing with.
 
I would use indirect addressing to do this. Since it doesn't look to me like the ML1200 will let you indirect at the bit level only in a bit file you will need to use two points of indirection. The first point is the word the second point is the bit in the word.

So assuming you want the 34th location (assuming location 0 is a valid location), this corresponds to word 2 bit 1 of your bit array. Use these two values as indirect pointers in the bit address for the XIC that triggers the printing.

This SHOULD generate some more questions so fire away.

Keith
 
Using bit shifts you uload where ever you want to in the array. Bits 1-10 in my example are just examples. I'll see if I can write example logic and post it.
 

Similar Topics

Good morning crew! Ok my logic works but I am missing something. When the start button is pushed it should like the red light for 4sec then shut...
Replies
13
Views
342
Hey. I am new to PLCs and LogixPro. A friend and I have been trying to build this diagram and instructions using LogixPro500. Could anyone help us...
Replies
15
Views
1,185
A question was proposed to me at work after a programmer complained about '=' being both a comparative operator and also an assignment operator...
Replies
16
Views
3,863
We've got a sump pump which is switched on/off at the HMI by clicking a button on the screen then a physical pushbutton on a console, using this...
Replies
50
Views
12,067
The attached files shows a rung modified by the Migration Tool. Can anyone explain the purpose of the added parallel branch? I figure it has to do...
Replies
3
Views
1,735
Back
Top Bottom