Ken Roach

MrPLC Member
  • Content count

    2776
  • Joined

  • Last visited

Everything posted by Ken Roach

  1. For MicroLogix and other legacy controller, you want the "Logix 5000 Clock Update Tool".   It is stable but development has been discontinued as of version 3.0.0, which I think came out this year. https://rockwellautomation.custhelp.com/app/answers/answer_view/a_id/44321 For bigger or more sophisticated ControlLogix systems, there's a IEEE 1588 based tool called the Studio 5000 Clock Sync Tool. I'm sure there's a good technical reason that RA never just implemented Network Time Protocol, but they didn't.
  2. Powerflex 700s data

    Background:   There were a couple special versions of the PowerFlex 700S variable frequency AC drive that had a "DriveLogix" control board.  It was essentially an onboard ControlLogix CPU, so like the 1756-L6x and 1769-L3x controllers of that generation, it used a CompactFlash card as removable storage. You can store or restore a firmware image and DriveLogix user application program from the CompactFlash, but you can't load the actual parameters into the PowerFlex 700S itself;  that still requires DriveTools or Drive Executive software. In general, you need a CF card onto which the firmware and user application program have been stored.   Those cards can be configured to automatically load the program, or load it only if memory is corrupted, or when commanded by a user connected with RSLogix 5000 programming software.   The procedure is in the user manuals and online Help for RSLogix 5000, and is identical to ordinary ControlLogix and CompactLogix controllers.  
  3. The most common Modbus RTU command is Read Holding Registers (Command 0x03), not Read Input Registers (Command 0x04), so check to be certain that your meter supports Input Registers.    If you are trying to read a Holding Register instead, you need to select Command 0x03, not Command 0x04. Also, the most common serial framing settings are "19200, 8/N/1", meaning 19200 bits per second, 8 data bits, no Parity bit, and one Stop bit.   8/N/1 uses a 10-bit frame (1 Start, 8 Data, 0 Parity, 1 Stop), while 8/N/2 uses an 11-bit frame that is less common. And of course check your wiring.    It's uncommon for any two vendors to label their RS-485 conductors the same, so you often have to try flipping them.      RS-232 is more commonly labeled correctly, but of course you have to make sure that the devices are a DTE/DCE pair, or if they're both DTE, there's a "null modem" connection crossing Tx and Rx. If you can post a screenshot of the settings and describe what works correctly in ModScan, that will help.  
  4. What exact make and model of Prosoft gateway are you using, and how is it configured ?     I presume it's the "AN-X2-AB-DHRIO" model. What firmware revision do you have in the PanelView Plus terminals ? Years ago, this couldn't work properly because RSLinx Enterprise couldn't "drill down" through a ControlLogix backplane the way that RSLinx Classic could. But the Knowledgebase says it has worked with PV+ 6 and PV+7 and the AN-X2-AB-DHRIO since version 8.10 firmware. To troubleshoot the network bridge and driver configuration, make a test application with just one numeric display and point it at the DH+ station, just to be sure the basic networking stuff works.  
  5. Welcome to the MrPLC forum community ! The Logix operating system supports array tags of up to 2 megabytes, which would be an INT[1048576] array.   The software will warn you if you try to create a tag bigger than 1.5 MB, but it will be valid up to 2 MB. Remember that arrays start with element zero.   If you have an INT[32] type array and the element index number is [32] or bigger the controller will throw a minor recoverable fault. I'm in the habit of testing the index value before I execute an instruction with a variable array index, like LEQ(IndexValue,31) in the ladder rung.   Some programmers are more thorough and use the SIZE instruction to determine the array size before putting in such a limit, so their limiting logic will still work even if the array size is changed later.
  6. Compact Logix L33ER

    It's the "5380" series CompactLogix with part numbers that start with 5069 have the option of a single IP address and physical ring connection, or independent IP addresses with individual physical connections. The "5370" series CompactLogix with part numbers that start with 1769 have the built-in 2-port switch and a single IP address and single NIC. They don't look entirely dissimilar so be sure you're looking at the part numbers. https://www.rockwellautomation.com/en-us/products/hardware/allen-bradley/programmable-controllers/all-products.html#small-control-systems
  7. Please take care with the forum threads you are posting to;  I'm posting to the first thread to keep it as clear as possible. In general, 1769 series modules are not field upgradeable, with ControlFlash or any other tool. So because your program has been modified to use a different firmware revision, you need to modify the program to use the correct module, or disable the firmware revision checking. In Studio 5000, this can be done in offline in the Module Definition section of the module configuration applet in the I/O tree.    You can change the Major Revision and Minor Revision to match the actual module, or set the Electronic Keying to "disabled" instead of "Exact Match" or "Compatible Module".
  8. I don't know of any way to use SSV to change those settings;   the Serial Port object isn't available for SSV. I think that this is possible if you get a full description of all the objects in the Serial Port object as implemented in the 5069-SERIAL module.   My old definitions I pried out of the 1756-L1 won't help, they're too different. What you're looking for is the structure and values that would let you programmatically send a message to set everything in the Channel 0 menu and maybe also the Receive and Transmit tabs. If I were trying to reverse-engineer it I would be running Wireshark and clicking the "Apply" button while online with the controller on the Channel 0 setup menu.   RA Commercial Engineering might be able to help you, but I would not expect this to be in the domain of Technical Support.  
  9. That is... a great question. Many other A-B I/O modules like the 1756 series have a Configuration Assembly as well as the Input and Output assemblies.   Those configuration assemblies are written to the module every time it re-establishes a connection, and you can programmatically use a MSG instruction to Reconfigure a module and send them on demand. But not this module.   It appears to get its configuration objects from the Add On Profile, which makes a lot of sense because there are so many operating modes with very different configuration data. I don't know if the module includes a standard Serial Port object similar to the one on an old 1756-L1/L55/L6x controller. So... gosh...this is going to take some more research.
  10. Communication

    Will the CompactLogix still be controlling the PowerFlex drive, or will you be changing all of the control to the CompactLogix ? Is it using EtherNet/IP, or analog + digital signals, or a Drive Serial Interface (DSI) connection ? You're probably aware that the MicroLogix cannot perform the same kind of cyclic I/O control over EtherNet/IP that a CompactLogix can.
  11. MicroLogix 1100 Frequency Determination

    Unfortunately that post was when I still worked at Rockwell (I left in 2011) so I no longer have access to those computers or files.   MrPLC has also been through a few upgrades and crashes and restorations so if the files aren't here (and I don't see them in the Downloads section either) then I don't have them anymore. And, I don't have a MicroLogix to test with either. If you can describe your application and post your program and describe your specific questions, folks (including me) might be able to offer some help.
  12. DF1 Polling and PLC Fault

    Adding SVC instructions is seldom actually necessary unless you have a very large program and a long scan time.   Some folks put them in as a matter of practice, but I consider it a superstition (knock on wood !). The un-latch of the math overflow is a common programming practice, but one I do not endorse because that can leave undiagnosed malfunctions because you're masking the undesired results of an overflow in the controller OS.   I only do it when I also add a visible fault to an HMI to let me know there are software problems that need to be diagnosed. Neither of those will cause a "hard fault" with a solid red LED. It's easy to point the finger at an untested custom DF1 protocol driver, of course, but when the hardware is a single unit of unknown origin and history, it could be a hardware failure too. 1002 0100 0F00 0084 A2B4 1E89 0000 1003 6127 1002   DLE STX  Start of DF1 Frame 0100   DST SRC  Destination Station 1, Source Station 0 0F00  CMD STS  Command 0x0F, Status 0x00 0084  TNS   Transaction Sequence word = 0x0084  A2    FNC  Function = Protected Typed Logical Read with Three Address Fields. B4    Byte Size = 180 bytes 1E    Data File Number (Address Field 1) = 30 89     File Type 0x89 = Integer 00     Data File Element (Address Field 2) =Zero 00     Data File Subelement (Address Field 3) = Zero 1003   DLE ETX   End of DF1 Frame 6127   CRC Checksum   That's a pretty ordinary Data File Read, especially if the goal of the driver is to read N30:0 through N30:89.    The fact that the TNS was only 0x0084 = 132 (decimal) is unusual.  How often is the driver polling the MicroLogix ?   The Transaction Sequence Number should increment every time a new request is sent by the driver software;   the goal is so that the PLC can answer the requests out of order if necessary, or in true full-duplex mode, and the driver can still match requests to replies.  
  13. DF1 Polling and PLC Fault

    A *solid* red Fault LED is an unrecoverable fault.   The controller's OS isn't running at that point, so any communications attempts are futile. If cycling power brings up a flashed red LED, then maybe the fault code in S:6 is relevant.   But it probably just indicates that the controller has a hangover and doesn't remember anything from yesterday. Most CPUs don't just redlight for no reason, but it's not impossible that the LabView driver inadvertently wrote to a physical memory location.   That's really hard to do in a MicroLogix (relatively easier in a ControlLogix, at least it was 10 years ago) but not impossible. So it's more likely that a voltage spike or an internal failure hard-faulted the MicroLogix.   Un-suppressed inductive loads or lightning strikes are the classic culprits.  
  14. Dint to Real

    The MOV instruction in Allen-Bradley controllers automatically converts between data types.   MOV Source: MBTCP.DATA.ReadData[1] Dest: My_Resistance_Real The DIV instruction also automatically converts between DINT and REAL.   I think in this case the divisor can be either 10 (DINT) or 10.0 (REAL). Neither of these changes how single-precision floating-point values are stored and represented, or rounds to a specific number of decimal places.   For that, yes, a String method is sometimes required.
  15. In general, Node-Red needs to run on a Linux computer of some sort, and of course the Arudinos are an interpreter running on a microcontroller. Modbus/TCP and Modbus/RTU are both part of the ordinary Arduino Modbus library.    https://www.arduino.cc/en/ArduinoModbus/ArduinoModbus So OP should start there, and ask specific questions in an Arduino forum.   Just this week I discovered two really cool ways to splice an Arduino to a higher-level control system.    One is an Uno R3 board with an expansion that lets you mount a FriendlyElect NanoPi Neo Core, running Debian.    Another is that Hilscher makes an industrial ethernet Hat for Arduino, pre-configured as an EtherNet/IP Adapter that talks to the Arduino over I2C.
  16. To clarify:  the PV+ has a "Global Connections" feature that includes the ability to have the terminal read tags from the connected controller, then apply them as time/date settings to the Windows CE operating system on the terminal.    Check the "Global Connections" section in the FactoryTalk View ME project. It's not impossible for the terminal's own RTC backup battery to be dead.   I don't recall how easy they are to get to on the PV+600 terminals.   I think the default time is the beginning of the Unix epoch (1 January 1972). PanelView Plus has had more than its share of bugs with the system clock.   RA's reluctance to simply let the dang things update from an generic NTP server remains a mystery to me.
  17. RSLogix 5000 and devicenet

    I realize you've probably already done this, but wanted to chime in. All A-B DeviceNet scanners store their configuration in nonvolatile RAM separate from the PLC program.   It's loaded into the scanner itself, and can survive power-down indefinitely. I would be a little more cautious with a "redundant FlexLogix" system.    Any hot-standby or DeviceNet "redundancy" system will not be as easily integrated and reliable as true ControlLogix redundancy. As long as the 1788-DNBO module (and the 1788-ENBT, for that matter) have retained their configurations despite the controller fault, they can be re-used without any reconfiguration.
  18. There was a GSM modem module available for the Micro 800 series controllers, marketed and supported by ProSoft Technologies in California.   But I think its heyday of the ILX-800 was eight years ago, before the advent of many other wireless gateways and IOT protocols. What sort of GSM networks are available where these controllers are installed ?   What sort of SCADA software are you using ?    There may be other network gateways, especially ones the use protocols like MQTT, that are more appropriate than trying to use Short Message Service. And of course the task of "connecting multiple controllers to one another" is a little different than "connecting multiple controllers to a central control and supervisory system".  
  19. Numatics DeviceNet I/O

    Modular I/O systems can certainly be tricky on any network, especially one that treats them like a blob on differently sized data the way DeviceNet does.   I have a lot of DeviceNet experience but not with the Numatics G3. What other devices are connected to the G3 adapter, other than that Input module ? What was the context of the failure;  why did you replace both the communications adapter and an input module ? How do you read the Input data connection size, and set it;  through the EDS-based parameter editor in RSNetworx, or through some other tool or utility (or the onboard display on the Numatics adapter ?).
  20. DF1 Protocol For Bit Read

    I'm not a protocol driver author, but in general I'd initialize to zero when you open a connection or restart the driver, then roll over at 65535.
  21. DF1 Protocol For Bit Read

    Thanks for the followup ! Most A-B devices can be set for BCC or CRC, but SLC/MicroLogix default to CRC.   As you've found, it's a fairly ordinary CRC-16 checksum, so it's 2 bytes instead of 1. Remember also that the Transaction Sequence Number should increase by one every time you send a command;  the reply for that specific command event should have a matching TSN. The sequence numbers are one of the things that distinguishes DF1 from Modbus and allows true full duplex communication. Some A-B devices can be configured to ignore duplicate packets, so sequences of the same command with the same TSN will ignore all but the first one.
  22. There is a link in the thread above that tells you exactly how to load the DH485 or DF1 firmware into one of those terminals. If your question is really "I don't have the firmware, will someone please provide it for me", then ask THAT question.  
  23. "Auto-Negotiate" is not the same as "Auto-Detect". A port that's set for auto-negotiation, depending on the exact implementation in the low-level firmware, will periodically drop the link and try to re-negotiate a link speed and duplex, even if it's already running at the highest link speed and full-duplex supported by the device.     With most ordinary IT gear, that's not a problem.   Your e-mail and web browsing and even YouTube won't notice a 100 ms drop in the link. But a cyclic I/O connection generally will. Let us know your outcomes, if you get an opportunity.  
  24. Why ?   Unless you have also set the switch to 100/full and disabled auto-negotiate, you might be getting link drops in order to attempt auto-negotiation periodically. I do not recommend disabling auto-negotiation unless you have hardware (like some fiber/copper converters) that requires it. Your Class A subnet suggests these drives are on an enterprise network.   Are they isolated, or seeing a lot of other broadcast / multicast traffic ? Have you set up a port on the 708TX to mirror the CompactLogix traffic to ?   That will be where you connect and use Wireshark.   Generally the 708TX is a battle tank of a switch, well suited to ordinary automation projects. With the faults being so frequent, you should be able to get some diagnostics just from the link status LEDs on the switch ports to which the PowerFlex are connected. Are there any other I/O adapters or devices that also show faults/disconnections in the I/O tree of the controller ?  You may need to monitor those with GSV instructions or just watch the status indicators in the I/O tree while online.  
  25. If this is true "ControlLogix Redundancy", then you don't have to do anything to the Secondary because it automatically transfers all the edits from the Primary. This includes changes to the ControlNet configuration, if you're using ControlNet. I recently revisited a Redundant system running v19.52 and the hardest part was disabling redundancy so I could save to the CF card on both controllers.    And convincing the customer that there was no such thing as "running on secondary";    they simply couldn't comprehend that Chassis A and B were not "primary and secondary".   Bit of a language gap.