如何创建一个实时的Simulink传输块

时间:2013-02-14 20:58:01

标签: tcp transfer simulink

我有一个简单的想法,但我想在simulink上很难实现它。我使用C代码在BeagleBone和simulink块之间创建了一个TCP / IP服务器。我有一个连接到beagle bone的开关作为输入,我的想法是在simulink块上显示开关是关闭还是打开。我无法做到这一点,因为我的客户端(simulink块)是一个c代码,它只会执行一次,因为C代码在返回获取交换机的值后结束函数执行。你们知道任何simulink传输模式或花哨的C提示在Simulink客户端块和显示器之间传输数据吗?

1 个答案:

答案 0 :(得分:0)

在我一直在研究的模拟器中,我们使用带有远程IP地址和IP端口的Sink块将实时计算的数据导出到外部监听器(可以在同一台机器上或通过网络连接)在我们的例子中是一台进行图形渲染的计算机,然后由使用Ogre 3D编写的C ++代码和使用源块的另一个simulink模型拾取。

我们还有一个交互式chartplotter显示器(GPS位置指示,如果你愿意的话)。我们可以在任何需要的时候调用以下命令来访问simulink生成的值:

variable = get_param('Simulator/Chartplotter/YDot','RuntimeObject');

您也可以调用“set_param”来修改位于simulink模型中的常量值。

我没有比格犬的经验,但我想你可以让你的C代码执行一个matlab脚本,它会修改你的simulink模型中存在的逻辑常量,以指示交换机是否打开。

或者你可以探索第一个选项,但我们只用它来将数据从simulink中导入C程序,而不是像你希望的那样。遗憾的是我无法直接访问接收的C代码,但如果你真的被卡住了,我可以让我的同事给我发送重要信息。

希望这有帮助。