CANopen是一种架构在CAN串行总线系统上的高层通讯协议,目前已被广泛应用于电机控制、机器人制造、医疗、汽车等多个行业领域。为了让上述领域的用户能够采集常见的数字量或开关信号,并输出电压信号用于控制继电器、开关、指示灯等设备,虹科推出了多款CANopen IO模块。其中,虹科HK-CIO-0320是一款低成本的支持24V DC的16DI和16DO的CANopen IO单元,IO端支持PNP/Positive Switching,与总线和系统供电隔离,所有输出端具有短路保护的特性,支持DS301和DS401,CAN端支持常用波特率,高达1Mbit/s,欢迎联系虹科选购。
●●●●●●●
本篇文章将以虹科hipecs CIO102为例,对该系列CANopen IO模块进行通讯测试。hipecs-CIO102是一个低成本的CANopen单元,具有16个数字输入和16个数字输出,适用于24 V DC应用。I/O是正开关的,并与总线和光电隔离开关,并与总线和系统电源进行光电隔离。系统电源所有的输出都有短路保护。
01
设备基础信息
Part.1
IO特性
16个数字输入,隔离,高位开关。
16个数字输出,隔离,高压侧开关。+24 V DC/+0.5 A
输出过载监测(EMY)。
Part.2
CANopen特性
遵循DS301和DS401规范。
CAN波特率高达1 Mbit/s。
带有收发器TJA1050的CAN总线ISO11898。
4个发送和4个接收PDO
动态PDO映射
CANopen PDO传输模式:同步、异步、事件触发、循环、非循环和远程帧
Node-Guarding, Lifeguarding 和Heartbeat
紧急信息
最短的启动时间(Minimum Boot-Up)
Part.3
设备引脚
Node ID设置,通过旋钮来确定,配置范围为0x01-0x7F(1-127)
波特率设置:通过拨码开关设置,其值可为20k、50k、125k、250、500k、800k、1M
02
CANopen通信搭建
Part.1
硬件连接
24V电源:IO模块供电
24V电源:作为IO模块的输出电源
hipecs CIO 102
PEAK PCAN-USB
PCAN-View
Part.2
软件部分
硬件连接完整后打开PCAN-View会自动弹出窗口。对波特率参数进行选择,必须与IO模块一致,否则PCAN-View将会报BUSHEAVY。
根据使用手册将IO模块的旋钮和拨码设置如下,此时波特率为1Mbit/s,node_ID为1。
03
基本通信测试
NMT协议
根据使用手册,IO模块上电之后Run指示灯处于闪烁状态是处于Preoperational状态,此时PCAN-View上收到一条Bootup报文。
我们需要发送命令,将模块转换为操作状态后,才能进行下一步的测试操作。在PCAN-view的Transmit中单击该报文后敲空格即发送该报文,此时Receive区域会收到一条回应报文,此时IO模块的Run灯变成常亮状态。
心跳报文
通过SDO的方式往对象1017里面写入时间间隔,即间隔反馈一次设备的状态,报文发送如下图
节点保护
主站发送一帧远程帧,节点应答700+Node_ID state。
State:0=初始化,1=断开连接,2=连接,3=准备,4=stopped,5=operational,6=pre-operational。
PDO(RPDO接收型TPDO发送型)
生产者消费者模型,在PDO通讯中对象字典的子索引00 01 02 03 05分别代表了不同含义
00h:LargestSubindex supported:最大支持的子索引个数;即1800h下有多少个子索引;
01h:COB-IDused by PDO:PDO所使用的COB-IB;
02h:TransmissionType:传输类型,其值可选,详解在下文中进行;
03h:InhibitTime:生产禁止约束时间,单位:0.1ms;描述该PDO不可以在指定的一段时间内连续发送;
05h:Eventtimer:事件定时器触发的时间,单位:ms;即计数器,每隔一定时间数值+1,与02h结合,可规定PDO循环发送的时间;
报文通信测试
而由于PDO的单向传输特性,仅从此次PDO传输我们无法得知接受站点是否正确收到PDO数据,只能使用另外的手段(如SDO读取、观察相应IO的行为等)得知数据是否接收到位。这里为什么会返回PDO报文呢?主要是因为对应PDO的transmission type设置为了事件触发,事件主要指接收同步消息、输入数据发生变化、事件计时器周期过期或者远程帧,当有以上这些事件时则会返回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为命令码,后七个字节为数据内容。
70 00 00 00 00 00 00 00:70命令码,即为分段请求,与60交替出现
13 43 49 4F 31 30 32 00:13为本段写7个字节,后面为数据内容。
修改PDO映射参数
Step.1
禁能COB-ID
返回60写响应成功,写报文中的数据可这样解析:即将COB-ID的最高位置1,其他位不变。可通过报文读取该索引原本的值为0x00000181。
Step.2
清零映射个数
向1600h00h中写入00h即将映射个数清
Step.3
写映射参数
先向索引读数据,返回62000108代表发送数据的索引为6200h01h,长度为8位
现在将PDO发送改为另一个通道2,再次读取发现映射参数已经改变。
Step.4
写映射个数
向1600h00h中写入00h即将映射个数清零
Step.5
使能COB-ID
至此完成PDO映射参数的修改。
04
虹科CANopen IO模块
虹科HK-CIO-0320
16数字量输入+16数字量输出,货期稳定,性价比高
虹科hipecs系列
信号类型丰富,防护等级高,紧凑体积小
虹科sysWORxx系列
虹科智能自动化
虹科是一家在工业自动化领域,特别是工业总线通讯行业经验超过15年的高科技公司。虹科智能自动化事业部与欧洲和美国的世界知名工业自动化、能源管理与楼宇自动化专家展开深度合作,提供业内顶尖水平的通信协议的软硬件解决方案,通信技术类型涉及工业自动化通讯协议【CAN、CANopen、EtherCAT、PROFINET、EtherNet/IP、IO-Link、OPC UA、MQTT、TSN】等,能源管理与楼宇自动化通讯协议【ASCII、BACnet、KNX、Modbus】等,解决方案包含:代码、芯片/模块、板卡、网关、IO、工控机、继电器、测试方案、培训和开发服务等。因此,虹科是国内为数极少的在OT领域深耕多年并技术经验全面的供应商。
-
通讯
+关注
关注
9文章
893浏览量
34830
发布评论请先 登录
相关推荐
评论