PLC Simulator
communications
modbus
canbus
canopen
fundamentals

Modbus vs CAN Bus (CANopen): Industrial Protocol vs Embedded Network

By PLC Simulation Software9 min read

Modbus vs CAN Bus (CANopen): Industrial Protocol vs Embedded Network

TL;DR: Modbus RTU and Modbus TCP are open, register-based polling protocols widely used to connect PLCs to process instruments, drives, and sensors over RS-485 serial or Ethernet. CAN bus is a broadcast, message-based network originally designed for automotive systems; CANopen is the automation profile built on top of it, used primarily in motion control, robotics, and embedded machine networks. Modbus is pulled by a master. CANopen is event-driven and peer-capable. They rarely compete — they serve different machine layers.

Modbus vs CAN Bus — industrial register protocol vs embedded machine network

A controls engineer encounters Modbus when connecting a PLC to a VFD, energy meter, or flow computer. They encounter CANopen when commissioning a servo drive system, a multi-axis robot joint, or a mobile machine hydraulic controller. The two protocols are rarely on the same decision list — but understanding how they differ helps when integrating systems that use both.

Modbus — The Industrial Register Protocol

Modbus was created by Modicon in 1979 for PLC-to-instrument communication. It remains the most widely deployed industrial protocol because it is simple, open, and royalty-free.

Architecture

Modbus is a master/slave (client/server in Modbus TCP) protocol. One master polls one slave at a time. Slaves respond only when addressed. The master controls all communication timing.

Data model

Modbus organises device memory into four tables:

  • Holding registers (40001–49999): 16-bit read/write — motor speed setpoints, PID setpoints, mode commands.
  • Input registers (30001–39999): 16-bit read-only — measured process values, fault codes.
  • Coils (00001–09999): single-bit read/write — start/stop commands.
  • Discrete inputs (10001–19999): single-bit read-only — limit switches, alarm bits.

Variants

  • Modbus RTU: binary framing over RS-485 serial bus, up to 247 slaves, 9600–115200 baud.
  • Modbus TCP: same register model over Ethernet TCP/IP on port 502. Concurrent connections, no baud-rate limit.
  • Modbus ASCII: printable hex encoding over serial — rarely used in new installations.

CAN Bus and CANopen

CAN (Controller Area Network) was developed by Bosch in the 1980s for automotive wiring harnesses — replacing point-to-point wiring between ECUs. It was later adopted by industrial automation as the physical and data link layer for embedded machine networks.

CAN bus frame

CAN is a broadcast bus. Any node can transmit when the bus is idle. Messages carry an identifier (11-bit standard, 29-bit extended) that defines both the content type and the arbitration priority — lower numeric IDs win bus access over higher IDs without collision.

| Identifier | RTR | DLC | Data (0–8 bytes) | CRC | ACK |
  • Identifier: message priority and content type — not a device address.
  • DLC: data length code — number of data bytes in this frame (0–8).
  • CRC: 15-bit CRC for error detection.
  • ACK: all receivers acknowledge every valid frame simultaneously — the transmitter knows at least one node received it.

CAN supports multi-master — any node can initiate a message. Arbitration is non-destructive: the node with the lowest-priority ID backs off and retries.

CANopen — the automation profile

CAN defines only the frame format; it says nothing about what the data means. CANopen (CiA 301) is the application-layer profile that maps automation concepts onto CAN frames.

CANopen defines:

  • PDOs (Process Data Objects): real-time, cyclic or event-driven exchange of I/O data — position, velocity, torque, digital I/O. No handshake, low overhead. Equivalent to Modbus register reads but pushed rather than polled.
  • SDOs (Service Data Objects): confirmed parameter access — read or write any object dictionary entry. Used for configuration and commissioning (setting acceleration ramps, encoder resolution, current limits). Equivalent to Modbus write register, but with acknowledgement.
  • NMT (Network Management): start, stop, and reset nodes. A master NMT node controls node state transitions.
  • Heartbeat / node guarding: node health monitoring — a node broadcasts a heartbeat periodically; if the master misses it, the node is declared failed.
  • Object Dictionary: every CANopen device has an object dictionary (OD) — a table of parameters (index 0x0000–0xFFFF), each with a data type and access rights. The EDS (Electronic Data Sheet) file describes the OD so a configuration tool can set up the device without knowing it in advance.

CANopen device profiles

CiA publishes device profiles for common equipment:

  • CiA 402: drives and motion control — servo drives, stepper drives, frequency inverters.
  • CiA 401: generic I/O modules.
  • CiA 404: measurement devices.
  • CiA 417: lift systems.

A servo drive conforming to CiA 402 exposes standardised objects for target position, actual position, control word, and status word — so the PLC motion program works regardless of which brand of drive is installed.

Side-by-Side Comparison

Modbus vs CANopen — frame model, addressing, and application compared

| | Modbus RTU/TCP | CANopen (CAN bus) | |---|---|---| | Origin | Process automation (1979) | Automotive, then industrial (1993) | | Architecture | Master/slave polling | Multi-master broadcast, event-driven | | Addressing | Slave address (1–247) or IP + Unit ID | Node ID (1–127) + object dictionary index | | Data unit | 16-bit registers, 1-bit coils | PDO: up to 8 bytes per frame; SDO: confirmed | | Frame size | Variable (function code dependent) | 8 bytes max payload per frame | | Speed | 9600–115200 baud (RTU); 100 Mbit (TCP) | 10 kbit/s–1 Mbit/s (standard CAN) | | Max cable length | 1200 m at 9600 baud | 40 m at 1 Mbit/s; 1 km at 50 kbit/s | | Max nodes | 247 (RTU), unlimited (TCP) | 127 nodes per segment | | Error handling | CRC; slave returns exception code | 15-bit CRC + ACK; hardware error counters | | Device profiles | None (register maps are device-specific) | Standardised CiA profiles (402, 401, etc.) | | Typical use | VFDs, meters, sensors, PLCs | Servo drives, multi-axis motion, mobile machines |

Decision Guide

Modbus vs CANopen — which fieldbus fits your application

Use Modbus RTU or TCP when:

  • Connecting a PLC to process instruments — flow meters, pressure transmitters, energy meters, temperature controllers.
  • The device's register map is documented and you can poll it.
  • Cable runs are long (Modbus RTU handles 1200 m).
  • You need to integrate equipment from many different vendors without a shared device profile.
  • Your SCADA or PLC natively supports Modbus and does not have a CANopen master module.

Use CANopen when:

  • Building a machine with multiple motion axes — multi-axis servo, rotary index table, robotic arm.
  • Your servo drive specifies CiA 402 as its primary interface.
  • You need synchronised cyclic real-time I/O across multiple nodes (PDO SYNC messaging).
  • The machine is self-contained and does not need integration into a plant-wide Ethernet network.
  • You are designing an embedded machine controller (mobile machinery, agricultural equipment, medical devices).

When you need both:

Many industrial machines have both: a CANopen network synchronising servo axes inside the machine enclosure, and a Modbus TCP interface exposing status registers to the plant SCADA. The machine PLC acts as a CANopen master internally and a Modbus TCP server externally.

Frequently Asked Questions

Q: Is CAN bus the same as CANopen?

A: No. CAN bus is the physical and data link layer — the electrical standard and frame format. CANopen is an application-layer protocol built on top of CAN, defining object dictionaries, PDOs, SDOs, NMT, and device profiles. CAN bus also carries other protocols — DeviceNet, J1939, CANaerospace — each with their own application layer.

Q: Can a PLC read a CANopen servo drive?

A: Yes, if the PLC has a CANopen master module or a CANopen fieldbus card. Many PLCs do not include CAN as a standard port — it must be added as an expansion module. Alternatively, some drive manufacturers provide a Modbus TCP or EtherNet/IP gateway above their CANopen internal bus, letting the PLC use standard Ethernet protocols while the drive uses CANopen internally.

Q: What is the speed difference between Modbus and CANopen?

A: At comparable baud rates, CANopen PDOs are faster because they are event-driven — data is pushed when it changes without a request/response cycle. Modbus RTU at 115200 baud can do roughly 200–500 register reads per second; CANopen at 1 Mbit/s with 127 nodes can exchange process data in under 1 ms per cycle for small PDOs. For motion control synchronisation, CANopen is significantly faster.

Q: Is CAN bus still used in industrial automation?

A: Yes, especially in machine building, mobile machinery, medical devices, and robotics. CANopen remains the dominant fieldbus for servo and stepper drives in compact machines. EtherCAT is its successor in high-performance multi-axis motion (microsecond synchronisation), but CANopen at 1 Mbit/s handles most motion applications at lower cost and simpler wiring.

Q: What is DeviceNet and how does it compare to CANopen?

A: DeviceNet is an Allen-Bradley/ODVA protocol that also runs on CAN bus, widely used in North American factory automation. CANopen is the European/international equivalent. Both use CAN as the physical layer but define different object models, device profiles, and network management. DeviceNet is common with Rockwell PLCs; CANopen is common with Siemens, Schneider, and European servo drive manufacturers.


Practise Modbus register reads — the most common way a PLC communicates with a VFD or drive status register — with the Modbus register read scenario. For drive commissioning concepts, the VFD conveyor speed scenario covers frequency reference, run commands, and speed feedback.

Try the Modbus scenario →

Share:X / TwitterLinkedIn

Practice this yourself in the simulator

3 scenarios free — no install, no credit card. Write real ladder logic against a live machine model.

Try the simulator free →

Related articles

communications
modbus

Modbus TCP vs Modbus RTU: Same Protocol, Different Cables

Modbus TCP vs Modbus RTU compared: both use the same register model and function codes, but RTU runs on serial RS-485 and TCP runs on Ethernet. This post explains the differences, the MBAP header, how to choose, and how to troubleshoot each variant.

June 13, 2026 · 9 min read
communications
modbus

Modbus vs DNP3: Process Protocol vs Utility Outstation Protocol

Modbus and DNP3 are both fieldbus protocols used to read RTUs and outstations, but DNP3 was purpose-built for utility SCADA — substations, water treatment, and pipelines — with built-in event reporting, data integrity, and time stamping that Modbus lacks. This post explains the differences and when each protocol is the correct choice.

June 13, 2026 · 9 min read
troubleshooting
fault finding

PLC Fault Finding: 7 Steps from Symptom to Root Cause

A systematic 7-step PLC fault-finding method covering multimeter discipline, the half-split method, and how to navigate every fault family — from wiring opens to scan-order bugs. Links to live fault scenarios and wiring fault labs.

June 13, 2026 · 10 min read