实现编码器行规和PROFIDrive的编码器软件框架
1 实现原理
本文实现一个软件框架,遵循PROFINET编码器行规(Profile Encoder for PROFIBUS and PROFINET),同时参照PROFIdrive行规标准(4.1版本)。
2 适用范围
- 编码器制造商为现有产品增加PROFINET通信接口
- 自动化设备厂商开发PROFINET接口编码器新产品
3 功能框图

4 实现内容
4.1 标准报文
标准报文81数据格式:
- 输出数据:STW2_ENC(2字节) + G1_STW(2字节)
- 输入数据:ZSW2_ENC(2字节) + G1_ZSW(2字节) + G1_XIST1(4字节) + G1_XIST2(4字节)
标准报文82数据格式:
- 输出数据:STW2_ENC(2字节) + G1_STW(2字节)
- 输入数据:ZSW2_ENC(2字节) + G1_ZSW(2字节) + G1_XIST1(4字节) + G1_XIST2(4字节) + NIST_A(2字节)
标准报文83数据格式:
- 输出数据:STW2_ENC(2字节) + G1_STW(2字节)
- 输入数据:ZSW2_ENC(2字节) + G1_ZSW(2字节) + G1_XIST1(4字节) + G1_XIST2(4字节) + NIST_B(4字节)
标准报文84数据格式:
- 输出数据:STW2_ENC(2字节) + G1_STW(2字节)
- 输入数据:ZSW2_ENC(2字节) + G1_ZSW(2字节) + G1_XIST3(8字节) + G1_XIST2(4字节) + NIST_B(4字节)
4.2 编码器状态机
编码器的状态模型:
- Offline:上电后初始状态
- Preparation:可进行非周期通信
- Synchronisation:可进行周期通信
- Operation:同步的基础上进行周期通信
4.3 功能模块及其说明
| 模块 | 功能描述 | 关键文件 | 对应文件 |
|---|---|---|---|
| PROFINET协议栈 | 处理PNIO通信、AR管理、数据交换 | PNIO stack API | iodapi_event_pdrvac1.c |
| 参数管理器 | 实现、参数数据库管理 | PdrvPar_* | pdrv_parmanager.c |
| 参数数据库 | 存储PNU参数定义与属性 | pdrv_parameter.inc | pdrv_pardatabase.c |
| 设定值通道 | 处理循环数据(位置、速度) | PdrvSpc_* | iodapi_event_pdrvac1.c |
| 配置文件处理 | 实现PROFIdrive Encoder Profile | 状态机、编码器功能 | pdrv_application.c |
| 诊断模块 | 故障/警告管理、报警上报 | PdrvDiag_* | pdrv_diagnostics.c |
| 同步模块 | IRT同步、生命符号监测 | PdrvSyn_* | pdrv_setpointchannel.c |
| 主程序 | 主任务循环 | 由嵌入式系统主任务或主循环直接调用 | usriod_main_pdrvac1.c |
| 状态机 | 编码器状态机 | - | pdrv_statemachine.c |
pdrv_application.c文件用于将所有编码器API进行封装,这些API将会定时调用,由1ms一次的中断触发。
5 GSDML文件创建
GSDML文件是PROFINET设备的必要组成部分,需包含以下关键信息:
<!-- GSDML文件关键结构示例 -->
<DeviceAccessPoint ItemName="DAP" >
<VirtualSubmoduleList>
<!-- 通信接口子模块 -->
</VirtualSubmoduleList>
</DeviceAccessPoint>
<!-- PROFIdrive API定义 -->
<ApplicationProcess Identifier="0x3A00">
<Module ModuleIdentNumber="0x00010001">
<!-- 编码器功能模块 -->
<Submodule SubmoduleIdentNumber="0x0001">
<!-- 报文83数据映射 -->
</Submodule>
</Module>
</ApplicationProcess>
6 小结
本文按照编码器标准文档为在编码器基础上实现了PROFINET功能,列出了需要实现的功能代码框架,可以基于不同的PROFINET从站芯片和协议栈实现。
posted on 2026-04-08 17:14 MichaelChen-99 阅读(6) 评论(0) 收藏 举报
浙公网安备 33010602011771号