PLC Simulator
PLC field notescommunications

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

Modbus and CAN bus target different environments. Modbus RTU/TCP is the open industrial register protocol for PLCs and process instruments. CAN bus with CANopen profiles connects embedded motion and drive systems. This post explains the architecture, frame format, and when each protocol fits.

PLC Simulation Software9 min read

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 organizes 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 standardized 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

Reference tableSwipe
Modbus RTU/TCPCANopen (CAN bus)
OriginProcess automation (1979)Automotive, then industrial (1993)
ArchitectureMaster/slave pollingMulti-master broadcast, event-driven
AddressingSlave address (1–247) or IP + Unit IDNode ID (1–127) + object dictionary index
Data unit16-bit registers, 1-bit coilsPDO: up to 8 bytes per frame; SDO: confirmed
Frame sizeVariable (function code dependent)8 bytes max payload per frame
Speed9600–115200 baud (RTU); 100 Mbit (TCP)10 kbit/s–1 Mbit/s (standard CAN)
Max cable length1200 m at 9600 baud40 m at 1 Mbit/s; 1 km at 50 kbit/s
Max nodes247 (RTU), unlimited (TCP)127 nodes per segment
Error handlingCRC; slave returns exception code15-bit CRC + ACK; hardware error counters
Device profilesNone (register maps are device-specific)Standardized CiA profiles (402, 401, etc.)
Typical useVFDs, meters, sensors, PLCsServo 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 synchronized 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 synchronizing 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 synchronization, 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 synchronization), 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.


Practice 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 →

ShareX / TwitterLinkedIn

From reading to running logic

Practice this yourself in the simulator

Start with guided PLC practice in your browser. No install and no credit card required.

Start practising free

Continue learning

Related field notes

All 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.

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.

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.

10 min read

Software evaluation field guide

Modbus versus CAN bus: evaluation checklist

Direct answer

The reader can separate protocol layer, physical medium, addressing, data model, arbitration, timing, diagnostics and installed-device requirements.

Written for controls and embedded engineers comparing an industrial application protocol with a message bus and, where relevant, a higher-layer CANopen device model.

an industrial network engineer tracing PLC, remote I/O, gateway, switch and supervisory-system data evidence while studying Modbus and CAN or CANopen architecture comparison
System map / 02

NODE 01observable

Requirement

Devices, controller, protocol stack, physical layer, topology, distance, bitrate, timing, payload, object model, diagnostics and installed base.

NODE 02observable

Test job

Application value through register or object definition, message framing, bus access, transport, receiving state and device action.

NODE 03observable

Baseline result

One documented input and output exchange captured with identifiers, values, byte order, timing and healthy diagnostics.

NODE 04observable

Stress case

Duplicate identifiers, bus-off, termination, silent node, stale register, endian mismatch, exception response, gateway and restart.

NODE 05observable

Failure handling

An application-model, mapping, frame, arbitration, timing, physical-layer, configuration or device mismatch.

NODE 06observable

Decision record

The network validated against current protocol and device documentation with captured acceptance evidence.

Answer surface / 07

Is CAN bus faster than Modbus?

The question needs a specific Modbus transport and CAN higher layer. Nominal bitrate alone does not determine application latency, determinism, payload efficiency or device behavior.

What is the difference between CAN and CANopen?

CAN defines lower-layer framing and arbitration; CANopen adds device profiles, object dictionaries, network management and communication objects for interoperable automation.