作者:赵建非 - 西门子数字化工业集团F&B技术能力中心
MFP - 多功能平台,有啥与众不同?
查一下S7-1500样本就知道,S7-1518 MFP它所有指标,无论是内存、处理速度、连接资源,还是支持的轴数等等,都完胜其它型号,一句话,最高端的S7-1500 CPU
采用实时系统和Linux系统双系统并行架构
可执行C/C++代码
可执行MATLAB / SIMULINK 开发的模型
那不就是工控界的 IT 工程师的高端玩具吗?
TIA portal V16 +
ODK 1500S V2.5(集成eclipse,所有需要JRE(Java Runtime Env))
visual studio 2019 (或者其他IDE)
PLCSIM Advance V3.0+
Chrome浏览器
3.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部分的准备工作就已经做好了。
3.2 新建一个ODK项目
当你安装好ODK1500S后,打开开始菜单中的Eclipse for ODK 1500S V2.5;创建项目
3.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头文件即可
3.4 打包
build成功后会出现下面的文件目录树
Test_CPP_MFP.scl 是portal导入外部源文件使用的;
Test_CPP_MFP.so 需要使用1518MFP的web client上传。
3.5 测试
导入外部源文件
选择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文件就是更新后的程序
(1) 先将unload的req位置为1,随后再置为0;
(2) 重新启动CPU
往期回顾
更多精彩
WinCC项目程序(水处理/废水处理/轮胎/饮料...)
VoT - 博途V17放的一个大招
大势所趋?- WinCC 虚拟化应用浅析
自动语音播报WinCC报警消息
通过Web Service与WinCC交互数据
WinCC设备运行数据-日报表
西门子WinCC Unified V16选型指南
我定框架,你填内容 - HMI设计模板
西门子全新一代人机交互系统: WinCC Unified
WinCC与 S7-200 SMART的OPC通讯
按图索数-WinCC中的“地图+数据”
WinCC报警控制摄像头自动定位
公众号: 人机常情 WinCC
( 扫码关注 )
| 微信群:西门子TIA 社区
(加好友标注:姓名-单位)
|
|
|
|