文章

COBview (CANopen Object View) Overview

COBview is a CANopen tool for analyzing and diagnosing CANopen nodes.

主要功能

  1. detecting and displaying CANopen devices in networks
  2. basic CANopen NMT(Network Management) functionality
  3. the support of read and write accesses to individual objects via SDO

安装

COBview can be installed from esd CAN SDK package, can only be used in Windows 10/8/7

功能介绍

  1. set CAN net number -- open device manager to check the installed CAN device, confirm its CAN port number. 1.1 在demo system中我们看到,笔记本电脑连接了CAN-USB/2设备,此设备带有一个CAN口,并且在Windows的装置管理员中看到其Base Net设为0,所以CAN口的端口号为0。Base Net的含义是指第一个CAN口的端口号,如果CAN设备带有4个CAN口,那么CAN口号会依次为0,1,2,3。你看也可以修改Base Net,假设修改为5,则4个CAN端口的编号会改为5,6,7,8 1.2 在COBview的Net栏位输入0。

  2. set Baud rate -- check CAN-CBX-DIO8 coding switch (编码拨盘) 2.1 在demo system中我们看到CAN-CBX-DIO8的coding switch,也就三个编码拨盘中的Baud拨盘,目前指向0。其含义是CAN-CBX-DIO8的Baud rate设定为1000 kBit/s, 2.2 在COBview的Baud栏位选择1000 kBit/s。

  3. find CANopen modules (nodes) 3.1 点击"Find Modules..."按钮,CAN-CBX-DIO8会被找到并显示在以下(图一)中。 3.2 In Stopped status the module cannot be listed under Find Modules...

  4. set Node No. (Node-ID) 4.1 在demo system中我们看到CAN-CBX-DIO8的coding switch拨盘中,设定为Low 1 High 0,对应的Node No.(Node-ID)是1。 4.2 在Node No.中输入1,则后续的CANopen identifier都会合并此Node-ID 1。 假设Node No.中输入8,点击Start按钮,CANreal中会抓取到COBview发送了01 08的消息,表示让08这个Node切换到NMT operational状态。 在 Index(Hex): 中选择1000, 然后点击Read按钮,在CANreal中会抓取到COBview发送了identifier为608(600+8)的消息,表示为发送SDO给Node-ID为8的装置。 4.3 若勾选 All(NMT),则点击下面 Network Management(NMT) Start按钮发送01 00,Preop按钮发送80 00,Stop按钮发送02 00,Reset按钮发送81 00,Comm按钮发送82 00。这些消息中第二个数据都为00,表示对CAN网络中所有的节点都进行操作。

  5. change NMT state 5.1 Start: CANopen status Operational. 5.2 Preop: CANopen status Pre-Operational. 5.3 Reset: CANopen initialization status Reset Application. Then the module automatically gets into Pre-Operational status via Reset Communication. 5.4 Comm: CANopen initialization status Reset_Communication. Then the module automatically gets into Pre-Operational status. 5.5 Stop: CANopen status Stopped. 5.6 详见下面图二。

  6. read value from object 6.1 选择 "1018 Identity Object",此Object的格式如下图四。 6.2 读取此Object的Value,内容如图五。 6.2.1 sub 0为sub-index 0,value是4,说明有4条记录,分别为sub-index 1~4。 6.2.2 sub-index 1 vendor_id value 0x00000017,是指esd 公司在CiA组织中的Vendor ID号为0x17。 6.2.3 sub-index 2 product_code value 0x23010002,是CAN-CBX-DIO8产品在esd公司内部的订货号。 6.2.4 sub-index 3 revision_number value 3,是CAN-CBX-DIO8软件版本号。 6.2.5 sub-index 4 serial_number value 0xC7C60533,是此CAN-CBX-DIO8序列号。

  7. write value to object 7.1 针对CAN-CBX-DIO8的Object Index 6200 (Write Output 8-Bit)和Object Index 2250 (I/O Direction Mask 8-Bit)的读写来举例说明此功能。 7.2 Index 2250 sub 1 的值定义了DIO8中的8个口哪几个用来做Output,哪几个用来做Input。它是一个Unsigned 8格式数据,8位中每一位都对应一个IO口。置1用作output,置0用作Input。 7.3 使用COBview来把2250的值改为0xFF,也就是把所有8个IO口都用作Output。在"Index(Hex):"栏位中输入2250,点击"Read"按钮,读取上来数据后,双击sub 1,在"Value"栏位输入0xFF,然后点击"Write"按钮写入数据。参见下面图七。 7.4 Index 6200 sub 1 的值定义了DIO8中的8个口是否有开启Output 24V,如果开启了Output的话,对应口的指示灯会亮起来。它是一个Unsigned 8格式数据,8位中每一位都对应一个IO口。置1用作开启output,置0用作关闭Output。参见下面图八。 7.5 使用COBview来读取6200的值。在"Index(Hex):"栏位中输入6200,点击"Read"按钮,读取上来数据后,双击sub 1,在"Value"栏位输入7(意思是打开第一,第二,第三口的output),点击"Write"按钮。参加下面图九。 7.6 写入成功后,可以查看CAN-CBX-DIO8装置,参见下面图十,1,2,3上的指示灯都亮起了。

  8. scan multiple objects 8.1 scan所有Objects Index from 6000 to 6FFF。 8.2 在"Index(Hex):"栏位中输入6000,点击"Read"按钮。 8.3 点击长条下拉菜单,选择"Index Scan (current index:) 6000...6FFF",

  9. 控制CAN总线上多个CANopen装置 9.1 若CAN总线上连接了多个CANopen装置,也可以通过COBview来选择其中一个CANopen装置来控制,或者同时控制所有的CANopen装置。 9.2 若同时接入3个CAN-CBX-DIO8,将它们的Node ID依次设为1,2,3。将它们的bit rate设置为相同的速率,如都设为1000 kbit/s。 9.3 若单独让Node 1的装置进入Operational状态,在Module No.栏位输入1,并且去除勾选All(NMT),然后点击Start即可。 9.4 若想让所有装置都进入PreOP状态,可以先勾选All(NMT),然后点击Preop按钮即可。 9.4 若要读取Node 2的Index 1800,在Module No.栏位输入2,在Index(Hex)栏位输入1800,然后点击Read按钮,就可以读取Node 2的Index了。

截图

图一 Find Modules...

图二 CANopen Status Change

图三 esd Vendor ID in CiA

图四 CAN-CBX-DIO8 Object Index 1018

图五 Value of Object Index 1018 of CAN-CBX-DIO8 read by COBview

图六 CAN-CBX-DIO8 Object Index 2250 (I/O Direction Mask 8-Bit)

图七 Modify the value of Index 2250 (I/O Direction Mask 8-Bit)

图八 CAN-CBX-DIO8 Object Index 6200 (Write Output 8-Bit)

图九 Value of Object Index 6200 of CAN-CBX-DIO8 read by COBview

图十 Value 7 write to Object Index 6200 of CAN-CBX-DIO8 by COBview

图十一 Scan Object Index from 6000 to 6FFF by COBview