文档状态:V0.1(需求基线草案)
整理日期:2026-08-03
目标平台:XDM-60T4-E / XDM-60T10-E
当前首要目标:在 STM32F407 + uC/OS-II 平台实现单轴 PLSR 定位脉冲模块
本规格由以下材料及当前项目讨论整理而成:
信捷手册用于功能对标,不要求逐项复制信捷的寄存器地址、软元件和编程软件界面。
本项目的目标是实现功能相当的自有 PLSR 模块。
| 编号 | 需求 | 优先级 | 验收方式 |
|---|---|---|---|
| SYS-01 | 使用 STM32F407 和 12 MHz 外部晶振 | 必须 | 检查工程和系统时钟 |
| SYS-02 | CPU 主频为 168 MHz | 必须 | 读取时钟配置 |
| SYS-03 | 运行于 uC/OS-II | 必须 | 检查任务和调度运行 |
| SYS-04 | 首版适配 XDM-60T4-E(STM32F407IG) | 必须 | T4-E 开发板测试 |
| SYS-05 | 架构兼容 XDM-60T10-E(STM32F407ZG) | 建议 | 编译配置和接口评审 |
| SYS-06 | 使用硬件定时器产生脉冲 | 必须 | 检查代码及示波器波形 |
| SYS-07 | 脉冲输出不依赖 OS Tick 翻转 GPIO | 必须 | 关闭任务调度干扰测试 |
| SYS-08 | 上电及复位过程中输出保持无效 | 必须 | 上电、复位波形测试 |
XDM-60T4-E:
| PLC 点 | MCU 引脚 |
|---|---|
| Q0 | PF6 |
| Q1 | PF8 |
| Q2 | PF7 |
| Q3 | PF9 |
| USART1_TX | PA9 |
| USART1_RX | PA10 |
XDM-60T10-E:
| PLC 点 | MCU 引脚 |
|---|---|
| Q0 | PF6 |
| Q1 | PF8 |
| Q2 | PF7 |
| Q3 | PF9 |
| USART1_TX | PA9 |
| USART1_RX | PA10 |
Q 点与定时器通道的最终映射仍需结合 STM32 数据手册、板卡原理图和实测确认。
| 编号 | 需求 | 建议指标 | 优先级 |
|---|---|---|---|
| PUL-01 | 输出形式 | PULSE/DIR | 必须 |
| PUL-02 | 脉冲有效边沿 | 默认上升沿计数 | 必须 |
| PUL-03 | 占空比 | 50% | 必须 |
| PUL-04 | 保证频率范围 | 1~100,000 Hz | 必须 |
| PUL-05 | 单段脉冲数 | 1~2,147,483,647 | 必须 |
| PUL-06 | 正反方向 | 独立方向输出电平 | 必须 |
| PUL-07 | 方向极性 | 参数可配置 | 必须 |
| PUL-08 | 方向建立时间 | 默认 10 us,可配置 | 必须 |
| PUL-09 | 正常完成脉冲误差 | 0 个 | 必须 |
| PUL-10 | 频率误差 | 不超过 ±0.1% | 必须 |
| PUL-11 | 运行调频响应 | 不超过 1 ms | 必须 |
| PUL-12 | 频率修改 | 不改变剩余脉冲数量 | 必须 |
说明:100 kHz 是 V1.0 建议保证值。是否开放更高频率由 PLC 输出电路、伺服输入规格和上板测试决定。
相对定位的输入值表示相对当前位置需要移动的脉冲数:
目标位置 = 当前逻辑位置 + 相对位移
绝对定位的输入值表示目标逻辑坐标:
实际输出位移 = 目标绝对位置 - 当前逻辑位置
项目采用与信捷 PLSR 相似的逻辑模型,但不要求使用相同的物理寄存器地址。
| 参数 | 本项目含义 | 主要内容 |
|---|---|---|
| S0 | 路径数据块 | 总段数、每段频率、脉冲数、等待和跳转 |
| S1 | 用户执行参数 | 相对/绝对模式、起始段号、执行方式 |
| S2 | 运动参数配方 | 加减速斜率、曲线、最高速度、起止速度 |
| D | 输出轴/脉冲点 | 脉冲输出点及其对应的轴配置 |
建议的软件接口关系:
PLSR_Start(S0路径, S1执行参数, S2参数套组, D输出轴)
每段至少包含:
有符号脉冲数量
目标频率
等待类型
等待参数
下一段编号
至少包含:
相对/绝对定位模式
起始执行段号
前台/后台执行方式
命令超时时间
每个输出轴建议提供 5 套参数(0~4):
每套至少包含:
默认频率
最高频率
起始频率
结束频率
默认加速时间
默认减速时间
加减速曲线
频率刷新周期
每个轴至少包含:
脉冲输出点
方向输出点
脉冲有效极性
方向有效极性
方向建立时间
| 编号 | 需求 | 优先级 |
|---|---|---|
| SEG-01 | 支持 1~100 段 | 建议 V1.0 |
| SEG-02 | 每段独立设置有符号脉冲数 | 必须 |
| SEG-03 | 每段独立设置目标频率 | 必须 |
| SEG-04 | 同方向连续段允许不停顿变频 | 必须 |
| SEG-05 | 反方向段切换前先减速停止 | 必须 |
| SEG-06 | 支持脉冲完成后执行下一段 | 必须 |
| SEG-07 | 支持等待指定时间 | 建议 V1.0 |
| SEG-08 | 支持等待指定输入点 | 建议 V1.0 |
| SEG-09 | 支持指定下一段 | 建议 V1.0 |
| SEG-10 | 支持有限循环并检测异常死循环 | 建议 V1.0 |
| SEG-11 | 支持从指定段号开始 | 建议 V1.0 |
多段路径执行期间,除当前段目标频率外,其余结构参数修改不应影响已经启动的任务。新参数在下一次启动时生效。
| 编号 | 曲线 | 优先级 | 说明 |
|---|---|---|---|
| ACC-01 | 无加减速 | 必须 | 调试和低速场景使用 |
| ACC-02 | 直线/梯形 | 必须 | 首个实现和基础验收曲线 |
| ACC-03 | S 形 | 必须 | 降低机械冲击 |
| ACC-04 | 正弦曲线 | 建议 V1.0 | 对标信捷增强能力 |
其他规则:
| 编号 | 命令 | 行为 | 优先级 |
|---|---|---|---|
| CTL-01 | START | 校验参数并启动任务 | 必须 |
| CTL-02 | STOP_DECEL | 按减速曲线停止 | 必须 |
| CTL-03 | STOP_IMMEDIATE | 完成当前有效脉冲后立即关闭输出 | 必须 |
| CTL-04 | PAUSE | 减速暂停并保留剩余路径 | 建议 V1.0 |
| CTL-05 | RESUME | 从暂停状态继续 | 建议 V1.0 |
| CTL-06 | SET_POSITION | 设置逻辑当前位置 | 必须 |
| CTL-07 | CLEAR_POSITION | 逻辑当前位置清零 | 必须 |
| CTL-08 | CLEAR_TOTAL | 累计脉冲数清零 | 必须 |
| CTL-09 | SAVE_CONFIG | 保存配置参数 | 必须 |
| CTL-10 | LOAD_CONFIG | 重新加载保存参数 | 必须 |
| CTL-11 | RESET_ERROR | 清除可恢复错误 | 必须 |
| CTL-12 | SELF_TEST | 执行内部自测 | 必须 |
状态至少包括:
UNINITIALIZED 未初始化
IDLE 空闲
ACCEL 加速
RUN 运行
DECEL 减速
WAIT 段间等待
PAUSED 暂停
COMPLETED 完成
STOPPED 停止
ERROR 错误
上位机至少可以读取:
现有 USART1 Modbus RTU 从站作为控制和监控通道。
| 编号 | 需求 | 优先级 |
|---|---|---|
| COM-01 | 读取 PLSR 配置和实时状态 | 必须 |
| COM-02 | 写入单段和多段参数 | 必须 |
| COM-03 | 下发启动、停止和清零命令 | 必须 |
| COM-04 | 参数范围及组合合法性检查 | 必须 |
| COM-05 | 参数写入与运动启动采用提交机制 | 必须 |
| COM-06 | 32/64 位状态采用一致性快照 | 必须 |
| COM-07 | 非法通信参数不得破坏运行任务 | 必须 |
| COM-08 | 保存通信和 PLSR 诊断统计 | 建议 V1.0 |
建议采用“影子参数 + 提交命令”机制:
上位机写影子参数
↓
发送参数提交命令
↓
完整校验
↓
原子复制到运行参数
↓
允许启动
具体 Modbus 寄存器地址在《PLSR Modbus 通信协议》中单独定义,避免与现有通信历史区冲突。
需要保存:
保存策略:
至少包含:
参数未初始化
输出点非法
脉冲点与方向点冲突
频率为零或超限
脉冲数非法
段数非法
段参数非法
跳转段号非法
路径循环超限
绝对位置未建立
模块忙
非法状态命令
定时器初始化失败
Flash数据无效
Flash保存失败
等待输入超时
立即停止
内部计数异常
发生严重错误时,模块必须停止装载新脉冲,并使输出回到安全无效电平。
| 编号 | 验收项 | 合格标准 |
|---|---|---|
| TST-01 | 固定频率 | 1 Hz~100 kHz 内误差不超过 ±0.1% |
| TST-02 | 固定脉冲数 | 正常完成误差为 0 个脉冲 |
| TST-03 | 正反转 | 方向电平及脉冲数量正确 |
| TST-04 | 相对定位 | 连续多次相对运动位置累计正确 |
| TST-05 | 绝对定位 | 从不同当前位置到同一目标位置结果正确 |
| TST-06 | 加减速 | 曲线、起止频率和总脉冲数正确 |
| TST-07 | 多段路径 | 段顺序、频率、数量和等待条件正确 |
| TST-08 | 动态调频 | 命令后 1 ms 内开始生效且无异常脉冲 |
| TST-09 | 停止控制 | 减速停止和立即停止符合定义 |
| TST-10 | 掉电参数 | 重新上电后配置校验和恢复正确 |
| TST-11 | 异常参数 | 拒绝启动并返回明确错误码 |
| TST-12 | 连续运行 | 24 小时无异常停止、计数错误或任务失联 |
| TST-13 | Modbus并发 | 通信压力下脉冲输出数量和频率仍正确 |
| TST-14 | 上电安全 | 上电和复位期间无意外脉冲 |
以下项目在开始硬件实现前必须确认: