Is there an example using NT100 Acyclic Messaging ENIP as Primary Network in RSLogix?

Use Case

When using a Rockwell/AB PLC as EtherNet/IP Scanner, send Acyclic Messaging through a supported gateway and protocol conversion.

Attached is an example RSLogix Project to get started sending Acyclic Messaging through a NT100 with either the PNMEIS or EISDPM firmware running.  This specific project utilizes an L32E CompactLogix PLC running FW v20.X talking to an NT100-RE-DP or NT100-RE-EN, with a SIMOCODE ProV slave on the DP or Profinet side of the gateway, and includes the proper tags for both applications.  This guide is a Companion Guide to the existing netTAP Acyclic Messaging document and the project is intended to be nothing more than a starter project to prove the acyclic messaging concept in specific use cases.  It can be expanded upon, edited, and added to at the user's discretion.

In the example project, tags have been implemented for both Profinet and Profibus as secondary network, along with descriptions for what parameter corresponds to each byte.  In our example, we have tested both Profibus and Profinet using Siemens Simocode ProV devices.

Assumptions

  • The target device on the secondary network must support the available acyclic messaging (i.e. DPV1 Read/Write for Profibus and Read/Write Record for Profinet).
  • The NT100 is in cyclic communication with the target device on the secondary network and has been configured overall.
  • The user knows valid parameters for the messages specific to his/her use case (e.g. Slot/Subslot/Index etc...). 
  • A valid copy of RSLogix is available and the user is familiar enough with RSLogix to perform basic functions at the least.

Establishing Cycilc Communication to the PLC over EtherNet/IP

 

  1. Open the RSLogix example project.

  2. Select the NT100 module from the "Controller Organizer" pane.

  3. Set the IP Address of the NT100's EtherNet/IP Adapter configuration.

  4. Set the Assembly Instance values as follows:  Input 101, Output 100, Configuration 0.

  5. Set the sizes of your Assembly Instances: 
    • Configuration Instance will always be size 0. 
    • Input size will be the configured "Produced" size of NT100 Adapter + four bytes in length, e.g. in the example above, the NT100 has been configured for a Produced size of 10 bytes.
    • Output size will be the configured "Consumed" size of NT100 Adapter. 

  6. Download to the PLC, go into run mode, and ensure cyclic communication via the NT100 LEDs and/or the PLC indication (in RSLogix you should see "IO OK" in your virtual LED pane.

  7. Go Offline to finish the process or stay in Online mode.  I prefer to Go Offline but that's subjective.

Configure the Message to be Sent

  1. Edit the RSLogix example project to correspond to the Rockwell CPU being used.  Also edit the PLC's Path to the correct path for your particular setup.

  2. In the "Main Routine" logic, select the "View Configuration Dialog" button in the Message block. Doing this will bring forth the Message Configuration options.


  3. In the Message Configuration pane, select the "Communication" tab and ensure the Path is set to go to your NT100 device (browse to it if the populated path is incorrect):


  4. Once your Path is correct, select the "Configuration" tab.  Here, you must select the appropriate Source Element and Destination Element for your desired secondary protocol.  For Profibus, select "Send_Data_PB" and "Recv_Data_PB".  For Profinet, select "Send_Data_PN" and "Recv_Data_PN".  If you know the size of the message, enter that into the "Source Length" box.  If not, this can be done after the data is populated in the NT100 tags.  Press "OK" when done.

    Profibus:

    Profinet:


  5. In the "Controller Organizer" pane of RSLogix, double-click "Controller Tags":


  6. Select the bottom tab "Monitor Tags":


  7. Your tags should now be present and editable.  Expand SendNt100.Path.DATA and check DATA[4] to DATA[13].  If the Path was set correctly in Step 3, this will represent your NT100's EtherNet/IP Adapter IP Address.  See below for an example of IP Address 10.0.0.218.  If your values do not reflect your NT100 Adapter IP Address, go back and change the Message Path to be correct (Step 3).


  8. If using Profibus, expand the tag Send_Data_PB and populate the fields with the desired data.  If using Profinet, expand the tag Send_Data_PN.  The "Description" column tells you what each byte means. 

    The below examples show a Profibus DPV1 Read to a station at NodeID 3, Slot 0, Subslot 69, of length 1, and a Profinet Read Record example to a Device at 10.0.0.215, Slot 1, Subslot 1, Index 69, of length one byte.  Both of these are reads of the first byte of the input data from our secondary network slave device.  Be aware the length of the data to be entered will change with a DPV1 Write or Write Record, and will need to be reflected in "Source Length" parameter in Step 4.

    Keep in mind when using SINT Data Type, the values must be entered as their Signed Integer value.  If using a value >=128, the easiest thing to do is break your number down into binary using the Windows Calculator, then just manipulate each bit of the byte in RSLogix to match.  There are also Twos Complement calculators online.  Note that the tags structure is a direct representation of the structure provided in the "netTAP Acyclic Messaging" manual under "Profibus as Secondary Network" (Ch 3.6) and "Profinet IO as Secondary Network" (Ch 3.4).

    Profibus:

    Profinet:

    Notice the swapped bytes for data types >8bits in length.  Pay attention to MSB/LSB.

  9. If you have not done so, go back to the Message Configuration in your logic program, and set your "Source Length" parameter (see Step 4) to the size of valid information in your respective Send Data array.  In this case (reads), that value is fixed at 5 for Profibus and 18 for Profinet.  For writes, it will be greater and dependent upon how much information you are writing (i.e. 5+n for Profibus and 18+n for Profinet, where n represents the number of bytes to be written).

Send the Message

  1. If you have gone offline since confirming cyclic communications, Download to the PLC and Go Online or just Go Online, then proceed to Run mode. Confirm cyclic communication on both sides of the gateway is still functional before proceeding.

  2. Open your Main Routine.  On the one existing rung, toggle "Trigger" by selecting it and pressing Ctrl+T or Right Click it and select "Toggle Bit".  This will initiate the sending of the acyclic message at the frequency of ~1Hz. 

  3. The replies will be populated in the respective Receive Data tags. Go back to the NT100 Tags and look at Recv_Data.  There are separate tags for Profibus and Profinet, so make sure you are looking at the right one.  Here we see our message was successful in each case and returned one byte of value "2", the expected return for the first byte of the IO Input data, which is what we were trying to read.

    Profibus Response:
     
    Profinet Response:
     
    Notice the response structure is a direct representation of the response structures shown in the "netTAP Acyclic Messaging" manual, sections 3.6 and 3.4 respectively.
For any issues with this implementation, please contact Hilscher North America Technical Support at us.support@hilscher.com or (630) 505-5301.

Related Items

/wiki/spaces/~ktemelkov/pages/82216044