Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 
 
 
 
ywh 4c3bee684a 修复了一些风险 před 1 měsícem
..
__pycache__ 修复了一些风险 před 1 měsícem
README.md 修复了一些风险 před 1 měsícem
logic_waveform.py 修复了一些风险 před 1 měsícem
parse_logic_csv.py 修复了一些风险 před 1 měsícem
parse_logic_gui.py 修复了一些风险 před 1 měsícem
plsr_console.py 修复了一些风险 před 1 měsícem
plsr_gui.py 修复了一些风险 před 1 měsícem
plsr_test.py 修复了一些风险 před 1 měsícem
requirements.txt 修复了一些风险 před 1 měsícem
start_logic_csv_parser.bat 修复了一些风险 před 1 měsícem
start_plsr_test.bat 修复了一些风险 před 1 měsícem
test_logic_waveform.py 修复了一些风险 před 1 měsícem
test_plsr_gui.py 修复了一些风险 před 1 měsícem
test_plsr_test.py 修复了一些风险 před 1 měsícem
完整参数与多段脉冲操作说明.md 修复了一些风险 před 1 měsícem
逻辑分析仪波形查看器_交接文档.md 修复了一些风险 před 1 měsícem

README.md

PLSR Python 测试工具

该工具直接通过 Modbus RTU 测试当前 XDM-60T4-E/STM32 PLSR 固件。串口参数默认是 115200、8E1、站号 1

默认 spec 映射严格对应 document/参数表-2026.xlsx:配置区 0x1000、10 段路径区 0x1100..0x1197、监控区 0x2000、控制寄存器 0x3000。双字按高字/低字组合,脉冲个数按有符号 32 位处理,频率范围按 1..100000 Hz 校验。legacy 映射保留当前旧版单段固件的零基地址 0..107

最简单的打开方式

直接双击本目录中的 start_plsr_test.bat。启动程序会自动检查 Python 和 pyserial,然后打开中文图形上位机;检测到 COM9 时会优先选中它。确认参数为 115200 / 8-E-1 / 站号 1 后,点击“连接设备”。

图形界面提供以下与当前固件一致的功能:

  • 设置需求版脉冲端子 Y0..Y3、方向端子 Y12..Y15;
  • 设置有符号脉冲个数、1–100000 Hz 频率和正反方向;
  • 读取配置区、10 段路径区、监控区和控制寄存器;
  • 启动/继续、受控停止、重新运行、复位和累计脉冲清零;
  • 完成/后续发送模式,以及相对/绝对运行模式;
  • 低速正反转测试灯验证;
  • 实时状态、累计脉冲、停止原因、错误码和原始寄存器诊断;
  • 有上限的 TX/RX 通信日志,可清空或导出,避免日志无限增长。

命令行工具 plsr_test.py 和文字菜单 plsr_console.py 仍保留,可用于自动化和协议排查。

逻辑分析仪波形查看器

双击 start_logic_csv_parser.bat 可以直接打开逻辑分析仪波形查看器,不需要进入 IAR 编译。

查看器支持正点原子导出的两种文件:

  • CSV:自动读取采样率、数字时间轴和所有通道;
  • BIN:按原始采样点读取,需要填写采集时使用的采样率和通道数。

读取后会根据相邻同方向脉冲边沿的周期计算瞬时频率,并显示“横轴时间、纵轴频率 Hz”的运动轨迹。鼠标滚轮用于缩放时间轴,按住鼠标左键水平拖动可以平移,适应窗口用于恢复完整曲线。显示通道支持填写 自动40,1,40-7

测量边沿默认选择自动,也可以指定上升沿或下降沿。关键时间(ms)可以填写 100100,200,500,图中会在对应时间绘制标记线,并显示该节点之后最近一个完整周期测得的频率。横轴的 0 ms 从第一个有效脉冲边沿开始计算。

注意:正点原子导出的原始 BIN 文件没有保存采样率。界面中的 BIN 采样率必须与采集时的设备采样率一致,否则横轴时间和计算频率会不正确。

原来的 CSV 转换命令行脚本 parse_logic_csv.py 仍然保留,图形波形查看器脚本为 parse_logic_gui.py

通信采用严格的“一次请求、一次响应”:上一帧结束或超时后才发送下一帧,并对站号、功能码、帧长度和 CRC 进行校验。接收器可以跳过残留字节重新寻找合法帧,避免 Qt 工具出现的 0x40 被误判成功能码的问题。

环境准备

在本目录执行:

python -m pip install -r requirements.txt
python plsr_test.py self-test
python plsr_test.py ports

如果 Windows 的 python 是无效商店别名,请在 PyCharm 解释器或已安装的 Python 环境中执行相同命令。

推荐测试顺序

先断开伺服或机械负载,只接测试灯或示波器。以下示例使用 COM9,实际端口以 ports 输出为准。

  1. 只读检查通信和当前保存的输出点:
python plsr_test.py --port COM9 status
  1. 需求版配置 Y0 输出脉冲、Y12 控制方向(spec 映射):
python plsr_test.py --port COM9 --map spec configure --pulse-output 0 --direction-output 0

输出点、系统参数、10 段参数和累计脉冲由固件自动保存到 Flash,不需要上位机额外发送保存命令。

  1. 执行低速正反转自动测试:
python plsr_test.py --port COM9 --map spec auto-test --pulses 6 --frequency 2 --confirm-safe

预期:正向和反向均完成 6 个脉冲,监控区 0x2000/0x2001 的有符号累计值可读;反向时脉冲点仍持续输出,方向点电平改变。

  1. 持续监视状态:
python plsr_test.py --port COM9 --map spec monitor --interval 0.5

Ctrl+C 停止监视。

单项命令

python plsr_test.py --port COM9 --map spec run --pulses 10 --frequency 1 --direction forward --confirm-safe
python plsr_test.py --port COM9 --map spec run --pulses -10 --frequency 1 --direction reverse --confirm-safe
python plsr_test.py --port COM9 --map spec stop
python plsr_test.py --port COM9 --map spec immediate-stop
python plsr_test.py --port COM9 --map spec reset
python plsr_test.py --port COM9 --map spec clear

增加 -v 可以显示原始 TX/RX 帧:

python plsr_test.py --port COM9 -v status

停止、继续和重新运行

  • “受控停止”会完成已经开始的当前脉冲后暂停,避免产生半个脉冲;
  • 再点“启动/继续脉冲”,参数未改变时只发送剩余脉冲,例如 100 个脉冲在 50 停止后继续发送 50 个;
  • “重新运行脉冲”强制从本次任务的 0 进度重新发送完整预设数量,但不会清空全局累计脉冲;
  • “清零累计脉冲”只清累计值,“复位状态”只复位运行状态和错误状态;
  • 立即停止仍保留在命令行 immediate-stop 中用于故障处置,它会立即关闭输出,当前脉冲可能被截断。

发送模式和运行模式

  • 完成模式:本段结束时保持本段速度,下一段开始后再向下一段速度加减速;
  • 后续模式:本段后半段提前向下一段速度加减速,本段结束时已经到达下一段速度;
  • 两种模式运行中再次发送启动命令都返回忙,不用于表示调用方是否等待;
  • 相对模式:脉冲数表示本次要发送的数量,例如设置 100 就发送 100 个;
  • 绝对模式:脉冲数表示目标位置。目标位置等于当前累计位置时不输出;不等时只发送两者的差值。

速度和加减速

  • 起始速度:开始输出时使用的速度;
  • 默认速度:加速完成后的匀速速度;
  • 终止速度:停止前减速阶段最后使用的速度;
  • 加速时间和减速时间:分别表示加速、减速阶段的时间;
  • 加减速模式 0 为直线,1 为 S 曲线,2 为正弦曲线。

当前固件在每个完整脉冲结束时更新下一脉冲的频率,参数简单,便于使用示波器观察速度变化。

掉电保存验证

固件在脉冲完成、受控/立即停止、累计清零或参数修改后,将系统参数、10 段参数、输出映射和累计脉冲写入带 CRC 的 Flash 记录。重新上电并连接后,“立即读取状态”应显示断电前最后一次稳定保存的累计值。

没有掉电检测、备份电池或 FRAM 时,运行中直接切断电源无法保证最后一个正在输出的脉冲零丢失。现场掉电保持验收应在运动完成或受控停止后断电;上电不会自动恢复断电前未完成的运动。

离线回归

离线测试不需要串口,也不需要安装 pyserial:

python -m unittest -v test_plsr_test.py