首页 / 驱动算法 / CANopen专题

TSMaster 测试 CANopen 教程:免费工具链从建工程到伺服调试

上一篇讲的 CANoe 要 license,这篇给免费替代路线:TSMaster(同星 TOSUN 出品,基础功能免费,支持 Vector/PEAK 等主流硬件)。本文按同一套流程走一遍:定位与免费边界 → 安装与硬件接入 → 新建 CANopen 工程 → EDS 导入 → 报文/负载/错误帧分析 → CANopen 工具箱(NMT/SDO/PDO)→ 使能伺服向导实操(0x0006→0x0007→0x000F)→ C/Python 脚本自动化 → 与 CANoe 功能逐项对照,配 TSMaster 使能向导模拟器交互演示与 python-can 脚本。

1. 定位:TSMaster 能替代 CANoe 的哪些部分

TSMaster 是同星(TOSUN)的汽车总线开发测试平台,基础功能免费,支持 CAN/CAN FD/LIN 等多种总线,主打"国产免费版 CANoe"。对照第 12 篇的分工看:

CANoe 功能TSMaster 对应能否替代
建工程/通道配置新建工程 + 硬件配置✅ 完整替代
Trace / Statistics报文窗口 / 总线统计✅ 完整替代
Graphics 曲线数据波形/绘图窗口✅ 基础替代
CANopen 模块(NMT/SDO/PDO)CANopen 工具箱 + OD 浏览器✅ 完整替代(伺服调试够用)
CAPL 脚本C / Python / C# 脚本✅ 替代(语法不同,能力相当)
认证级测试环境—❌ 不支持(认证还得送测,见 11 篇)
CANape 标定(XCP)TSMaster 标定功能(XCP 支持)⚠️ 看版本/授权

结论:调试 CANopen 伺服,TSMaster 免费版覆盖 90% 场景;要 CAPL 生态、官方认证测试环境再上 CANoe。

2. 安装与硬件接入

  • 下载安装:同星官网下载 TSMaster 安装包,装完即用(基础功能免 license);
  • 硬件支持:同星自家硬件(TH 系列)、Vector(VN 系列,需装 Vector 驱动)、PEAK、周立功等主流 CAN 卡——你手里的 VN1640A/SN1640Pro 可直接用(与第 12 篇同一块卡);
  • 版本差异:免费版(基础分析/仿真/脚本)与专业版(记录回放增强、标定、诊断等,按 license)——具体功能边界以官网/版本说明为准;
  • 通道配置:硬件插入后 → 工程里选通道映射 → 设波特率(CANopen 500k)。
用 Vector 硬件的注意

TSMaster 调 Vector 硬件走 Vector 官方驱动,两者版本不匹配同样会报驱动错——先开 Vector Hardware Manager 确认驱动装好、通道可枚举,再开 TSMaster(和第 12 篇排障一个套路)。

3. 新建 CANopen 工程:五步到位

① 新建工程: 文件 → 新建 → 选择 CAN 工程(总线类型选 CAN)*/ ② 硬件: 硬件 → 通道配置 → 选 VN1640A/TH 卡 → 映射到 Channel 1 */ ③ 波特率: 通道属性 → 500 kBit/s(CANopen 常用)*/ ④ 数据库: 仿真 → 数据库 → 添加 → 选你的 EDS/DCF */ ⑤ 打开窗口: 报文窗口 / 总线统计 / 绘图 —— 开测 */

与 CANoe 的第 12 篇第 3 节逐项对应——概念完全一样,只是菜单名不同。

4. EDS 导入与 CANopen 节点配置

  • EDS/DCF 导入:TSMaster 的数据库管理里加 EDS——对象字典、PDO 映射、默认心跳由此解析;
  • 节点添加:CANopen 配置里声明节点(设备名、Node-ID、EDS 关联);
  • PDO 映射核对:导入后检查 TxPDO/RxPDO 映射对象与固件一致——不一致同样出现"报文解析不出信号"(第 12 篇同一坑);
  • 心跳:节点配置里设心跳生产者周期(0x1017)便于监控失联。

5. 报文分析与总线统计:Trace 的免费等价物

TSMaster 窗口对应 CANoe伺服调试用
报文窗口Trace逐帧看 NMT/SDO/PDO、时间戳/ID/数据/解析
总线统计Statistics负载率、每 ID 帧数、错误帧计数
绘图/数据波形Graphics把 6064h/606Ch 画曲线看跟随
过滤器Filter按 ID/节点筛报文

负载率口径:CANopen 500k 下建议 50% 以下(见 07 篇);错误帧变多先从终端电阻/波特率/线缆查起。

6. CANopen 工具箱:NMT / SDO / PDO 操作

TSMaster 的 CANopen 模块(CANopen 标签页)提供:

  • NMT 控制面板:一键启动/停止/预操作节点——验证从站 NMT 迁移(对应第 6 篇状态机);
  • OD 浏览器(对象字典):按索引读写 6040h/6060h/607Ah 等——就是 CANoe OD Browser 的等价物;
  • PDO 监控:实时显示 TxPDO 映射信号(位置/速度/电流),可改触发方式;
  • 心跳/EMCY:节点失联与紧急错误码提示。
使能伺服的 TSMaster 路径(与第 12 篇同序列)

OD 浏览器依次写:6060h 模式 → 6040h=0x0006(状态字 0x0221)→ 0x0007(0x0223)→ 0x000F(0x0227)→ 写 607Ah → 绘图窗口看 6064h 到位。第 10 篇迁移表在这套免费工具里照样完整可走。

7. 脚本自动化:Python/C# 替代 CAPL

TSMaster 内置脚本引擎(C 脚本 + Python + C#),没有 CAPL 但能力相当。Python 更接近你已有的 python-can 习惯:

# TSMaster Python 脚本:使能伺服 + 读实际位置(骨架)*/ import time from tsmaster import app # TSMaster Python API(示意,按 SDK 文档)*/ app.init() # 连接当前工程 */ # SDO 写 6040h=0x000F(使能),节点 1 */ app.canopen.sdo_write(1, 0x6040, 0, [0x0F, 0]) time.sleep(0.1) # 读 6064h 实际位置 */ val = app.canopen.sdo_read(1, 0x6064, 0) print("实际位置 6064h:", val)

要点:Python 脚本适合快速验证(跟 python-can 同一套思路),C 脚本适合周期任务;批量测试用例、压力测试都能写——第 11 篇的自测用例在 TSMaster 里可用 Python 复刻自动化。

8. 与 CANoe/CANape 逐项对照:迁移清单

从 CANoe 迁过来最关心的几项:

需求CANoe/CANapeTSMaster备注
总线分析Trace/Statistics报文/统计直接替换
CANopen 调试CANopen 工具箱CANopen 工具箱直接替换
脚本CAPLPython/C/C#重写脚本(逻辑复用)
标定CANape + XCP标定功能(XCP 支持)看版本授权
认证测试CANoe 认证选项不支持送测实验室(11 篇)
硬件Vector 全家同星/Vector/PEAK 等你的 VN1640A 可用

9. 典型伺服调试流程(TSMaster 版)

① 新建 CANopen 工程,VN1640A 映射通道,500k ② 导入伺服 EDS,声明节点 1 ③ 报文窗口确认上电 boot-up 心跳正常 ④ CANopen 工具箱 NMT 启动节点 ⑤ OD 浏览器走 0x0006→0x0007→0x000F 使能,状态字到 0x0227 ⑥ PDO 监控确认 TxPDO 回报 6064h/606Ch ⑦ 写 607Ah 目标,绘图窗口看位置曲线 ⑧ Python 脚本跑边界/压力用例,总线统计看错误帧与负载 ⑨ 固化参数,断电重启验证上线时序 */

与第 12 篇第 9 节的 CANoe 流程逐项同构——工具换了,方法论不变。

10. 交互演示:TSMaster 使能向导模拟器

模拟 TSMaster 的 CANopen 使能向导:左侧报文窗口实时滚动,右侧向导步骤条逐步推进,状态字按第 10 篇迁移表逐级跳变。点"一键使能"自动走完 0x0006→0x0007→0x000F(示意模拟):

TSMaster CANopen 使能向导(节点 1 · 500k)
报文窗口(TSMaster)
使能向导
  • ① NMT 启动:节点 boot-up 心跳上线;② 使能向导:SDO 写 6040h 按 0x0006→0x0007→0x000F 推进,状态字 0x0240→0x0221→0x0223→0x0227;
  • ③ 单步执行:手动逐级走,配合报文窗口看每步 SDO 请求/响应(对应第 10 篇迁移表)。

11. 避坑清单与免费/付费边界

坑现象对策
Vector 驱动未装/版本不配硬件枚举不到 / 打开通道失败先装 Vector 驱动并 VHM 确认(第 2 节)
EDS 与固件不符报文信号解析不出/乱核对 EDS 对象字典与 PDO 映射(第 4 节)
SDO 超时OD 浏览器写/读超时先 NMT 启动节点;查波特率/终端电阻/心跳
脚本 API 记错Python 脚本报找不到模块/方法按 SDK 文档(脚本界面有 API 参考),方法名以文档为准
免费版缺功能某菜单灰显/提示授权确认是否为专业版功能;基础调试不需要
认证测试需求找不到认证环境TSMaster 不做认证——走 11 篇送测路线
免费 vs 付费,务实建议

调试 CANopen 伺服(NMT/SDO/PDO + 报文分析 + Python 脚本),免费版就够;需要高速记录回放、XCP 标定、诊断增强再看专业版,具体以官网版本功能说明为准。对比第 12 篇:不花钱的路线 → TSMaster;要官方认证环境/CAPL 生态 → CANoe。

一句话收尾:TSMaster 把第 12 篇 90% 的操作免费复刻了——同样的 EDS、同样的 0x0006→0x0007→0x000F 序列、同样的报文/负载/错误帧三查,方法论从 CANoe 迁移零成本,花的是"菜单改名"的学习成本。