matlab Simulink .NET集成

lb3vh1jj  于 10个月前  发布在  Matlab
关注(0)|答案(1)|浏览(96)

我正在做一个项目,我需要将某个PI-AF(数据库)与Simulink模型集成。我知道PI-AF有一个特定的.NET AF-SDK API通过它我可以引用/访问元素/属性。我还知道你可以将.NET程序集加载到MATLAB中并使用.NET库。但是,我们可以在Simulink中做同样的事情吗?我知道你可以在Simulink中创建一个函数块,在那里你可以编写MATLAB函数,这些函数将使用给定的输入执行,并返回特定的值。是否可以在此函数块中加载.NET程序集?我对Simulink和MATLAB完全陌生,以前从未真正使用过它们。如果你们中的一个人能分享你的知识,那就太好了。

  • 谢谢-谢谢
z0qdvdin

z0qdvdin1#

这取决于您所追求的集成类型:
如果您只想从数据库加载一些数据,使用该数据运行Simulink模型,然后在仿真完成后将一些数据写回数据库,则不需要引用MATLAB函数块。只需编写MATLAB代码(作为脚本或函数,无所谓),并在model callbacks中调用这些脚本/函数:可能在PreLoadFcnPostLoadFcnInitFcn回调函数中用于从数据库加载数据的代码,在StopFcn中用于将数据写回数据库的代码。
另一方面,如果您希望在模拟过程中不断地与数据库交互,那么它会更加复杂,您确实需要使用MATLAB Function块,正如您所建议的那样。该块使用了(C)代码生成,我怀疑.NET相关函数不支持,因此您必须将其定义为extrinsic(更多细节请参见文档中的Call MATLAB Functions)。但是要注意,声明为外部的函数返回mxArray类型的输出,在它们可以被其他函数/语句等使用之前,需要将其转换为已知类型。如何做到这一点是在上述文档页面解释。

相关问题