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

(菲尼克斯自动化)

最新视频
WAIN连接器,全链路守护数据中心的稳定运行   
利旧焕新向未来——ABB《我们的回答》第二季   
福禄克钢铁冶金行业测温解决方案专题
魏德米勒SNAP IN鼠笼式联接技术试用活动
Creo:在更短的时间内交付更好的设计
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
2026大湾区智能制造与机器人创新峰会报名
2026大湾区智能制造与机器人创新峰会报名

2026 年两会政府工作报告明确提出深入推进数字中国建设,力争将数字经济核心产业增加值占 GDP 比重提升至 12.5%

重新定义可靠传动,共同创造美好未来!
重新定义可靠传动,共同创造美好未来!

完美无谐波 GH180 变频器于1994 年问世,是变频器行业的一次重大技术变革,在可靠性和创新方面不断树立工业标准。伴

在线会议
热门标签

社区