Joe E.

MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

139 Excellent


About Joe E.

  • Rank
    Propeller Head

Contact Methods

  • Website URL http://

Profile Information

  • Gender Male
  • Location Blacksburg, VA
  • Country United States

Recent Profile Visitors

6602 profile views
  1. Adding an analog output card

    Once the module is in the I/O tree, the corresponding controller tags will appear in the controller tags database. You're looking for "Ch*Data" for each channel of the module, where "*" is the channel number. The base tag name will be the name you gave the module when you added it to the FlexBus. In one of our systems, our Flex chassis is called "Laser_System", so channel 0 of the analog input module in slot 0 is Laser_System:0:I.Ch0Data. Yours will look a little different, but it will be in the controller tag for the module. Before wiring it, you will need to configure it. When you add it to the I/O tree, or later on by double-clicking or right-clicking and selecting "Properties", you can access the module configuration dialog. On one of the tabs (it looks a little different depending on which version of Studio 5000 you're using), you can set the channels to be +/-10V, 0-20mA, 4-20mA, or whatever format your particular module supports. On the -IE12 module that we use, the channels are configured in pairs, so channels 0-1 are set the same, channels 2-3, etc. Note also that Flex I/O does not support scaling inside the module configuration in Logix 5000 like other Analog I/O platforms. The channel data is in raw counts. Consult the user manual to figure out the scaling. You have to do the scaling to/from engineering units manually.
  2. Adding an analog output card

    How many modules are there already? To add a module, right-click on the FlexBus and select "New Module". Find the module in the "Select Module Type" dialog box. Give it a name consistent with the rest of the modules in your system and click "OK". I just tested it on one of our projects (a 1756-L71 at v24) and I had to do it offline and then download it to the PLC. I would connect to the PLC and "save" online, uploading all tag values before going back offline to add the module. That way you don't lose any tag data.
  3. You will need a managed switch to automatically assign the IP address to the drive. You will also need strong controls in place to make sure that the right device is plugged into the right port of the managed switch. If someone gets the patch cables swapped, you will have bad things happen.
  4. Sharing descriptions while online

    In version 30, you can set it to store the comments and such inside the processor (controller properties, "project" tab, "Download Project Documentation and Extended Properties"). The last time I was online at the same time as another engineer, the symbols and comments stayed synchronized between us. We were also at v30. Here's some of the help file for that setting:  
  5. I was hoping Ken would chime in here. I managed to use the ActiveX control to log data to a USB flash drive, but it didn't take long for the flash drive to end up corrupted. At first, I used internal memory, but it filled up too fast. To get it to work the best, we would probably have to set up a ftp server that the HMI can get to and log to. That would eliminate a lot of the issues we saw.
  6. Unsupported processor

    Sorry for the delay, we've had major power outage issues here that took out an old drive that we have to replace. The first on (4351890A) has comments, the second one (4351890A_28_10_06) does not. These programs use a SLC 5/04, which requires a licensed version of RSLogix 500. We're using the "standard" version. I also attached a printout of the compare tool's report showing the differences between the files. 4351890A_28_10_06.pdf 4351890A.pdf 4351890A_CompareResults.pdf
  7. PLC Architectutre

    The 1756-EN2TR module is a different platform (ControlLogix) than your L24. Most of their devices I've seen that have 2 ports are for Device Level Ring (DLR) or linear configuration. If DLR is configured correctly, you would have a loop of patch cables and devices. The idea is that any one of the devices can fail or be powered off and all the others will keep talking. Frankly, in my experience with the equipment I've worked on, if any one device fails the whole system can't run anyway, so I've never implemented DLR. I have, however, used the dual ports to daisy-chain connections (linear topology). It's a convenient way to reduce the size (and maybe quantity) of network switches in the system. The 1769-AENTR has 2 ports. It looks like it's intended solely for the DLR/linear network topology. There is a newer CompactLogix family that has dual ports that can be configured separately with different IP addresses so they can connect to different subnets (like a local machine network and a company network). At first glance, it doesn't look like this -AENTR can do that.
  8. Unsupported processor

    Here you go. The "...Anew" file doesn't have symbols or comments. 4351890B.pdf 4351890Anew.pdf
  9. I've never used high speed counter modules either, but I think there's a way to set up a hardware interrupt so that the high speed counter module can break into the PLC scan when it needs to. I don't know how to set that up or if the windows can be set up in the module or not. It's worth investigating, though. Failing that, it may be possible to use a different PLC that supports motion control commands. A quick look in Proposal Works shows the -L18ERM-BB1B that supports CIP motion and 1734 I/O, but it has less memory (512KB instead of 1MB).
  10. I don't know how helpful it will be, but there is a Tech note that talks about CodeMeter stopping (access level: Everyone):  
  11. Connecting Generic I/O module to Micrologix 1100

    With a quick glance at the information on Phoenix Contact's website, that device does not communicate with any controller. It's just a "connection extender". Check this link: Each sub-connector's pin 3 is tied to 0V, pin 5 to ground, and pin 1 to "UN" (the "hot" connection). Their pins 2 and 4 are broken out at the main connector. This device will NOT be in the I/O tree. You would instead supply it with power (either from the PLC if it has enough or from an external source), then connect the wires from the device to individual input points on the PLC. It's a wiring convenience device, not an I/O device.
  12. RSLogix Lite - Sub-Routines

    If you've ever had to scroll through a few hundred rungs of code to find what you're looking for, you'll understand the value of subroutines for organization. We have 3 production lines that bond steel and aluminum strip. The first two are well-divided into subroutines that are meaningfully named according to specific pieces of equipment on the line. The 3rd is subdivided but not as much or as well. Most of the code is in LAD 2 (it's a PLC-5). It's really a pain to find what you're looking for, especially if you don't know ahead of time how the programmer commented things so you can search for it. I've been here long enough that I know a few search terms to use to find what I'm looking for, but someone who hasn't seen the machine before will be in for a tough time. On our bonding lines, there is code that tracks defects in the strip that was written by a contractor. He used a LOT of conditional subroutines and nested loops. When it works, it works, but occasionally it glitches and freezes up. Because of the conditional subroutines and nested loops, it's been impossible to find the problem. I once spent 2 days straight mapping out the subroutine calls and loops, trying to at least figure out the program flow, but still couldn't isolate the problem. If you value your time, and the time of the people who are on-call after hours, sacrifice the "ideal" efficiency of the code to make it easier to troubleshoot. Those few milliseconds you save don't really matter when the line goes down and it's not making product while your technicians are trying to figure it out. Write code defensively, to avoid 2AM phone calls when something weird happens and the technician sees the spaghetti logic and gets stuck. Even if the spaghetti logic is completely unrelated to the problem, your phone will still be ringing.
  13. Hmi screen for controllogix

    We've used Red Lion Kadet and G3, TCP/Proface/QuickPanel, Siemens MPxxx/Comfort, Panelview Standard and Plus HMIs. Of them all, the ones we've had to replace the least were the PanelView Pluses. The ones we've replaced the most are the Siemens MP277s. The TCP/Proface/QuickPanels and PV Standards are ancient, so it's probably not fair to compare them to the others. We have had some weird failures and glitches with the Red Lion G3s. I would rather program a Red Lion G3 over a PV+, but their prices are closer together than when we started using them, so they're harder to justify based on the glitches.
  14. RSLogix Lite - Sub-Routines

    I would move the pump control OTE instructions to the main routine or a subroutine that's unconditionally run. Each other subroutine would have an "output bit" that turns on when it wants the pump to run. The "output bits" would then be paralleled to control the pump's main OTE. Put a conditional branch for each subroutine's "output bit" so that IF Subroutine1 is active AND Subroutine1's "output bit" is on, THEN run the pump. Repeat for the other subroutines. Edited to add: You need to make sure that the subroutine runs at least one scan before allowing it to control the pump, otherwise the pump's OTE could be on for a scan, which would cause problems. For all those reasons, I tend to NOT use conditional subroutines except in very rare situations and generally for functions that can complete in one scan of the subroutine. In my experience, conditional subroutines are an effective way to get 2AM phone calls...
  15. Are the auxiliaries all controlled by the main PLC as I/O devices or are they independent PLCs? If they're independent PLCs, do they communicate with the main PLC over Ethernet/IP? If the main PLC has the auxiliary machines in its I/O tree (whether as I/O devices or as other PLCs it's talking to), you can use a GSV instruction to check the "connected" status of that device. The return value is a number that explains the status of the module connection. It's shown here in decimal, but the help file explains the results in HEX: In this example, 24576d = 6000h, which means that module is inhibited (the drive isn't actually installed yet in this system). If it were connected and running, it would be 16384d = 4000h.