自动化

命令库与序列

每天敲的命令一键发送,交出去的测试一键运行。

本页内容

命令库与序列

命令库解决两件事:每天反复敲的那十几条命令,做成按钮一键发送;按固定顺序发送、等待并检查回复的测试流程,做成一条序列,交给同事或客户现场照着跑(Free 版有运行次数和步数限制,见文末),结果一眼看得出通过还是失败。

命令库属于工程,不属于某一个连接:所有连接共用同一套命令和序列,点击时发往当前连接——也就是最后获得键盘焦点的那个连接,标签页布局下就是正在显示的那一页。

打开方式:

  • 工具 → 命令库… 编辑命令和序列;
  • 视图 → 命令面板 在窗口右侧显示按钮。面板默认隐藏,第一次添加命令后会自动打开。
主窗口右侧停靠着命令面板:「模组」页有握手、版本、信号、复位四个按钮,其中三个带 Ctrl+1 到 Ctrl+3 快捷键,旁边是「Modbus」页;「序列」下是「模组自检」和「产线检测」两个按钮,下方显示 SPU 免费版剩余的运行次数。接收区上方的绿色横条写着「模组自检」通过、用时 0.3 秒,接收区里在设备回复之间记录了序列开始、每个期望步骤的匹配结果与耗时以及最终结论
命令面板上的命令按钮与序列。序列刚运行完:接收区上方的横条保留结论,接收区逐条记录每一步检查。

命令按钮

在命令库的「命令」页添加命令,每条命令包括:

  • 名称:显示在按钮上;留空时按钮显示命令内容的开头。
  • 格式:文本或十六进制。文本里的 \r \n \t \xHH 表示对应的字节,这一点与发送框的转义开关无关——保存下来的命令里写 \r\n,只可能是想发这两个控制字节。十六进制按严格格式解析,每字节两位,写错一个字符会直接报错,而不是悄悄发出 00。
  • 行尾与追加校验:可以单独指定,也可以选「跟随连接的发送设置」,发送时按当前连接的设置处理。行尾只对文本命令有效,十六进制命令就是它列出的那些字节(加上校验)。一条内容为空、但设了行尾的命令,就是一次单纯的回车,很多控制台靠它唤醒提示符。
  • 快捷键:例如 Ctrl+1,在窗口任意位置按下即向当前连接发送。
  • 备注:作为按钮的悬停提示。

编辑框下方实时显示「在当前连接上将发送 N 字节」和实际的十六进制字节,按的是当前连接的编码、行尾和校验设置。

命令可以分组,每组在面板上是一个页签。右键按钮可以复制到发送框再手工修改,或直接编辑。点击按钮与点「发送」完全一样:连接没打开时会先打开,文件传输进行中会拒绝并说明原因。命令不会进入发送历史。

序列

序列是一串按顺序执行的步骤:

步骤 作用
发送命令 发送一条命令。可以从命令库复制一条进来,步骤保存的是自己的副本,所以序列交给别人后仍能运行
等待 暂停若干毫秒
期望回复 在时限内等待匹配的数据;时限设为「不限」则一直等到匹配或手动停止
标签 给某个位置命名,供下面的「重复」步骤回到这里
重复 回到某个标签(或序列开头),让中间的步骤共运行 N 遍;也可以设为「直到停止」

在命令面板里点序列名即在当前连接上运行;运行中面板和接收区上方都有「停止」按钮。同一个连接同时只能运行一条序列,不同连接可以各跑各的。

序列在第一个字节发出之前就整体检查一遍:命令能否按当前连接的编码发出、期望的匹配规则是否有效、每个「重复」回到的标签是否在它上方、它重复的步骤里是否有发送、等待或期望(否则会空转)。有问题会指出是第几步,一个字节都不发。命令库编辑器里「步骤」表下方的检查结果,和运行时用的是同一套检查。

期望回复怎么匹配

匹配方式与自动应答相同:文本(支持 \r \n \t \xHH)、十六进制(?? 匹配任意字节,如 01 03 02 ?? ??)、通配符(* 匹配任意长度,? 匹配一个字节)和正则表达式。

有两条规则决定了哪些数据算数:

  • 只看上一次发送之后收到的数据。 回复是对上一条命令的回答;之前命令剩下的一个 OK,不能让后面的检查误判通过。
  • 匹配到的字节会被用掉。 连续两个期望 OK 的步骤,需要设备回两次 OK。

回复分几次到达(串口上很常见)不影响匹配。每个期望步骤默认超时即判失败、停在这一步;勾选「超时未匹配时记为失败并继续执行」后会记下失败继续往下跑,整条序列最后仍然判为失败——适合一次跑完、列出所有不合格项的产线检查。

运行结果

运行时接收区上方出现一条进度条,显示序列名、当前第几步、正在做什么和已用时间。结束后它变成结论并一直保留,直到关闭或下一次运行:

  • 绿色:通过,以及总用时;
  • 红色:在第 N 步失败,是哪一步、为什么(例如「1000 毫秒内未匹配」);
  • 橙色:在第 N 步停止,以及原因(手动停止、连接关闭、文件传输接管了连接)。

接收区里也会插入系统行:序列开始、每个期望步骤的结果(✓ / ✗ 及用时)、最终结论,与设备的数据按时间顺序排在一起。接收区处于暂停时不插入这些行,结论仍然留在进度条上。

关闭连接或开始文件传输都会停止正在运行的序列并记下原因——序列的下一步不会在你背后重新打开端口。

随工程保存与分享

  • 随工程保存:保存的 .spu 工程包含命令库,打开工程就恢复。没有打开工程时,命令库保存在本机,新建工程(文件 → 新建)也从这份开始;打开别人的工程不会覆盖你本机的命令库。
  • 命令文件 .spucmd:命令库编辑器或命令面板「⋯」菜单里的导出把整个命令库存成一个文件,发给同事或客户;对方导入后,命令和序列加入其命令库,与现有名称重复的会自动编号,不会覆盖。

Free 与 SPU Pro

命令面板本身在 Free 里完整可用:分组、按钮、快捷键、格式、行尾和校验,以及随工程保存。

序列在 Free 里用于验证流程:

  • 每次运行软件可执行 3 次序列,重启后重新计数;
  • 每条序列运行前 5 步,超出时会提示并可选择只运行前 5 步;
  • 可以导入 .spucmd 并在上述限制内运行,导出需要 SPU Pro——收到文件的同事用 Free 也能试跑,完整运行长序列或反复运行需要 SPU Pro。

SPU Pro 没有这些限制。

这篇文档是否有帮助?