### SPC3-固件源码详细说明3
#### DP从设备软件设计方案
在智能DP从站的开发过程中,为了确保高效稳定运行,通常将软件结构设计为**主程序模块/中断处理模块**两种形式。这两种模块分别针对不同时间敏感度的任务进行了优化。
- **主程序模块**:主要负责系统的初始化工作以及对寄存器状态的查询,并根据当前状态执行相应的任务。这些任务往往对时间的要求不是特别高,例如处理IN/OUT数据、诊断报文等。
- **中断处理模块**:主要处理对时间要求较高的任务,例如设备的上线/下线处理、参数化报文处理、从设备通道配置报文处理、设备地址报文以及设备波特率变更报文处理等。
下面详细介绍SPC3在主程序模块和中断处理模块中的具体实现。
#### 主程序模块工作流程
**SPC3初始化**是主程序模块中非常关键的一个环节,主要包括以下几个步骤:
1. **SPC3中断配置**:SPC3支持多达11种类型的中断,用户可以根据实际需求选择性地启用或禁用这些中断。SPC3 RAM内的中断屏蔽寄存器(IMR)地址为0x04,用户可以通过该寄存器控制哪些中断可以被SPC3响应。
2. **用户定时器配置**:为了避免用户程序出现异常导致设备故障,SPC3内置了一个用户定时器。一旦定时器超时,则认为用户程序出现错误,SPC3会自动切换工作状态。用户可以在SPC3 RAM的0x18和0x19地址设置定时器的时间。
3. **设备地址设置**:SPC3通过0x16H地址来写入设备地址。
4. **制造商标识设置**:SPC3 RAM内0x3a和0x3b地址用于设置制造商标识。
5. **缓冲区地址及长度计算**:计算各个缓冲区的地址和长度,如输入/输出缓冲区、诊断处理缓冲区、参数化缓冲区等。需要注意的是,长度值是以段为单位的。
#### 中断处理模块工作流程
SPC3仅提供一个中断,但在中断响应后,用户程序需要根据中断请求寄存器(IRR)中的内容来判断具体的中断类型。IRR的地址为0x00和0x01。中断处理模块主要执行以下任务:
- **PRM报文处理**:检查并处理新的PRM(Parameterization Message)报文,这类报文用于从设备的参数化过程。
- **CFG报文处理**:检查并处理新的CFG(Configuration Message)报文,这类报文用于设备的配置过程。
- **SSA报文处理**:检查并处理新的SSA(Station Address Assignment Message)报文,这类报文用于分配设备地址。
#### DP从设备调试方案
调试智能DP从设备是一个较为复杂的过程,要求开发者具备PROFIBUS DP系统的应用经验。本文提出两种调试方案:
- **简单设备调试方案**:
- **系统构成**:PC + SIEMENS SCP5611接口卡 + COM PROFIBUS软件
- **方案说明**:此方案主要用于调试设备的基本协议一致性,调试过程相对简单,但无法验证设备的互操作性。
- **系统调试方案**:
- **系统构成**:PC + SIEMENS SCP5611接口卡 + STEP7软件 + PLC S7-300 + SIEMENS ET200M
- **方案说明**:此方案可以全面调试、测试和验证智能设备的功能与性能,但需要开发者具备一定的PROFIBUS DP系统配置和组态经验。
### 总结
通过对SPC3固件源码的深入分析,我们了解到主程序模块和中断处理模块在智能DP从站开发中的重要性。此外,通过两种调试方案的设计与实施,能够帮助开发者有效解决在开发过程中遇到的问题,提高设备的整体性能与可靠性。对于希望进一步了解相关内容的读者,建议参考SPC3用户手册和DP协议规范,更多资料可以从官方网站www.fieldbuses.com下载。