0 概述
1518MFP(多功能平台)是1500系列高端CPU,采用双系统的设计结构,PLC的实时系统和Linux系统,这两个系统是并行进行的,注意是并行,不是并发,这两个是完全不同的概念。
本案例主要介绍的是将C++开发的代码转换成FB块,运行在PLC的实时系统中。
1 环境
- TIA portal V16 +
- ODK 1500S V2.5(集成eclipse,所有需要JRE(Java Runtime Env))
- visual studio 2019 (或者其他IDE)
- PLCSIM Advance V3.0+
- Chrome浏览器
2 实现过程
2.1 新建一个portal项目
- 创建一个新项目,项目名称定义为Test_C++_MFP(可自定义,下文中所有名称类的都可自定义,后面不再强调)
- 添加一个1518MFP CPU
- 对CPU进行属性配置
(1)启动web服务器
web服务器用于上传SO(共享对象)文件,关闭HTTPS,使用HTTP,新建用户,并赋予权限,设置密码
(2)设置IP地址
选择启用使用该端口IP访问web服务,IP地址要与PLCSIM advanced的虚拟网卡在一个网段内,否则无法仿真
(3)新建程序块
新建一个OB100(用于初始化),一个全局DB(用于存储数据)
(4)启动PLCSIM Advanced V3.0
(5)将Portal项目下载到PLCSIM Advanced V3.0
如果下载过程中出现报错,按照下图所示开启块编译时支持仿真功能
重新编译下载,应该能够成功下载,这时portal部分的准备工作就已经做好了。
2.2 新建一个ODK项目
当你安装好ODK1500S后,开始菜单会出出现一个Eclipse for ODK 1500S V2.5,打开这个编辑器
- 创建项目
2.3 在ODK中编写C++代码
- 模板文件目录树
我们自己的代码要写在src文件夹内,如果使用多文件编程,那么最终的启动文件就是Test_CPP_MFP.cpp,如果时单文件编程,那么程序要写在Test_CPP_MFP.cpp中。
def下面的Test_CPP_MFP.odk中做接口定义。
开发过程中,只需要关注这两个文件夹,其他位置都不在开发过程的考虑范围内。
- 单文件编程
(1) 在Test_CPP_MFP.cpp文件下
using namespace std; // 命名空间
void sum(int a, int b, int res); // 函数声明
void sum(int a, int b, int res){ // 函数定义
res = a + b;
}
// 下面时重点 套用模板
ODK_RESULT TestSum (const ODK_INT32& num1, const ODK_INT32& num2, ODK_INT32& result, ODK_DOUBLE& myReal)
{
sum(num1,num2,result); // 调用函数,传入实参
return ODK_SUCCESS;
}
(2) 在Test_CPP_MFP.odk文件下
// 定义函数名和接口
ODK_RESULT TestSum([IN] ODK_INT32 num1
, [IN] ODK_INT32 num2
, [OUT] ODK_INT32 result
, [INOUT] ODK_DOUBLE myReal);
对比.odk和.cpp文件你会发现他们直接的规律和套路
- 多文件编程
按照C/C++常规方法创建.h头文件即可
2.4 打包
build成功后会出现下面的文件目录树
Test_CPP_MFP.scl 是portal导入外部源文件使用的;
Test_CPP_MFP.so 需要使用1518MFP的web client上传。
3 测试
- 导入外部源文件
- 选择scl文件后右键,选择从源生成块
生成成功后出现下图所有的程序块目录,XX_load功能块代表加载;XX_unload功能块代表卸载;
XX_TestSum功能块代表C++的程序,XX表示的是创建ODK项目时候的项目名称,本例中是Test_CPP_MFP
- 上传SO文件
- 调用程序
(1) OB100 里面调用load程序load的作用是加载web server中的so文件
(2) OB1 里面调用unload程序+C++编程的代码块unload的作用是卸载web server中的so文件
stautus为0表示调用成功
4 特别声明
- 当你需要修改程序的时候,必须按照下面的步骤进行
先clean all 再build all 生成的so文件和scl文件就是更新后的程序
- 当你更换SO文件后,需要按照下面的步骤进行
(1) 先将unload的req位置为1,随后再置为0;
(2) 重新启动CPU
今天的文章c++2010如何运行程序_vs编译c源代码的程序是分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/65647.html