CANopen是建立在CAN串行总线系统之上的高级通信协议。已广泛应用于电机控制、机器人制造、医疗、汽车等多个行业。为了让上述领域的用户能够采集常见的数字量或开关量信号并输出电压信号来控制继电器、开关、指示器等设备,鸿科推出了多款CANopen IO模块。其中,虹科HK-CIO-0320是一款低成本CANopen IO单元,支持24V DC 16DI和16DO。 IO端支持PNP/Positive Switching,与总线和系统电源隔离。所有输出均具有短路保护功能。支持DS301和DS401,CAN端支持常用波特率,最高1Mbit/s,请联系鸿科购买。
本文将以宏科hipecs CIO102为例对该系列CANopen IO模块进行通信测试。 hipecs-CIO102 是一款低成本CANopen 单元,具有16 个数字输入和16 个数字输出,适用于24 V DC 应用。 I/O 是正向切换的,并且与总线和系统电源光电隔离。系统电源的所有输出均具有短路保护。
01
设备基本信息
第1部分
IO特性
16 个数字输入、隔离、高电平开关。
16 个数字输出,隔离式高侧开关。 +24V 直流/+0.5A
输出过载监控(EMY)。
第2部分
CANopen 特性
遵循DS301 和DS401 规范。
CAN 波特率高达1 Mbit/s。
CAN 总线ISO11898 与收发器TJA1050。
4 个发送和4 个接收PDO
动态PDO 映射
CANopen PDO 传输模式:同步、异步、事件触发、循环、非循环和远程帧
节点守护、生命守护和心跳
紧急信息
最低启动时间
第三部分
器件引脚
节点ID设置,由旋钮决定,配置范围为0x01-0x7F(1-127)
波特率设置:通过拨码开关设置,数值可为20k、50k、125k、250、500k、800k、1M
02
CANopen 通讯设置
第1部分
硬件连接
24V电源:IO模块供电
24V电源:作为IO模块的输出电源
hipecs CIO 102
匹克PCAN-USB
PCAN视图
第2部分
软件部分
硬件连接完成后,打开PCAN-View时会自动弹出一个窗口。选择的波特率参数必须与IO模块一致,否则PCAN-View会报告BUSHEAVY。
根据用户手册,如下设置IO模块的旋钮和转盘。此时波特率为1Mbit/s,node_ID为1。
03
基础通讯测试
神经机器翻译协议
根据用户手册,IO模块上电后,Run指示灯闪烁,表示处于预操作状态。此时,PCAN-View收到Bootup消息。
在进行下一步测试操作之前,我们需要发送命令将模块转换为操作状态。单击PCAN-view 的Transmit 中的消息,然后按空格键发送消息。此时接收区会收到响应消息,IO模块的Run灯会变成常亮状态。
心跳消息
通过SDO将时间间隔写入对象1017,即每隔一段时间反馈设备的状态。消息发送如下所示。
节点保护
主站发送远程帧,节点响应700+Node_ID状态。
状态:0=初始化、1=断开、2=连接、3=准备、4=停止、5=运行、6=预运行。
PDO(RPDO接收型TPDO发送型)
生产者-消费者模型,在PDO通信中,对象字典的子索引00 01 02 03 05代表不同的含义。
00h:LargestSubindexsupported:支持的子索引的最大数量;即1800h以下有多少个分指数;
01h:PDO 使用的COB-ID:PDO 使用的COB-IB;
02h:TransmissionType:传输类型,其值是可选的,下面给出详细解释;
03h:InhibitTime:生产禁止约束时间,单位:0.1ms;描述PDO在指定时间内无法连续发送;
05h:Eventtimer:事件定时器触发的时间,单位:ms;即计数器,每隔一定时间数值+1,结合02h,可以指定PDO循环发送的时间;
消息通信测试
由于PDO的单向传输特性,我们无法仅从这次PDO传输中获知接收站点是否正确接收到PDO数据。我们只能通过其他手段(比如SDO读取、观察对应IO的行为等)来知道数据是否已经收到。已收到到位。为什么这里会返回PDO消息呢?主要是因为PDO对应的传输类型设置为事件触发。事件主要指接收同步消息、输入数据的变化、事件定时器周期到期或远程帧。当这些事件发生时,将返回一条PDO 消息。
SDO
1.SDO快速传输
向IO模块索引6200的通道1写入FF:0x601 22 00 62 01 FF 00 00 00,成功则响应60 00 62 01 00 00 00 00;读取该通道的值:0x601 40 00 62 01 00 00 00 00。如果成功42 00 62 01 xx xx xx xx(最后四个字节是数据)
功能码60h表示成功,80h表示失败。写入值的高位在byte6,低位在byte5。
CS命令代码如下:
2.SDO分段传输
读取对象字典1008,按照上图进行分析。返回41 08 10 00 0D 00 00 00(用于确认消息信息)
60 00 00 00 00 00 00 00 段请求
00 68 69 70 65 63 73 2D:00为命令码,后7个字节为数据内容。
70 00 00 00 00 00 00 00:70命令码,是分段请求,与60交替出现
13 43 49 4F 31 30 32 00: 13 为本节写入7 个字节,后跟数据内容。
修改PDO映射参数
步骤1
禁用COB-ID
成功返回60写入响应。写消息中的数据可以解析为:COB-ID的最高位设置为1,其他位保持不变。通过消息可以读取到该索引的原始值,即0x00000181。
第2步
清除映射数量
写入00h 至1600h00h 将清除映射数量
步骤3
写入映射参数
首先从索引处读取数据,返回62000108,表示发送数据的索引为6200h01h,长度为8位。
现在将PDO传输更改为另一个通道2,再次读取,发现映射参数发生了变化。
步骤4
写入00h 至1600h00h 会将映射编号清零。
步骤5
启用COB-ID
这样就完成了PDO映射参数的修改。
04
鸿科CANopen IO模块
鸿科HK-CIO-0320
16路数字量输入+16路数字量输出,交付稳定,性价比高
鸿科hipecs系列
信号类型丰富、防护等级高、结构紧凑、体积小
鸿科sysWORxx系列
高密度工业级输入输出,含CPU核心
鸿科智能自动化
鸿科是一家在工业自动化领域,特别是工业总线通讯行业拥有超过15年经验的高科技公司。鸿科智能自动化事业部与欧美世界知名工业自动化、能源管理和楼宇自动化专家开展深度合作,提供业界领先的通信协议软硬件解决方案。通信技术类型涉及工业自动化通信协议[CAN、CANopen、EtherCAT、PROFINET、EtherNet/IP、IO-Link、OPC UA、MQTT、TSN]等,能源管理和楼宇自动化通信协议[ASCII、BACnet、KNX] 、Modbus]等。解决方案包括:代码、芯片/模块、板卡、网关、IO、工控机、继电器、测试方案、培训开发服务等。因此,鸿科是国内为数不多的获得深耕OT领域多年,拥有全面的技术经验。