tag 标签: CANopen

相关帖子
相关博文
  • 热度 6
    2022-8-31 10:15
    2169 次阅读|
    0 个评论
    目前, CANopen 通讯协议已经在工业领域得到了广泛的使用,由于其面向对象的设计思路, CANopen 协议已成为欧洲等国家的自动化公司标配的通讯接口之一。在本系列文章中,我们将介绍 CANopen 协议的基础内容,包括对象字典、服务、 SDO 、 PDO 和主 / 从站节点等。 一、对象字典 在 7 个 CANopen 服务中, PDO 和 SDO 服务特别重要,因为它们构成了大多数 CANopen 通信的基础。下面我们将进行详细介绍,但在此之前我们需要了解 CANopen 的一个核心概念:对象字典。 所有的 CANopen 节点必须有一个对象字典( OD ),对象字典是一个标准化结构,包含描述 CANopen 节点行为的所有参数。 OD 条目通过一个 16 位的索引和 8 位的子索引进行查询。例如,符合 CANopen 标准的节点 OD 的索引 1008 (子索引 0 )包含节点设备名称。 具体来说,对象字典中的条目由属性定义的: Ÿ 索引:对象的 16 位地址 Ÿ 对象名称:制造商的设备名称 Ÿ 对象代码:数组、变量或记录 Ÿ 数据类型:例如 VISIBLE_STRING 、 UNSIGNED32 或记录名称 Ÿ 访问: “ rw ”(读 / 写),“ ro ”(只读)或 “ wo ”(只写) Ÿ 类别:这表明参数是强制性的还是可选的 OD 标准化部分 在对象字典被分成标准化的部分中,有一些条目是强制性的,而另一些是完全可定制的。重要的是,一个设备(例如一个从站设备)的 OD 条目可以被另一个设备(例如一个主设备)通过 CAN 访问,例如使用 SDO 。 这可以让主站改变从站节点是否通过特定的输入传感器记录数据,或改变从站发送心跳的频率。阅读电子数据表和设备配置文件可以帮助理解 OD 。 电子数据表 (EDS) 在实践中,配置 / 管理复杂的 CANopen 网络将会用到一些合适的软件工具。为了简化这一点, CiA 306 标准定义了一种人类可读且和机器友好的 INI 文件格式,作为设备 OD 的“模板” -- 例如 “ ServoMotor3000 ”。此 EDS 通常由供应商提供,包含所有设备对象(但不包括值)的信息。 设备配置文件( DCF ) 假设一家工厂购买了一台 ServoMotor3000 ,以整合到他们的传送带上。在操作过程中,操作员编辑了设备的 EDS ,并在 EDS 中添加了特定的参数值或改变了每个对象的描述名称。这样一来,操作者就有效地创建了所谓的设备配置文件( DCF )。有了这个文件, ServoMotor3000 便能够集成到现场的特定 CANopen 网络中。 查看真实的 EDS/DCF 示例是理解 CANopen 对象字典的最佳方法之一,在下图中,您可以留意 EDS 和 DCF 对象条目之间的区别以及 DCF 如何包含特定的参数值。 此外,我们建议到官网上查看 CiA 306 标准,通过实际的例子对 OD 、 EDS 和 DCF 有更深入的了解。 如前文所述, DCF 通常在设备集成时创建。然而,经常需要在初始配置后读取或改变一个节点的对象值——这就是 SDO 服务的作用所在。 二、SDO——配置CANopen网络 SDO 服务允许 CANopen 节点通过 CAN 网络读取 / 编辑另一个节点的对象字典的值。正如在“通信模型”中提到的, SDO 服务使用“客户端 / 服务器”模式。具体来说,一个 SDO “客户端”与一个专门的 SDO “服务器”发起通信。其目的可以是更新一个 OD 条目(称为“ SDO 下载”)或读取一个条目(“ SDO 上传”)。在简单的主 / 从网络中,具有 NMT 主站功能的节点充当所有 NMT 从站节点读取或写入其 OD 的客户端。 示例:客户端节点 SDO 下载 客户端节点可以通过在 CAN 帧下方的广播来启动到节点 5 的 SDO 下载 - 这将触发节点 5 (并被其他节点忽略,见上图)。 SDO “接收”(即请求) CAN 帧如下所示: SDO 消息变量解释 Ÿ 首先, COB-ID 605 反映了“ SDO 接收”的使用( COB-ID 600 + 节点 ID ) Ÿ CCS (客户端命令指定符)是传输类型(例如, 1 :下载, 2 :上传) Ÿ n 是字节区 4-7 中不包含的字节数(如果 e 和 s 被设置为有效) Ÿ e 表示“加速传输”,且所有数据都在单个 CAN 帧中(如果有设置) Ÿ s 表示数据大小显示为 n (如果有设置) Ÿ 索引( 16 位)和子索引( 8 位)反映了要访问的 OD 地址 Ÿ 最后,节点 5 将相应字节 4-7 中包含的相关数据 一旦主站节点(客户端)发送 CAN 帧,从站节点 5 (服务器)通过 COB-ID 585 的“ SDO 传输”进行响应。响应包含索引 / 子索引和 4 个空数据字节。自然,如果客户端节点请求上传(即从节点 5OD 读取数据),节点 5 将响应字节 4-7 中包含的相关数据。此外,对于更大的数据场景,可以使用 SDO 分段 / 块进行传输。 一般来说, SDO 很灵活,但也会带来较高的成本,这使得 SDO 不太适合实时操作数据。这就是 PDO 的用武之地。 三、PDO——操作CANopen网络 CANopen 的 PDO 服务用于在 CANopen 节点之间有效地共享实时操作数据。例如, PDO 将携带来自压力传感器的压力数据或来自温度传感器的温度数据。原则上, SDO 服务也能实现共享实时操作数据,但由于单个 SDO 响应只能携带 4 个数据字节,出于成本原因,我们不建议这么做。 此外,假设一个主站节点需要来自节点 5 的两个参数值(例如“ SensTemp2 ”和“ Torque5 ”)。如果通过 SDO 来实现,需要 4 个完整的 CAN 帧( 2 个请求和 2 个响应)。相比之下,一个 PDO 消息可以包含 8 个完整的数据字节,而且它可以在一个帧内包含多个对象参数值。因此,在 SDO 服务中至少需要 4 个报文,而在 PDO 服务中则可能只需要 1 个报文就可以完成。 PDO 通常被看作是最重要的 CANopen 协议,因为它承载了大量的信息。下面我们将介绍 CANopen 的 PDO 服务是如何工作的。 PDO 服务使用的是“消费者 / 生产者”模型。因此,生产者 " 生产数据 " ,它使用发送 PDO ( TPDO )将其传送给“消费者”(主站)。反之,它可以通过“接收 PDO ”( RPDO )从消费者那里接收数据。 例如,生产者节点可以被配置为对应的同步触发,例如每隔 100ms 广播给消费者。然后,节点 5 可以在传输带有 COB-ID 185 的 PDO 下广播: 请注意这里的数据字节是如何装入 3 个参数值的。这些值反映了节点 5 的特定 OD 条目的实时数据。使用这些信息的节点(消费者)需要知道如何解释 PDO 数据字节。 在某种程度上, PDO 服务有点像 J1939 PGN 和 SPN ,这类似于特定 J1939 参数组 (PG) 如何在 8 个数据字节中包含多个 SPN/ 信号(也称为数据参数)。 J1939 CAN 帧不需要在“解码”信息上浪费数据字节,因为相关节点(以及外部工具通过例如 J1939 DBC 文件或 J1939 PDF 标准)知道这一点。问题在于,在 CANopen 中,这些“ PDO 映射”通常是可配置的,并且可以在创建 DCF 或通过 SDO 服务期间进行更改。 四、虹科 CANopen 解决方案 1. 虹科 CANopen 数据记录仪—— CANedge2 CANopen 经常被用于仓库中的电动叉车或自动导引车中,对 CANopen 数据进行监测和分析有利于改善管理,比如监测充电状态有助于减少故障和改善电池寿命,并且工业机械可以通过云端的物联网 CAN 记录器进行监控,根据 CANopen 数据预测和避免故障。此外, CAN 记录器可以作为工业机械的“黑匣子”,提供数据用于解决 OEM 和用户之间的纠纷,或作为罕见问题诊断的一部分。 2. 虹科 CANopen IO 模块 虹科 HK-CIO 系列是支持 CANopen 协议的远程 IO 模块, IO 类型包含数字量,模拟量,高速计数器,脉冲输出, PWM , PT100/1000 等,紧凑型设计,支持 DIN 导轨安装, IO 与 CANopen 通讯之间相互电气隔离。 3. 虹科 CANopen 协议开发方案 虹科 CANopen 源代码实施全功能符合 CiA 301 标准草案,支持快速且标准地开发你的 CANopen 主站或从站设备,包括 NMT 主站(网络管理)、 LSS 主站(层设置服务)或 SDO 客户端。
  • 热度 7
    2022-8-23 13:32
    2073 次阅读|
    0 个评论
    目前, CANopen 通讯协议已经在工业领域得到了广泛的使用,由于其面向对象的设计思路, CANopen 协议已成为欧洲等国家的自动化公司标配的通讯接口之一。在本系列文章中,我们将介绍 CANopen 协议的基础内容,包括对象字典、服务、 SDO 、 PDO 和主 / 从站节点等。 1.1 CANopen 框架 为了理解 CANopen 通信,有必要对 CANopen 的 CAN 报文进行分解。如下图, 11 位的 CAN ID 被称为通信对象标识符( COB-ID ),它被分成两部分。前 4 位相当于功能代码,接下来的 7 位包含节点 ID 。 为了理解 COB-ID 的工作原理,需要从简单的 CANopen 网络中如何使用标识符的预定义分配开始。 如上图, COB-ID ( 381 、 581 等)与通信服务(传输 PDO 3 、传输 SDO 等)相关联,因此, COB-ID 详细说明了哪个节点正在发送 / 接收数据,以及使用了什么服务。如下图的例子,一个节点 ID 为 5 的 CANopen 设备将通过 11 位的 CAN ID 585 传输 SDO ,这对应于二进制功能代码 1011 ,节点 ID 5 (在二进制中为 0000101 )。 1.2 CANopen 通信协议 / 服务 接下来,我们将简要介绍 CANopen 的 7 种服务类型,以及它们如何利用 8 个 CAN 帧数据字节。 1.2.1 网络管理( NMT ) NMT 服务用于通过 NMT 命令(如:启动、停止、复位)来控制 CANopen 设备的状态(如:预运行、运行、停止)。 为了改变状态, NMT 主机发送一个带有 CAN ID 0 的 2 字节消息(即功能代码 0 和节点 ID 0 )。所有从站节点都处理这个报文。第一个 CAN 数据字节包含请求的状态,而第二个 CAN 数据字节包含目标节点的节点 ID 。节点 ID 0 表示广播命令。 可能的命令包括转换到运行(状态 01 )、停止(状态 02 )、预运行(状态 80 )以及重置应用程序( 81 )和重置通信( 82 )。例如:将节点 0x06 设置为运行模式: 000 01 06 1.2.2 同步( SYNC ) SYNC 报文用于同步几个 CANopen 设备的输入和响应 -- 通常由应用主站触发。应用主机将 SYNC 消息( COB-ID 080 )发送到 CANopen 网络(带或不带 SYNC 计数器)。多个从节点可以配置为对 SYNC 做出反应,并通过传输同时捕获的输入数据或通过与参与同步操作的节点同时设置输出来响应。使用 SYNC 计数器可以配置几组同步操作的设备。 1.2.3 紧急情况 (EMCY) 紧急服务用于设备出现致命错误(如传感器故障)时,允许它向网络的其他部分指示这一点。受影响的节点以高优先级向网络发送单个 EMCY 消息(例如,节点 5 的 COB-ID 085 )。数据字节包含有关错误的信息,可以查找详细信息。 1.2.4 时间戳( TIME ) 通过这种通信服务,可以分配全球网络时间。时间服务包含一个 6 字节的日期和时间信息。应用主机发送 CAN ID 为 100 的 TIME 消息,其中最初的 4 个数据字节包含以毫秒为单位的午夜之后的时间,接下来的 2 个字节包含自 1984 年 1 月 1 日以来的天数。 1.2.5 过程数据对象 PDO 服务用于在设备之间传输实时数据,例如位置等测量数据或扭矩请求等命令数据。在这方面,它类似于 J1939 中的广播数据参数。关于 PDO 服务,我们将在下文中进行详细介绍。 1.2.6 服务数据对象 SDO 服务用于访问 / 改变 CANopen 设备的对象字典中的值。例如,当应用主站需要改变 CANopen 设备的某些配置时,可以通过 SDO 服务来实现。 1.2.7 节点监控(心跳) 心跳服务有两个目的:提供一个“活动”的消息和确认 NMT 命令。 NMT 从设备周期性地(例如每 100 毫秒)发送心跳消息(例如节点 5 的 CAN ID 为 705 ),在第一个数据字节中包含节点的“状态”。如果在特定时间限制内没有收到任何消息,心跳消息的“消费者”(例如 NMT 主设备和可选的任何其他设备)就会做出反应。例如:节点 5 处于预运行模式,周期性发送: 705 7F 在下一篇文章中,我们将继续讲解 CANopen 通信的相关知识,包括对象字典、 SDO 、 PDO 等,欢迎关注我们以便第一时间获取更新的内容。虹科在 CAN 、 CANopen 等领域深耕多年,有着深厚的技术实力,目前已面向国内市场推出了 CANopen 开发源代码、 CANopen 数据记录仪,和支持 CANopen 协议的网关、板卡、 IO 等产品。此外,针对客户在 CANopen 方面的培训需求,虹科还推出了相关的课程培训服务,欢迎拨打 400-999-3848 到虹科了解详情。
  • 热度 5
    2022-8-17 11:18
    4903 次阅读|
    0 个评论
    目前,CANopen通讯协议已经在工业领域得到了广泛的使用,由于其面向对象的设计思路,CANopen协议已成为欧洲等国家的自动化公司标配的通讯接口之一。在本系列文章中,我们将介绍CANopen协议的基础内容, 包括对象字典、服务、SDO、PDO和主/从站节点等 。 一、什么是CANopen? CANopen是一种基于CAN的通信协议。这项协议非常有用,因为它可以让设备、节点(如工业机械)之间具有现成的互操作性,以及它提供了安装前和安装后配置设备的标准方法。CANopen最初是为面向运动的机器控制系统设计的,如今,它被广泛用于电机控制(步进/伺服电机)领域,并在以下应用中得到广泛使用: 机器人技术:包括自动化机器人、传送带和其他工业机械 医疗:包括X射线发生器、注射器、病人床和透析设备 汽车:包括农业、铁路、拖车、重型汽车和船舶等 CANopen是一个基于CAN总线的“高层协议”,这意味着CAN总线(ISO 11898)就像集装箱的卡车一般作为CANopen信息的“运输工具”。在OSI模型中,CAN总线代表两个最低层(物理层和数据链路层)。这意味着CAN只是实现了带有11位CAN ID、远程传输(RTR)位和64个数据位(与更高层的协议相关)的字段的帧的传输。换言之,CAN总线在CANopen中的作用与在J1939协议相同,而CANopen则实现了OSI模型的第七层,并能够适应除CAN以外的其他数据链路层协议(例如EtherCAT、Modbus、Powerlink)。 值得关注的是,随着 CAN FD 的推出, CANopen FD 作为下一代 CANopen 标准,可能会发挥着越来越重要的作用。具体细节,欢迎到 CiA 官网中查看。 相较于 CAN 总线和 J1939 协议, CANopen 协议新增了 6 个核心概念: Ÿ 通信模式。设备 / 节点的通信有 3 种模式: 主 / 从站、客户端 / 服务器和生产者 / 消费者。 Ÿ 通信协议。用于通信的协议,如配置节点( SDO )或传输实时数据( PDO )等。 Ÿ 设备状态。一个设备支持不同的状态,一个 " 主站 " 节点可以改变一个 " 从站 " 节点,包括重置等操作。 Ÿ 对象字典。每个设备都有一个 OD ,其中有指定设备配置等的条目,它可以通过 SDO 访问。 Ÿ 电子数据表。 EDS 是 OD 条目的标准文件格式,它允许使用服务工具来更新设备。 Ÿ 设备设置文件。描述了 I/O 模块( CiA 401 )和运动控制( CiA 402 )等供应商独立性 二、CANopen通信基础知识 在 CANopen 网络中,需要多个设备进行通信,例如,在工业自动化设置中,你可能有一个带有多个伺服电机节点和一个控制接口 /PC 节点的机械臂。 CANopen 中存在着三种通信模式,每种模式都与我们所讨论的 CANopen 协议紧密相连。下面将简单介绍这三种模式: 第一, 主 / 从站。 一个节点(例如控制接口)作为应用主站或主控制器。它向从站设备(例如伺服电机)请求数据。这个过程被用于诊断或状态管理。在标准应用中,可以有 0 到 127 个从站。但需要注意,请注意:在单个 CANopen 网络中,可以有不同的主机控制器共享同一个数据链路层。 第二, 客户端 / 服务器。 客户端向服务器发送数据请求,服务器回复请求的数据。例如,当应用程序主站需要从站的 OD 中获取数据时使用这一模式。从服务器上读取是一种 " 上传 " ,而“写入”是一种 " 下载 " (该术语采用服务器端的角度)。 第三, 消费者 / 生产者。 该模式中生产者节点向网络广播数据,由消费者节点消费。生产者根据请求(拉模型)或没有特定请求(推模型)发送此数据。 显然,这些模型实际上是相同的,但为了术语的一致性,我们对它们进行了区分。 在下一篇文章中,我们将继续讲解CANopen通信基础知识,欢迎关注以便第一时间获取更新的内容。虹科在CAN、CANopen等领域深耕多年,有着深厚的技术实力,目前已面向国内市场推出了 CANopen开发源代码、CANopen数据记录仪,和支持CANopen协议的网关、板卡、IO等产品 。此外,针对客户在CANopen方面的培训需求,虹科还推出了相关的课程培训服务。
  • 热度 5
    2022-8-12 15:24
    1357 次阅读|
    0 个评论
    CANopen 是位于 CAN 总线之上的应用层协议。 CAN 报文由 7 个不同的位域组成, CANopen 主要是规定了其中的仲裁域和数据域的使用情况。 一、 CANopen 报文格式 CANopen 的报文格式为 COB-ID+D0+D1+…..+D7 , 放入 CAN 帧的数据,低字节优先。例如数据 0x01020304 对应如下组织: COB-ID 04030201 。 COB-ID= Function Code+Node ID (或其他),如图所示。 Function Code (二进制): EMCY : 0001 ; PDO : 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010 ; SDOrx : 1011 ; SDOtx : 1100 ; NMT error control : 1110 ; NMT : 0000 ; SYNC : 0001 ; TIME STAMP : 0010 ; 例子: 182H=0001 1000 0010 ( B ) 11bit 为 0011 0000 010 :前四位 0011 为功能码 PDO ,后四位为节点, 10=2 即节点为 2. 二、 CANopen 报文测试 1. Boot-up 报文 CAN-ID=700+node_ID 当某个节点在 initializing 模式之后,进入 pre-operational 模式将发送 boot-up 报文,例如 CIO102 在上电之后会收到报文如下。这个 boot-up 报文其实也是第一个心跳报文。 2. NMT 报文 NMT 状态机: 1 ) Power on 上电 2 )自动切换到预操作状态 3 ) 6 )网络管理切换到操作状态。 4 ) 7 )网络管理切换到预操作状态。 5 ) 8 )网络管理切换到停止状态。 9 ) 10 ) 11 )网络管理切换到应用层复位状态。 12 ) 13 ) 14 )网络管理切换到通讯复位状态。 15 )掉电或者硬件复位。 NMT 协议: 11-bit 的 CAN 报文 ID 中只携带高 4-bit 的功能码, CANID 均为 000h ,具备最高的 CAN 优先级。数据为 Node-ID 放在数据域的 D1 处;具体的 NMT 命令编码放在数据域的 D0 处!例:将节点 1 设置为 operational 状态: 000 01 01 如果要对整个网络所有节点同时进行控制,则 D1 为 0 即可。例:将所有节点设置为 operational 状态 000 01 00 3. 心跳报文 Stare : 0=Boot-up 4=stopped 5=operational 7F=pre-operational CAN-ID 为 700+Node-ID 数据为一个字节。如图,设备上电后处于 pre-op 状态,通过 SDO 写入心跳周期 5s ,每隔 5s 自动发送一次设备的状态,通过 000 01 01 将设备的状态切换为 op. 。报文: 601 2B 17 10 00 88 13 00 00 : 601 为 CAN-ID ( 600+NODE_ID ), 2B 代表写两个字节, 17 10 表示索引(根据报文格式低位在前,此处代表对象 1017h ), 00 表示子索引, 88 13 00 00 代表数据内容(低位在前则该数据为 00 00 13 88=5000 ) . 4. Node guard 主站发送一帧远程帧,节点应答 700+Node_ID state State : 0= 初始化, 1= 断开连接, 2= 连接, 3= 准备, 4=stopped , 5=operational , 6=pre-operational 5. 同步报文 同步窗口时间索引: 1007 h 约束了同步帧发送后从节点发送 PDO 的时效即在这个时间内发送的 PDO 才有效超过时间的 PDO 将被丢弃;通讯循环周期:索引 1006 h 规定了同步帧的循环周期。 测试过程: 1 )令设备处于 op 状态 2 ) 1800 , 1802 的 transmission type 设为 3 6. SDO 1) 快速 SDO :用于读 / 写某个节点的对象字典,其数据内容不超过四个字节。例如 601 22 00 62 01 FF 00 00 00 : 601 ( 600+Node_ID ); 22 (不对传输数据的字节数做区分) =0010 0010 (如下图) 001 表示写, 0 表示没有用到的字节数, 00 表示剩下的字节数, 1 表示快速传输, 0 表示 data 区没有字节数指示; 01 表示子索引; FF 00 00 00 表示数据区的内容。 SDO 写: CCS: 客户端的命令码 X: unused bits n: 字节数 (n 表示后面 4 个字节数据剩余的数量 ) e: transfer expedited ( 快速传输,无分段 ) s: data 区是否为字节数指示: 0 表示 data 区无, 1 表示 data 区的数值为要写入的数据 SCS: 服务器命令码 SDO 读: CCS: 客户端命令码 n: 当快速模式时,表示 data 区内空余的字节数 e: transfer type : 1 表示快速传输,无分段 s: data size indicator SCS: 服务器端命令码 X: unused bits SDO 命令符 下图为 SDO 测试的过程,包括读 6200 01 和 6200 02 的读写操作。 2) 分段 SDO/ 块传输(用得比较少,了解即可):针对读写数据超过四个字节。报文以测试以分段传输为例。报文传输如下图所示, 601 40 08 10 00 00 00 00 表示读取 1008 索引 10 子索引。 41 01 10 00 0D 00 00 00 ; 60 00 00 00 00 00 00 00 ; 70 00 00 00 00 00 00 00 该为确认报文信息 00 68 69 70 65 63 73 2D ; 13 43 49 4F 31 30 32 00 为具体内容,其中 00 和 13 为命令码;其他通过查 ASCII 表 68:h;69:i;70:p;65:e;63:c;73:s;2D:-;43:C;49:I;4F:O;31:1;30:0;32:2;00:NULL; 即内容为: hipecs-CIO02. 7. PDO PDO 有三种触发机制:事件触发、远程帧、同步 PDO 的 COB-ID 组成 31 30 29 28 - 11 10 - 0 0/1 0/1 0 0 11-bit Identifier 0/1 0/1 1 29 bit identifier Bit Value Meaning 31 0 PDO exist/is valid 1 PDO does not exist/is not valid 30 0 RTR allowed on this PDO 1 No RTR allowed on this PDO 29 0 11 bit ID (CAN 2.0A) 1 29 bit ID (CAN 2.0 B) 28-11 0 If bit29 = 0 X For 29 bit COB-ID if bit29 = 1 10-0 X Bit 10-0 of COB-ID 此处为什么要再提 COB-ID 呢?他与开头讲的 COB-ID= Function Code+Node ID 有什么区别? (该处的 COB-ID 就是开头所讲的其他的情况)这一应用主要在修改 PDO 映射中。其中 PDO 的 COB-ID 主要有以下这些 PDO 通讯中有两个重要的概念,通讯参数与映射参数( CiA301 中规定了他们的对象),通讯参数中定义了该设备所使用的 COB-ID 、传输类型、禁止时间、事件定时器触发时间、同步起始值
  • 热度 13
    2022-2-11 15:50
    1776 次阅读|
    0 个评论
    时不时总会遇到一些问题:“CANopen的一致性测试怎么做?”,“有没CANopen一致性测试软件,怎么获取?”,“你们能否帮我们做CANopen的一致性测试?”为了方便大家,虹科工程师将 如何进行CANopen的一致性测试 的相关概念、所需工具、测试过程以及测试过程中可能会遇到的问题进行分享。 1. CANopen的一致性测试概念 可从CiA协会组织 官方链接 了解相关信息,官方的测试中心中有CANopen的一致性测试服务(使用CTT软件)以及兼容性插拔测试服务。CiA提供一致性测试软件,对新开发的从站进行测试,以保证设备符合CANopen基本通讯协议DS301。厂商可以自行购买此软件,进行自测试,也可以申请正式的测试,成为会员也可以获取到CTT的测试软件,测试必须提供正确的EDS文件。 2. 一致性测试软件CTT的测试内容 参考CiA组织 官方链接 ,CTT软件(当前版本CANopen Conformance Test Tool 3.0.3.8)只针对CiA 301协议,不对401,402等设备子协议进行检测,同时可以检测eds文件是否正确。 3. 一致性测试所需要工具 CANopen Conformance Test Tool Windows PC CANUSN硬件,比如PCAN CANopen Testing Interface (COTI) specification-插件来自PCAN硬件厂商 4. CANopen一致性测试过程: 以PCAN+CANopen IO 硬件作为测试举例 4.1 安装软件 安装CTT软件,将CTT license以及PCAN对应的COTI插件放置到CTT的安装目录下 4.2 测试过程 选择需要的测试项目进行测试 4.3 测试结果 最后的测试结果以及错误报文会显示在错误信息栏。 4.4 避免踩坑 该CTT软件存在一些bug,需要对禁用一些测试选项,出现错误后,需要人工的再进行具体的分析。 SDO 29 OD 10 Emergency 06 Synchronization 03 (number of Test other 02 Test other 03 Test other 04
相关资源