实现编码器行规和PROFIDrive的编码器软件框架

1 实现原理

本文实现一个软件框架,遵循PROFINET编码器行规(Profile Encoder for PROFIBUS and PROFINET),同时参照PROFIdrive行规标准(4.1版本)。

2 适用范围

  • 编码器制造商为现有产品增加PROFINET通信接口
  • 自动化设备厂商开发PROFINET接口编码器新产品

3 功能框图

encoder-profidrive

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)    收藏  举报

导航