由于工作的需求,有幸多次参与CiA组织主席Holger先生的CAN与CANopen培训,感觉颇有收获。Holger先生全名:Holger Zeltwanger,赋有CAN传教士的美称,他著有德文《CANopen----das standardisierte , eingebttete Netzwerk》,其中文版本是周立功等人翻译发行的《现场总线CANopen设计与应用》,该书对CAN与CANopen入门还是挺好的。
因为我也是在工作之后才接触CAN与CANopen的知识,刚开始学习CAN与CANopen的时候,总是有囫囵吞枣之感,对很多细节没有多大关注。后来多参加CAN与CANopen培训,以及与客户交流CAN、CANopen产品的使用时,回过头来才发现,原来之前CAN知识中的某一句话如果理解透了,就足以解决一个问题,颇有醍醐灌顶的快感。
每个工程师使用CAN或者CANopen产品的环境和要求都不一样,而且不同的工程师对CAN知识理解也有深浅,遇到的问题也各不相同。因为我对CANopen学习不是很久,所以记录的CANopen知识点相对比较浅显,不过也是很基础的,希望对新手入门有所帮助。
标准CANopen从站设备的使用
有不少工程师会接触或者使用到CANopen设备,但有些因为工程或者客户需要才引用CANopen设备,难免会出现不太懂CANopen设备的使用,即使是有这个设备的相关使用手册,但没有CANopen基础的人来说,理解相关的配置还是有些吃力的。当然,如果身边有使用CANopen设备经验的工程师,直接去询问如何操作是最好不过的办法。如下就大体总结一下使用标准CANopen从站的要素和方法。
首先,我先说明一下配置CANopen设备的二种方法,一是直接通过发送SDO报文去修改CANopen设备的对象字典通信参数,例如先前我通过一个CAN转USB接口PCAN直接发送报文去修改CANopen设备的通信参数。这种方法通常适合配置几个较少的参数,也是一个比较经济的方式,只需要花费一个CAN卡的代价。第二种方法是利用CANopen配置软件工具,顾名思义,这些软件专门是给CANopen设备配置用的,其功能也比较多,如读取EDS文件,直接查看修改通信参数等等,当然通常也不是免费的。因为直接说理论比较枯燥,接下来我就以一个客户使用CANopen从站-CANopen压力传感器为例来说明。
CANopen从站设备:STI 某款CANopen压力传感器(设备号为01)
使用工具:一个PCAN-USB接口和该压力传感器用户手册
使用软件:CANopen配置软件:CANopen Device Monitor (简称CDM)
背景:客户CANopen知识背景较少,之前很少使用CANopen设备。
要求:希望能够读取传感器正常数值、并修改压力传感器传输时间参数(默认为100)。
硬件连接:通过PCAN-USB与压力传感器的CAN端连接,PCAN-USB的USB端连接电脑,可以通过其软件PCAN-View发送和接收CAN报文。
1、切换压力传感器NMT状态:
通过PCAN-USB发送NMT报文:ID: 000h 2 01 00,意思是切换压力传感器进入NMT运行状态,其中01代表运行状态的功能码、而00是所有在线的CANopen设备进行NMT网络状态切换。 进入操作状态后,压力传感器开始进行正常工作状态,按照周期事件发送采集到的压力值,通过CAN报文181h返回数据:181h 4 4A 92 24 BE,PCANView测试结果如图:
根据压力传感器数据的定义,CAN数据16进制排列为 0xbe24924Ah,按照IEEE754浮点数转换标准,转换成10进制的数值为:-0.1607(压力传感器在一个标准大气压中下的压力对比值为0)
2、修改压力传感器传输参数
根据压力传感器手册提供的PDO预设参数,得知压力传感器的TPDO的传输类型是异步事件周期传输方式,可以通过修改事件时间来改变传输的快慢。首先读取内部设定好的即传输事件时间,其对象字典Event time条目为1800 05h,根据SDO查询对象字典的操作,
发送SDO读取命令报文:601h 8 40 00 18 05 00 00 00 00
返回SDO回复命令报文:581h 8 43 00 18 05 A0 86 01 00
报文解析:因为传感器的设备号为1,580h+(设备ID)是SDO操作的CAN ID,所以是返回ID为581h;43 表示SDO 读取数值返回;18 10 05就是索引 1018,子索引为05h;数据A0 86 01 00就是传输事件时间的数据,但这不是最终的10进制数据,需要将其进行转化。报文中的索引排列是采用高位在后,低位在前的方式。因此,数据排列为0186A0h是数据的真实值,转换成10进制为 1000000ms(100s),与手册参数相同。
在正确读取出传输事件时间后,根据修改对象字典的SDO报文格式,设定传输事件时间为2000ms(07D0h)。得出发送报文命令为:601h 8 2B 00 18 05 D0 07 00 00 ,返回:581 8 60 00 18 05 00 00 00 00 ,表示修改参数成功,并查看到181h 接收到的时间间隔变为2024ms(传输偏差)。
3、CANopen配置软件CANopen Device Monitor (简称CDM)的效果图,因为配置软件发送相关请求的报文只需要点击一个按钮就可以完成,所以是快速完成CANopen配置工程的一个好方法。
其功能通常有:
能够直接访问连接节点的对象字典并且具有NMT功能;
简明的树状结构表示对象目录,可快速和方便地访问整个设备的功能;
CANopen设备监视器可读取和配置对象字典;
自动网络扫描可快速探测所有可获得的CANopen节点;
从CANopen设备读取EDS文件并保存;并具有CiA 402运动控制、CiA 304安全相关数据对象以及LSS 主站功能。
---编自广州虹科技术支持Colin
用户1649855 2014-9-22 08:57
用户1489347 2014-9-13 10:16