实现基于CODESYS的PROFINET模块IO驱动

发布时间 2023-07-27 19:27:54作者: MichaelChen-99

PROFINET模块的运行机理

  • runtime启动后,PROFIENT模块以组件的形式被运行时加载;
  • 初始化IO驱动时也需要对PROFINET模块进行初始化;
  • CODESYS IDE上位机软件配置模块参数后,会将配置的相关参数下载到PROFINET模块中;
  • 完成参数配置后,runtime将周期性与PROFINET模块交互数据。

CODESYS IDE上位机编程软件中的输入/输出数据区,通过IO驱动模板中读输入、写输出函数,来和CODESYS runtime的缓冲区实现交互;

CODESYS runtime的缓冲区则通过内部通信来与PROFINET模块进行数据交互。

设计思想

基于CODESYS的PROFINET模块开发包括两点:编写PROFINET模块的设备描述文件,编写IO驱动并编译成*.so库文件。

  • 设备描述文件:需要将PROFINET IO设备的参数,以组件及其参数的形式进行定义,形成一个xml文件;
  • 驱动程序:基于CODESYS的驱动程序设计的重点内容,包括:
    • 需要安装运行时IoDrv开发模板;
    • 描述PROFINET IO模块的数据结构;
    • 正确调用设计的PROFINET接口;
    • 设计供CODESYS运行时调用的的内部接口

PROFINET模块数据结构设计

IO驱动程序的前提是设计正确描述PROFIENT模块的数据结构。

IO驱动内部接口设计

PROFINET模块的接口程序需要供CODESYS的运行时程序框架调用,接口包括以下四个部分:

  • 模块初始化,顾名思义;
  • 配置模块参数,负责解析模块组件中的参数,并下载参数到模块中
  • 向PROFINET模块发送数据
  • 从PROFINET模块接收数据

结论

基于CODESYS实现PROFINET模块的IO驱动,需要在CODESYS运行时开发包的基础上,编写PROFINET模块的设备描述文件和IO驱动程序。