|
|
1 개월 전 | |
|---|---|---|
| .. | ||
| __pycache__ | 1 개월 전 | |
| README.md | 1 개월 전 | |
| logic_waveform.py | 1 개월 전 | |
| parse_logic_csv.py | 1 개월 전 | |
| parse_logic_gui.py | 1 개월 전 | |
| plsr_console.py | 1 개월 전 | |
| plsr_gui.py | 1 개월 전 | |
| plsr_test.py | 1 개월 전 | |
| requirements.txt | 1 개월 전 | |
| start_logic_csv_parser.bat | 1 개월 전 | |
| start_plsr_test.bat | 1 개월 전 | |
| test_logic_waveform.py | 1 개월 전 | |
| test_plsr_gui.py | 1 개월 전 | |
| test_plsr_test.py | 1 개월 전 | |
| 完整参数与多段脉冲操作说明.md | 1 개월 전 | |
| 逻辑分析仪波形查看器_交接文档.md | 1 개월 전 | |
该工具直接通过 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 后,点击“连接设备”。
图形界面提供以下与当前固件一致的功能:
1–100000 Hz 频率和正反方向;命令行工具 plsr_test.py 和文字菜单 plsr_console.py 仍保留,可用于自动化和协议排查。
双击 start_logic_csv_parser.bat 可以直接打开逻辑分析仪波形查看器,不需要进入 IAR 编译。
查看器支持正点原子导出的两种文件:
CSV:自动读取采样率、数字时间轴和所有通道;BIN:按原始采样点读取,需要填写采集时使用的采样率和通道数。读取后会根据相邻同方向脉冲边沿的周期计算瞬时频率,并显示“横轴时间、纵轴频率 Hz”的运动轨迹。鼠标滚轮用于缩放时间轴,按住鼠标左键水平拖动可以平移,适应窗口用于恢复完整曲线。显示通道支持填写 自动、4、0,1,4 或 0-7。
测量边沿默认选择自动,也可以指定上升沿或下降沿。关键时间(ms)可以填写 100 或 100,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 输出为准。
python plsr_test.py --port COM9 status
spec 映射):python plsr_test.py --port COM9 --map spec configure --pulse-output 0 --direction-output 0
输出点、系统参数、10 段参数和累计脉冲由固件自动保存到 Flash,不需要上位机额外发送保存命令。
python plsr_test.py --port COM9 --map spec auto-test --pulses 6 --frequency 2 --confirm-safe
预期:正向和反向均完成 6 个脉冲,监控区 0x2000/0x2001 的有符号累计值可读;反向时脉冲点仍持续输出,方向点电平改变。
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
immediate-stop 中用于故障处置,它会立即关闭输出,当前脉冲可能被截断。100 就发送 100 个;0 为直线,1 为 S 曲线,2 为正弦曲线。当前固件在每个完整脉冲结束时更新下一脉冲的频率,参数简单,便于使用示波器观察速度变化。
固件在脉冲完成、受控/立即停止、累计清零或参数修改后,将系统参数、10 段参数、输出映射和累计脉冲写入带 CRC 的 Flash 记录。重新上电并连接后,“立即读取状态”应显示断电前最后一次稳定保存的累计值。
没有掉电检测、备份电池或 FRAM 时,运行中直接切断电源无法保证最后一个正在输出的脉冲零丢失。现场掉电保持验收应在运动完成或受控停止后断电;上电不会自动恢复断电前未完成的运动。
离线测试不需要串口,也不需要安装 pyserial:
python -m unittest -v test_plsr_test.py