Michael Lloyd

MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

75 Excellent


About Michael Lloyd

  • Rank
    Random Pixel Generator
  • Birthday 06/01/58

Profile Information

  • Gender Male
  • Location Texas
  • Country United States
  • Interests Photography, Flying, Electronics, Long Range Shooting, Reloading, Fishing, Hunting

Recent Profile Visitors

5023 profile views
  1. Major Fault

    Great minds and all that :)  
  2. Major Fault

    Which processor? Does it have a memory card in it? if so it can be set up to reload the program from the memory card and if the memory card hasn't been updated it'll load the "older" version of the program. La Marche. Is it an old "UPS" or just a battery charger. The La Marche UPS wasn't the speediest at cutting over. If that's what it is I'm not surprised that it glitched
  3. PID loop tags- In CLX there is a tag array for a PID loop and there is a tag array for a PIDE loop (my preference). They are not the same tag structure each structure is made up of a number of different elements (Real, bool, etc). Then there is the UDT (User Defined Data Type). I have some that area made up of Strings, Bools, Floats, and Integers. UDT's can be made from any and all data types. How do you deal with that?
  4. Find a Tag in RSLogix 5000

    Look for Local:I:1, etc 
  5. ip Finder

    Same here. There's so much going by while it's scanning that it's hard to dig out what I'm looking for. I'm definitely going to look at PLC Tools SIM-IPE IP Explorer
  6. ControlLogix PID tuning

    The PID routine is placed in a 1000 msec periodic task. Correct, you always want to call a loop with a periodic task. However, I've seen loops called every 10ms, and I think that's needlessly fast for most loops that I deal with. It eats up processor time but has no net benefit. I usually set the task at 250ms. 1s is slow. The time between calls affects how the loop parameters affect the output. There's a lot going on inside the equations that make up a PID loop. It calculates the rate of change between the PV and the SP for instance. The PID equation type is INDEPENDENT, as confirmed by .PE = 0. I don't see the .PE tag in list of loop tags. Mine says "PIC2001.DependIndepend" and the value for Dependant = 1. Are you sure that the program uses the PIDE loop? Scratch that, you never said it did and you are using the old PID loop. It works for most simple loops but I like the PIDE loop much more. To answer your question - Yes Independant is .PE = 0 …this means that KI is in repeats per minute rather than minutes per repeat…so the bigger the value the faster the integral  response…is this correct? Correct.  PD[].KP and PD[].KI are the proportional and integral tuning parameters, currently set at 0.25 and 0.05 respectively.  Gain (Proportional) = 25% and Integral = .05 repeats per min, which is slow. In simplest terms the integral term is adding or subtracting (depends on if SP-PV is positive or negative) a very small value to/from the output every minute. That's not necessarily bad. All Integral is doing is "integrating" the SP/PV difference and trying to bring them together by increasing or decreasing the output. You can literally set Integral to a very, very small number and effectively turn it off, creating a straight proportional controller. A Proportional or Gain only controller is almost always going to operate with an offset between SP and PV.  On the other hand, you can set Integral too fast and end up with I being the dominating portion of the equation. Some loops need that (I'm told, never seen it). I think integral is one of the most abused settings vs derivative being the most hated :) I prefer to put the integral term "out of the way" (as in low repeats or high time depending on which equation you chose), tune Gain such that the loop exhibits 1/4 wave damping when disturbed and then start bringing in Integral until it destabilizes the loop, then slow Integral down until you see 1/4 wave damping (or some version of that).
  7. ControlLogix PID tuning

    I did and correct. I think Independant is the default and I usually change it. There's no reason to change it if you don't mind the units
  8. AB program convert to PDF to write Mitsubishi program

    There are only two routines being used. I didn't print the blank routines. It's a Micrologix program. EMBOSSER1.pdf
  9. ip Finder

    Wireshark is a bit of overkill but it works.
  10. ControlLogix PID tuning

    Depending on how they implemented the PID block (ladder or Function Block) you can click the ellipsis (...) in the upper corner of the block to open the menu. I've changed it on the fly before but it may be best not to do that. 
  11. AB program convert to PDF to write Mitsubishi program

    Just FYI. RSS is for the Allen Bradley SLC500 series PLC. If it hasn't been posted by the time I get to work tomorrow I'll print it for you
  12. ControlLogix PID tuning

    Ki - integral,  It depends on which equation type you use. If you choose Dependent, my preferred Equation Type, then units are Minutes per Repeat (min/repeat) and a larger number is slower (longer time between repeats). If you choose Independent then the units are 1/min (old school repeats per minute which is the inverse of minutes per repeat) and a larger number is faster (less time between repeats). Personally I prefer to think of integral as minutes not 1/minutes) Kp - Gain. A larger number is faster. If you're used to the old school term of proportional band in %, where then a gain of 10 = 1/10 (the inverse of proportional band) or .10 = 10%. A gain of 1 = 1/2 = 1.00 = 100% proportional band  If you're tuning the old school way, choose Dependent, set Ki to 15 minutes (to get it out of the way). Set the gain at 2 (SWAG, set it where you want to), bump the process, observe the recovery. If all looks good but you want a faster response, try 4, bump, observe. If that's too fast, go 1/2 way back, in this example that would be 3, bump, observe. Once you see approximately 1/4 wave dampening then start to bring in Integral. May go from 15 to 7, bump, observe. Still too slow,  cut in half and test. Too fast, go back about 1/2 way (11). Ki interacts with Kp so you may find yourself tweaking the gain again.
  13. Question on upgrading system

    Whatever answer you get here will be right. Ie it's just an opinion. Personally... I would have just installed a complete CLX box. BUT... I don't know anything about your system. Things like - how long can you be down for cutover? How much IO is there? - play into the discussion. If downtime is a problem then wiring in a new rack full of cards may be prohibitive. Relay output cards have a finite number of cycles, at some point individual points start to fail. Depending on the service of the card(s) (cyclic vs non-cyclic) that could be a factor in the decision to do the upgrade. If it's a low cycle installation then they are probably fine (or not :) ). One thing that nobody considers is the longevity of the components on individual cards. Electrolytic and Tantalum capacitor have a service lifespan specification (typically no more than 10,000 hours max but higher is sometimes available for a cost). 10,000 hours is not very long. If the equipment is in operation 24/7 10,000 hours is a little over a year. I think most people think of electronic devices as either disposable or eternal. I prefer think of them as repairable or about to fail :)   I'd have swapped the entire rack and card assembly...
  14. Can I print the cross reference for a specific tag array?

    Boilers make me nervous. The amount of stored energy available when it's online warrants extreme caution. The boiler that the program that we've been discussing is installed on is currently down. Changing it now would be easy enough. However, just as soon as I get the thing loaded but not tested something will happen to one of the other two boilers and I'll make the morning report for having broken Boiler 5. :o) The three ring binder that has all of my notes, prints, etc for boiler 5 has a photo of Johnny Five on the cover. https://robotics.fandom.com/wiki/Johnny_5 I've gone from "I'm going to rewrite that thing" to "maybe I should figure out what's in it first" to "Even though I hate programs that are SLC based but imported into CLX, the original programmer was pretty good. I wish I had documentation". My goal is always to write and document the program such that the tech that has to live with it never uses an expletive before my name (again lol). I have UDT's for motors and valves but chose to use ladder logic for the program. Techs can follow and edit ten or fifteen rungs of ladder easier than they can AOI's (I thought, I'm not so sure that's the case now). I have a number of AOI's, mostly engineering calc based, that I use in plants and pipelines. Back when I was working with S7's (200, 300, and 400) a friend and coworker decided "he" was going to write his own PID loop function block. My first question - WHY? Then I got dragged into. We both left that company before we got too far in. I think it was doable but the S7 PID loop was fine, well tested, and liability free (for us).
  15. Can I print the cross reference for a specific tag array?

    Especially with no rung comments (I don't usually do those but this one warrants it) and nothing in the tag description unless I add it.