Skip to main content

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 cannot connect to a CAN bus directly

PlantPulse Edge hardware has no CAN controller. To communicate with CANopen slaves, a CAN ↔ Ethernet gateway is required.

Recommended H/WNotes
Anybus Communicator CANConverts to EtherNet/IP, Modbus TCP, PROFINET, etc.
Ixxat CAN@net NTTCP socket-based raw / CANopen routing
HMS Networks Ewon Cosy / Flexy + CAN extensionRemote-site integration
Kvaser EthercanFor 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

FieldWhat to enterExample
IP addressIP of the CAN ↔ Ethernet gateway192.168.30.40
PortTCP port exposed by the gateway(vendor-specific, e.g. 19227)
Node ID (node-id)CANopen node number (1–127)5
Response timeoutResponse wait time (ms)2000
Node ID is the key

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)

TermMeaning
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 / DCFText 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.

NotationMeaning
0x1000:0Device Type
0x1018:1Identity → Vendor ID
0x1018:2Identity → 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 valueData typeType modifier
BOOLEANBoolean(leave empty)
INTEGER8 / UNSIGNED8IntegerB
INTEGER16 / UNSIGNED16Integer(leave empty)
INTEGER32 / UNSIGNED32IntegerDW
REAL32FloatREAL
VISIBLE_STRINGStringSTR[N]

Simply match against the DataType column of the EDS file.


Common Problems and Solutions

SymptomPossible causeSolution
"No reply / SDO timeout"Node is in Pre-operational or Stopped stateSwitch to Operational via NMT (gateway / master settings)
Only some nodes fail to respondNode ID conflict, missing termination resistorTerminate both ends of the CAN line with 120Ω; check for duplicate IDs
Erratic valuesBit-rate mismatchMatch the baud rate between slave and gateway (125k / 250k / 500k / 1M)
Communication works but values are ambiguousVendor-specific OD area (0x2000~) in useCheck the item descriptions in the vendor manual / EDS
"Heartbeat lost"Master not configuredConfigure 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.