Mike Lamond

MrPLC Member
  • Content count

    40
  • Joined

  • Last visited

Everything posted by Mike Lamond

  1. Modicon CPU Memory Map

    Bob, Modicon PLCs don't have assigned status registers like the AB S-register file. Instead, the battery coil (0x) and time of day clock registers (4x) are assigned in the processor configuration. 984 ladder logic has the STAT instruction which retrieves the status words into a number of consecutive registers starting at the specified register. The number of registers varies by the PLC family. Modicon doesn't use AB style word/bit addressing for bit instructions, just the 0x and 1x bit addresses. To read bits from the status words, use the SENS instruction and remember that bit 1 is MSB and bit 16 is LSB. (Edit) I saw you other post and realized you're working on the Quantum family with ProWORX/NxT. We only have it installed on our last working WinXP laptop. There is Instruction help under the Help menu, but it looks a bit limited. What you really need is a copy of Modicon Ladder Logic Block Library User Guide, Schneider document number 840 USE 101 00. Mike
  2. G3 won't upload and database is corrupted

    I ran into the same problem on my first Red Lion project back in January, using a G310 and Crimson 3.0. With a USB connection, using Send (Shift-F9) instead of Update (F9) forced Crimson to clear the HMI memory and download a full copy of the database. I never had to go the route of downloading a Crimson 2.0 database or using a serial or CF card transfer. Mike
  3. What software do I need?

    These are ProWORX NxT file extensions. NxT is long obsolete and will only run on Windows XP or earlier. ProWORX/32 can import these files, but that just went obsolete too. I'm all but out of the 984 business these days and have no idea on the current software. Mike
  4. Which PLC software?

    These extensions are from Schneider Electric ProWorx/NxT, for Modicon 984. It's an outdated 16-bit program which I was using just last month at one of our clients. Mike
  5. fixing a 1784-PCM4 cable

    I just looked at our 1784-PCM5/A cable. If you peel off the plastic sheets that are glued to the PCMK connector, you'll see that it's made by AMP. I didn't look through the AMP catalogs to find a match, but it's probably a standard type for PCMCIA cards. Since your plugs are already broken, see if they come apart enough to look at the crimp/solder connections to the pins. That said, consider the expected remaining life of any laptop with PCMCIA slots. Where I work, none of our newer laptops have these slots and the older systems (4+ years) are failing one by one. You're probably better off switching to USB now instead falling victim to the Critical Need DetectorTM.
  6. PLC5/20

    Bob, For screen captures, I prefer to use png (Portable Network Graphic), which is a lossless compression format, instead of jpeg, which loses some information. For programming screen shots, with large areas of solid color background, the file size difference isn't that much and still far smaller than bmp files. I've seen some jpg images where small characters were blurred just enough to be ambivalent. With png files, the image will always reproduce the original sharpness.
  7. 90-30 change analog signal to actual values

    In the CPU331, integer math includes double integer functions but not integer<->double integer conversions. Using that instead of floating point math gives you an integer result with a fixed decimal place with a bit of work. The raw and scaled ranges are limited to positive integers without some additional programming. This is because the sign bit is in the upper word of double integers and not seen by regular integer functions. Subtract the raw zero (typically 0 for 4-20mA input or 6400 for a 0-20mA input range) from the raw input. If the result is negative, set the result to zero. Move the previous result to the low DINT register (%R1) and zero to the high DINT register (%R2). Use MUL_DINT to multiply the previous result (%R1) by the scaled range (ex. 1400 for 0.00 to 14.00) and store the result (%R3). Use DIV_DINT to divide the multiply result by the raw range (typically 32000 for 4-20mA or 25600 for 0-20mA analog inputs) and store the result (%R5). Use ADD_INT to add the zero range scaled value to the low register of the divide result and store this result in the scaled value register. You'll be working with implied decimal places in the PLC and the HMI will have to scale these, but that's far superior to using raw ranges. Certainly the next person who works on the system will not be cursing about the amateur hack job delivered by the programmer, the machine builder and everyone else involved in the delivery of an expensive, critical piece of biotech equipment. Since then the client has replaced all of these machines. By the way, are you sure the analog input range is 0-33000 and not 0-32000? 32000 is the usual upper range count for GE analog I/O. Mike
  8. I've managed to get COM4 through COM10 COM11 assigned between a USB/serial adapter and a DL3500 USB/DH+ converter. These are unserialized devices, which means Windows assigns a unique COM port each time a device uses a different USB connection. With two devices, four USB ports on the laptop and a four port hub, the combinations start to add up. If a device is seriallized, the driver only assigns the COM port once. Anytime the same device is reconnected, regardless of the USB port, the driver recognizes it and recalls the existing COM port assignment. I just learned this a few weeks ago, after noticing that the COM port did not change on a customer's new laptop and USB/serial adapter. That said, the only sure way to free up COM ports may be to plug in each device and go into Device Manager and remove the driver. At least, the ATEN driver does not appear in Add/Remove programs and shows in Device Manager only when the device is plugged in. Mike
  9. PID auto/manual

    First, If you don't have it, download a copy of Publication 1747-RM001-EN-P, SLC-500 Instruction Set. It has much more detail than the online help in RSLogix 500. This is the short version, but the answer to your first question solves your second question. What you're looking for is called bumpless transfer, where the PID controller output does not change when switching between automatic and manual modes. In the SLC PID function, you use the control variable, reading it in Auto and writing to it in Manual. The PID remains enabled at all times, so that in Manual mode, it reverses the calculation to make the integral sum track the PV and CV. When the PID is switched to Auto, the PID initially calculates the same output from the current sum. When you disabled the PID function in Manual, the integral sum did not track and the CV jumped to the last calculated value when switching to Auto. I typically use a separate A/M bit and CV register for the HMI read/write, scaling the PID CV to the HMI CV % in Auto and the revese in Manual. The HMI A/M bit drives the PID A/M bit and may be paralled with other bits that force the PID (but not the HMI) to Manual on stop or other conditions. There may also be other logic to force the PID setpoint and/or CV to certain preset values under specific conditions, such as you're looking for on startup or shutdown. I hope this helps. Enjoy the holiday weekend! Mike
  10. Since plant LAN infrastructure is already in place, have you looked at putting a MicroLogix 1100 PLC in each machine? 10 AC or DC in/6 relay out may be more than you need but they can communicate directly to your existing SLC. They're actually less expensive than some Ethernet I/O modules I've looked at, such as Acromag. Mike
  11. Dual channel input, single output isolator

    It's been a while, but I recall seeing some signal modules that would do high or low select of two or three inputs. What's your criteria to select between the two signals? Anything I've seen lately has two inputs to the controller and the selection done in the programming. The usual logic is manual selection by the operator or automatic changeover in case of signal failure. Mike
  12. RS-485

    I'm not sure what hardware those pinouts match, except that the diagrams resemble parts I've used with Modicon Momentum processor adapters. Here's what I've connected lately: ABB SC300 DCS Controller: DB-15 male Emerson DeltaV Serial I/O module: terminal strip (RS-232, RS-485 4-wire or RS-485 2-wire) GE 90-series CMM module: DB-25 female (RS-232 and RS-485 combined) Various RS-232/RS-485 converters: terminal strip Some Modbus/BACnet interface device: terminal strip This is why we get the big bucks to be system integrators! Mike
  13. I've had several of these converter/switches from Black Box in the hardened DIN rail version running on outdoor distributed I/O since 2006: http://www.blackbox.com/Store/Results.aspx/search-lbh100a%60%60si_product. The second port lets us connect a laptop for programming or remote HMI use. Mike
  14. Inexpensive Ethernet/IP I/O

    No call for ArmorPoint at the moment. I looked at Point I/O and it's about 50% more than a single Acromag 4AI/2AO/6DIO combo module. Against two or more modules the low cost I/O slices make up for the initial adapter cost. I must not have been specific enough with my comment about messaging. For Modbus/TCP modules, I used the Modicon 984LL MSTR instruction to read and write 4x registers. For Ethernet/IP, I used the A-B MSG instruction configured for a PLC-5 to read and write registers in file N7. I haven't had a chance to use AOPs on anything yet. Mike
  15. I looked briefly in the online help but didn't see any system variable that would contain the current rung number. There may be something available in fault handling but that doesn't help in normal operation. As you've already noticed, rung numbers change as programs are edited. The specific rung number doesn't matter as long as the program is written in the right order. I suspect that what you really want to know is which condition is true. In that case simply assign an arbitrary value to each condition and put each value into the MOV instruction on the corresponding rung. When a new condition has to be programmed, just add it at the end of the list or leave gaps in the values to add new entries in order. What do you do with this value - just display it, trigger other logic or drive a multi-state indicator? By the way, you're only the second person in 25 years that I've heard refer to any PLC programming software as an IDE.
  16. Inexpensive Ethernet/IP I/O

    I've used Acromag Ethernet I/O modules in both Modbus/TCP and Ethernet/IP. They're low voltage DC only and you have to program message instructions instead of using an I/O connection, but they pack a lot into a 1" wide module. Mike
  17. To P or not to P

    Does this mean that you got it running Friday? I only took a brief look earlier, but my first thought was that you were working too hard. Anyway, a few comments: Subroutines - You've got the right start on organization, but I suggest not nesting your subroutine calls or you'll hit the 8 level limit. Make a separate ladder file for the inputs, then call each subroutine from Ladder 2 (Main). I've only seen nesting in a few complex programs where a subroutine with common logic was called from multiple locations. Level Control - Looks OK. Lead/Lag Pump - The coils in Rung 1 should be OTE, not OTL. That's why you wound up using the counter in the rest of the program. Speed Control - This is the part where you're working too hard. For proportional only, just use the SCP instruction with 442 and 479 as the input min and max and 75 and 100 as the output min and max. Add some extra logic to limit the output value range to 75 to 100, since SCP won't do that if the input is outside the specified min and max input values. Use this value as the output to the Pump 1 and Pump 2 VFDs, since it will be at 100% before the lag pump starts based on the current setpoints. Scaling - I see you covered the inputs in another topic. It would help anyone who works on this system in the future if you scaled the inputs to match the transmitter ranges instead of using the raw 1-5 volt count. Also, you need to scale the 0-100% VFD outputs to match the analog output module range. You have the analog outputs set for 4-20mA, Raw/Proportional, which is -32768 to +32767. They can also be set to Scaled for PID range, 0-16383.
  18. A Google search on "vipr radio" turned up this: ViPR Ethernet radio data sheet. Did you make any progress?
  19. OK, back up, take a deep breath and start over. I looked up the ViPR and you are not trying to message to the radio. Repeat: You are not trying to message to the radio. Think of the radios collectively as another Ethernet switch, routing Ethernet traffic from a device connected to one port to a device connected to another port but at a much slower speed. Internally it's more complex than that but for PLC messaging purposes that's gets you started. The radio programmer is programming the radios for power, frequency and other functions. Without seeing the system design, I think your message needs to be targeted to that other ML1100.
  20. Devicenet Trunk / Drop Box

    You didn't say which Omron connector you are using but I see on the data sheet that some have connectors that remove from the side and others have connectors that remove from the front. If you want to stay with Omron I'd suggest the DCN1-2R for one branch or DCN1-4R for three branches. I've used Turck for fieldbus connectors. Look in catalog B3026, Fieldbus I/O Media. The JRBS-57-x is similar to the Omron junction box, with 4, 6 or 8 branch connections and front removal terminals. I don't know if anyone offers a DIN rail junction mounted in a junction box. With exposed armored cable, it's more common to terminate the cable with connectors and use the NEMA 4/IP68 junction boxes. Omron has a few pieces, but Turck has a much larger selection. Mike
  21. Micrologix 1400 & Armorblock IO

    Look at Acromag Ethernet I/O modules. I've been able to connect to the Ethernet/IP version with a a MicroLogix 1100 using PLC5 Read / PLC5 Write typed MSG instructions. An ML1400 or any other PLC/SLC/CLX that can talk Ethernet/IP to a PLC5 should work just as well. We learned the hard way that an OPC server won't work directly since the module response doesn't have a "real" PLC5 model. Picky, picky. I have a system with three of the Modbus/TCP version that has been running for about four years with no problems. Mike
  22. AEG Modicon PLC Replacement

    I've seen exactly that done at one plant, and very successfully. Since Quantum also supports Modicon S908 remote I/O, they were able to make the change in steps, replacing the processor rack first while keeping the existing remote I/O racks. ProWorx, on the other hand, is enough to make you give up 984 ladder logic. Mike
  23. Siemens Vs Allen Bradley

    In my limited Siemens experiece, I'd say you're right on the mark! I once wrote a small S7-200 program and got it running without much trouble, as long as I remembered how the register addressing worked. On the S7-300 side, I know of a system with about 10 separate PLCs. Near the end of the project, one of the "messing with tools" tasks was to bring all of the PLC programs together into a single project, after they had been written by several programmers in separate projects. RSLogix 5000 sticks to a one PLC per program file scheme. Related to that, what's so special about the CP-1613 Ethernet card for PCs? I had to use one for a Wonderware InTouch HMI project and it was a royal pain to configure. Meanwhile, Wonderware has two Siemens drivers, one for the CP card and the other for a standard Ethernet port. Mike
  24. PLC Brand Name USA Market Share

    One Tier 1 supplier (ex-Chrysler owned) in NY that I've been in had Modicon so old that it pre-dated Gould, but the new equipment was A-B PLC-5 or SLC-500 for small stuff. There were four different brands of robots. When GM built the Saturn auto plant in Spring Hill, Tennesee, they chose GE as the controls vendor. In 1988, I was still fairly new at my first job when we built four control panels for an equipment supplier using Series 6+ PLCs and IDT Panelmate 1 or 2 (pre Cutler-Hammer!) HMIs. My second job picked up the pieces after the first company went bankrupt and in 1994 we built an identical fifth panel. When a brand new (old stock) memory board failed, the only replacement available came from the plant spare parts supply. My understanding later is that the plant utilities were built using the old Series 1 thru 6 hardware, while the production line equipment used the new 90-30 and 90-70 PLC families. Mike
  25. Modicon to Micrologix

    Hi Philip, The parent-child communication link was unique to the Modicon 110 Micro CPU line. It's separate from the Modbus port and connects a parent to one to four children at 125kbps by configuring registers to transfer. The MicroLogix 1000 has no equivalent, just a single RS232 port. You can create a substitute with three ML1000 PLCs by using a 1761-NET-AIC module on each one to create a DH485 network, but that brings your cost up into the range of an ML1100 or ML1400 with built-in Ethernet. These two PLCs also support on-line program editing, with the ML1000 lacks. With a four or five port Ethernet switch, you can plug in your programmer and watch all three programs at the same time. Ethernet is pretty much universal now, so that would drive my decision toward the ML1100 or ML1400, depending on the I/O count required. Mike