diff --git a/Document/PLSR_document/更新的需求/参数表-2026.xlsx b/Document/PLSR_document/更新的需求/参数表-2026.xlsx new file mode 100644 index 0000000..d6d9cf9 Binary files /dev/null and b/Document/PLSR_document/更新的需求/参数表-2026.xlsx differ diff --git a/Document/PLSR_document/更新的需求/实现PLSR指令(2026) - 需求明确版.md b/Document/PLSR_document/更新的需求/实现PLSR指令(2026) - 需求明确版.md new file mode 100644 index 0000000..53cab2a --- /dev/null +++ b/Document/PLSR_document/更新的需求/实现PLSR指令(2026) - 需求明确版.md @@ -0,0 +1,248 @@ +## 实现PLSR指令(明确需求版) + +## 一、任务要求 + + 参考信捷PLC设备PLSR指令手册,实现下位机PLSR指令。 + +### 1、整体任务要求 + +- 书写项目文档,包含书写规格书、方案书、测试大纲。 +- 代码管理清晰,以及编写规范。 + +### 2、PLSR指令任务要求 + +* 设计PLSR指令实现功能; + * 可脱离仿真器运行; + * 实现1路PLSR功能,脉冲输出端子在Y0~Y3中可选择,方向端子固定Y12~Y15; + * 脉冲发送频率、发送个数准确; +* 能记录累计发送的脉冲个数,累计值可通过通信方式清零; +* 脉冲输出方式; + + * 单相(脉冲+方向)脉冲,脉冲个数为正时,正向发脉冲,脉冲方向端子为ON;脉冲个数为负时,反向发脉冲,脉冲方向端子为OFF; +* 脉冲发送模式: + + - 支持完成模式、后续模式。 +* 运行模式; + + * 支持相对模式、绝对模式; + * 绝对模式时,如果设定的脉冲个数与累计的脉冲个数相等时,不动作; +* 加减速:支持直线加减速、S曲线加减速、正弦曲线加减速; +* 脉冲速度:支持设置起始速度、终止速度、脉冲默认速度(匀速) +* PLSR多段脉冲输出功能实现; + + * 脉冲总段数范围:1~10段; + * 起始执行段数:脉冲指令从“起始执行段数”开始执行; +* 等待条件 + - 当前段脉冲发送完成后,进入等待,“等待条件”满足后,跳转至指定段; + - 等待条件包括:Wait时间、Wait信号(X点)、ACT时间、EXT信号(X点)、EXT信号或脉冲发送完成; + * 单段脉冲参数配置: + * 脉冲频率,范围:1HZ~100KHZ,脉冲频率在脉冲指令执行过程中修改后立即生效; + * 脉冲个数,范围:-2147483648~2147483647,设置负数表示反向发脉冲; + * 跳转段数,如果设置为0,表示默认跳转至下一段脉冲,最后一段脉冲的跳转段数设置为0,表示结束脉冲输出功能; +* 断电保存数据: + * 系统参数数据、记录数据可掉电保持; + * 上电后自动加载保存数据,并进行参数配置; +* 配置参数; + + * 脉冲方向端子可选择; + * 脉冲输出端子可选择; + * 脉冲总段数可设置; + * 起始执行段数可设置; + * 运行模式可设置; + * 加减速模式可设置; + * 等待条件可设置; + * 加速时间、减速时间可设置; + * 第n段的脉冲频率、脉冲个数、跳转段数可设置(n:1~10); +* PLSR指令功能自测; + +### 4、通信任务要求 + +- 使用一种通信方式(modbus)监控和实时修改PLSR的参数; +- 自制触摸屏或者上位机界面,实现PLSR题目涉及的参数读、写功能。(二选一,需要触摸屏可申领) + +### 5、可选要求 + +* 实现PLSR输出AB相脉冲,可控制输出方向; +* 支持对输出的脉冲信号进行诊断: + - 诊断输出脉冲的个数是否与设置一致; + - 诊断输出脉冲的频率、加减速曲线是否与设置一致; + +## 二、时间要求 + +1个月(4周) + +## 三、任务器材和软件工具 + +| 序号 | 器材 | 数量 | +| ---- | ---------------------------------------- | ---- | +| 1 | XDM-60T4-E/XDM-60T10-E | 1台 | +| 2 | ST-LINK | 1台 | +| 3 | 电源线 | 1根 | +| 4 | XVP线 | 1根 | +| 5 | USB转串 | 1个 | +| 6 | DB9F侧线 | 1根 | +| 7 | 编码器线CP-SP-M-03 | 1根 | +| 8 | 动力线CM-P15-01 | 1根 | +| 9 | 开关电源 | 1个 | +| 10 | 驱动器DF3E-0410 | 1个 | +| 11 | 电机MF3S-60CS30B1-504 | 1个 | +| | **6~11是伺服相关的设备,一组有一套即可** | | + +| 软件工具 | 版本 | +| -------- | ---- | +| | | +| | | +| IAR8.40 | 8.40 | + + + +## 四、XDM-60T4-E硬件信息 + +- 芯片型号: STM32F407IG ,晶振12MHz。 +- 引脚信息 + +| 芯片引脚 | 实际作用 | +| --------- | -------- | +| I0 | PH10 | +| I1 | PH11 | +| I2 | PG8 | +| I3 | PB4 | +| I4 | PB5 | +| I5 | PG12 | +| I6 | PB6 | +| I7 | PB7 | +| I10 | PF10 | +| I11 | PA15 | +| I12 | PB3 | +| I13 | PA14 | +| I14 | PI4 | +| I15 | PI5 | +| I16 | PI6 | +| I17 | PI7 | +| I20 | PE2 | +| Q0 | PF6 | +| Q1 | PF8 | +| Q2 | PF7 | +| Q3 | PF9 | +| Q4 | PI8 | +| Q5 | PE6 | +| Q6 | PE5 | +| Q7 | PE4 | +| Q10 | PG7 | +| Q11 | PG6 | +| Q12 | PH9 | +| Q13 | PH8 | +| Q14 | PH7 | +| Q15 | PH6 | +| Q16 | PF11 | +| Q17 | PB0 | +| Q20 | PH5 | +| USART1_TX | PA9 | +| USART1_RX | PA10 | + +## 五、XDM-60T10-E硬件信息 + +- 芯片型号:STM32F407ZG,晶振12MHz。 +- 引脚信息 + +| 芯片引脚 | 实际作用 | +| --------- | -------- | +| I0 | PA0 | +| I1 | PA1 | +| I2 | PG8 | +| I3 | PB4 | +| I4 | PB5 | +| I5 | PG12 | +| I6 | PB6 | +| I7 | PB7 | +| I10 | PF10 | +| I11 | PA15 | +| I12 | PB3 | +| I13 | PA14 | +| Q0 | PF6 | +| Q1 | PF8 | +| Q2 | PF7 | +| Q3 | PF9 | +| USART1_TX | PA9 | +| USART1_RX | PA10 | + +## 六、Modbus 参数地址表 + +本节整理自《参数表-2026.xlsx》。表内地址为 Modbus 寄存器地址;所有双字参数均占用两个连续的 +16 位寄存器,并按“低地址存低 16 位、高地址存高 16 位”的顺序保存。 + +### 1、公共配置参数 + +| Modbus 地址 | 参数 | 取值及说明 | +| --- | --- | --- | +| `0x1000` | 脉冲发送端子 | `0`:Y0;`1`:Y1;`2`:Y2;`3`:Y3 | +| `0x1001` | 脉冲方向端子 | `0`:Y12;`1`:Y13;`2`:Y14;`3`:Y15 | +| `0x1002` | WAIT 信号 | `0`:X4;`1`:X5 | +| `0x1003` | EXT 信号 | `0`:X4;`1`:X5 | +| `0x1004` | 脉冲发送模式 | `0`:完成模式;`1`:后续模式 | +| `0x1005` | 脉冲方向延时时间 | 单位:ms | +| `0x1006` | 脉冲方向逻辑 | `0`:正逻辑;`1`:负逻辑 | +| `0x1007` | 脉冲加减速模式 | `0`:直线;`1`:S 曲线;`2`:正弦曲线 | +| `0x1008` | 运行模式 | `0`:相对模式;`1`:绝对模式 | +| `0x1009` | 脉冲总段数 | 范围:1~10 | +| `0x100A` | 起始执行段数 | 指令从指定段开始执行 | +| `0x100B~0x100C` | 脉冲默认速度 | 32 位,单位:Hz | +| `0x100D~0x100E` | 脉冲起始速度 | 32 位,单位:Hz | +| `0x1010~0x1011` | 脉冲终止速度 | 32 位,单位:Hz | +| `0x1012` | 默认速度加速时间 | 单位:ms | +| `0x1013` | 默认速度减速时间 | 单位:ms | + +### 2、单段参数布局 + +每段占用一个 `0x10` 寄存器跨度。第 `n` 段的基地址为: + +```text +segment_base = 0x1100 + (n - 1) × 0x10,n = 1~10 +``` + +| 相对偏移 | 参数 | 取值及说明 | +| --- | --- | --- | +| `+0~+1` | 第 n 段脉冲频率 | 32 位,单位:Hz,范围:1 Hz~100 kHz | +| `+2~+3` | 第 n 段脉冲个数 | 32 位有符号数;负数表示反向 | +| `+4` | 第 n 段等待条件 | `0`:WAIT 时间;`1`:WAIT 信号;`2`:ACT 时间;`3`:EXT 信号;`4`:EXT 信号或脉冲发送完成 | +| `+5` | WAIT 时间 | 单位:ms | +| `+6` | ACT 时间 | 单位:ms | +| `+7` | 第 n 段跳转编号 | `0` 表示默认跳转至下一段;最后一段为 `0` 时结束输出 | + +各段具体地址如下: + +| 段号 | 脉冲频率 | 脉冲个数 | 等待条件 | WAIT 时间 | ACT 时间 | 跳转编号 | +| ---: | --- | --- | --- | --- | --- | --- | +| 1 | `0x1100~0x1101` | `0x1102~0x1103` | `0x1104` | `0x1105` | `0x1106` | `0x1107` | +| 2 | `0x1110~0x1111` | `0x1112~0x1113` | `0x1114` | `0x1115` | `0x1116` | `0x1117` | +| 3 | `0x1120~0x1121` | `0x1122~0x1123` | `0x1124` | `0x1125` | `0x1126` | `0x1127` | +| 4 | `0x1130~0x1131` | `0x1132~0x1133` | `0x1134` | `0x1135` | `0x1136` | `0x1137` | +| 5 | `0x1140~0x1141` | `0x1142~0x1143` | `0x1144` | `0x1145` | `0x1146` | `0x1147` | +| 6 | `0x1150~0x1151` | `0x1152~0x1153` | `0x1154` | `0x1155` | `0x1156` | `0x1157` | +| 7 | `0x1160~0x1161` | `0x1162~0x1163` | `0x1164` | `0x1165` | `0x1166` | `0x1167` | +| 8 | `0x1170~0x1171` | `0x1172~0x1173` | `0x1174` | `0x1175` | `0x1176` | `0x1177` | +| 9 | `0x1180~0x1181` | `0x1182~0x1183` | `0x1184` | `0x1185` | `0x1186` | `0x1187` | +| 10 | `0x1190~0x1191` | `0x1192~0x1193` | `0x1194` | `0x1195` | `0x1196` | `0x1197` | + +### 3、运行监控 + +| Modbus 地址 | 参数 | 说明 | +| --- | --- | --- | +| `0x2000~0x2001` | 脉冲累计数量监控 | 32 位有符号数,可读取负数 | +| `0x2002~0x2003` | 当前脉冲发送频率 | 32 位 | +| `0x2004` | 运行状态 | 状态编码由实现定义并在通信协议中说明 | +| `0x2005` | 当前执行段 | 当前正在执行的段号 | +| `0x2006` | 错误码 | 错误码定义由实现说明 | + +### 4、控制寄存器 + +| Modbus 地址 | 位 | 功能 | +| --- | ---: | --- | +| `0x3000` | bit0 | 启动脉冲输出 | +| `0x3000` | bit1 | 停止脉冲输出(可参考) | +| `0x3000` | bit2 | 清除状态信息及脉冲累计值 | + +### 5、附加功能通信 + +AB 相输出和脉冲诊断属于附加题,若实现,所需寄存器及协议由项目另行设计,不占用或改变上述 +基础功能地址和语义。