在PLCnext环境中,由C++开发的PLM程序可以和梯形图、ST语言等IEC61131-3程序一样循环执行,为处理复杂任务提供了可行的解决方案。利用C++语言丰富的开源资源,可以在控制器上实现各式各样的功能扩展。
为了帮助大家快速掌握PLCnext C++编程,我们提供了自动生成模板工具,帮助大家快速的构建C++工程。
基于Excel和Visual Studio,自动生成工具通过VSTO(Visual Studio Tools for Office)技术提取Excel表中的数据,生成XML文件,再将XML文件转化为工程文件。
主要功能
1、自动生成外围函数
在Excel表中配置输入输出及其他中间变量,自动生成变量定义、初始化、输入输出映射、报警检测、日志记录等外围函数;
2、规范设计程序的运行流程
规范设计程序的运行流程,并且可以自定义状态机,实现程序状态切换;
3、生成核心控制模板
生成核心控制函数模板,在模板中客户可以进行自己的算法设计。
模板介绍
在模板的Excel工作簿中,最右侧是Visual Studio开发的VSTO插件,包含,刷新、生成表格、和生成工程源文件的选项。Settings工作表中的内容是工程配置文件,可以指定名称、目标控制器的sdk设置。
工作簿中的每个工作表有不同的功能:
在Input、Output、Param表中,指定变量的名称、类型、初始值和范围,在实际过程中如果超过范围限制会触发报警。
除了在此指定范围外,还可以在Alarm表中自定义报警范围。
在完成变量定义后,点击VSTO插件处的“Generate Pages”指令,自动生成了ErrorList工作表定义系统故障列表。
随后点击“Generate Controller Source Code”。
定义
初始化
故障检测
在StateMachine表中,可以定义状态名称和切换条件,对于每个状态,如果”Next State”中标记为Action,那么Exit Condition列中的函数为该状态要执行的操作,而如果”Next State”中标记为另外一个状态,Exit Condition列中的表达式为从当前状态切换到下一状态的条件。
随后点击“Generate Controller Source Code”,可以自动生成状态和切换条件。
而在StateMachine中定义的函数,如上图中的doPID()函数,可以在Algorithm文件夹下实现,客户也可以方便的加入自己设计的算法函数。
在完成配置之后,直接进行编译、打包,即可生成完整的工程文件。
基本原理
基本的PLM程序每周期会刷新输入输出变量,同时执行Execute()函数。自动生成模板对基本PLM函数进行了扩充,模板生成了全局变量g_ChannekData,它包含了系统Excel表中定义的所有变量,每个变量配备初始化和故障检测函数,同时在每个周期与PLC系统进行输入输出交互。StateMachine()函数被Execute()调用,每周期运行当前状态应执行的函数,并且检测是否需要切换到另外的状态。
自动生成模板可以完成工程大部分配置,自动生成了大量外围程序,简化了编程的工作。通过这个模板,可以帮助大家快速的配置和使用PLCnext C++集成功能。
(菲尼克斯自动化)