如何并行运行Matlab脚本和Simulink(同时)

问题描述 投票:0回答:1

我需要同时运行simulink模型和matlab脚本,这将通过OPC UA接收信息,并将此信息传递给simulink模型以更改其行为。两者都需要“并行”工作,因为OPC UA脚本将与PLC循环交换数据,这将控制我的Simulink对象。(我已经看到大约6年前有人在要求它,但是由于目前存在matlab的可能性,所以没有得到令人满意的答复)。

[有用于OPC的simulink工具箱-但它不支持OPC UA。我也尝试将脚本作为simulink的功能块进行通信,但是simulink编译器无法识别OPC UA库中的函数。我还尝试实现在每个通信循环之后执行的父级(单步)仿真,但是模型具有许多与时间相关的块(例如延迟等),然后丢失了每个步骤之间的仿真状态信息。

您有什么想法,我应该寻找什么来解决这个问题?

matlab simulink
1个回答
0
投票

您可以运行两个Matlab实例:一个用于Simulink模型,另一个用于OPC UA I / O。他们可以使用一个本地套接字,只交换固定大小的数据结构(甚至只是固定大小的浮点向量)。

我建议也许可以从Simulink模型生成C代码,然后将其手动转录到ST,然后假设PLC足够快,将其粘贴在PLC本身上。如果PLC使用的是CoDeSys 3,则代码生成器非常糟糕,您可能需要检查程序集的输出并调整源代码,以使其能够合理地快速运行。

© www.soinside.com 2019 - 2024. All rights reserved.