TConnolly

MrPLC Member
  • Content count

    934
  • Joined

  • Last visited

Everything posted by TConnolly

  1. SQO Mask

    The H is for HEX - a notation that tell you the number is in Hex format. While FFF is obviously hex, 8431H (33841 decimal) is not so obvious without an H. A value of FFFH is 0000 1111 1111 1111 in 16 bit binary.
  2. SLC 150

    For DOS APPS that print to LPT1, you need to redirect LPT1 to a network printer. From your start menu, select Run. Type "command" and click OK. This will open a command line interpreter. At the prompt, enter net use lpt1: \\printserver\printer (space required between : and \\) where \\printserver\printer is the path for your network printer. Now anything printed to LPT1 will redirect to the network printer. However, if the DOS APP printer is a different type of printer then your printout may not be quite what you expect. As in my previous post, this information is worth what you paid for it - maybe you'll get lucky and it will be easy, then again, maybe not.
  3. SLC 150

    The .100 extension is right. Here is a PDF, its not pretty. PCIS was designed to print to LPT1 and doesn't play well with network printers and virtual printers such as PDF printers, but I did manage to fool it, however the page alignment leaves a bit to be desired (its worth what you paid for it ) edit to add: That little 21 rung program would take 17 rungs or less in an L32-XXX Micrologix1000 - I recommend you consider an upgrade. 781001E3.pdf
  4. UDT Boolean Array

    On second thought, overlays are a pretty advanced topic. Take a look at technote 45361 in the AB KB. This might better meet your needs. If it doesn't then get back here and I'll dive into overlays. Overlay quickie summary: Consider your RSLogix500 timers. You had a /EN bit, a /TT bit, and a /DN bit. T4:0.0/13 was the same thing as T4:0/DN. Either way is a valid address. Overlays are a tool that allows you to do the same thing, ie, name the bits in a word but it can't be entered directly in RSlogix5000. It has to be imported. If you have a tech connect contract and you can access the thread http://forums.rockwellautomation.com/rockw...p;thread.id=109 then you can see an XML file that I posted for a bit overlay. If you want to see one in action, save that as a text file with an L5X extension and import it into the UDT section of a test program.
  5. Here's how I do motor run time accumulation. I use a retentive timer and every 360 seconds I add .1 to a float. The float gives me total run hours in one-tenth hour increments which is all the precision I'm interested in in this app and .1 hour resolution in a float is good for about 8 million hours (should be long enough).
  6. UDT Boolean Array

    Instead of using a boolean array use Dints and import the UDT as a bit overlay. Then you can determine if all bits are clear with an EQU by testing the DINT to see if it is zero, but still access individual bits as bools by name.
  7. Juggling percentages

    As I said, I'm not that familiar with brewing processes, but I'll try and explain my thoughts. I understand that the brew must be kept at boiling. This will require a certain energy input to achieve. Once its boiling, incresing energy input doesn't raise the temperature, but it does change the boil off rate. The first PID loop is a temperature control loop. Its purpose is to keep the brew boiling. Now here is where I start making some assumptions (dangerous, I know). I assume that you use some kind of setpoint ramp function to set the amount of boil off, so over 90 minutes the boil off setpoint ramps from 0 to 7%. As time progresses, if the boil off falls behind the setpoint, the second PID loop will add energy. If it gets ahead of setpoint, then the second loop will decrease energy - however, it can't go below the energy to keep the brew boiling, the first loop will see to that. The program looks at which one of the two PID's generated the highest CV value and sends that value to the steam valve. Because its a boiling mixture you are actually going to have to use a modified high select - that is, as long as the mixture is still boiling you may actually need to switch to a low select on the boil off control so that the CV can actually be decreased if you are leading the boil off setpoint. I hope that made sense.
  8. Juggling percentages

    Greeting Art, and welcome to the forum. I don't know much about brewing processes but my first thought is to use a high-select PID setup. In a high-select, two PID loops run in parallel, one is controlling the boil temperature, the other the boil-off. Only one PID has control of the valve at any given time. In a high-select, that is the PID that produced the highest CV. The lower PID's CV is then updated to match. There is a technote in the AB knowledge base at http://www.rockwellautomation.com/knowledgebase/, search for technote ID 21693. that covers how to set up and use a low select PID. The high select will be basically the same. The Technote covers using it in a PLC/5 but the ladder PID in the CLX is not much different.
  9. RTOS in CompactLogix

    Bad news. There are certain numbers that cannot be represented exactly in the IEEE754 floating point format that your PLC uses (and almost every other computer as well). 1.02 just so happens to be one of those numbers along with a bunch of other numbers between .01 and .99. So, you may ask why can 1.02 be displayed on my computer monitor when I set an application to display only two decimal places? Thats because there is a routine that makes the change in the characters that are displayed for you. However, in the computer memory, the value of the variable is still 1.0199999999999 because that is the closest it is going to ever get. In the downloads section of the forum is a program that I wrote that will truncate a float (removing the fraction). It also shows how to perform rounding to a whole number. http://forums.mrplc.com/index.php?autocom=downloads&showfile=761 I think this could be manipulated to provide rounding to two deimal places by first adding .005, multiplying by 100, then truncating. Be advised that dividing by 100 after you truncate will just get you back where you started because of the inability to store certain exact values. It will be necessary to manually adjust the decimal point location in the string. It shows how to perform rounding as well as truncation. It was written for a SLC500 but can be easily adapted to the ControlLogix. edit: D' oh! , I just rememberd that the ControlLogix has a truncate function. So try this: 1) Add .005 to the float to accomodate rounding. 1) Truncate the float - this is the whole number value. 2) Subtract the truncated value from the original to obtain the fraction. Multiply fraction by 100. 3) Tuncate the fractionx100. 4) Convert both values to string, then concat whole number string, "." and fraction string.
  10. RSLogix 5000 Wall Clock

    Bob, you may be interested in something I saw two weeks ago about the continuous task at one of Rockwell's Automation On the Move events (mini Automation Fair). The class instructor opened the continuous task and monitored the program scan time which was running between 3 and 4 milliseconds for the demonstration program. In this PLC the only task was the continuous task. The continuous task time slices with all of the PLC housekeeping, communication servicing, etc. He put the PLC in program mode, switched the task to periodic at 10 msec and put it back into run mode. Now the program completed a scan in about 0.7 milliseconds. Then he changed the task period to 2 msec. So now the program was being executed nearly twice in the same time that it ran just once before. So today I had some time while waiting for Bubba and Cletus to complete some mechanical work on a startup and I did the same thing. This PLC has 8 tasks including the continuous task and all 7 periodic tasks have a higher priority than the continuous task, but I still dropped the max scan time from 3.2 mSec to 1.2 mSec. I actually changed the task back to continuous because there are a couple dozen similar machines, but it was an interesting exercise.
  11. RSLogix 5000 Wall Clock

    Controller scoped tag: Date_Time DINT[7] *Dint array where date and time is to be stored Date_Time[0] is the year Date_Time[1] is the month Date_Time[2] is the day Date_Time[3] is the hour (24 hour format) Date_Time[4] is the minute Date_Time[5] is the second Date_Time[6] is microseconds. Controller scoped tag: One_Shots Bool[64] *array for one shot status bits Controller scoped tag: Reset_All Bool *boolean used elsewhere to reset timers In Logix5K V16 or later use: GSV WALLCLOCKTIME ? LocalDateTime Date_Time[0] In Logix5K version 15.x or earlier, use GSV WALLCLOCKTIME ? DateTime Date_Time[0] EQU Date_Time[3] 6 EQU Date_Time[4] 0 ONS OneShots[63] OTE Reset_All. I recommend using a periodic task since its not necessary to execute this code continuously.
  12. To touch or not to touch......

    Me too. For the same reasons ssommers gave.
  13. "Anthropomorphic" Robot: What does it mean?

    Its an attempt to placate the welding and pipe fitting unions worried about job losses for humans..
  14. PID 3-Element Control Loop

    The ML1500 PID equation is listed in the instruction set reference manual. You can download the instruction set reference manual from AB's website, http://www.ab.com. Click literature library on the left hand side of your screen and navigate to the MicroLogix 1500 PLC manuals.
  15. Wouldn't it be nice...

    For that matter, it would be nice if the Logix5000 CPUs fit in the 1756 Chassis - that extension on some of the processor fronts just does not look right to me.
  16. Micro 1200

    I:0.0/0 File:Slot.Word/bit A word is 16 bits. The Ms on board IO is slot 0. When you run out of bits in word 0, you use the next word, word 1. However, you can enter shorthand addressing at any time. I:0.1/1 is the same as I:0/17. If you also want your ladder display to show the shorthand address right click in any blank space in your ladder window, select properties, and configure your display to show your address in shorthand notation.
  17. I'll be you a beer that not one of their programmings software packages is up to date (unless its something aquired withing the last year)
  18. Jetter PLC

    http://www.jetter.de/products.0.html?&L=5
  19. Omron vs AB scan time

    http://en.wikipedia.org/wiki/Digital_signal_processor
  20. HUMOR

    I used that one about two weeks ago for a practical joke - Our other controls engineer had just installed a new computer screen and I happened by just a few minutes after it had been powered up. So when he called me for help a few minutes later I told him he must have put the monitor in upside down - he insisted that he had seen it right side up, I insisted he must have been mistaken. For a minute I think he almost believed me.
  21. Switched Neutral -- Grounded Conductor

    I don't believe there is an NFPA 79 prohibition against neutral switching. Is it switching only on the neutral? Or is it switching both the hot and neutral? There is nothing at all wrong with switching both hot and neutral, in fact its common. Motor overloads are usually mounted on the neutral side of a coil. There might be a reason for switching the neutral, however convention is to switch on the hot side. I couldn't say whether there was a valid reason to switch the neutral without knowing more about the circuit and its function. One thing you should not do when switching grounded current carrying conductors is use a white wire between actuator and swi tch, because when the switch is open its not a grounded couductor - only the unbroken wire is to be identified as neutral. Any neutral switched system must be designed so that if a short circuit to ground occurs between the actuator and the switch unintended operaion won't occur - a short will operate the actuator and won't blow a fuse/breaker.
  22. RSLogix 5 to 5000

    Go to the AB knowledgebase at rockwellautomation.com/knowledgebase and search for wallclocktime. There are some sample program of how to get the current time there.
  23. baby PLC

    Klockner Moeller smart relay (sometimes called a Pico PLC)
  24. Omron vs AB scan time

    I never understood dumbing down the PLC just because its a brick, something that AB is notorious for. Dumbing down the brick = re-engineering the logic engine = increased development costs + customer frustration. I've wondered why AB doesn't put a logix5K engine in a brick. Maybe AB doesn't want their bricks encroaching on sales where the customer might use a compact-logix instead because of the brick's limiations. IMO, in doing so to avoid stepping on their own right foot, they step on their left foot.