You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
ywh 4c3bee684a 修复了一些风险 пре 1 месец
..
__pycache__ 修复了一些风险 пре 1 месец
README.md 修复了一些风险 пре 1 месец
main.py 修复了一些风险 пре 1 месец
modbus_rtu.py 修复了一些风险 пре 1 месец
plsr_protocol.py 修复了一些风险 пре 1 месец
settings.json 修复了一些风险 пре 1 месец
start_plsr_tester.bat 修复了一些风险 пре 1 месец
test_protocol.py 修复了一些风险 пре 1 месец

README.md

PLSR Python Tester

输出诊断

上位机新增“输出诊断”页。连接并启动脉冲后,程序会随状态轮询读取设备的诊断结果;运动完成后分别显示脉冲个数、脉冲频率和加减速曲线是否与设置一致,并显示实际/设定脉冲、实际/设定频率、最大频率偏差及三类异常次数。“清除诊断记录”只清除诊断结果,运行期间不能清除。

诊断状态追加在原状态区之后,原地址不变:0x200B 为诊断状态位,0x200C 为曲线类型,0x200D 为当前曲线阶段,0x200E~0x2017 为期望/实际计数与频率,0x2018~0x201A 为异常次数。向控制寄存器 0x3000 写入 0x0020 可清除诊断记录。

该功能诊断的是STM32内部实际执行情况:脉冲完成中断计数与TIM寄存器反算频率。若需要发现端子断线、外部干扰或驱动器漏收脉冲,仍需示波器或外部反馈计数输入。

本工具已按《参数表-2026.xlsx》更新,使用 Python/tkinter 和 Modbus RTU。

  • 输出方式可选择:PUL/DIR(脉冲+方向)AB正交脉冲,选择结果保存到设备Flash。

  • 脉冲发送模式可选择:完成模式在段边界停止后再启动,后续模式在条件允许且方向兼容时保持硬件PWM连续衔接。

  • 方向逻辑可选择正逻辑或负逻辑并保存到设备Flash;PUL/DIR运动完成、等待或暂停后方向端保持最后状态,下一次运动再按新方向更新。

  • PUL/DIR模式:Y0~Y3输出硬件PWM脉冲,Y12~Y15保持方向电平,原来的正反转接线和方向逻辑继续生效。

  • Y0~Y3分别使用PF6/TIM10、PF8/TIM13、PF7/TIM11、PF9/TIM14。

  • AB模式:A相端子可选Y0~Y3,B相端子可选Y12~Y15;正向A超前B 90°,反向B超前A 90°。

  • AB模式每完成一个四拍周期计为1个脉冲;两种模式空闲时输出均恢复高电平。

  • 相对模式支持完整32位有符号脉冲数,负数直接表示反向;原方向选项仍可把正数脉冲转换为反向。绝对模式由目标位置与当前累计位置自动判向。

  • 公共参数:0x1000~0x1015,其中0x1007为脉冲加减速模式(0=直线、1=S曲线、2=正弦曲线),0x100B~0x100C是脉冲默认速度,0x100F为输出方式(0=PUL/DIR,1=AB正交)。

  • 运行中目标频率:0x1016~0x1017,写入后以控制位0x0040立即应用;该值不修改默认速度、段表或Flash。

  • 分段参数:第 n 段基址 0x1100 + (n-1)*0x10,每段使用偏移 0~7

  • 状态:0x2000~0x2006

  • 控制:0x3000,bit0 启动/继续、bit1 停止、bit2 清累计位置。

  • 所有双字参数均为低地址存低 16 位。

运行 start_plsr_tester.bat,或执行 python main.py。首次使用如果缺少串口库,请安装 pyserial

验证AB相时,请将双通道示波器分别接到所选A相、B相端子,并共地测量。不要仅观察单只LED判断正反向;单路波形无法显示两相的超前关系。

测试协议编解码:

python -m unittest test_protocol.py