我正在工作的一个项目,我需要集成一个特定的PI-AF (数据库)与一个Simulink模型。我知道PI有一个特定的.NET AF-SDK,通过它我可以引用/访问元素/属性。我还知道,您可以将.NET程序集加载到MATLAB中,并使用.NET库。但是,我们能在Simulink中做同样的事情吗?我知道你可以在Simulink中创建一个函数块,在这里你可以编写MATLAB函数,用给定的输入来执行,并且返回一定的值。是否可以在此函数块中加载.NET程序集?我是全新的Simulink和MATLAB,从来没有真正的工作过他们以前。如果你们中的一个能在上面分享你们的知识,那就太好了。
谢谢。
发布于 2014-12-23 12:16:19
这取决于您所追求的哪种类型的集成:
如果您只想从数据库中加载一些数据,使用该数据运行Simulink模型,然后在模拟完成后可能会将一些数据写回数据库,您不需要使用MATLAB函数块。只需编写MATLAB代码(作为脚本或函数,无关紧要),并在模型回调中调用这些脚本/函数:可能是在PreLoadFcn、PostLoadFcn或InitFcn回调中,以便代码从数据库加载数据,并在StopFcn中调用这些脚本/函数,以便将数据写回数据库。
另一方面,如果您想在模拟过程中不断地与数据库交互,那么它就更复杂了,您确实需要像您建议的那样使用MATLAB函数块。该块使用(C)代码生成框架下的代码,我怀疑与.NET相关的函数不支持这些代码生成,因此您必须将它们定义为extrinsic (有关更多细节,请参见文档中的调用MATLAB函数 )。但是请注意,声明为mxArray类型的外部返回输出的函数需要转换为已知类型,然后才能被其他函数/语句/等等使用.如何做到这一点将在上述文档页中解释。
https://stackoverflow.com/questions/27619592
复制相似问题