多语言展示
当前在线:360今日阅读:128今日分享:10

CANopen板卡使用方法

虹科HK-50E-CO的CANopen-PCIe板卡可以作为CANopen的主站或从站来和CANopen网络通讯,板卡使用HK-cifX Setup软件下载固件、使用HKSYCON.net软件进行通讯配置和在线调试;板卡也提供了二次开发包提供给用户来开发应用程序,二次开发包提供的是lib库文件,用户可以直接使用VS进行开发工作。该板卡除了可以作为CANopen主从站之外,也可以通过加载不同的固件来实现Ethernet、Profinet、EtherCAT、CC-Link和Ethenet-IP等协议的通讯。Q:2861917479本次测试主要使用HKSYCON.net软件来进行在线调试,并简单演示开发包中提供的样例程序。
工具/原料
1

虹科HK-50E-CO(CANopen-PCIe板卡)1张

2

虹科PCAN-USB抓包设备1个(可使用其他厂家的CAN卡代替)

3

工控机1台(带PCIe插槽)

4

PCAN-View软件(通过PCAN-USB收发CAN报文,可使用其他软件,取决于使用的CAN卡)

5

HKSYCON.net软件(板卡的配置工具)

6

HK-cifX Setup和HK-cifX Test软件(板卡下载固件和属性监测的工具)

板卡测试步骤
1

安装板卡的驱动和配置软件。点击运行资料包“Communication_Solution_DVD_xxx”里的“Communication-Solutions.exe”,如下图所示,可以分别安装板卡驱动程序和配置软件。

2

在断电情况下把板卡插到工控机上,开机后在电脑的控制面板上点击打开HK-cifX Setup软件。若驱动安装成功,则软件应如下图所示,左侧的cifXn表示板卡编号,CH#n表示板卡上通道编号;右侧的显示板卡的基本信息,包括序列号等等。

3

点击对应的通道(默认使用CH#0),出现如下图所示界面。“Add”按钮用于查找新的固件;“Assigned Module/Firmware Files”窗口会显示已经加载的固件信息。

4

点击“Add”进入Windows的文件管理器选择固件,选择路径“xxx/Communication_Solutions_DVD_xxx/Firmware\CIFX”,如下图所示。选择CANopen对应的协议栈(注意主从站固件的区别),点击“打开”。

5

选择完CANopen固件之后,回到HK-cifX Setup的界面,点击“Apply” ->“Yes”,即可开始下载固件到板卡中去。

6

固件下载完成之后,可以从控制面板打开HK-cifX Test软件来查看板卡的固件信息。

7

在cifX Test中选择“Device”->“Open”->“cifx0”->“channel0”,再选择“Information”->“Channel Information”即可打开如下所示界面,可以查看到板卡和固件的相关信息。

8

打开步骤1中安装的HKSYCON.net软件,即可开始对板卡的相关参数进行配置。软件界面如下图所示,左侧为工程文件预览,中间为总线网络拓扑图,右侧则为所有的备选设备。从右侧的“CANopen -> Gateway/Stand-Alone Slave”中选择“CIFX CO/COS”并拖到软件中间窗口的横线上,如下图红框所示。

10

完成上述工作后,我们就可以为板卡的CANopen通讯参数进行配置。本次测试仅需要修改节点ID和波特率,其他保持默认即可。点击“Configuration -> General”打开如下界面,修改节点ID为5、下拉框中选择波特率为500kbit/s。

11

配置窗口中其他配置选项如下图所示,我们可以根据自己的实际应用修改相关部分。比如需要更多的PDO可以修改“Process Data Objects”下的内容、需要使能诸如SYNC等功能的时候可以修改“Special Function Objects”和“Object Dictionary”等。关于每一选项下的具体配置内容可以参考板卡的说明书。

12

配置完成之后,点击“Apply”->“OK”返回SYCON.net工程界面,右键板卡图标并点击“Download”选项,出现下面的提示窗口,同时图标上板卡名称部分变成绿色,表示此时板卡处于在线调试状态;选择“Yes”开始把刚才的配置内容下载到板卡当中。

13

待下载配置完成之后,可以双击板卡图标进入在线调试的诊断窗口。该窗口中我们主要关注下图所示的3个选项。“General Diagnosis”选项中使用指示灯指示设备、总线和配置的状态,同时在发生错误时显示错误码;“Packet Monitor”和“IO Monitor”主要是收发服务数据和过程数据的,详情参见“关于IO Monitor和Packet Monitor”部分。至此我们完成了板卡的所有配置工作,下一步可以简单地测试CANopen协议栈的功能。

14

PDO的接收和发送测试。PDO的配置可以参考配置窗口中的“Process Data Objects”中内容。首先需要发送“Start-Up”报文,让设备进入OP状态;打开PCAN-View软件,如下图右侧所示,在下方的“Transmit”窗口中编辑一条PDO报文(报文ID 0x205),点击发送(选中报文后空格键发送或设置周期发送);相应的我们可以在“IO Monitor”的“Input Data”表格中看到我们在PCAN-View中发送的数据。在如下图左侧所示的“IO Monitor”中的“Output Data”表格中,点击每一个字节可以进行数据的编辑;编辑完成之后点击“Update”按钮,则我们可以在PCAN-View的“Receive”窗口中看到我们编辑的数据通过PDO发送给了我们。

15

SDO的读和写请求测试。如下图右侧所示,上面两条为SDO读请求和应答,下面两条为SDO写请求和应答,读写的都是PDO的数据,可以在IO Monitor中对应窗口中找到,图示亦有说明。

样例代码
1

打开板卡的资料文件夹“xxx/Communication_Solutions_DVD_xxx/Driver and Toolkit\Device Driver (NXDRV-WIN)\Examples\cifXDemo”路径,包含一个随开发包一起提供的样例成,该样例是一个通用工程,可以适用所有协议的板卡,我们只需要做一些简单的修改和添加就可以发送PDO报文

2

使用VS2013打开样例程序,找到工程的main函数,如下图所示。该样例的main函数比较简单,测试时我们只需要修改ChannelDemo函数中的内容即可,其他内容保持默认即可。

3

进入ChannelDemo函数,我们主要关注以下部分的代码。连接上板卡之后,首先使用xChannelBusState设置总线状态为ON;然后使用xChannelPutPacket使用“NMT状态请求”的服务设置总线状态为OP(因为缺少NMT从站,所以这里我们直接让板卡设置自身的NMT状态);接下来就是进入到我们的主函数中执行应用程序,并实现和协议栈的过程数据交互。

4

代码编写完成之后,保存并编译,然后运行,得到如下图的结果。PCAN-View接收到两条PDO报文,这一点与我们在主循环中想要实现的一致(可自己对照之前的板卡通讯配置选项查证)。

关于IO Monitor和Packet Monitor
1

IO Data是用来进行应用程序(指用户使用板卡的二次开发包开发的应用程序,下同)和板卡协议栈之间过程数据的交互(对应到用户的二次开发中是使用xChannelIORead和XChannelIOWrite函数来实现)。这里并非是用户控制板卡直接发送PDO报文,而是把用户想要发送的数据存储到板卡寄存器的特定地址段当中。该地址段专门用来存储PDO数据,每个PDO会根据自己的发送模式和地址表来决定什么时候发送数据、发送哪些数据。PDO的发送模式是CANopen对象字典的PDO通讯参数规定的,该部分用户可以在配置板卡的时候提前配置好或通过CANopen主站发送SDO进行配置。PDO地址表如下图所示,是通讯板卡特有的概念,地址表一般从“0x0000”开始,以字节为单位递增。地址表当中内容是用户在配置PDO后自动生成的,所以用户不需要修改,只需要在使用的时候查找就可以了。

2

Packet和IO Data类似,它的交互对象也是应用程序和板卡协议栈,和IO Data相比它主要负责处理非过程数据。这里的非过程数据不仅包括CANopen中的SDO服务,还包括协议栈的其他服务。比如用户自定义的Emergency报文,当我们的应用程序想发送这样一条自定义的Emergency报文的时候,是直接通过发送特定的Packet给协议栈来实现。板卡的API手册中对每一个服务的Packet都进行了详细说明。Packet的发送模式和SDO类似,应用程序发起一个请求,然后协议栈做出应答,执行相关操作或返回相关数据。在板卡作为CANopen主站的时候,我们就是通过这样的Packet来实现向Server发送SDO的。Packet还有另外一种发送模式,即协议栈在发生特定事件(比如从站NMT状态发生了改变、接收到了Emergency报文等等)之后,发送Indication给应用程序,应用程序在接收到这样的Packet后可以进行选择一些特定的处理,处理完成之后再发送相应的确认报文给协议栈。Packet的相关内容比较复杂,建议使用者在使用之前先阅读相关手册。Q 2861917479。

推荐信息