• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
2025全景工博会
PLC

知识讲堂 | 基于PLCnext的C++应用模板

  2023年08月25日  

在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++集成功能。

(菲尼克斯自动化)

最新视频
直击汉诺威 | 牧川传动携前沿精密关节技术亮相   
直击汉诺威 | 联丰迅声以声学技术助力工业安全运维   
福禄克钢铁冶金行业测温解决方案专题
Creo:在更短的时间内交付更好的设计
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
普罗精工寰宇共生-普罗宇宙全球合作伙伴大会
普罗精工寰宇共生-普罗宇宙全球合作伙伴大会

在具身智能跨越商业化临界点的关键时刻,我们以“普罗精工”为核,让机器人真正胜任复杂多变的工业现场;我们以“寰宇共生”为愿

图尔克电子杂志-202604
图尔克电子杂志-202604

本期杂志将展示数字化与智能自动化解决方案不仅赋能技术,更重要的是服务于人。协助用户将复杂问题化繁为简,提高透明度与效率,

在线会议
热门标签

社区