CANopen EDS(Electronic Data Sheet) 介绍

EDS文件 (Electronic Data Sheet)是用于描述和配置CANopen设备 的文件格式。它是CANopen协议中的一种标准化文件,用于存储关于设备的详细信息,包括其硬件特性、功能、对象字典、通信配置等内容。EDS文件通常由设备制造商提供,目的是使得上位机(如CODESYSPC-based control systems或其他CANopen主站软件)能够识别和配置设备。

关键点

  • EDS文件是CANopen协议的标准 :它由 CiA(CAN in Automation) 组织定义,并遵循CANopen协议的规范。EDS文件用于描述CANopen设备的对象字典、通信参数和配置等。
  • CODESYS支持使用EDS文件:CODESYS作为一种自动化开发工具,支持通过导入EDS文件来配置和管理CANopen设备。它使用EDS文件中的信息来配置从站设备,例如映射PDO(Process Data Object)、设置通信参数等。

EDS文件的来源

EDS文件标准由**CiA(CAN in Automation)**组织定义,并且已经成为CANopen协议的必需组成部分。所有符合CANopen协议的设备都需要提供EDS文件,方便主站(如CODESYS)进行设备配置和管理。

EDS文件的主要内容

EDS文件主要包含以下几类信息:

  1. 设备信息

    • 设备类型(例如,从站设备、传感器、执行器等)
    • 厂家信息
    • 设备型号、版本号、序列号等
  2. 对象字典(Object Dictionary):

    • 对象字典 是CANopen通信的核心部分,包含了设备的所有参数、对象(如输入、输出、状态寄存器等)及其数据类型、访问权限等。EDS文件定义了对象字典的结构,描述每个对象的属性,包括:
      • 对象标识符(如对象的索引、子索引)
      • 对象类型(例如,变量、数组、命令)
      • 数据类型(如布尔值、整型、浮点型)
      • 访问权限(如读取、写入)
  3. 设备配置和通信

    • 支持的通信参数,如波特率、同步方式、PDO(Process Data Object)映射等。
    • 特定的设备功能,如设备启动模式、诊断信息等。
  4. 设备描述

    • 功能描述,定义了设备的输入和输出、控制功能、状态报告等。
    • 每个对象如何在网络中传输数据的详细描述,帮助主站设备正确地与从站设备通信。

EDS文件的格式

EDS文件通常采用ASCII文本格式,以特定的语法编写。标准的EDS文件结构包括头部信息、设备描述、对象字典以及详细的通信配置。

EDS文件的作用

  1. 设备配置:EDS文件帮助主站(如CODESYS)识别设备并配置其通信参数、对象字典和数据映射。
  2. 自动化:设备可以根据EDS文件自动加载配置,无需手动输入所有参数,简化了集成过程。
  3. 跨平台支持:不同厂家、不同品牌的CANopen设备可以通过相同格式的EDS文件进行配置和管理,从而实现设备间的互操作性。

EDS中的定义

ObjectType

  • 0x01 - Variable(变量)

    • 表示一个普通的变量对象。它可以是一个输入或输出值,或者是用于存储数据的对象。
    • 这些对象通常与设备的功能相关,例如传感器值、控制信号等。
  • 0x02 - Array(数组)

    • 表示一个数组对象。该对象包含多个元素,通常用于表示同一类型的数据集合。
  • 0x03 - Record(记录)

    • 代表一个记录类型的对象。记录通常包含多个不同类型的变量(可能是不同数据类型的字段),并且这些字段一起作为一个逻辑单元处理。
  • 0x04 - Domain(领域)

    • 用于表示一块存储区域(通常是内存或地址空间),可以用于存储较为复杂的数据类型。
  • 0x05 - Function(功能)

    • 用于表示一个函数对象,它可以执行一些特定的操作或功能,通常与设备的控制相关。
  • 0x06 - Object Group(对象组)

    • 表示一组对象,用来组织相关的对象。通常用于将多个对象组合在一起进行管理。
  • 0x07 - Event(事件)

    • 表示事件对象。这些对象用于表示设备在某些条件下触发的事件,例如状态变化、错误等。
  • 0x08 - Service(服务)

    • 用于表示一个服务对象,通常涉及设备间的服务请求和响应,如 SDO(Service Data Object)通讯。
  • 0x09 - Command(命令)

    • 用于表示命令对象,这些对象通常用于设备间的控制指令,指示某些操作或状态变更。
  • 0x0A - State(状态)

    • 代表一个状态对象,用于表示设备或某个子系统的状态信息,通常与设备的运行状态相关。

DataType

EDS 文件 中,DataType 的值是用数字表示的,每个数字对应一个特定的数据类型。以下是一些常见的 DataType 值及其对应的数据类型:

  1. 0x01 - Boolean(布尔类型)

    • 只有两个值:TRUEFALSE。通常用于开关或状态指示。
    • 例如:设备的启停状态。
  2. 0x02 - Integer8(8 位有符号整数)

    • 范围:-128127。适用于小范围整数。
  3. 0x03 - Integer16(16 位有符号整数)

    • 范围:-32,76832,767
  4. 0x04 - Integer32(32 位有符号整数)

    • 范围:-2,147,483,6482,147,483,647
  5. 0x05 - Unsigned8(8 位无符号整数)

    • 范围:0255
  6. 0x06 - Unsigned16(16 位无符号整数)

    • 范围:065,535
  7. 0x07 - Unsigned32(32 位无符号整数)

    • 范围:04,294,967,295
  8. 0x08 - Real32(32 位浮点数)

    • 范围:-3.4028235E+383.4028235E+38。通常用于表示带小数点的数值。
  9. 0x09 - Real64(64 位浮点数)

    • 范围:-1.7976931348623157E+3081.7976931348623157E+308。适用于需要更高精度和更大范围的数值。
  10. 0x0A - String(字符串)

    • 用于表示一串字符。通常用于描述设备的名称、状态或其他文本信息。
  11. 0x0B - OctetString(字节串)

    • 用于存储原始字节数据,适用于二进制数据或不特定格式的数据。
  12. 0x0C - UnicodeString(Unicode 字符串)

    • 用于表示Unicode编码的字符串,通常用于多语言支持。
  13. 0x0F - Domain(域)

    • 用于表示一块内存区域,通常包含一些特定的数据,可能涉及多种数据类型。
  14. 0x10 - Array of basic types(基本类型的数组)

    • 用于表示一个元素为基本数据类型的数组,如整数数组、浮点数组等。
  15. 0x11 - Record(记录)

    • 用于表示一个结构体(记录),包含多个不同数据类型的字段。记录类似于 C 语言中的 struct

总结

EDS文件是CANopen协议中定义设备特性和配置的标准文件格式,通过该文件,CANopen设备的硬件和软件配置、通信方式、对象字典等可以被上位机识别和配置。在软件开发和调试CANopen网络时,EDS文件是非常重要的配置文件。

相关推荐
sayang_shao20 天前
STM32H7+FreeRTOS+LwIP移植EtherCAT开源主站SOEM
stm32·soem·ethercat·canopen
worthsen1 个月前
CanOpen--SDO 数据帧分析
canopen
NYKJ.Co2 个月前
开疆智能CCLinkIE转Canopen网关连接UV紫外灯配置案例
canopen·cclinkie
NYKJ.Co2 个月前
开疆智能CCLinkIE转CANopen网关连接GBS20机器人配置案例
机器人·canopen·cclinkie
工控小楠2 个月前
CANopen转EtherCAT协议转换案例解析
ethercat·can协议·canopen
hlpinghcg3 个月前
CanFestival移植到STM32G4
stm32·canopen
JIANGHONGZN3 个月前
当PLC遇上电焊机器人:EtherCAT转CANopen上演工业级“语言翻译官”
工业控制·工业自动化·ethercat·协议网关·canopen
JIANGHONGZN3 个月前
污水处理厂逆袭:Ethernet/IP 转 CANopen 开启“智净”时代
工业自动化·ethernetip·协议网关·canopen·工业自动化与控制
JIANGHONGZN3 个月前
革新锅炉厂智能控制——Ethernet IP转CANopen协议网关的工业互联新方案
ethernetip·协议网关·canopen·工业通讯·工业自动化与控制