CANopen (Machinery / Motion)
CANopen is a higher-layer protocol running on top of the CAN bus (CiA 301), commonly used in fields that require precise, deterministic communication such as motion controllers, servos, robot joints, instrumentation, and vehicle auxiliary systems.
This gateway supports CANopen reads through the common integration engine.
PlantPulse Edge hardware has no CAN controller. To communicate with CANopen slaves, a CAN ↔ Ethernet gateway is required.
| Recommended H/W | Notes |
|---|---|
| Anybus Communicator CAN | Converts to EtherNet/IP, Modbus TCP, PROFINET, etc. |
| Ixxat CAN@net NT | TCP socket-based raw / CANopen routing |
| HMS Networks Ewon Cosy / Flexy + CAN extension | Remote-site integration |
| Kvaser Ethercan | For development / debugging |
Many integration sites find it simpler to convert with a CAN → Modbus TCP / EtherNet/IP mapping and register the device in PlantPulse as Modbus TCP / EtherNet/IP. This page covers the case where the gateway exposes CANopen as-is.
Registration Form Inputs
| Field | What to enter | Example |
|---|---|---|
| IP address | IP of the CAN ↔ Ethernet gateway | 192.168.30.40 |
| Port | TCP port exposed by the gateway | (vendor-specific, e.g. 19227) |
| Node ID (node-id) | CANopen node number (1–127) | 5 |
| Response timeout | Response wait time (ms) | 2000 |
In CANopen, multiple slaves share the same bus and are distinguished by Node ID. Register a separate connection for each slave.
CANopen Basics (Quick Reference)
| Term | Meaning |
|---|---|
| Object Dictionary (OD) | A table organizing every data item of the device in a tree structure. Accessed by index (16-bit) + sub-index (8-bit) |
| SDO (Service Data Object) | Point-to-point read/write. The mode PlantPulse uses. Slow, but any item can be accessed |
| PDO (Process Data Object) | Cyclic / event-driven push. Often received and cached by the gateway |
| NMT (Network Management) | Node state machine (Boot-up → Pre-operational → Operational → Stopped) |
| EDS / DCF | Text file defining the OD. Provided by the vendor |
OD indexes are divided into the standard area (0x1000~0x1FFF), the manufacturer area (0x2000~), and standardized device profiles (0x6000~).
PLC Address Notation for Tags
Enter the OD coordinates in the <index>:<subindex> format. Both hexadecimal and decimal are accepted.
| Notation | Meaning |
|---|---|
0x1000:0 | Device Type |
0x1018:1 | Identity → Vendor ID |
0x1018:2 | Identity → Product Code |
0x6000:01 | (DS-401 digital input profile) Digital Input 1 |
0x6041:0 | (DS-402 motion profile) Statusword |
0x6064:0 | (DS-402) Position Actual Value |
0x6077:0 | (DS-402) Torque Actual Value |
Check the coordinates in the device's EDS file or in the OD table of the manual. You can also scan the slave directly with the free tools CANopen Magic / CANeds / CANopenNode.
Data Type Matching
| OD value | Data type | Type modifier |
|---|---|---|
| BOOLEAN | Boolean | (leave empty) |
| INTEGER8 / UNSIGNED8 | Integer | B |
| INTEGER16 / UNSIGNED16 | Integer | (leave empty) |
| INTEGER32 / UNSIGNED32 | Integer | DW |
| REAL32 | Float | REAL |
| VISIBLE_STRING | String | STR[N] |
Simply match against the DataType column of the EDS file.
Common Problems and Solutions
| Symptom | Possible cause | Solution |
|---|---|---|
| "No reply / SDO timeout" | Node is in Pre-operational or Stopped state | Switch to Operational via NMT (gateway / master settings) |
| Only some nodes fail to respond | Node ID conflict, missing termination resistor | Terminate both ends of the CAN line with 120Ω; check for duplicate IDs |
| Erratic values | Bit-rate mismatch | Match the baud rate between slave and gateway (125k / 250k / 500k / 1M) |
| Communication works but values are ambiguous | Vendor-specific OD area (0x2000~) in use | Check the item descriptions in the vendor manual / EDS |
| "Heartbeat lost" | Master not configured | Configure the gateway as master, or enable the sync producer |
Next Steps
- CANopen examples in Advanced — REST API
- For large sites, there are many cases of migration to PROFINET / EtherCAT — worth considering for new builds.