TwinCAT3中Matlab Simulink(.m)的测试

7 篇文章 2 订阅

软件安装

  • 安装Matlab2014a、TwinCAT3.1、VS2013

Matlab 版本高于VS版本。

  • 安装"Windows Driver Kit" (WDK)

下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=11800

安装这个插件是为了能在 TwinACT 3 工程环境创建和编辑 C++模块。下载后用镜 像打开选择“Build Environment”后点击 OK。

参考《TwinCAT3_C++_Simulink教程V3.11》/TwinCAT3 的 C++使用篇/软件安装。下载好后的文件名:GRMWDK_EN_7600_1.ISO

  • 安装数字证书

参考《TwinCAT3_C++_Simulink教程V3.11》/TwinCAT3 的C++使用篇/TwinCAT3在64位操作系统中数字证书
重启后用VS新建TwinCAT项目,可以新建C++项目;

  • 安装 TE1400-Target-for-Matlab-Simulink

下载链接:
http://www.beckhoff.com/english/download/tc3-download-te1xxx.htm?id=1957281419487556。

TE1400 作为 TwinCAT3 工程插件,其功能是利用 Simulink Coder 把 Simulink 中的 模型生成实时 C/C++代码,并且进一步导出成自带输入输出接口的 TcCOM 模块, 此模块可以在 TwinCAT3 项目中实例化,并且也可以对模块的参数进行修改,最 终在 TwinCAT3 内核中实时执行。

TE1400配置

TE1400 作为 TwinCAT3 工程插件,其功能是利用 Simulink Coder 把 Simulink 中的模型生成实时 C/C++代码,并且进一步导出成自带输入输出接口的 TcCOM 模块,此模块可以在 TwinCAT3 项目中实例化,并且也可以对模块的参数进行修改,最终在 TwinCAT3 内核中实时执行。

以管理员身份运行 Matlab,登录后把当前文件夹改成 TwinCAT3 安装盘,找到 TwinCAT  Functions TE1400  SetupTwinCATTarget.p。

找到这个文件后右键选择 Run,注意:这一步是为了选择 MatlabSimulink 编译的 Module 所需要的编译器种类,是第一次运行使用 Matlab+TE1400 的时候必须执行的,以后就不必每次都操作这一步。
在这里插入图片描述
运行后在 Matlab 主窗口提示让你选择是否用本地的编译器,因为本地有 VS的编译器,Matlab 会根据系统中的信息列出本地已经存在的编译器。所以在这里选择 y 后敲回车。

当出现matlab2014a未找到支持的编译器或SDK时:
测试用matlab2014a 和VS2013,发现matlab2014a只能找到vs2013以下版本的,故安装VS2010即可。
在这里插入图片描述

Matlab/Simulink模型文件编写及配置

在Matlab2014a 中编写.m格式的算法,或直接在Simulink中编写算法,我已在前期用.m格式编写了算法,故用Simulink中的MATLAB Function功能块进行封装,如图所示:
在这里插入图片描述
在路径栏中找到模型路径,并且右键选择模型点击 open 打开模型。
在这里插入图片描述

打开 simulation 菜单栏,选择 configuration parameters 进行参数设定。
在这里插入图片描述
进入参数设定后,选择右边的树形栏中的 Solver,把其中的 Type 改成 Fixed-step。
在这里插入图片描述
选择树形栏中的 Code Generation,把其中的 System target file 改成TwinCAT.tlc 点击 Browse 可以进行选择。
在这里插入图片描述
选择树形栏中的 Tc Build,输入模块名 test_callbytask,并且选择需要导出的模块平台种类,x86 还是 x64(因为我的电脑是 64 位所以我都勾选)
在这里插入图片描述
TC interface 中设置模块中哪些部分支持 ADS 接口,并且也可以设置模块中不仅仅输入输出可以 mapping,也可以开放其他参数支持 mapping,比如parameter。
在这里插入图片描述
选择树形栏中的 Tc Advanced,修改相应参数,并且可以按照截图中勾选部分选项。
Task assignment:Manualconfig;
CallBy:CyclicTask;
Step size:UseTaskCycleTime;
PLC Function Block:None;
在这里插入图片描述
保存设置后,回到模型文件,在工具栏中找到 build,编译并且转换成 TcModule。
在这里插入图片描述
打开 Diagnostic View (在对话框的底部)中可以看到生成过程,提示 Module 生成完成。

若Build有错误,重启电脑尝试。

在这里插入图片描述
发现在 TwinCAT/3.1/CustomConfig/Modules 路径下会生成名字和案例模型名字一样的文件夹。
在这里插入图片描述

TwinCAT3配置

创建 TC3 新项目,打开 SYSTEM,右键 TcCOM Objects 添加新项。TC3 会自动找到之前生成的模块,选中后点击 OK 进行添加。
在这里插入图片描述

添加好后我们可以发现 TcCOM Objects 下出现 matlab 生成的 Module,并且Simulink中设置的变量出现在 IO 位置,方便和 PLC 程序或者硬件 IO 进行变量连接。
右键 Tasks 添加新项。
在这里插入图片描述
分配 Task 给模块。
在这里插入图片描述

在PLC中新建程序,并在MAIN中定义变量:
在这里插入图片描述
生成PLC程序:
在这里插入图片描述
链接PLC变量和Simulink中的变量:
在这里插入图片描述
Active configuration 激活配置并下载程序。登录后在PLC中可实现对算法的控制和调试。

问题故障解决

  • exception code :0xc0000090 SSE invalid operation in task/exception
    sse invalid operation in module

把Simulink对应Task中的Floating point exception取消。

https://infosys.beckhoff.com/english.php?content=…/content/1033/te1400_tc3_target_matlab/18014402077586187.html&id=

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值