| @@ -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 相输出和脉冲诊断属于附加题,若实现,所需寄存器及协议由项目另行设计,不占用或改变上述 | |||||
| 基础功能地址和语义。 | |||||