原创 CAN与CANopen分享-CANopen从站设备使用

2013-11-18 11:09 5610 19 21 分类: 通信

     由于工作的需求,有幸多次参与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测试结果如图:

 

1.jpg

根据压力传感器数据的定义,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.jpg

 

3、CANopen配置软件CANopen Device Monitor (简称CDM)的效果图,因为配置软件发送相关请求的报文只需要点击一个按钮就可以完成,所以是快速完成CANopen配置工程的一个好方法。

 

4.jpg
 

    其功能通常有:

能够直接访问连接节点的对象字典并且具有NMT功能;

简明的树状结构表示对象目录,可快速和方便地访问整个设备的功能;

CANopen设备监视器可读取和配置对象字典;

自动网络扫描可快速探测所有可获得的CANopen节点;

从CANopen设备读取EDS文件并保存;并具有CiA 402运动控制、CiA 304安全相关数据对象以及LSS 主站功能。

 

---编自广州虹科技术支持Colin

文章评论2条评论)

登录后参与讨论

用户1649855 2014-9-22 08:57

您好,已经回复见邮件,有关修改CANopen 传感器ID。

用户1489347 2014-9-13 10:16

我有个关于节点(ID)的问题希望你能给个邮箱号详细勾通。 想把黙认的压力传感器ID改为现有设备上的ID. 我的邮箱号为 renekong@gmail.com 谢谢
相关推荐阅读
用户1649855 2015-11-19 11:08
虹科携手PEAK带来传统CAN 与CAN FD通信解决方案
  [2015-11-16],在深圳南山威尼斯酒店特维里厅,以虹科和PEAK的赞助商成员参加 2015 Shenzhen CAN FD Tech Day研讨会,本大会由CiA组织主办,并由虹科...
用户1649855 2015-09-02 16:54
CAN FD 在全球汽车制造商的应用计划路标
[2015-08-13:CAN FD最新消息] 最近,芯片制造商做了一个有关CAN FD未来应用的“秘密”调查问卷,向他们的客户(主要是汽车制造商)咨询是否有计划转向CAN FD的应用。 ...
用户1649855 2015-09-01 14:01
EtherCAT从站设计中的重要事项和关键观念(一)
  EtherCAT从站设计中一般从站包括以下三个核心部分: 物理层:要有网口 数据链路层:有EtherCAT 从站控制器ESC(这是通讯模块)和EEPROM。 应用层:有主控制器...
用户1649855 2015-07-17 16:03
作为CAN技术/应用工程师,你知道CAN CiA吗?
       如题,我相信很多接触CAN或者CANopen产品的工程师都听过CiA,当然这里的不是美国中情局(CIA),而是CAN CiA。      CiA是国际用户和制造商的联合...
用户1649855 2015-07-07 17:30
CAN FD 正式通过国际标准草案成为ISO标准
2015年06月30日,国际标准化组织(ISO)已经正式认可CAN  FD并无反对票通过ISO 11898-1作为国际标准草案(Draft International Standard,简写DIS...
用户1649855 2015-05-05 16:47
CAN FD 总线技术分析
继上一次简要介绍CAN FD的技术发布,已经有一年的时间了。在这一年的时间中,越来越多工程师关注CAN FD,同时也会向我们反馈CAN FD的产品应用信息。个人觉得对于CAN FD的发布,对于中国...
我要评论
2
19
关闭 站长推荐上一条 /2 下一条