Explorar el Código

写了一点PLSR的文档

deepseek
ywh hace 1 mes
padre
commit
3986737ec8
Se han modificado 3 ficheros con 1969 adiciones y 1482 borrados
  1. +483
    -0
      Document/PLSR_document/PLSR需求规格统计.md
  2. BIN
      Document/PLSR_document/信捷XD_XL系列PLC定位控制手册_PD02_20260510_V1.3.pdf
  3. +1486
    -1482
      EWARM/Modbus.ewd

+ 483
- 0
Document/PLSR_document/PLSR需求规格统计.md Ver fichero

@@ -0,0 +1,483 @@
# PLSR 项目需求规格统计

> 文档状态:V0.1(需求基线草案)
> 整理日期:2026-08-03
> 目标平台:XDM-60T4-E / XDM-60T10-E
> 当前首要目标:在 STM32F407 + uC/OS-II 平台实现单轴 PLSR 定位脉冲模块

## 1. 需求来源

本规格由以下材料及当前项目讨论整理而成:

1. [任务要求.png](./任务要求.png)
2. [实现PLSR指令.pdf](./实现PLSR指令.pdf)
3. [信捷XD_XL系列PLC定位控制手册](./信捷XD_XL系列PLC定位控制手册_PD02_20260510_V1.3.pdf)
4. 当前工程代码,包括 uC/OS-II、Modbus RTU、Backup SRAM 和上位机测试程序

信捷手册用于功能对标,不要求逐项复制信捷的寄存器地址、软元件和编程软件界面。
本项目的目标是实现功能相当的自有 PLSR 模块。

## 2. 范围结论

### 2.1 V1.0 必须交付

- 基于 uC/OS-II 运行。
- 单轴 PULSE/DIR 脉冲输出。
- 指定脉冲数量和输出频率。
- 正向、反向运动。
- 相对定位和绝对定位。
- 前台完成模式和后台运行模式。
- 运行中修改目标频率。
- 多段脉冲输出。
- 多种加减速曲线。
- 累计脉冲数和逻辑位置记录。
- 上位机清零累计数据。
- 参数配置、保存及上电恢复。
- Modbus RTU 控制和状态监控。
- 基本自测、错误诊断和完整技术文档。

### 2.2 建议作为 V1.0 完整版交付

- 最多 100 段路径。
- 梯形、S 形、正弦三种加减速曲线。
- 段间延时等待。
- 段间输入信号等待。
- 指定下一段和有限循环。
- 暂停、继续、减速停止和立即停止。
- 参数 CRC、双备份和恢复默认值。
- 逻辑分析仪脉冲数量、频率和曲线验证。

### 2.3 V1.1 或加分项

- AB 相正交脉冲输出。
- 外部输入回读脉冲的硬件自诊断。
- 伺服到位、报警及编码器位置监控。
- 多轴扩展。
- 更高脉冲频率。

### 2.4 当前不在范围内

- 闭环位置控制和编码器误差补偿。
- 多轴直线、圆弧插补。
- 电子凸轮和龙门同步。
- 完整机械回零 ZRN 指令。
- 完整复刻信捷 DRVI、DRVA、PLSF、STOP 和 GOON 指令语法。
- 兼容信捷 HD、HSD、SFD、SM 等软元件地址。
- 复制 XDPPro 的 PLSR 参数配置界面。
- 齿轮间隙补偿和 FOLLOW 前馈控制。

## 3. 硬件和系统要求

| 编号 | 需求 | 优先级 | 验收方式 |
|---|---|---|---|
| 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 | 上电及复位过程中输出保持无效 | 必须 | 上电、复位波形测试 |

### 3.1 已知板级点位

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 数据手册、板卡原理图和实测确认。

## 4. 脉冲输出要求

| 编号 | 需求 | 建议指标 | 优先级 |
|---|---|---|---|
| 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 输出电路、伺服输入规格和上板测试决定。

## 5. 定位模式

### 5.1 相对定位

相对定位的输入值表示相对当前位置需要移动的脉冲数:

```text
目标位置 = 当前逻辑位置 + 相对位移
```

- 正数表示正向运动。
- 负数表示反向运动。
- 正常完成后更新逻辑位置。
- 中途停止时按实际已发脉冲更新逻辑位置。

### 5.2 绝对定位

绝对定位的输入值表示目标逻辑坐标:

```text
实际输出位移 = 目标绝对位置 - 当前逻辑位置
```

- 当前位置必须有效。
- 位置未建立时禁止绝对定位,并返回错误。
- 支持设置当前位置和当前位置清零。
- 绝对定位是 PLC 的逻辑坐标功能,不代表伺服具有绝对值编码器。

## 6. S0、S1、S2、D 功能模型

项目采用与信捷 PLSR 相似的逻辑模型,但不要求使用相同的物理寄存器地址。

| 参数 | 本项目含义 | 主要内容 |
|---|---|---|
| S0 | 路径数据块 | 总段数、每段频率、脉冲数、等待和跳转 |
| S1 | 用户执行参数 | 相对/绝对模式、起始段号、执行方式 |
| S2 | 运动参数配方 | 加减速斜率、曲线、最高速度、起止速度 |
| D | 输出轴/脉冲点 | 脉冲输出点及其对应的轴配置 |

建议的软件接口关系:

```text
PLSR_Start(S0路径, S1执行参数, S2参数套组, D输出轴)
```

### 6.1 S0 路径数据

每段至少包含:

```text
有符号脉冲数量
目标频率
等待类型
等待参数
下一段编号
```

### 6.2 S1 用户参数

至少包含:

```text
相对/绝对定位模式
起始执行段号
前台/后台执行方式
命令超时时间
```

### 6.3 S2 运动参数套组

每个输出轴建议提供 5 套参数(0~4):

- 第 0 套用于上位机运行时调整。
- 第 1~4 套用于保存预设运动配方。

每套至少包含:

```text
默认频率
最高频率
起始频率
结束频率
默认加速时间
默认减速时间
加减速曲线
频率刷新周期
```

### 6.4 D 输出配置

每个轴至少包含:

```text
脉冲输出点
方向输出点
脉冲有效极性
方向有效极性
方向建立时间
```

## 7. 多段路径要求

| 编号 | 需求 | 优先级 |
|---|---|---|
| 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 |

多段路径执行期间,除当前段目标频率外,其余结构参数修改不应影响已经启动的任务。新参数在下一次启动时生效。

## 8. 加减速要求

| 编号 | 曲线 | 优先级 | 说明 |
|---|---|---|---|
| ACC-01 | 无加减速 | 必须 | 调试和低速场景使用 |
| ACC-02 | 直线/梯形 | 必须 | 首个实现和基础验收曲线 |
| ACC-03 | S 形 | 必须 | 降低机械冲击 |
| ACC-04 | 正弦曲线 | 建议 V1.0 | 对标信捷增强能力 |

其他规则:

- 起始频率和结束频率不得超过最高频率。
- 目标频率超过最高频率时拒绝启动,不进行静默截断。
- 加减速距离不足时自动生成三角速度曲线。
- 加减速过程中必须保证最终脉冲总数准确。
- 同方向连续段根据完成/后续模式决定在段边界达到本段速度还是下一段速度。
- 运行中修改目标频率时,按照当前曲线平滑过渡。

## 9. 运行控制

| 编号 | 命令 | 行为 | 优先级 |
|---|---|---|---|
| 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 | 执行内部自测 | 必须 |

### 9.1 前台完成模式

- 调用任务等待运动完成、停止、超时或错误。
- 使用 uC/OS-II 信号量或事件通知。
- 禁止在中断上下文中等待。

### 9.2 后台运行模式

- 参数校验且成功启动后立即返回。
- 调用方通过状态接口读取结果。
- 运行中允许调频、暂停、继续和停止。

## 10. 状态机和状态数据

状态至少包括:

```text
UNINITIALIZED 未初始化
IDLE 空闲
ACCEL 加速
RUN 运行
DECEL 减速
WAIT 段间等待
PAUSED 暂停
COMPLETED 完成
STOPPED 停止
ERROR 错误
```

上位机至少可以读取:

- 当前状态和错误码。
- 当前段号和总段数。
- 当前方向。
- 当前设定频率和目标频率。
- 本段已发、剩余脉冲数。
- 本次任务已发、剩余脉冲数。
- 当前逻辑位置。
- 正向、反向和总累计脉冲数。
- 最近一次完成或停止原因。
- 当前使用的 S2 参数套组。
- 参数版本、保存序号和 CRC 状态。

## 11. Modbus 要求

现有 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 |

建议采用“影子参数 + 提交命令”机制:

```text
上位机写影子参数
发送参数提交命令
完整校验
原子复制到运行参数
允许启动
```

具体 Modbus 寄存器地址在《PLSR Modbus 通信协议》中单独定义,避免与现有通信历史区冲突。

## 12. 掉电保存要求

需要保存:

- 脉冲和方向输出点。
- 输出极性和方向建立时间。
- S2 参数套组。
- 默认运行模式。
- 累计脉冲数。
- 逻辑当前位置及有效标志。
- 数据版本、序号和 CRC。

保存策略:

- 配置参数使用内部 Flash 双备份。
- 新副本校验成功后再替代旧副本。
- 避免每个脉冲或每毫秒写 Flash。
- 累计位置在任务完成、清零、设置位置及固定周期检查点保存。
- Backup SRAM 可用于提高异常复位后的恢复精度。
- 如果板卡没有 VBAT、FRAM 或掉电检测电路,不能承诺任意断电瞬间零脉冲误差恢复。
- 复位或重新上电后不得自动恢复电机运动。

## 13. 自测与诊断

### 13.1 内部自测

- 参数结构版本和 CRC 检查。
- 输出点冲突检查。
- 定时器时钟和分频计算检查。
- 频率范围检查。
- 路径段数、跳转和循环检查。
- 64 位累计计数溢出检查。
- 状态机非法转换检查。

### 13.2 外部测试

- 使用示波器或逻辑分析仪测量输出频率。
- 统计实际脉冲边沿数量。
- 检查占空比、方向建立时间及方向切换。
- 检查梯形、S 形和正弦频率曲线。
- 连续运行和频繁启停压力测试。
- 可选使用输入点回接输出脉冲进行硬件自诊断。

## 14. 错误码要求

至少包含:

```text
参数未初始化
输出点非法
脉冲点与方向点冲突
频率为零或超限
脉冲数非法
段数非法
段参数非法
跳转段号非法
路径循环超限
绝对位置未建立
模块忙
非法状态命令
定时器初始化失败
Flash数据无效
Flash保存失败
等待输入超时
立即停止
内部计数异常
```

发生严重错误时,模块必须停止装载新脉冲,并使输出回到安全无效电平。

## 15. 验收标准

| 编号 | 验收项 | 合格标准 |
|---|---|---|
| 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 | 上电安全 | 上电和复位期间无意外脉冲 |

## 16. 交付物

- PLSR 软件源代码和头文件。
- 硬件定时器、GPIO 和板型适配代码。
- Modbus 寄存器及命令协议。
- Flash 参数保存模块。
- PLSR 需求规格书。
- PLSR 软件设计说明书。
- 单元测试和上板测试方案。
- 测试记录及测试报告。
- 上位机调试或测试工具。
- 示例程序和使用说明。

## 17. 待确认事项

以下项目在开始硬件实现前必须确认:

1. Q0~Q3 与 STM32 定时器通道的准确映射。
2. 输出电路的最高可靠频率和有效电平。
3. 伺服驱动器采用 PULSE/DIR 还是 CW/CCW 接口。
4. 驱动器的有效边沿、最小脉宽和方向建立时间。
5. 首版只验收 XDM-60T4-E,还是同时验收 T10-E。
6. 100 段、外部等待和跳转是否全部列为 V1.0 强制功能。
7. 掉电位置恢复允许的误差和板卡是否具有 VBAT。
8. 是否需要将实际距离单位(mm、um)换算放入 PLSR 模块。
9. 是否需要伺服报警、到位及正负限位输入。
10. 频率上限最终按 100 kHz 还是更高指标验收。

## 18. 建议实施顺序

1. 确认定时器和 Q 点映射。
2. 完成单段、固定频率和精确脉冲计数。
3. 完成方向、相对定位和绝对定位。
4. 完成梯形加减速及运行调频。
5. 完成前台/后台控制和状态机。
6. 接入 Modbus 参数提交与状态快照。
7. 完成多段、等待和跳转。
8. 完成 S 形及正弦曲线。
9. 完成 Flash 保存、自测和诊断。
10. 开展压力测试并整理交付文档。


BIN
Document/PLSR_document/信捷XD_XL系列PLC定位控制手册_PD02_20260510_V1.3.pdf Ver fichero


+ 1486
- 1482
EWARM/Modbus.ewd
La diferencia del archivo ha sido suprimido porque es demasiado grande
Ver fichero


Cargando…
Cancelar
Guardar