Mike Lamond

MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

1 Neutral

About Mike Lamond

  • Rank
  • Birthday 02/06/62

Contact Methods

  • Website URL http://

Profile Information

  • Gender Male
  • Location Central New York
  • Country United States

Recent Profile Visitors

4809 profile views
  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.