CANopen is a higher-level communication protocol that runs on top of CAN bus, standardised by CiA (CAN in Automation). It defines how devices on a CAN network address each other, exchange data, and coordinate their operation. CANopen is used widely in industrial automation, medical equipment, off-highway machinery, building automation, and rail systems.
In short: CANopen standardises CAN-based communication around an Object Dictionary, which is a structured catalogue of the device's data and parameters. Every CANopen device exposes its configuration, status, and operational variables through entries in its Object Dictionary, with each entry addressed by a 16-bit index and 8-bit sub-index. The protocol defines several communication patterns: PDOs (Process Data Objects) for fast, periodic data exchange between devices; SDOs (Service Data Objects) for configuration and parameter access; NMT (Network Management) for coordinating device states across the network; and SYNC and EMCY (emergency) messages for synchronisation and alerting.
For IoT and edge connectivity, CANopen comes into play wherever a cellular router or gateway needs to read from or write to CANopen-based equipment. Common applications include rail rolling stock (where CANopen is used for door controls, HVAC, lighting, and passenger information systems), industrial machinery (motor drives, encoders, sensors), and medical equipment (where CiA 425 defines CANopen for ambulance and clinical applications). A router with CANopen support can read process variables from the bus, repackage them as MQTT or HTTP, and forward them to a cloud platform without needing to modify the existing CAN network.
CANopen sits alongside J1939 (heavy-duty vehicles) and OBD-II (passenger cars) as one of the three main higher-level protocols layered on top of CAN bus. The choice between them depends entirely on the target equipment. For industrial automation, CANopen is the usual answer. For vehicles, J1939 or OBD-II. Teltonika routers, Proroute routers with CAN options, and other industrial gateways provide CANopen support where the application demands it.