Skip to content
Dietmar Borgards edited this page Feb 28, 2026 · 3 revisions

EdsDcfNet Wiki

EdsDcfNet is a comprehensive, zero-dependency C# .NET library for reading and writing CANopen device description files according to CiA DS 306 v1.4.

NuGet Version Build Status License: MIT


What is EdsDcfNet?

CANopen is a communication protocol for industrial automation systems. Every CANopen device is described by:

File Type Format Description
EDS (Electronic Data Sheet) INI Template describing a device's communication capabilities and configurable parameters
DCF (Device Configuration File) INI Configured instance of an EDS for a specific network node (contains concrete values, node ID, baud rate)
CPJ (Nodelist Project) INI Network topology file listing all nodes in a CANopen network (CiA 306-3)
XDD (XML Device Description) XML CiA 311 XML equivalent of EDS; supports structured ApplicationProcess model
XDC (XML Device Configuration) XML CiA 311 XML equivalent of DCF; configured instance including commissioning data

EdsDcfNet lets you read, write, create, and convert all five file formats from C# with a simple, intuitive API.


Key Features

Feature Description
Read & Write EDS Parse and generate Electronic Data Sheets
Read & Write DCF Process and create Device Configuration Files
Read & Write CPJ Parse and create Nodelist Project files
Read & Write XDD CiA 311 XML Device Description (with ApplicationProcess support)
Read & Write XDC CiA 311 XML Device Configuration
EDS → DCF/XDC Conversion One-call conversion with node ID and baud rate
Type-Safe Models Fully typed models for all CANopen objects
Typed ApplicationProcess Full programmatic access to CiA 311 §6.4.5 parameters
Modular Devices Bus couplers with pluggable I/O modules
Zero Dependencies No external NuGet packages required
.NET Standard 2.0 Runs on .NET Framework 4.6.1+, .NET Core 2.0+, Unity, Xamarin
CiA DS 306 v1.4 / CiA 311 v1.1 Implemented according to the official specifications

Quick Navigation

Getting Started

Working with Files

Object Dictionary

Reference

Development


Five-Minute Example

using EdsDcfNet;

// 1. Read an EDS file
var eds = CanOpenFile.ReadEds("device.eds");
Console.WriteLine($"Device: {eds.DeviceInfo.ProductName}");

// 2. Convert to DCF for node 3 at 500 kbit/s
var dcf = CanOpenFile.EdsToDcf(eds, nodeId: 3, baudrate: 500, nodeName: "SensorModule");

// 3. Save the DCF
CanOpenFile.WriteDcf(dcf, "sensor_node3.dcf");

Installation

dotnet add package EdsDcfNet

Or via NuGet Package Manager: search for EdsDcfNet.


Requirements

Scenario Requirement
Using the NuGet package .NET Standard 2.0 compatible runtime (.NET Framework 4.6.1+, .NET Core 2.0+, .NET 5+, Unity, Xamarin)
Building from source .NET SDK 10.0+, C# 13.0

License

MIT — see LICENSE

Specification

Based on:

  • CiA DS 306 Version 1.4.0 (December 15, 2021): Electronic data sheet specification for CANopen
  • CiA 311: XML device description/configuration concepts (XDD/XDC)

Clone this wiki locally