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

(菲尼克斯自动化)

最新视频
图尔克亮相2025上海工博会精彩花絮   
探馆 | 深化“双元本地化”战略,博世力士乐以全球首发新品兑现承诺   
研祥金码
重新定义可靠传动,共同创造美好未来!
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
研祥金码R-6000系列读码器调研活动
研祥金码R-6000系列读码器调研活动

Regem Marr研祥金码R-6000H智能读码器,拥有高精度AI算法,精准读取各类条码,在多个行业内帮助企业降本增效

立刻注册,赢取好礼!西门子2025工博会系列直播活动
立刻注册,赢取好礼!西门子2025工博会系列直播活动

步入9月,即将迎来工业人一年一度的相聚时刻,9月23-25日,第五届西门子工业论坛 如约而至!通过三日全天候直播,我们将

在线会议
热门标签

社区