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
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):
|
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):
|
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):
|
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.
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
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.
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.
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.