文件交换

图像缩略图

调用Simulink的共享库金宝app

版本5.0(280 kB) 米哈伊尔
本文讨论了从Simulink模型调用共享库的几种方法金宝app

53下载

更新02年5月20日

查看版本历史记录

查看许可证

编辑注意:此文件被选为Matlab Central挑选本周

本文介绍了从Simulink模型调用共享库的各种方法。金宝app考虑显式(加载时间)和隐式(运行时)链接。

引用

Mikhail(2021)。调用Simulink的共享库金宝app(//www.tatmou.com/matlabcentral/fileexchange/44197-calling-shared-libraries-from-金宝appsimulink),matlab中央文件交换。检索到

评论和评级(27.

Hedi Basbas.

感谢Mikhail您的回复。你的意思是因为延伸了它?你能解释一下他为什么不会以及如何从图书馆调用外部例程?

Nikita Sevostianov.

米哈伊尔

您如何假设您的Windows DLL将在DSPACE板上工作?它不会。

Hedi Basbas.

嗨,我的函数在Simulink上完美地使用DLL编译为MEX文件。金宝app但是,一旦,我希望用RCP和HIL在DSPACE板上的S功能构建模型有一些链接问题==>它找不到DLL(或MEX)中定义的函数。你有解决方案吗?

米哈伊尔

我认为可以安全地说所有所描述的方法都支持进出指针。金宝app选择您的首选方法,并进入文档以获取更多详细信息。例如,这里是LCT://www.tatmou.com/help/金宝appsimulink/slref/inputs-passed-by-value-or-address-to-legacy-functions.html.

别尔伯尔

您是否对S-Function使用基于指针的.LIB有任何想法?我想在Simulink中使用指针金宝app

Pavel Kurguz.

Furkan Bayrak.

Stephane Dauvillier

谢谢,它现在运作

米哈伊尔

@stephane您应该使用显式链接(而不是隐式链接与导入* .lib文件)。手动编写的S函数(可能与遗留代码工具组合生成初始S函数)是最好的方法。这篇文章解释了这一切。

Stephane Dauvillier

Stephane Dauvillier

您的工作流引用lib文件而不是dll文件:如何在simulink中调用dll文件(我有一个标题文件,而不是lib文件)?金宝app
我试图使用legacy_code,但是如果我从exlib.lib替换为exlib.dll的字段主机,但是当我运行lefacy_code时('generate_for_sim',specs);, matlab说mex不知道dll

Niravkumar Ambaliya.

容易理解。真的很好。

Itamar Engelman.

@alexandru,您可以更改下的Simulink首选项(首金宝app选项 - > Simulink - > Model文件 - >取消选中“不加载使用较新版本的Simulink”),您将在2017B中打开这一点。

米哈伊尔

@Alexandru我将使用当前版本的MATLAB释放模型。如果您使用的是较旧的释放,则易于重现模型 - 它们是微不足道的(3个块)和屏幕截图。

Codrut Alexandru Dan.

你好,
2017B的任何机会也有提交吗?

谢谢

米哈伊尔

@jonathan你可能正在使用mingw编译器。这应该在此提交的最新版本中解决。

Legacy_Code方法还将用于无参数的void-void函数。

乔纳森史蒂文森

我正在遇到复制“手动2级”方法的问题。获取DLLHandle,LoadLibrary是Freelibrary函数的错误是未删除/未解决的当MEX尝试链接时未解决。这些在哪里定义在示例代码中?
此外,我假设的legacy_code方法如果核心函数使用参数(即要定义至少一个输入和一个输出端口)在S-Func中使用时,则只能正常工作?

卡里姆·罗斯塔姆

完美的!

马丁屠夫

泰阳

我想知道是否有可能使用MATLAB可执行文件从Simulink块创建的。金宝app似乎人类不能这样做,因为SIM命令不能编译到MATLAB可执行文件中。本教程中的所有示例似乎都需要Simulink许可证来运行。金宝app

米哈伊尔

要使S函数与快速加速器模式合作,您需要在线使其内联。
这是超越本文的方式 - 读取文档或联系MathWorks技术支持/咨询以获取这些问题。金宝app

Akash.

直到我们在Accelerator模式测试之前,一切都很好。这意味着所有MEX都适用于这些示例。但是,虽然我们在快速加速器模式中构建或运行,但它们中的所有情况都报告了链接器错误。似乎有一些路径问题或makefile问题。如果您可以提供相同的修复,因此非常感谢您的帮助。很多人报告了使用U1077,U1073的Simulink的链接器错误。金宝app

提前致谢。

Ander Biguri.

或者hirshfeld.

伟大的教程,它真的帮助了我,谢谢。

阿尔瓦

如何打开这些附件?
simlib_test_dyn.slx.
simlib_test_mlf.slx.
simlib_test.slx.
simlib_test_sf.slx.
simlib_test_ert.slx.
simlib_test_callert.slx.
simlib_test_mls.slx.

马修

一个良好的教程。在Simulink / Matlab中使用C共享库的六(或七个)不同方式的覆盖范围很好。金宝app

Matlab释放兼容性
用R2020A创建
兼容任何释放
平台兼容性
视窗 苹果系统 Linux.
类别

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!