CANopen
通讯协议
HongKe
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
02CANopen通信搭建
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系列
高密度工业级输入输出,内含CPU核心
虹科智能自动化
虹科是一家在工业自动化领域,特别是工业总线通讯行业经验超过15年的高科技公司。虹科智能自动化事业部与欧洲和美国的世界知名工业自动化、能源管理与楼宇自动化专家展开深度合作,提供业内顶尖水平的通信协议的软硬件解决方案,通信技术类型涉及工业自动化通讯协议【CAN、CANopen、EtherCAT、PROFINET、EtherNet/IP、IO-Link、OPC UA、MQTT、TSN】等,能源管理与楼宇自动化通讯协议【ASCII、BACnet、KNX、Modbus】等,解决方案包含:代码、芯片/模块、板卡、网关、IO、工控机、继电器、测试方案、培训和开发服务等。因此,虹科是国内为数极少的在OT领域深耕多年并技术经验全面的供应商。
虹科智能自动化事业部以客户需求为导向,以技术能力为基础,为国内企业提供最适合的产品和最满意的服务。作为链条最全、方案最丰富、且兼备技术服务落地的通信技术资源整合商,虹科服务的客户已经超过1000家,虹科工程师们一直在万物互联的潮流中扮演着如高速公路般的连接作用,这是我们的使命也是我们的自豪。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !