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
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
C和Simulink是两种常用的编程语言和开发环境,而TwinCAT是一种用于自动化控制系统的实时软件平台。在使用Simulink和TwinCAT进行开发时,可以通过联合使用它们来实现实时控制系统的设计和仿真。 SimulinkMatlab的附加模块,提供了一种图形化编程环境,用于建立并模拟动态系统模型。它基于模块化设计的思想,可以通过连接各种预定义的模块来构建复杂的系统模型。用户可以使用Simulink内置的图形库来创建各种不同的模块,并通过线条连接这些模块以建立系统模型。在建立好模型后,用户可以使用Simulink进行仿真,观察系统在不同输入条件下的动态响应。 TwinCAT是Beckhoff开发的实时控制系统软件平台。它基于Windows操作系统,并提供了实时扩展功能,可以在普通的PC上实现实时控制应用。TwinCAT提供了多种编程接口,包括C、C++、VB和Matlab/Simulink等。使用Simulink与TwinCAT结合,可以通过将Simulink模型转化为TwinCAT代码,将多个工程师的工作整合到一个整体,进一步简化和加速实时控制系统的开发过程。 总之,通过联合使用Simulink和TwinCAT,可以实现方便快捷的实时控制系统开发和仿真。Simulink提供了图形化编程环境,让用户能够更直观地设计和建立系统模型。而TwinCAT则提供了实时环境,能够运行和测试这些模型,并最终实现实时控制。这些功能的结合使得使用Simulink和TwinCAT的开发过程更加高效和可靠。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值