Plcsim Advanced和Simulink联合仿真——通过API

西门子官网应用中心链接:SIMATIC S7‑PLCSIM Advanced 通过 API 的联合仿真

摘要:

simulink可实现较为复杂的仿真模型,通过Plcsim Advanced提供的API与simulink实现数据交换,即实现联合仿真。

0 前言

Plcsim Advanced提供的动态链接库文件支持通过C,C++,C#及FORTRAN语言进行调用,官网示例文件展示了三种与simulink实现联合仿真的方法。使用的控制对象是一个摆锤的角度控制模型——通过给定风扇在摆弧切线上的牵引力控制摆臂的角度。这里不再对这个示例做过多介绍了,说明数和程序源文件都可以在官网下载。现在简单介绍一下通过API与simulink进行通讯的使用方法,关于C++的s-function的内部实现后面进行介绍。

1 软件版本

示例的版本为:

    MATLAB R2016a;STEP V14 Professional;S7-PLCSIM Advanced 1.0;VS2010

本文使用的软件版本:

    MATLAB R2017b;STEP V15 Professional;S7-PLCSIM Advanced 2.0;VS2017

 示例程序中使用PLCSIM中的PID做控制器,simulink中建立被控模型,在simulink中通过C++实现的S函数调用API与PLCSIM交换数据,PLC内部还整合了OPC UA示例部分等内容,因此看起来内容较多。下面,尽量简单的介绍一下使用方法。

2 使用方法

(1)在官网下载的三个示例文件夹中,打开“Simulink_Usecase1“——”S-Function“文件夹。

里面包含三个文件如下图

其中,”PLCSimAdvancedBlockLibrary.slx“是已经封装完成的函数文件。在simulink中打开文件,并将其复制到自己的simulink文件中。

 

 命令空间中提示如下内容:”[PLCSIM Advanced S-Function]: mdlInitializeSizes“。

(2)打开博途软件,新建一个项目,添加1511-1PLC:

右键,属性,设置如下:

在”PLC变量“——”默认变量表“中添加两个变量:

在PLCSIM_Adv中建立一个PLC,命名为”test_1“,将程序下载到PLC中,并启动仿真;

 

 

 

 (3)打开simulink中调用的函数块,将名称更改为"test_1"。

 

 matlab命令空间中提示如下:

 

 将仿真时间设置为”Inf“,启动仿真。在博途中将plc打到在线状态,并在监控表中添加两个变量,可以看到数据状态。

 

 

注意:如果提示错误,可以matlab先关掉,先启动PLCSIM Adv然后再设置simulink。

将matlab以管理员方式运行。

个人见解, 如有错误请指教。需要文件可以私信。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值