Ken Roach

MrPLC Member
  • Content count

    2776
  • Joined

  • Last visited

Everything posted by Ken Roach

  1. If you are only using the module for DH+, it doesn't need to be in the I/O tree at all.   What you're describing is a module that's not doing anything.   If it was connected to a running DH+ network that channel LED would be steady green, and as you've said it's not connected to anything. Is your program originating messages to DH+ devices via this module ?   If the module isn't connected to anything it obviously can't process DH+ messages and its buffers could have filled up if your messaging logic is re-triggering them without waiting for them to time out. The specific error message you're seeing is usually associated with RIO adapters under the 1756-DHRIO's Scanner channel when the DHRIO is located in a remote rack over EtherNet/IP with Multicast enabled.  This is described in RA Knowledgebase article 567942.
  2. rsview32 works

    If you are using RSLinx Classic as the data server (most do) then RSLinx needs to be activated in some way to serve data to RSView32.     RSLinx Lite, the no-activation version that will let RSLogix connect to controllers, won't serve data to any HMI or other software. Why are you building a new RSView32 program ?   The software has been obsolete for a decade and won't run on any modern 64-bit OS.
  3. KINETIX 300 EDS FILE

    I agree that you need the I/O connection to be the full size on the EtherNet/IP side, for the Kinetix 300 to establish and keep the I/O connection going. What's actually happening there is that the EIP 'Master' doesn't check the I/O size until after the data is flowing.    If it's the wrong size, it shuts down the connection and you get an I/O connection fault.   Weird, but what I've seen.
  4. KINETIX 300 EDS FILE

    I pulled my head off the pillow and realize you're talking about the Assembly Object, Instances 113, 114, and 115. Those are, of course, the Input, Output and Configuration assemblies for the Kinetix 300.    They're described in detail in Appendix B of the User Manual.   I notice that my claim that the Input data assembly is 68 bytes conflicts with the manual's description of the Input assembly as 65 bytes.    There may be a run/idle status header I'm not seeing right away. Are you using the NetTap  NT100-RE-DN device, where the Primary network is the EIP Scanner and the Secondary network is the DeviceNet Slave ? I would approach this by using the ENIP Generic Adapter module from the Slave device folder, rather than trying to create an EDS.     That will let you more easily change the size and configuration while you're experimenting, rather than creating a new EDS and unregistering/reregistering it in the SyCon tool. This is quite a challenge, and I'll be impressed if you can get the PLC-5 to handle the datatypes and data configuration effectively.   I'm particularly scratching my head about the Input data assembly, as in general the largest DeviceNet assembly is 64 bytes.   Maybe you could exclude some of the data by customizing your Mapping.    
  5. KINETIX 300 EDS FILE

    The I/O structures for the Kinetix 300 are 68 bytes of Input data and 52 bytes of Output data. I'm not exactly sure which Assemblies to specify, in a simple EDS.  If it helps, this is the structure of the I/O assemblies, from the Save As XML feature in Studio 5000:   <Structure DataType="AB:K300:I:0"> <DataValueMember Name="Fault" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="DriveEn" DataType="BOOL" Value="0"/> <DataValueMember Name="PhysicalAxisFault" DataType="BOOL" Value="0"/> <DataValueMember Name="PositionLockStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="CurrentLimitStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="RegistrationEventStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="IndexingStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="MotionComplete" DataType="BOOL" Value="0"/> <DataValueMember Name="PositiveOvertravelInput" DataType="BOOL" Value="0"/> <DataValueMember Name="NegativeOvertravelInput" DataType="BOOL" Value="0"/> <DataValueMember Name="HomingStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="AxisHomedStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="VelocityStandstillStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="VelocityLockStatus" DataType="BOOL" Value="0"/> <DataValueMember Name="PowerStructureEn" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputA1Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputA2Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputA3Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputA4Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputB1Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputB2Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputB3Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputB4Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputC1Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputC2Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputC3Status" DataType="BOOL" Value="0"/> <DataValueMember Name="DigitalInputC4Status" DataType="BOOL" Value="0"/> <DataValueMember Name="ActiveIndex" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="ActualVelocity" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="ActualPosition" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="PositionCommand" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="PositionError" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="MotorCurrent" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="RegistrationPosition" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="UserDefinedIntegerData0" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="UserDefinedIntegerData1" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="UserDefinedRealData0" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="UserDefinedRealData1" DataType="REAL" Radix="Float" Value="0.0"/> </Structure> </Data> </InputTag> <OutputTag ExternalAccess="Read/Write"> <Data Format="L5K"> <![CDATA[[0,0,0,0,0,0,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000,0.00000000e+000                     ,0.00000000e+000,0,0,0.00000000e+000,0.00000000e+000]]]> </Data> <Data Format="Decorated"> <Structure DataType="AB:K300:O:0"> <DataValueMember Name="AbortIndex" DataType="BOOL" Value="0"/> <DataValueMember Name="StartMotion" DataType="BOOL" Value="0"/> <DataValueMember Name="DefineHome" DataType="BOOL" Value="0"/> <DataValueMember Name="AbortHoming" DataType="BOOL" Value="0"/> <DataValueMember Name="StartHoming" DataType="BOOL" Value="0"/> <DataValueMember Name="DriveEn" DataType="BOOL" Value="0"/> <DataValueMember Name="StartingIndex" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="ReferenceSource" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="AccelerationLimit" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="DecelerationLimit" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="CommandCurrentOrVelocity" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="VelocityLimit" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="CommandPosition" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="RegistrationOffset" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="UserDefinedIntegerData0" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="UserDefinedIntegerData1" DataType="DINT" Radix="Decimal" Value="0"/> <DataValueMember Name="UserDefinedRealData0" DataType="REAL" Radix="Float" Value="0.0"/> <DataValueMember Name="UserDefinedRealData1" DataType="REAL" Radix="Float" Value="0.0"/> </Structure>
  6. KINETIX 300 EDS FILE

    By coincidence I am doing my first project with NetTAP devices.   I'm using their NT100-RE-DP to bridge from EtherNet/IP adapter to Profibus DP Master. While I was getting ready to reply to this post I discovered that something has hosed up my Studio 5000 v29 installation and I can't create new modules on the Ethernet.    Time to do some install repairs, and to thank Heaven for the good folks at VMWare.
  7. KINETIX 300 EDS FILE

    What model of gateway device are you using, and what software is used to configure it ? You're correct that the Kinetix 300 EDS file doesn't contain enough information to create a generic I/O connection;   generally they're using with Rockwell controllers and an Add-On Profile or Module Profile. The solution might be to use EZ-EDS or another utility to create an EDS file that works for your gateway.       So let's start with the gateway make/model and software.  
  8. AB 5/04 and Lantronix UDS1100

    Is this an ordinary UDS-1100 or a UDS-1100-IAP with Industrial Automation Protocols ? General-purpose Serial/Ethernet converters work by allowing a device to use them as a "virtual serial port".    Your OPC server is probably running a DF1 Full Duplex serial driver on that virtual serial port, which is connecting to the serial port of the UDS-1100 just like it was a serial cable.   That's why you have to virtually "unplug" it. The UDS-1100-IAP converts EtherNet/IP protocol to DF1 protocol, and allows multiple devices to use the serial port at the same time.    The OPC server would have to use an Ethernet driver, not a DF1 driver on a remote serial port. This is also how the old 1761-NET-ENI module worked, and similar devices from Digi and RTA and LanTronix (the -IAP stuff) work the same way.
  9. Timer tags

    Timers and Counters are simple examples of "compound" datatypes, with Boolean (the .DN and .EN and .TT bits) as well as DINT (Preset and Accumulated time) sub-elements. They should show up as "folder" icons in FactoryTalk View Studio's address picker when you browse the controller data tables using RSLinx Enterprise.  Click on the Folder, and you should see the sub-elements.
  10. PLC 5/15 to Kinetix 300

    What data, exactly, do you need to get from the PLC-5/15 to the Kinetix 300 ? Do you also have any available "rack" addresses on the RIO scanner channel available on the PLC-5/15 ? Are you replacing an existing motion controller ? The concern I'm looking ahead to is that you might need to send a 32-bit unsigned integer to the Kinetix 300 as a position setpoint, and be unable to generate that type of data in the PLC-5/15 easily.
  11. 1747-sn scanner

    It's very likely that whatever happened to the drive to destroy its IGBT transistors also damaged the 1336-GM1 interface board. If there are other RIO devices on the daisy-chain network, then you can check the status bits for the 1747-SN scanner module to see if those are working correctly. Otherwise the probable answer is to replace the 1336-GM1 interface board.    While these have not been manufactured for many years, they may be available as replacement parts from Rockwell or on the aftermarket.
  12. A Motion Axis Job (MAJ) instruction is considered complete as soon as the axis starts moving;    the MAJ doesn't need to be held true for motion to continue.   You generally need to issue a Stop command to stop an axis that was set in motion by a Jog. This is a little different than the terminology used with variable frequency drives, where "jog" is a maintained signal and stopping is automatic when it is removed. Motion Axis Move instructions (MAM) are different because they have an endpoint, so they stay In Progress (IP) until the motion is complete or is modified. If the axis is in motion when you trigger the MCD and you still get an error, that's unexpected.   There must be another reason for the error. I noticed that your move type and selection bits for changing speed/accel/decel/jerk are numeric instead of the usual drop-down for "Yes" or "No".    Is that on purpose ?    They seem right, but I wonder if one of those arguments is what's causing the error. Check the motion control tag and see if the .ERR value also correlates to values in the Segment and EXERR tags.   That might tell you which argument of the instruction is causing it to error out.    
  13. The MCD instruction will give you Error 23 if the axis isn't moving at the time the MCD goes true. MAJ is basically a starter's gun:   BANG! and the axis is off to the races.    A that point the MAJ's job is done so the .DN bit turns on and it wanders off to find a Gatorade, leaving any speed changes or stopping up to other instructions. You described "blinking" the jog command to get the speed to update.   That's the right approach, you just need to condition that logic so it doesn't execute unless the axis is active.   Use the axis status, not the MAJ instruction /EN or /DN or /IP. If you really want to do this as fast as possible there might be a trick with Event tasks, but for testing I would just have the MCD driven by a self-resetting timer and logic that only executes once the axis is active.  
  14. RS232(DB9)

    Most small logic controllers have a serial port of some kind.    Many modern ones have USB and Ethernet as well. DB9 is a common form factor for RS-232 ports, but I have seen them implemented in DIN-8 (round) connectors (like on the MicroLogix), and in RJ45 and RJ11 modular connectors, and in mini-USB style connectors.
  15. Panel view plu 600

    When the terminal powers up, it checks to be sure that none of the cells on the touchscreen are ON.    If they are, it assumes the touchscreen is damaged and this error message appears. Try cleaning the screen with rubbing alcohol and examining it for damage. Otherwise, your only option is to replace it or have it repaired by Rockwell Automation.
  16. The PanelView 800 is specifically intended to work with Micro 800 and MicroLogix controllers. This Knowledgebase document (1023307, access level Everyone) shows that you designate the protocol as Ethernet | MicroLogix/ENI and then designate the type of MicroLogix in the Controller Settings entry.
  17. Be sure that there is a valid Shortcut pointed to a controller object, and then you should be able to also designate a *.ACD file for offline browsing.
  18. Interlaced MOV Instruction

    MOV, COP, and CPS are all completed before the ladder routine (or structured text routine) moves on to the next branch or next rung. The issue that I suspect you're working on is that COP is an array instruction, and the operating system moves data in 32-bit chunks from the source to the destination.    While the RLL or ST routine execution does not move on to the next instruction, rung, branch, or line until the COP is complete, the OS can interrupt the copying of data to service another higher-priority feature. Usually the problem appears when that interrupt is an I/O update.    The Input data might be written over in the middle of the COP, or the Output data might be grabbed and sent out to the network subsystem before all the data was copied into it. That's why the Copy Synchronous (CPS) instruction was created (it wasn't part of the original ControlLogix OS).   It locks the source and destination from being affected by interrupts until all the data gets copied.    Doing that lock and unlock process in memory takes a few microseconds, so I only use CPS when I'm handling I/O data. Because MOV doesn't operate on arrays or on data types that are bigger than 32 bits, it doesn't have the same vulnerability to interrupts as COP does.
  19. conveyor speed

    While the MicroLogix timers are not extremely accurate (because they depend on the scan rate for evaluation), the MicroLogix does have a Selectable Timed Interrupt (STI) feature that triggers off the controller's internal clock pulse and executes a subroutine at that rate.  You can set the rate in 1 ms increments.    Look in the "Function Files" section of the controller organizer and in the User Manual for details about how the STI feature works. The RA Knowledgebase includes a document (19445, Access Level = TechConnect) that describes using the STI and a High-Speed Counter to simply count the accumulated pulses between executions of the STI and calculate a rate in Hz or kHz, from which you could calculate your conveyor speed. The only HSC-related instruction you really have to use is the Reset Accumulated Value (RAC).    Run it once at the first scan of the processor in your normal PLC program, and then run it at the end of the Program File that is jumped to by the STI interrupt.     That way the Accumulated Value in HSC:0.ACC will always be just the number of counts accumulated during the STI period (set in HSC:0.SPM).
  20. 22-Com-E Card Mess

    I am very surprised that the module accepted that address ! I think the only way to reset the 22-COMM-E is going to be to install it in a drive and use a 22-HIM keypad module, or plug in with a 1203-USB and DriveTools/CCW to access the menus and return it to defaults. There's no other return-to-defaults mechanism for the 22-COMM-E like a jumper or switch.    Its big brother (the 20-COMM-E) has rotary switches you can set to put it on the 192.168.1.xxx subnet, but the 22-COMM-E does not. Your Rockwell distributor ought to have these sorts of devices available to help you recover the module.
  21. Micrologix 1100

    Check the ribbon cable connections very carefully to be sure you haven't bent a pin or torn a cable. In general, you just enter the expansion modules in the I/O configuration and the controller recognizes them.    You might have a bad expansion port on the controller itself.     Talk to your distributor to see if you can test your I/O modules with one of their demos.
  22. Rswho not showing

    Those Microsoft updates were an emergency patch for the Intel processor-related "Spectre" and "Meltdown" security vulnerabilities.    They affected more than RSLinx;  I am carefully working through problems with CoDeSys that are probably related. RA has a discussion of the issues here: https://rockwellautomation.custhelp.com/app/answers/detail/a_id/1070884 And information on the symptoms driven by those updates here: https://rockwellautomation.custhelp.com/app/answers/detail/a_id/1071234   I carefully managed my "I told you so" discussions with my colleagues who consider my insistence on running all automation software under VMWare to be unnecessary;  my virtual machines don't update automatically and almost never connect to the Internet, and can be rolled back easily (when I remember to make snapshots).
  23. Rockwell CompactLogix PLC

    This sounds like a damaged 1768-L45 controller or damaged 1769 backplane connector, or a conflict between the 1769-SDN firmware and the rest of the components. You absolutely should be able to "see" the 1769 I/O modules when you browse the backplane with RSLinx Classic, and your screenshot suggests that you do.   But shortly thereafter the communications with those modules fails and you get a red X over the modules. I would delete all the modules from the RSWho browse and try to browse again, just to establish if you have basic connectivity with the 1769-SDN removed from the assembly. The firmware compatibility is described in the Rockwell Knowledgebase as article 462381 (Access Level: Everyone) https://rockwellautomation.custhelp.com/app/answers/detail/a_id/462381/page/2 Because you have a 1768-L45 controller you will be limited to v20 firmware, which means you should not try to upgrade the 1769-SDN over the backplane.    Borrow a 1784-U2DN to do this upgrade over the DeviceNet network port, or have your local Rockwell distributor or sales office help you upgrade the 1769-SDN if it is not already at version 4.004.
  24. ENCODER IN MICROLOGIX 1400

    That is a broad request.     What do you want the encoder to do in your automation system ? The MicroLogix 1400 has High Speed Counter features that can be used with encoders for some automation tasks. Start with the User Manual and the Reference Manual for the MicroLogix 1400.    http://literature.rockwellautomation.com/idc/groups/literature/documents/um/1766-um001_-en-p.pdf http://literature.rockwellautomation.com/idc/groups/literature/documents/rm/1766-rm001_-en-p.pdf There are also some technotes about wiring, configuration, and applications of encoders with the MicroLogix and its High-Speed Counters in the Rockwell Automation Knowledgebase.
  25. Is the SLC-5/03 Channel 0 serial port available ? The Allen-Bradley 1761-NET-ENI module allowed this kind of connection;  the CompactLogix could send a message to the Net-ENI as though it was an SLC-5/05, and the device would translate that to RS-232/DF1 protocol and get the reply from the SLC/PLC/MicroLogix attached to the serial port side. It's slower than a native Ethernet port, but it works. A-B stopped making the Net-ENI last year, but a company called Real Time Automation in Wisconsin makes a very good replacement device: https://www.rtaautomation.com/product/515rtaeni/ I would even say that the RTA-ENI is better than the original because it has some extra features (like the web interface) and more capacity (10 TCP connections instead of 4).   They were so intent on drop-in replacement that you can use the old A-B configuration software if you want.