• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

TwinCAT3中Matlab Simulink(.m)的测试

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

软件安装

  • 安装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++使用篇/软件安装。

  • 安装数字证书

参考《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 生成完成。

发现在 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=


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi基础教程简介 - 青青啊发布时间:2022-07-18
下一篇:
Delphi7自学教程发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap