RS500 Double Coil Issue

BD,


Your B3;12/x OTL's and OTU when latched load the value of N7;1x into your MOV that load your T4;15.PRE, this im sure you all ready know.

The reason that I said to look at N7;11 and ;12, is because your eluded that you thought, the OTL were the problem, it may not be the OTL it may be the value that the OTL's are loading...these values may are set in your HMI, I would look that they are loading correct

is that clear? as mud..

hope that helps,
 
Hey,

This one is on the back burner until Wednesday.
I'll look at it then. With all the help from this forum at least I know where to look now. Thanks a ton guys!
Later
BD
 
Now i havent looked at the program..however this comes from past experiance..I hate Latching relays..i was called to a customers two weeks ago..the machine just wasnt running the way it should..There are two stand alone machine's "talking" to each other thru a dry set of contacts..Machine #1 wasnt always "Listeng" to machine 2..Now machine 1 comes from somewhere south of the boarder and machine 2 comes from from Italy..Both manufactures Emailed me the program (Its cheaper for me to do it than them to send someone up..)..One area of the program bothered me..it was a ltching relay..Looking at it it should of worked.i deleted the rung and made a "holding coil" and then used some other conditions to make the rung false..It worked perfectly..Why would it not work with the latching?..dont know..(And they also used a one shot..I think that may have been the problem..the condition changed during a scan or something like that..)

As for multiple outputs in a program..I dont care what people say..Its bad practice and IMO will only work properly 50% of the time..

D
 
darrenj said:
Now i havent looked at the program..however this comes from past experiance..I hate Latching relays..i was called to a customers two weeks ago..the machine just wasnt running the way it should..There are two stand alone machine's "talking" to each other thru a dry set of contacts..Machine #1 wasnt always "Listeng" to machine 2..Now machine 1 comes from somewhere south of the boarder and machine 2 comes from from Italy..Both manufactures Emailed me the program (Its cheaper for me to do it than them to send someone up..)..One area of the program bothered me..it was a ltching relay..Looking at it it should of worked.i deleted the rung and made a "holding coil" and then used some other conditions to make the rung false..It worked perfectly..Why would it not work with the latching?..dont know..(And they also used a one shot..I think that may have been the problem..the condition changed during a scan or something like that..)

As for multiple outputs in a program..I dont care what people say..Its bad practice and IMO will only work properly 50% of the time..

D

Multiple destructives are very common in programming. They will always work right when you understand how they operate.

JMO,

Marc
 
I guess it becouse of a couple of years with Modicon programming..You cannot do 2 ouputs..It just wont let you..not like AB where it warns you but lets you do it..
 
Thanks for the PDF, Git.

I gotta say... it's mighty strange looking code.

The very first rung shows that the Start-Up Timer can start only if the MCR Energized bit (I:1/0) is activated... and yet, in Rung-0006, the MCR Latch Output (O:4/0) can't come on until the Start-Up Timer is DONE (times out).

Now, the idea of using multiple Latches and multiple Unlatches, for a particular Output or Control Relay, is not unreasonable. All that is necessary is that you understand how Latch and Unlatch works, and recognize that you might have multiple cases of either. Then it is simply a matter of using Search to find them.

That being said, there is a REAL Double-Coil problem in Rung-0004 and Rung-0005.

In addition to that... there is something really bizarre about those rungs!

Each of those rungs says... If one of these Fault Conditions exists... then Turn ON the Motor Starter Outputs!

After all, you are not allowed to run the Start-Up Timer unless ALL FAULT CONDITIONS ARE OFF!

Be that as it may...

If you have any of the Fault Conditions shown in Rung-0004, then Turn ON the Motor Starter Outputs (O:6/2).

HOWEVER... if you DON'T have any of the Fault Conditions shown in Rung-0005, then Turn OFF the Motor Starter Outputs (O:6/2).

This means, that the Output is guaranteed to be properly controlled ONLY IF none of the Fault Conditions, described in rung 0004, exist.

That is, the Output is ultimately controlled ONLY by rung 0005... NOT rung 0004! Any Fault Condition shown in Rung-0004 is ignored!

Onward...

Some of the names appear to be sensible while others appear to make very little sense. This makes it very hard to determine the intent. I've done palletizers in the past... this one sounds very strange.

Granted, the PDF did not include the data in the Sequencers... however, even still, the code external from the Sequencer code seems to be pretty damned convoluted!

Now, BD, even though you indicated that you thought the problem was at such-n-such rungs... I'd like to know what is the problem that you actually see in the process!
 
Terry,

Thanks for the Help!
I gotta say... it's mighty strange looking code.
I have to agree with you on that one! I'm on vacation this week but thats cool, I can work on this problem from home. The scheduling department chose not to run this "New" pattern last week while I was there. This program got hosed when it was converted from PLC-2 to SLC500. Thus all the errors and description wierdness. I think that I:1/0 is an E-Stop type relay. O:4/0 should probably read "Auto Mode Relay Energized".I never noticed the double coil issue on rungs 4 & 5. I have no clue what O:6/2 does. I will check into that next week. I'm afraid I may have cut out too much of the code for anyone to be of much help. The real Main routine has 255 rungs. The PDF only shows 44.
however, even still, the code external from the Sequencer code seems to be pretty damned convoluted!
True.. makes it hard to visualise what the heck is going on.


All of our palletizers have a even / odd layer program that keeps the boxes stacked differently on each succesive layer so that they overlap each other. This is because the boxes are rectangular in shape. Kinda like stacking hay bales on a wagon. The purpose is to make a more stable pallet.



Anyhoooo.... The problem is the feeder belt hold relays that appear on rung 44. (B3:12/3 & B3:12/4). The infeed belt needs to stop while the sweep bar moves the boxes from the row forming area to the layer forming area. Sometimes the infeed belt stops and holds, other times the infeed belt will stop and immediately restart. The hold bit for the SQO is N10:0/1 & N10:0/2. The SQO spits them to B3:17/1 & B3:17/2 when that particular box is in transit to the row forming area. The SQO rung(27 upper) branch is there because of the need to step through the sequence manually after clearing a jam. The lower part of the branch does the stepping while in "Auto". I think that is how it works anyway. As mentioned in an earlier post, The problem only happens in the "New" sequencer pattern. The only other pattern works well. I'm sure I have put the wrong values into the pattern data files. I just need to figure out which bits are wrong. I am going to make up a "PinChart" for the sequencer and stare at it for a while.

Thanks again



BD






 
Hi Terry,

I know some people might leap all over me but I like using RS500's trending capabilities. (yes they are better in 5000) You can trend 8 pens easily. You can use analog values also. I thought you might be able to graph some of your discretes against an analog value. It may be worth a try unless your scan time is shorter than the graph sampling rate.
You should see a few posts from people that hate the trending; take them with a grain of salt and find what works for you. Saving snapshots will let you compare your code changes with the previous. You can also import the .dbf into excel and let it crunch the differences for you. These are the methods I use to get thru problems others have tried to code thru and then called me anyway.

I'm not a big poster mostly because I am not always in a country that has easy access and a lot of these questions are for legacy or close equipment. I will never have to be as smart as the people you'll find on this board but having learned a lot of new platforms find myself in jobs that I must become backwards compatible.

Anywho...If you are a controlling person latches and one shots are for you. If you are more a conditional fellow then they are not.

-I'm a latcher!
 
BD...

So... the only thing that is different is that you have added a new pattern... and the process screws up ONLY with the new pattern... Is that so?

If so, then yes... your problem must lie in the new pattern data file.

If I understand you correctly, you are relying solely on timers to determine when to resume running the belt... I would never do that. That is what I would call "a minimalist design". You are "hoping" that the sweeper performs as it should and then you "assume" that it has, and then you restart the belt.

Not good.

There is another name for that type of control... it is called "Supply-Side Programming". That is in contrast to "Demand-Side Programming".

Many inexperienced programmers try to design code in a manner that replicates the activity of a purely mechanical device. That would be a device in which all of the activities in the process are mechanically linked together through cogs, shuttles, ...whatever. You feed a piece of raw material into the machine and, as it moves through each of several steps, the material is chewed up until it is finally spit out... hopefully in the form that you were expecting.

If the machine consists of 6 steps and there happens to be a part jammed in Step-5... then this process will continue feeding material until Step-5 is totally jammed, Step-4 is totally jammed, Step-3, Step-2 and Step-1 until you simply can't feed any more material in... or the machine stalls out on its' own.

That is called a "Supply-Side" design... as in... Ready or not, here it comes! See what you can do with it! (Oh, and Good Luck!)

The better way to design this kind of material handling process is by employing the "Demand-Side" strategy.

The "Demand-Side" strategy is based on the idea that material is not passed to a subsequent step unless that step is "calling" for material. That means, each step monitors itself and does not "call" for more material unless it is ready and waiting for that material.

The "Demand-Side" strategy precludes the use of a timer as the PRIMARY motivator for any subsequent activity. Certainly timers are allowed... but only in terms of monitoring the duration of a particular activity (for Fault Detection), or for delaying a subsequent action that has been "approved" by the POSITIVE indications associated with the previous activity.

For example, if your sweeper has positively performed the required activity (as indicated by the appropriately indicated/selected sensors), then you might use a timer to introduce a slight delay before restarting the Feed-Belt. The key-point being that the sweeper-cycle was verified as being completed as expected!

Yes... this requires more sensors and more programming... however... the cost is recovered very quickly in reduced down-time. Depending on your process, a sensor can be purchased and incorporated into the program for the cost of only a few minutes of down-time! It's kind of a "DUH?" sorta thing!

You can definitely use Pattern Files in a Sequencer with the "Demand-Side" strategy... it's just a matter of properly designing the code (trigger) for stepping from one step to the next.

I would not include timer values in the Pattern File. I would, however, specify which sensors to use when determining sweeper activity. If that means using a half-dozen cylinder stroke-sensors (not the best way), or a half-dozen sweeper detectors (better), then so be it! It WILL pay off, In Spades! I guarantee it!

If you don't get my point, tell me what you don't understand about what I said.

In my experience, I've come upon many palletizers that were marginal at best. The primary reason for that was that they were based on Timers instead of "positive indications"!

Do yourself a HUGE favor... blow off the timer-based control; go to positive indications! It's more than worth it!
 
Terry,

Good point about the "Demand-Side" strategy. All of the newer model palletizers have the additional sweep bar sensors. This one is an older model. This one only has a "Sweep bar is Home" sensor. I will look at adding a new one. We probably have 3 or 4 proximitys on the shelf that would work. Might have to make a mounting bracket. It's just a matter of sweat & skinned knuckels to get there from here. I plan to position the prox at a point where the sweep bar is positively out of the way of incomming cases. When the prox gets made then unlatch the "hold bit". If the sweep motor is energized (in auto), latch on a timer that is unlatched by the new prox. If the timer ever gets done, we know there is a sweep motor fault.
Thanks for the tips!
BD
 
When I was in school my instructor tought us the latch and unlatch instructions, however he then told us that he did'nt want us using them as he deemed it not safe practice. He said that there is always a way to program other than using them.

Since then I have'nt used them. I know you guys are all pros, but for the average programmer do you agree with the instructor I had?

Only curious

John
 
Johnny, I couldn't disagree more. Any combination of instructions can be unsafe if you don't know what you are doing. There is nothing inherently unsafe about a latch/unlatch (set/reset), and I have used thousands of them over the years.
 
Ditto on what S7 said!

BD...

Your sweeper is supposed to push the boxes to a particular position. A sensor should be installed at the point of extention for the particular row, for the paticular pattern. Once that point is reached then the sweeper can be retracted. Then, once retracted, the line can resume.
 
Your instructor maybe thinking of a drill press or shear that, when the estop was reset or power turned back on, move because of a latch. The game in controls is control. Here is a safe way to use latches when your starting out that has worked for me. I make three files and every scan that the system is healthy I copy the file a to file b. I write my logic so that my "a" file bits latch and my "b" file bits drive me to the next step of the sequence. When in doubt, if anything goes out of my control (i.e. estop, stop, manual button active, fault condition or anything else) I copy file "c" to "a" and "a" to "b". As long as file "c" is all zeroes so will the other 2 files be. In less than 2 scans you have unlatched every bit.

"Be the Latch"
 
Johnny,

S7Guy is correct (he has wrote more then most), I don't think your instructor had a clear understanding of them, the way that I look at latches and unlatches is the same as one shots...

If you have control of your program then you can manipulate your program into doing what you want it to do, the more control we have the more stable of a program will be...

This is one reason that I told BD that I did not see any one shots in the program.

I also use 'first pass bit' this is hi on the first scan of the PLC when it is first turned on
 

Similar Topics

Is there a way to use a double integer in RS500 I need to count a long data and would like to save it on a 32 bits sized bloc I was using a...
Replies
25
Views
12,455
Hello I am trying to make a program work with a sqo instruction .The process has 5 steps ,and a starting step of zero.There should be 8 sec...
Replies
17
Views
1,067
I have upgraded an old RS500 project to Studio 5000, it has thrown multiple errors which I am currently working through. I have looked through...
Replies
8
Views
1,730
I am working on upgrading a system with a ML1500 that uses a 1769-SDN DeviceNet Scanner to a CompactLocix L24ER-QB1B. Due to cost, I need to...
Replies
2
Views
1,406
I have been ask to check if we can have both English and Chinese in the same I/O description text window and rung comments. I could not Chinese to...
Replies
2
Views
1,218
Back
Top Bottom