>1.CAN标识符分配表 注意: (1)PDO/SDO 的发送/接受是由(slave)CAN 节点方观察的。 (2)本驱动器的 CANopen 暂支持 2 个发送 PDO,2 个接受 PDO。 2.服务数据对象 SDO SDO用来访问一个设备的对象字典。访问者被称作客户 (client),对象字典被访问且提供所请求服务的 CANopen 设备别称作服务器(server)。客户的 CAN 报文和服务器的应答 CAN 报文总是包含 8 字节数据(尽管不是所有的数据字节都一定有意义) 。一个客户的请求一定有来自服务器的应答。 SDO有 2 种传送机制: (1)加速传送(Expedited transfer) : 最多传输 4 字节数据 (2)分段传送(Segmented transfer) : 传输数据长度大于 4 字节 SDO基本结构如下:
SDO报文对参数读/写操作格式:
3.过程数据对象 PDO PDO用来传输实时数据, 数据从一个生产者传到一个或多个消费者。 数据传送限制在 1 到 8 个字节。 PDO通讯没有协议约束(意味着数据内容已预先定义) ,因此消费者可以在很短的时间内处理完接受到的数据。PDO 数据内容只由它的 CAN ID 定义,假定生产者和消费者知道这个 PDO 的数据内容。 每个 PDO 在对象字典中用 2 个对象描述: (1)PDO通讯参数:包含将被 PDO 使用的COB-ID,传输类型,禁止时间和定时器周期。 (2)PDO映射参数:包含一个对象字典中对象的列表,这些对象映射到 PDO 里,包括它们的数据长度(in bits) 。生产者和消费者必须知道这个映射,以解释 PDO 内容。 PDO消息的内容是预定义的(或者在网络启动时配置的) ,映射应用对象到 PDO 中是在设备对象字典中描述的。如果设备(生产者和消费者)支持动态,那么使用 SDO 报文可以配置 PDO 映射参数,本驱动器支持动态 PDO 映射。PDO 映射的必须遵守以下 2 个规则: (1)每个 PDO 最多可映射 4 个对象; (2)每个 PDO 的长度必须不超过 64 位。 PDO映射流程: (1)设置 PDO 对应映射参数(1600 h 或 1601 h 或 1A00 h 或1A01 h )子索引 0 的内容为 0; (2)修改 PDO 对应映射参数(1600 h 或 1601 h 或 1A00 h 或1A01 h )子索引 1~4 的内容,映射 数据; (3)设置 PDO 对应映射参数(1600 h 或 1601 h 或 1A00 h 或1A01 h )子索引 0 的内容为合法的 数字(该 PDO 映射的对象数)。 (4)PDO 映射完成。 PDO可以有多种传送方式: (1)同步(通过接收 SYNC 对象实现同步) 周期:传送在每 1 到 240 个 SYNC 消息后触发 (2)异步 由设备子协议中规定的对象特定事件触发传送。 PDO传输类型定义表
一个 PDO 可以指定一个禁止时间,即定义两个连续 PDO 传输的最小间隔时间, 避免由于高优先级信息的数据量太大,始终占据总线,而使其它优先级较低的数据无力竞争总线的问题。禁止时间由 16 位无符号整数定义,单位 100us。 一个 PDO 可以指定一个事件定时周期,当超过定时时间后,一个 PDO 传输可以被触发(不需要触发位) 。事件定时周期由 16 位无符号整数定义,单位 1ms。 PDO映射事例: 将下表中 3 个对象映射 PDO1(发送) ,PDO1(发送)为异步周期性类型,周期时间 10ms,禁止时间 2ms.
(1)清除 number_of_mapped_objects number_of_mapped_objects(10A0 h : 00 h )= 0 (2)设置映射对象参数 Index=6041 h Subin. = 00h Length = 10 h ⇒1st_mapped_object(10A0 h : 01 h ) = 60410010 h Index=6061 h Subin. = 00h Length = 08 h ⇒2st_mapped_object(10A0 h : 02 h ) = 60610008 h Index=60FD h Subin. = 00h Length = 20 h ⇒ 3st_mapped_object(10A0 h : 03 h ) = 60FD0020 h (3)设置 number_of_mapped_objects number_of_mapped_objects(10A0 h : 00 h )= 3 (4)设置 PDO 通讯参数 PDO1(发送)为异步周期性类型⇒ transmission_type (1800 h : 02 h ) = FF h 禁止时间2ms(20×100us) ⇒ inhibit_time (10A0 h : 03 h )= 14 h 周期时间10ms(10×1ms) ⇒ event_time (1800 h : 05 h )= 0A h (5)PDO映射完成。 后续的介绍请关注下次微信更新内容。 本文转载自网络分享的:南京埃斯顿ProNet 伺服驱动器的说明书。该说明书写得非常好,有很多CANopen的基础又实用的知识,所以借此机会分享给大家!感谢南京埃斯顿的工程师们!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |