EtherNet/IP With EtherNet/IP™, it is possible to use the most important CiA402 operating modes of the controller. The use of the cyclical modes described in the CiA402 standard (interpolated position mode, cyclic synchronous torque, velocity and position) is not currently possible. The following message types are supported: CIP™ messages (CIP UCMM, CIP class 3 and others) I/O data transfer (CIP class 1) EtherNet/IP™ references: www.odva.org. THE CIP NETWORKS LIBRARY Volume 1: Common Industrial Protocol (CIP), Date: April.2014,Edition: 3.16 THE CIP NETWORKS LIBRARY Volume 2: EtherNet/IP Adaptation of CIP, Date: April.2015,Edition: 1.19 Network Infrastructure for EtherNet/IP™: Introduction and Considerations Note: Nanotec controllers are always based on CANopen standard CiA402. All attributes are therefore stored in a so-called object dictionary. These can be addressed with an index and a subindex, e. g. 1018h:01h. The index is a 16-bit value and the subindex is an 8-bit value. The controller offers EtherNet/IP™, but this protocol uses a different procedure: all attributes are stored on the basis of objects. For this reason, the controller uses an assignment to create a bridge between EtherNet/IP™ and CANopen. As a consequence, the configuration of this controller is somewhat different that with normal EtherNet/IP™ devices. Device profile The Nanotec EtherNet/IP™ implementation contains a manufacturer-specific device profile for accessing manufacturer-specific controller properties and motor control. With the following three services, it is possible to access each attribute for reading or writing. Each attribute listed in chapter Description of the object dictionary can be accessed. Name Service Class Instance Get object dictionary entry 0x32 0x64 1 Set object dictionary entry 0x33 0x64 1 Get object dictionary entry Rockwell 0x34 0x64 1 In addition to the manufacturer-specific profile, the following standard services are also offered: Message Router Object Connection Manager Connection Configuration Port Ethernet Link Object TCP/IP Object Assembly Service: Get object dictionary entry The following table shows the assignment of the data for reading an attribute. The length of the data is dependent on the attribute. Name Service Class Instance Data GetOD entry 0x32 0x64 1 Index (16-bit) Subindex (8-Bit) Example The example below shows how to read the value of object 2014h:00h (current IPv4 address): Request 32 02 20 64 24 01 14 20 00 Reply B2 00 00 00 F4 00 A8 C0 Service: Set object dictionary entry The following table shows the assignment of the data for writing a value in an attribute. The length of the data is dependent on the attribute. It is at least 1 byte and no more than 4 bytes long. Name Service Class Instance Data SetOD entry 0x33 0x64 1 Index (16-bit) Subindex (8-Bit) Value Example Below is an example showing how to write the value 00000304h in object 2031h:00h (Max Motor Current): Request 33 02 20 64 24 01 31 20 00 04 03 00 00 Reply B3 00 00 00 Service: Get object dictionary entry Rockwell The following table shows the assignment of the data for reading an attribute. The response contains a 16-bit object type, a 16-bit data length and the data. The response to this is: Object type (16-bit), followed by the data length (16-bit) and the data itself. Name Service Class Instance Data GetOD entry 0x34 0x64 1 Index (16-bit) Subindex (8-Bit) Example The example below shows a read request and reply for object 2014h:00h (current IPv4 address): Request 34 02 20 64 24 01 14 20 00 Reply B4 00 00 00 07 00 04 00 F4 00 A8 C8 Assembly objects There is a set of producer/consumer groups (I/O Common) that contain the following: Objects for operating the Plug & Drive interface which enable you to use the supported operating modes, to monitor the state of the controller and to access the objects of the object dictionary. You can find additional information on the Plug & Drive interface in document Function description Plug & Drive interface on us.nanotec.com. NanoJ inputs and outputs. They are used to pass values to the NanoJ program and to read out values. Inputs and outputs Current actual values such as position, speed, torque, following errors the error code of the last error that occurred An additional set (I/O PDI) contains only the input and output objects for the Plug & Drive interface (PDI), see PDI assemblies. Note: It is not possible to use the I/O Common assembly set and PDI assemblies (I/O PDI) simultaneously. Select only one connection; either I/O Common or I/O PDI. A configuration assembly is not supported. The attributes that are not included in the assemblies must be read and written via the manufacturer-specific device profile. Assembly Path Assem100: Target -> Originator Assembly - Common 20 04 24 64 30 03 Assem101: Originator -> Target Assembly - Common 20 04 24 65 30 03 Configuration - Common Assembly - Common Target -> Originator - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2292h:01h PDI Status 16 2 603Fh:00h Error Code 16 4 2292h:02h PDI Return Value 32 8 6064h:00h Position Actual Value 32 12 606Ch:00h Velocity Actual Value 32 16 60FDh:00h Digital Inputs 32 20 6077h:00h Torque Actual Value 16 22 3220h:01h Analog Input 1 16 24 60F4h:00h Following Error Actual Value 32 28 2500h:01h NanoJ Output #1 32 32 2500h:02h NanoJ Output #2 32 ⁞ ⁞ 32 116 2500h:17h NanoJ Output #23 32 120 Reserved for future use 64 (2 x 32) Assembly - Common Originator -> Target - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2291h:01h PDI Set Value 1 32 4 2291h:02h PDI Set Value 2 16 6 2291h:03h PDI Set Value 3 8 7 2291h:04h PDI Command 8 8 60FEh:01h Digital Output 32 12 2400h:01h NanoJ Input #1 32 16 2400h:02h NanoJ Input #2 32 ⁞ ⁞ 32 116 2400h:1Bh NanoJ Input #27 32 120 Reserved for future use 64 (2 x 32) PDI assemblies The assemblies for the Plug & Drive interface contain the input or output object of the PDI. You can find additional information on the Plug & Drive interface in document Function description Plug & Drive interface on us.nanotec.com. Assembly Path Assem104: Target -> Originator Assembly - Common 20 04 24 68 30 03 Assem105: Originator -> Target Assembly - Common 20 04 24 69 30 03 Assembly - Common Target -> Originator - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2292h:01h PDI Status 16 2 603Fh:00h Error Code 16 4 2292h:02h PDI Return Value 32 Assembly - Common Originator -> Target - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2291h:01h PDI Set Value 1 32 4 2291h:02h PDI Set Value 2 16 6 2291h:03h PDI Set Value 3 8 8 2291h:04h PDI Command 8 Configuring the assembly objects The assembly objects in the controller are static and do not support dynamic assemblies. The size of the static assemblies is always 128 bytes. The most important data for the various operating modes are already configured; it is, however, possible to append additional data. The mapped data can only be changed with the SetOD entry command. If changing the configuration, note that the EDS file must also be adapted. It is recommended that the new data be appended to the end of the current mapping. As listed in chapter Assembly objects, there is a data range provided for future use. Note: The PDI assemblies cannot be modified. The data are organized successively without gaps. If an 8-bit data value is to have, e.g., 32-bit alignment, it is possible to use so-called dummy objects. Use can also be viewed in the standard configuration for objects 3501h and 3601h. Note: To be able to change the mapping, you must first deactivate it by setting the corresponding subindex 0h to "0". After writing the objects to the respective subindices, enter the number of mapped objects in subindex 0h. The following table lists all available dummy objects: Index Data type 0002h Signed integer (8 bit) 0003h Signed integer (16 bit) 0004h Signed integer (32 bit) 0005h Unsigned integer (8 bit) 0006h Unsigned integer (16 bit) 0007h Unsigned integer (32 bit) Rockwell Studio 5000 Restrictions The controller operates with all possible data formats; it can handle the data formats in the following list. Abbreviation Size in bytes Signed Unsigned 8 SINT USINT 16 INT UINT 32 DINT UDINT Rockwell PLCs only support signed number formats. Thus, all attributes are converted to a DINT (32 byte, signed). This can cause problems when converting an unsigned 32-bit integer to one with a sign if the highest bit is set. In this case, the number becomes a negative – instead of a positive – number. Currently, such UDINT attributes – which may likely have the highest bit set – are usually a status and it is possible to reference the individual bits with a BOOL type. Panasonic PLC Note: Connection problems when importing the EDS file in the case of the Panasonic PLC. The Panasonic PLC does not support the "ZERO" connection type. ► Before importing, remove the "ZERO" connection type from the EDS file.
Device profile The Nanotec EtherNet/IP™ implementation contains a manufacturer-specific device profile for accessing manufacturer-specific controller properties and motor control. With the following three services, it is possible to access each attribute for reading or writing. Each attribute listed in chapter Description of the object dictionary can be accessed. Name Service Class Instance Get object dictionary entry 0x32 0x64 1 Set object dictionary entry 0x33 0x64 1 Get object dictionary entry Rockwell 0x34 0x64 1 In addition to the manufacturer-specific profile, the following standard services are also offered: Message Router Object Connection Manager Connection Configuration Port Ethernet Link Object TCP/IP Object Assembly
Service: Get object dictionary entry The following table shows the assignment of the data for reading an attribute. The length of the data is dependent on the attribute. Name Service Class Instance Data GetOD entry 0x32 0x64 1 Index (16-bit) Subindex (8-Bit) Example The example below shows how to read the value of object 2014h:00h (current IPv4 address): Request 32 02 20 64 24 01 14 20 00 Reply B2 00 00 00 F4 00 A8 C0
Service: Set object dictionary entry The following table shows the assignment of the data for writing a value in an attribute. The length of the data is dependent on the attribute. It is at least 1 byte and no more than 4 bytes long. Name Service Class Instance Data SetOD entry 0x33 0x64 1 Index (16-bit) Subindex (8-Bit) Value Example Below is an example showing how to write the value 00000304h in object 2031h:00h (Max Motor Current): Request 33 02 20 64 24 01 31 20 00 04 03 00 00 Reply B3 00 00 00
Service: Get object dictionary entry Rockwell The following table shows the assignment of the data for reading an attribute. The response contains a 16-bit object type, a 16-bit data length and the data. The response to this is: Object type (16-bit), followed by the data length (16-bit) and the data itself. Name Service Class Instance Data GetOD entry 0x34 0x64 1 Index (16-bit) Subindex (8-Bit) Example The example below shows a read request and reply for object 2014h:00h (current IPv4 address): Request 34 02 20 64 24 01 14 20 00 Reply B4 00 00 00 07 00 04 00 F4 00 A8 C8
Assembly objects There is a set of producer/consumer groups (I/O Common) that contain the following: Objects for operating the Plug & Drive interface which enable you to use the supported operating modes, to monitor the state of the controller and to access the objects of the object dictionary. You can find additional information on the Plug & Drive interface in document Function description Plug & Drive interface on us.nanotec.com. NanoJ inputs and outputs. They are used to pass values to the NanoJ program and to read out values. Inputs and outputs Current actual values such as position, speed, torque, following errors the error code of the last error that occurred An additional set (I/O PDI) contains only the input and output objects for the Plug & Drive interface (PDI), see PDI assemblies. Note: It is not possible to use the I/O Common assembly set and PDI assemblies (I/O PDI) simultaneously. Select only one connection; either I/O Common or I/O PDI. A configuration assembly is not supported. The attributes that are not included in the assemblies must be read and written via the manufacturer-specific device profile. Assembly Path Assem100: Target -> Originator Assembly - Common 20 04 24 64 30 03 Assem101: Originator -> Target Assembly - Common 20 04 24 65 30 03 Configuration - Common Assembly - Common Target -> Originator - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2292h:01h PDI Status 16 2 603Fh:00h Error Code 16 4 2292h:02h PDI Return Value 32 8 6064h:00h Position Actual Value 32 12 606Ch:00h Velocity Actual Value 32 16 60FDh:00h Digital Inputs 32 20 6077h:00h Torque Actual Value 16 22 3220h:01h Analog Input 1 16 24 60F4h:00h Following Error Actual Value 32 28 2500h:01h NanoJ Output #1 32 32 2500h:02h NanoJ Output #2 32 ⁞ ⁞ 32 116 2500h:17h NanoJ Output #23 32 120 Reserved for future use 64 (2 x 32) Assembly - Common Originator -> Target - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2291h:01h PDI Set Value 1 32 4 2291h:02h PDI Set Value 2 16 6 2291h:03h PDI Set Value 3 8 7 2291h:04h PDI Command 8 8 60FEh:01h Digital Output 32 12 2400h:01h NanoJ Input #1 32 16 2400h:02h NanoJ Input #2 32 ⁞ ⁞ 32 116 2400h:1Bh NanoJ Input #27 32 120 Reserved for future use 64 (2 x 32) PDI assemblies The assemblies for the Plug & Drive interface contain the input or output object of the PDI. You can find additional information on the Plug & Drive interface in document Function description Plug & Drive interface on us.nanotec.com. Assembly Path Assem104: Target -> Originator Assembly - Common 20 04 24 68 30 03 Assem105: Originator -> Target Assembly - Common 20 04 24 69 30 03 Assembly - Common Target -> Originator - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2292h:01h PDI Status 16 2 603Fh:00h Error Code 16 4 2292h:02h PDI Return Value 32 Assembly - Common Originator -> Target - Data assignment Offset (bytes) Object dictionary entry Size (bits) 0 2291h:01h PDI Set Value 1 32 4 2291h:02h PDI Set Value 2 16 6 2291h:03h PDI Set Value 3 8 8 2291h:04h PDI Command 8
Configuring the assembly objects The assembly objects in the controller are static and do not support dynamic assemblies. The size of the static assemblies is always 128 bytes. The most important data for the various operating modes are already configured; it is, however, possible to append additional data. The mapped data can only be changed with the SetOD entry command. If changing the configuration, note that the EDS file must also be adapted. It is recommended that the new data be appended to the end of the current mapping. As listed in chapter Assembly objects, there is a data range provided for future use. Note: The PDI assemblies cannot be modified. The data are organized successively without gaps. If an 8-bit data value is to have, e.g., 32-bit alignment, it is possible to use so-called dummy objects. Use can also be viewed in the standard configuration for objects 3501h and 3601h. Note: To be able to change the mapping, you must first deactivate it by setting the corresponding subindex 0h to "0". After writing the objects to the respective subindices, enter the number of mapped objects in subindex 0h. The following table lists all available dummy objects: Index Data type 0002h Signed integer (8 bit) 0003h Signed integer (16 bit) 0004h Signed integer (32 bit) 0005h Unsigned integer (8 bit) 0006h Unsigned integer (16 bit) 0007h Unsigned integer (32 bit)
Rockwell Studio 5000 Restrictions The controller operates with all possible data formats; it can handle the data formats in the following list. Abbreviation Size in bytes Signed Unsigned 8 SINT USINT 16 INT UINT 32 DINT UDINT Rockwell PLCs only support signed number formats. Thus, all attributes are converted to a DINT (32 byte, signed). This can cause problems when converting an unsigned 32-bit integer to one with a sign if the highest bit is set. In this case, the number becomes a negative – instead of a positive – number. Currently, such UDINT attributes – which may likely have the highest bit set – are usually a status and it is possible to reference the individual bits with a BOOL type.
Restrictions The controller operates with all possible data formats; it can handle the data formats in the following list. Abbreviation Size in bytes Signed Unsigned 8 SINT USINT 16 INT UINT 32 DINT UDINT Rockwell PLCs only support signed number formats. Thus, all attributes are converted to a DINT (32 byte, signed). This can cause problems when converting an unsigned 32-bit integer to one with a sign if the highest bit is set. In this case, the number becomes a negative – instead of a positive – number. Currently, such UDINT attributes – which may likely have the highest bit set – are usually a status and it is possible to reference the individual bits with a BOOL type.
Panasonic PLC Note: Connection problems when importing the EDS file in the case of the Panasonic PLC. The Panasonic PLC does not support the "ZERO" connection type. ► Before importing, remove the "ZERO" connection type from the EDS file.