PCAN-Explorer6 使用手册

2021-04-30 14:27:57 菲益科

菲益科

专业的CAN/CAN FD总线测试、仿真、分析软件

订货与供货信息
菲益科

应用
PCAN-Explorer 6 是一个多功能的、专业的处理 CAN 及 CAN FD 网络的软件。用户不仅仅 可以监控 CAN 报文流,支持手动或周期性的发送单个报文和整个发送列表,可以用于控制 或仿真。

前言:F1键的妙用

当您在使用PCAN-Explorer6时,如果遇到某个操作功能不太清楚是什么含义,比如某个按键的操作功能是什么,或者某个指令的操作函数是什么 ,应该怎么查看呢?
快捷方法:您只需要在操作当前页面下按F1键,就可快捷地打开相应的操作帮助文档,比如,在创建Plotter时按下F1,轻松打开Plotter帮助文档。
菲益科

1.查看插件类型

菲益科

会显示相应的插件Add-in的状态:loaded表示已经含授权。
菲益科

2.与硬件通讯

2.1在Tools中选择创建一个net

点击Nets Configuration,弹出网络配置对话框:
菲益科
PCAN Nets Configuration配置对话框,根据连接不同的PCANUSB硬件,可以创建标准CAN网络连接,或者是CAN FD网络连接。比如:
  • PCANUSB 硬件对应创建标准CAN网络连接;
  • PCANUSB FD、 PCANUSB PRO FD可以创建CAN FD网络连接。
菲益科

2.1.1.创建一个标准CAN 连接

连接PCANUSB之后,选择“USB”选择,然后新建一个连接,定义连接的名称,波特率,频率选择为24MHz。
创建好之后,点击左上角的保存按钮菲益科
菲益科

2.1.2.创建一个CAN FD连接

连接PCANUSB FD硬件后,创建新连接,勾选CAN FD以及Data Bit Rate,根据需求选择标准波特率和数据位波特率,创建好之后点击左上角的保存按钮菲益科

2.2连接到一个net

首先要新建一个工程,在Project Item中添加连接 Add connection
菲益科

在Add Connection中,选择“USB”,然后可以查看前面创建好的Net连接,
然后选中某个网络连接后,设置protocol,默认为CAN。
如果需要使用J1939协议,可以的protocol下拉选择J1939,注:仅支持已购买J1939插件的情况。
菲益科

菲益科

2.3 Receive接收报文与报文过滤器

点击View菜单下的Receive/Transmit,会出现如下图所示的发送接收窗口,在这里可以显示接收到的报文和发送的报文。
菲益科


上方Receive 为报文接收区,会显示网络中的报文。
其中第一列Bus 是网络连接号,当连接多个网络时以1.2.3…排序;
菲益科

2.3.1接收报文过滤器-按ID过滤
PCAN Explorer 6的过滤器提供多种报文过滤的方式,常用的是按ID过滤。
在报文接收区的Filter中,选择“漏斗+”添加过滤器,过滤器中再点击“+ Add Item”,一次可以创建多个过滤器。
Settings中,可以针对所有网络,或者某个网络进行过滤。
类型选择为CAN-ID Ranger,然后设置接收报文的范围,比如:100-5FF(Hex).
菲益科

创建好过滤器之后,可以通过下拉选项,选择相应的过滤器,然后点击reset复位,可以刷新查看过滤后的报文。
菲益科

菲益科

2.3.1接收报文过滤器-按信号标记过滤
如果只想过滤查看带信号标记Tracer的报文,比如标记报文0x711里的信号Target Speed,这种筛选和过滤可以通过如下步骤实现:
1.借助自带的symbol editor,点击如下图中的import,导入DBC文件,并对DBC文件中的变量做修改。
菲益科

2.选择需要trace的某些信号,在每个信号的属性框中有个选项为 trace,如果需要记录这个信号,请打钩(右下角),如下:
菲益科

3.设置过滤器Filter2,选择过滤器类型选择“adjust to marked symbols”:
菲益科

然后加载这个过滤器并开始记录。在接收报文中使用过滤器2后,只接收标记过trace的报文
菲益科

同样在tracer窗口中记录的数据就是刚刚在symbol editor中所选中的信号的报文。
菲益科

2.4 Transmit发送报文

发送报文编辑:可在Transmit空白处右键New Messages, 在多个CAN网络同时连接的情况下,首先选择在bus中选择相应的CAN连接。
菲益科

然后分别设置报文ID,长度,数据内容,选择报文类型是否为CAN FD,
  • Cycle time是报文周期时间,填写后实现报文周期发送;如果不填写周期时间,创建出来的报文可以通过按一次空格发送一次,实现报文单次发送。
  • Paused, 打勾后,表示创建报文后不会马上发送报文,需要手动使能发送。
菲益科

在加载DBC的前提下,修改发送报文的数据,可以单独对某些信号修改数值。鼠标左键在信号红色框内双击,打开信号修改值对话框,进行某些信号数值的修改。
菲益科

2.5导入dbc文件解析CAN信号

CAN总线的dbc文件就是CAN总线的库文件,通过dbc文件,可以将16进制的CAN报文解析为我们容易识别和理解的信号值,如温度,压力等。
菲益科

但是需要注意的是,导入dbc文件后还需要点击应用才可以解析报文。在dbc文件名上单击右键,选择Open in Symbol Editor,可以在Symbol Editor中看到每个ID所代表的信息,具体哪个字节代表什么信号,报文与信号值之间的数学关系等报文的详细信息。
菲益科


菲益科


经过dbc解析的报文,显示了具体哪个ID代表了什么信号,以及信号的值。
菲益科

为了方便查看某些来自不同报文的信号,可以通过Watch窗口单独查看信号:
在Project Manager→Project Items→Signals
菲益科


菲益科

2.6查看信号在dbc文件中的定义

右击刚才导入的dbc文件,选择Open in Symbol Editor,即可看到每个ID,以及每个ID中信号的定义。
菲益科

菲益科

3.Trace的基本使用方法

3.1将报文保存为trc文件

使用Trace记录报文,其记录报文的数量可以说是不受限制的,只与硬盘的容量相关,按照下图设置即可:
菲益科

菲益科

菲益科

保存为trc文件:点击主菜单栏中的File中的另存为按钮:
菲益科


3.2保存信号值为csv文件

除了可以保存报文为trc文件,如果导入了dbc文件,在PCAN-Explorer6中还可以将各个信号值保存为csv文件或者log文件,具体操作方法是,点击File菜单下的Export:
菲益科

弹出如下窗口后,可以选择导出为.log文件还是csv文件,可以设置时间戳的格式等信息。
Output:也要以选择原始报文数据或者错误帧,错误计数等等。
菲益科
在Columnsselct 里面可以选择CSV表格中列的项目:
菲益科

保存的CSV文件打开一览:
菲益科

当然也可以只导出信号数值,在Export Data,选择Signal-CSV:
菲益科

然后可以选择需要导出的信号,进行打勾。
菲益科

导出信号列表,可以Excel打开查看:
菲益科


3.3报文回放功能

在工程里加载Trc文件,打开文件可以选择绿色图标Play,就是回放按钮。
点击回放按钮后会按照时间戳的排序发送报文。
默认是回放一次Trc文件会自动结束,可以点击Repeat菲益科按钮重复回放。
菲益科

4.Line Writer基本操作方法

Line Writer这个插件的功能也是记录信号,所以需要在使用.sym或者DBC文件时,将CAN报文解码为信号才可以记录。
菲益科

图中的粗蓝线表示停止之后的重新开始记录。
菲益科

但是这个插件记录信号有一定的局限性,如最多只能记录4路信号,且记录的时间有限,如果需要记录更多更长时间的数据,还是需要使用Plotter插件

5.标准宏Macro的基本使用方法

5.1标准宏的作用

PCAN-Explorer6提供了一个简单的指令集和最常需要的功能的标准宏,可以控制报文的发送和接收。标准宏主要可以实现下面的任务:
  • 为了传输配置数据到一个CAN节点,可配置一个按键发送一系列的报文
  • 在特定的时间段里发送不同的报文
  • 在接收到某个特定的报文的时候发送一个响应
  • 模拟一个CAN节点,在接到不同的报文的时候给予相应的回答

5.2标准宏的基本语法结构

在PE6中,一个标准宏文件以FormatVersion=6.0开头,下面就可以是具体的程序。在帮助文档中对每条语句都有详细的说明,并附有例子。
FormatVersion=6.0          文件版本,默认都一样
Send 1 100h 1 AAh          第一个1表示总线号,后面ID是100h,长度为1的报文
WaitId 0 1 101h
Loop: Send 1 102h 2 12h 34h  这三句是一个循环,表示每隔200ms发送102h这个报文
Wait 200
Goto Loop
下表是标准宏的所有语句的基本说明:
菲益科


5.3实例

菲益科
标准宏Standard Macro的语法非常简单,在PCAN-Explorer6的帮助文档中也有详细的说明,按照里面提供的例程很容易上手。而且它的功能也还是比较强大的,实现基本的逻辑判断功能没有任何问题。
如下是一段简单的标准宏语言:
FormatVersion=6.0
send 1 123h 2 AAh 34h
WaitId 1000 1 101h
if false
 send 1 102 5 12h 34h 56h 78h 90h
 waitId 1000 1 103h
if true
    vsend 1 104h 5 22h 33h 44h 55h 66h
repeat

对应解释如下:
第一行FormatVersion=6.0是标准宏规定的说明,是固定的格式;
第二行表示在总线1上发送ID是123h,长度为2,数据为AAh,34h的报文,这里的总线1是在PCAN-Explorer5中的连接窗口中确定的,也可以自己分配,因为PCAN-Explorer5最多可以连接16个节点总线,所以这个数字最大是16;
第三行表示等待总线1上的ID为101h的报文1000ms;
第四行是逻辑判断,如果错误,也就是没有等到;
第五行是对第四行的一个响应,如果没有等到就发送这个报文;
下面不再赘述,具体的说明在PCAN-Explorer6的帮助文档中有详细的说明。
菲益科

在编辑好标准宏后,如下图,点击开始就可以运行宏了:
菲益科

当然,在运行宏的同时,PCAN-Explorer6中的发送和接收、过滤等功能都是可以照样运行的,也就是说运行宏是独立的,不会影响其它功能,而且宏发送的报文也会在发送接收窗口中显示,并可以在Trace中保存。

6.关于VBS脚本

使用 VBScript宏或者PCAN-Explorer Add-ins ,可以自动执行常规任务。一个 VBScript宏是一个过程,它包含VBScript指令,没有任何参数。Sub语句是一个VBScript宏的开始,随后包含执行您希望的操作的 VBScript命令,最后以End Sub statement语句结束宏。VBScript宏存储在称为宏文件(Macro file)的文本文件中。
要使用一个 VBScript宏,您只需运行它即可。如果您希望定期运行它,可以给它分配一个快捷键。然后,您只需按下这个快捷键就可以运行该宏了。
建VBScript宏比Add-in更加方便和快捷。要创建一个宏,您只需在PCAN-Explorer环境下书写简短的代码,然后运行即可。VBScript宏不如Add-ins功能多。宏只能使用VBScript语言编辑,而且只能访问PCAN-Explorer对象模型。

6.1添加VBS脚本的步骤:

1.在Tools菜单中,点击Macro。
2.要在一个新的宏文件中插入宏,按下New File按钮,然后输入名字和文件的说明。或者向现有的宏文件添加一个宏,从宏文件的下拉列表中选择宏文件。如果  名字不在列表中,则首先安装此文件。
3.在Macro Name列表中,输入宏的名称。
4.点击Edit 按钮
5.在Add Macro对话框中输入宏的说明,然后点击确定OK。PCAN-Explorer打开宏文件并为新文件在文件最后创建一个Sub块。如果宏的名字是MyMacro,那么这个Sub块就如:




菲益科


6.2实例

软件自带7个实例,可以在Macro里面选择并可以直接运行。
实例1:长时间记录可以选择LosslessTrace脚本,只需要修改三行命令就可以实现长时间记录并自动保存。
菲益科

实例2:脚本发送报文NewClientSend,
菲益科


7. 利用C++创建DLL并在PE6加载add-in文件

创建一个Add-in,您就必须使用编程语言,如Visual C++来编辑代码,然后将源码编译成一个动态连接库DLL,然后链接到PCAN-Explorer中,最后您才可以执行它的命令。
Add-ins,您可以使用您熟悉的语言来书写,并且它不仅仅可以访问对面模型,而且还可以访问计算机系统的所有资源。
以PCAN Explorer6自带的例程C++为例
路径在安装目录:samples/Addlns/VS2010 C++/ReceiveTransmit
菲益科

1.首先利用VS编译文件,生成dll动态库文件.
菲益科

2.然后我们必须以管理员身份运行PE6软件,然后选择菜单栏Tools - AddIn Manager,选择Browse,然后选到到我们生成好的dll文件。
菲益科

3.然后勾选添加的文件后,点击Apply,这时候Status显示Loaded,表示已经导入完毕。
菲益科

4. 在菜单Tools中选择需要执行的命令(和程序相关)
菲益科

5.利用选择到下面的创建发送报文,就会按照要求自动创建报文了。
菲益科

发送报文的程序:
菲益科


8.PE6新功能:Callback Functions可直接调用DLL文件

新版本的 PE6 软件,已经支持在工程中直接添加 dll 文件了。在工程中添加好对应的 dll文件,就可以在软件中触发其中相应的内容。注意:并不是所有的 dll 文件添加了都可以使用的。

8.1示例:CallbackSampleDll

路径:PCAN-Explorer 6SamplesCallbackDLLsVS2017 C++CallbackSampleDll
菲益科

第一步:使用VS软件打开CallbackSampleDll工程编绎生生成相应的DLL文件
菲益科

第二步,然后在PE6工程加载DLL文件,双击可以打开DLL配置界面:
菲益科

从DLL Function里可以看到有4个样例,本文以RollingCounter_Checksum_ID201为例子进行解释。
由于我们希望在发送报文时添加计数器和 CRC 校验,所以选择触发条件为 On Before Transmit,内容选择 RollingCounter_Checksum_ID201。并在 Enable Callback Functions 那里打对勾以允许 dll 运行。
菲益科

第四步:
在PE6的 Transmit 界面建立一条 ID 为 0x201 的报文,
在发送这条报文的时候,就可以看到计数器和 CRC 校验在自动进行运算。
菲益科

发送报文记录过程:
菲益科


8.2 如何修改或创建自己的DLL

PEAK 在 PE6 软件安装目录下的/Samples/CallbackDLLs/VS2017 C++路径提供一个 VS 的工程可供生成需要的 dll 文件。这样也可以生成您自己需要的版本。
同样以CallbackSampleDll为蓝本,用 VS 打开工程文件后,需要修改的是 CallbackSampleDll.cpp 文件,可以对应修改 ID 和位置。其中定义的函数是和 PE6 软件中下拉菜单的 4 个相对应,这里我们来看刚刚使用过的RollingCounter_Checksum_ID201。可以修改的内容是帧 ID,帧长度,计数器的上限,CRC 初始值,计数器和 CRC 校验位的位置。
菲益科

如果您在文件里定义了新的函数,注意对应的 def 文件中也需要修改。
菲益科

CRC 的校验值需要在 crc.h 中进行更改。为了计算速度,例程中采用了在数组中枚举的方式处理 CRC 的运算。如果您需要修改 CRC 校验值的话,就需要更新整个数组列表。这里的 CRC 校验值为 0x12F。
菲益科

修改完成之后选择 release,然后生成解决方案。这样在对应的 release 文件夹中就能找到可以使用的 dll 文件了。之后在 PE6 软件中加载新生成的 dll 文件即可。如果生成时出现错误,则需要更改工程的属性,以符合您 PC 自身的编程环境。
菲益科


Q&A

Q1.PCAN-Explorer 6发送(Transmit)窗口被“隐藏”
A1.可通过拉动左侧小开关或重置解决,如下视频所示:
左侧小开关:
重置:



Q2.Nets Configuration新建net时出现Error code 2,如下图所示
菲益科

A2.外部导入工具External Tools中Nets Configuration路径错误,找到对应路径后更改Nets Configuration的路径即可正常使用了
菲益科

菲益科

操作视频如下:




Q3.建立的net被占用,如下图所示:
菲益科

A3.点击net configuration--tools--status display,删除连接的active client即可
菲益科



Q4.PCAN-Explorer plotter插件,plot我加载以前保存的文件(trc文件导入),之前可以用,现在这个图标一直是灰色的,重装了也不行。
菲益科

A4.导入之前要确保trc文件对应的symbol文件已经被激活
菲益科

导入之前是灰色的,导入之后就可以正常导入了,如下图所示:
菲益科
可能是因为trc文件只是记录了数据,只有加载symbol文件之后信号才能解析出来出现在plotter里面。


Q5.PCAN-Explorer 6如何使用回放功能?
A5.首先需要将报文记录下来,并保存成.trc格式,导入后,点击开始便能回放;需要注意的是,不能导入.csv格式的记录文件。.csv格式的文件也不能直接转成.trc格式,但是用peak-convert可以将.trc转成.csv、.asc等格式。



Q6.可以一边回放,一边用.dbc文件解析回放的报文吗?
A6.回放的时候,报文不会在Receive/Transmit上出现,如果想单独查看一条报文的解析,可以暂停或停止,然后把鼠标移到报文处,便能看到解析后的信号;如果想连续查看某个信号的话,可以用Panel或Plotter的功能,导入信号,便能查看到解析后的信号。