Skip to content

Proemion/node-canopen-legacy

 
 

Repository files navigation

node-canopen

CANopen is the internationally standardized (EN 50325-4) CAN-based higher-layer protocol for embedded control system. For more information on CANopen see http://www.can-cia.org/

This library allows the manipulation of CANopen devices as defined in CiA 301.

Documentation

Pre-built documentation is available here: https://daxbot.github.io/node-canopen/

Protocols

Emergency - EMCY

The CANopen emergency protocol is used to indicate internal errors with a CANopen device. Call Emcy.write to produce an emergency object.

OD Entry Description Notes
0x1001 Error register Required.
0x1003 Pre-defined error field Required for error history.
0x1014 COB_ID EMCY Required for write.
0x1015 Inhibit time EMCY Required for inhibit time.

Supported Features:

  • Error generation ✔️
  • Error history ✔️

Layer Setting Services - LSS

The CANopen layer setting services protocol allows the CAN-ID and bitrate of an LSS consumer device to be modified. This allows for setting up a network of identical devices without relying on physical dip switches or non-volatile storage to distinguish between them.

OD Entry Description Notes
0x1018 Identity object Required.

Supported Features:

  • LSS producer ✔️
  • LSS consumer ✔️

Network Management - NMT

The CANopen network management protocol is used to manipulate the state of NMT consumer devices on the network and is responsible for the device heartbeat. Call Nmt.start to begin heartbeat generation.

OD Entry Description Notes
0x1016 Consumer heartbeat time Required for monitoring.
0x1017 Producer heartbeat time Required for generation.

Supported Features:

  • Remote state changes ✔️
  • Heartbeat
    • Generation ✔️
    • Monitoring ✔️
  • Command processing
    • State changes ✔️
    • Reset node ✔️
    • Reset communications ✔️

Process Data Object - PDO

The CANopen process data object protocol is used for broadcasting data changes with minimal overhead, similar to a more traditional CAN network architecture. A mapped PDO can be sent with the Pdo.write method. Calling Pdo.start will begin producing mapped synchronous TPDOs.

OD Entry Description Notes
0x1400 - 0x15FF RPDO communication parameter Required for RPDOs.
0x1600 - 0x17FF RPDO mapping parameter Required for RPDOs.
0x1800 - 0x19FF TPDO communication parameter Required for TPDOs.
0x1A00 - 0x1BFF TPDO mapping parameter Required for TPDOs.

Supported Features:

  • Asynchronous PDOs
    • Triggered ✔️
    • Inhibit time ✔️
    • Event timer ✔️
    • RTR ❌
  • Synchronous PDOs ✔️
  • Multiplex PDOs ❌

Service Data Object - SDO

The CANopen service data object protocol provides direct access to a device's object dictionary. Call the Sdo.upload or Sdo.download methods to initate a transfer.

OD Entry Description Notes
0x1200 - 0x127F SDO server parameter Required for server.
0x1280 - 0x12FF SDO client parameter Required for client.

Supported Features:

  • Expedited Transfer ✔️
  • Segmented Transfer ✔️
  • Block Transfer ✔️

Synchronization - SYNC

The CANopen sync protocol is used to synchronize actions between devices on the network. Call Sync.start to begin producing sync objects.

OD Entry Description Notes
0x1005 COB-ID SYNC Required.
0x1006 Communication cycle period Required for generation.
0x1019 Sync counter overflow value Required for counter.

Supported Features:

  • Sync counter ✔️

Time stamp - TIME

The CANopen time protocol is used to provide a simple network clock. Call Time.write to produce a time stamp object.

OD Entry Description Notes
0x1012 COB-ID TIME Required.

About

CANopen implementation for NodeJS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%