Skip to content

KH-CanOpenTool

KH-CanOpenTool is a Windows CANopen debugging application for node management, NMT control, SDO access, PDO testing and frame inspection through a supported CAN adapter.

Supported Devices

The current release supports PCAN FD and compatible devices. Additional device types are planned.

Download

Download KH-CanOpenTool releases

KH-CanOpenTool main window

Features

  • Import EDS files
  • Import and export projects containing nodes, EDS associations and communication settings
  • Select CAN device, channel and bit rate
  • Send raw CAN frames
  • Send NMT commands
  • Read and write the object dictionary through SDO
  • Configure and test RPDO / TPDO
  • Build graphical monitoring pages
  • Bind Python functions to UI buttons
  • Inspect transmitted and received frames with COB-ID, data, type, node and decoded information

Requirements

  • Windows
  • A supported PCAN device or compatible adapter and its driver

Quick Start

  1. Download and extract the release package.
  2. Install the CAN-adapter driver and connect the device.
  3. Start KH_CAnOpenTool.exe.
  4. Import an existing project, or click + to add a node and select its EDS file.
  5. Select CANopen Host, choose the detected channel and set the bus bit rate.
  6. Click to start communication.
  7. Select a node and use the NMT, SDO, RPDO, TPDO and OD pages.
  8. Inspect communication on the Logs or Frames page.
  9. Export the project when the configuration is complete.

Project Import and Export

Use File → Import Project to restore a saved node list, EDS assignments, CAN channel and bit-rate settings. Always verify that imported hardware settings match the current PC.

Use File → Export Project after changing nodes, EDS files or communication settings so the configuration can be reused later.

Node Management

Click + in the NodeEditor list, enter the Node ID and optionally select an EDS file. Select a node and use the delete control to remove it.

Node management

Starting CAN Communication

Select CANopen Host, then choose:

  • CAN Device: the detected adapter channel
  • Bit Rate: the value used by the CANopen network, for example 250K

Click to open the channel. If the device list is stale, use the refresh control beside the device selector.

CAN channel configuration

NMT Control

Open the target node's NMT tab and select one of the following commands:

  • Start Remote Node
  • Stop Remote Node
  • Enter Pre-Operational State
  • Reset Node
  • Reset Communication

NMT control

SDO Read and Write

On the SDO tab, enter the object-dictionary index, sub-index, data type and value. Select SDO Upload to read or SDO Download to write, then click Send. Inspect the response on the Frames page.

SDO read and write

Verify the index, sub-index, type and permitted value range in the target device's object dictionary before writing.

Frame Viewer

The Frames page displays direction, COB-ID, data, frame type, node ID and decoded information. It supports clearing, searching, automatic scrolling, and loading or saving frame logs.

Frame viewer

TPDO Workflow

  1. Put the node in Pre-Operational state.
  2. Stop PDO transmission.
  3. Configure and map the PDO.
  4. Write the PDO configuration.
  5. Start PDO transmission.

TPDO configuration

Raw CAN Transmission

Open Transmit under CANopen Host, right-click the empty list and add a frame. Configure the ID, data, type, period and comment. The current implementation supports periodic transmission; choose a safe period for the target network.

Add transmit frame

Transmit frame editor

Graphical Monitoring

Create a view, drag UI plug-ins into the editor and bind each plug-in to an object-dictionary entry through its OD setting. Configure TPDO for real-time data before starting the view.

Add a view

Bind OD data

Python Scripts

The GUI editor can bind Python functions to button controls. Open GuiEditor/CodeEdit and define functions such as:

python
def start():
    send_nmt_command(1, 128)
    stop_pdo(1, 0)
    clear_pdo(1, 0)
    set_pdo_info(1, 0, 254, 0, 100)
    append_pdo_od(1, 0, 0x6064, -1)
    write_pdo_info(1, 0)
    start_pdo(1, 0)
    send_nmt_command(1, 1)


def stop():
    stop_pdo(1, 0)

Add two buttons and bind their Method properties to start and stop. The current API reference is available from Help → API.

Troubleshooting

  • Confirm that the CAN driver is installed and the adapter is not in use by another application.
  • Match the configured bit rate to the CANopen network.
  • If the channel cannot be opened, check the adapter, driver, DLL files and device list.
  • Verify EDS definitions before SDO writes or PDO mappings.

Driving Intelligent Connections, Empowering the Future