栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Simulink 模型生成C/C++代码到Twincat内核实施执行 个人使用总结

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Simulink 模型生成C/C++代码到Twincat内核实施执行 个人使用总结

TE1400 作为 TwinCAT3 工程插件,其功能是利用 Simulink Coder 把 Simulink 中的 模型生成实时 C/C++ 代码,并且进一步导出成自带输入输出接口的 TcCOM 模块, 此模块可以在 TwinCAT3 项目中实例化,并且也可以对模块的参数进行修改,最 终在 TwinCAT3 内核中实时执行。 (1)configuration parameters 进行参数设定 (2)Solver,把其中的 Type 改成 Fixedstep (3)Code Generation,把其中的 System target file 改成TwinCAT.tlc (4)Tc Build,输入模块名 test_callbytask( 被 PLC 条件调用是 call by module),并且选择需要导出的模块平台种类,x86 还是 x64(电脑是 64 位都勾选) (5)Tc Advanced,修改相应参数 : Task assignment : Manualconfig ; CallBy:CyclicTask ; Step size : UseTaskCycleTime ; PLC Function Block : None ; 5.1    这次不希望模块自动周期执行,而是希望 被 PLC 条件调用    (TE1400 生成模块 call by module) 1. 找到 CallBy ,设置为 Module 2.  在 Tc Advanced 中找到 PLC Function Block,设置成 Module specific FB with properties for all parameters  (具有所有参数属性的模块特定FB) ,这样就会在模块生成的时候自动创建 PLC 调用此模块的功能块 以上操作完成后点击左下角的 Apply (6) build ,编译并且转换成 TcModule (7)在 TwinCAT/3.1/CustomConfig/Modules 路径下会生成名字和案例模型名字一样的文件夹 test_callbytask            或者 call by module (8)现里面有.tmc 描述文件,x64 和 x86 的二进制文件,以及 1 个 xml 文件,这些文件都是经过编译后的离线文件 Twincat: (1)创建 TC3 新项目 (2) 打开 SYSTEM ,右键 TcCOM Objects 添加新项,TC3 会自动找到之前生成的模块 (3)添加好后我们可以发现 TcCOM Objects 下出现 matlab 生成的 Module,并且 3 个变量出现在 IO 位置,方便 和 PLC 程序或者硬件 IO 进行变量连接 (4) Tasks 添加新项,分配 Task 给模块 (5)active configuration 激活配置并下载程序,通过 block diagram 可以查看模块在线的状态 (6) 给 2 个输入一个值 setpointTemp : 100 , feedbackTemp : 99

采用call by module的方法:

1. reload 重新上载下模块,并且选择新的模块进行添加

2. PLC 项目,右键 POUs 点击 Import PLCopenXM 

(在默认路径 C:TwinCAT3.1CustomConfigModulestest_callbymodule 中 找到 test_callbymodule_PlcOpenPOUs.xml 并且点击 open 加入到 PLC 项目 中)

3. 开始写程序,首先对于模块接口功能块进行变量声明,在 oid 中输 入 TcCOM 中模块的 Object Id

( Object ID 可以在 TcCOM 中加载的模块中) 调用相应的 method 进行模块调用,并且也可以直 接访问到输入输出等参数进行赋值

 4. 分配模块 Task 为 PlcTask(必须和所调用 PLC 的 Task 一致)

模块自动周期执行下的task为:

 模块被 PLC 条件调用的task为:

 激活并下载程序后发现即使输入给了值,输出也没有变化

只有触发了 input ,使 execute 方法被调用才可以执行 simulink 模型

实现数据传输:

PCL输入是simulink的输出

——————————————————————————————————————

TcCOM实例的数据交换通过进程映像的映射进行。Simulink®输入和Simulink®输出被自动映射为过程图像中的输入或输出,并可以链接到I/O或其他对象。

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/983205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号