# 上位机工具 ## PLSR 控制面板 `plsr_control_panel.py`用于配置和控制2026版PLSR指令。串口参数固定为 9600、8位数据、偶校验、1位停止位(8E1),从站地址可选1~247。 在仓库根目录运行: ```powershell py -B HostComputer\plsr_control_panel.py ``` 界面可读写公共参数和全部10段参数,轮询显示累计位置、当前频率、运行 状态、当前段和错误码,并可发送启动、停止、清零命令。Y0~Y3是同一条 PLSR逻辑的可选脉冲输出,不是四条可同时运行的独立PLSR指令;方向输出为 Y12~Y15,WAIT/EXT输入为X4或X5。 离线自测不会创建窗口或打开串口: ```powershell py -B HostComputer\plsr_control_panel.py --self-test ``` 依赖安装: ```powershell py -m pip install -r HostComputer\requirements.txt ``` ## Modbus RTU T1.5/T3.5测试上位机 ## 直接运行EXE 不需要安装Python,直接双击`dist/ModbusTimingTester_3Baud.exe`即可运行。 ## 运行方法 1. 将USB转RS-485模块连接到电脑和STM32从站。 2. 将STM32串口设置为9600、19200或115200,采用8位数据、偶校验、1位停止位。 3. 双击`run.bat`。 4. 选择USB转RS-485模块对应的COM口和与STM32一致的波特率。 5. 输入从站地址、起始线圈地址和读取数量后执行测试。 软件自动生成0x01请求帧并添加Modbus CRC。数值输入支持十进制和`0x`开头的十六进制。 界面中输入的是期望的RS-485线路静默时间。程序以每次`write()`开始时刻为基准,将下一次`write()`安排在“当前开始时刻+1146us字符时间+目标静默时间”。这种方式会测量并自动扣除Python循环以及`write+flush`已经消耗的时间。例如输入1833us时,目标头到头时间为2979us,估算线路静默时间为“实测头到头时间-1146us”。 ## 9600、8E1对应时间 - 一个字符约为1146us。 - T1.2约为1375us,理论上仍是一帧。 - T1.5约为1719us。 - T3.5约为4010us。 - 软件使用2865us测试T1.5和T3.5之间的无效帧。 - 软件使用5000us测试超过T3.5后的残帧。 ## 预期结果 - 正常连续帧:收到正常0x01响应。 - T1.2:理论上收到正常0x01响应。 - T1.5~T3.5:从站丢弃无效帧,不响应。 - 超过T3.5:各字节成为残帧,不响应。 ## 精度说明 程序采用高精度计数器按绝对时刻调度,并把可测量的Python循环、`write()`和`flush()`耗时纳入计算。但Windows内核、USB驱动和USB转RS-485芯片内部仍可能缓存或合并字节,界面中的线路静默时间仍是估算值。正式验证时应使用逻辑分析仪测量线路上的字节间隔。