1

我需要创建一个硬件在环测试设置。我将使用 Modelica (Dymola) 对系统进行实时仿真。Dymola 应该向/从某些硬件发送/接收数据,并将接收到的数据输入到模型中。我正在尝试通过串行连接与 Modbus 通信。硬件是类似 PLC 的设备,因此这似乎是首选方法。

我还没有硬件,所以我正在使用 Arduino Uno 进行测试。我已经从这里在 Arduino 上安装了一个 Modbus 从库,并使用 Modbus 测试仪对其进行了测试。

我不知道如何与 Dymola 交流。我已经尝试过Modelica_DeviceDrivers库,并且能够从 arduino 发送或接收(不能同时发送)数据,但不能通过 Modbus 协议。我的问题是是否有任何用于 modbus 通信的 modelica 库或任何其他方式从 Dymola/modelica 完成此任务?

4

2 回答 2

1

免费的 ModelPlug 库将 SystemModeler(也可能是 Dymola)连接到 Arduino 板用于 I/O。你可以在这里下载:http ://www.wolfram.com/system-modeler/libraries/model-plug/

于 2015-06-28T21:36:22.920 回答
1

如果你想编写自己的驱动程序,你可以到Modleica_Device_Drivers库下的Resources\Include文件夹,里面有一堆c头文件,它们是如何编写自己的驱动程序的很好的例子。如果您可以以与Modleica_Device_Drivers“包”兼容的方式编写它,那么组装/拆卸您的数据消息将非常容易。

如果您只是想要一些快速的东西,您可以编写一个 C 函数并在 Dymola 中引用它。

这两种方法都可能需要 when(sample(...)) 子句,以便将您的模拟时间与实时同步。但这意味着事件生成,虽然它是一个时间事件,但对于具有很多状态的大型模型,它可能会减慢您的模拟速度。

我宁愿围绕模型创建多个输入和输出,然后将 Dymola 模型导出为 C 或 FMU 模型,我将编写另一个通信程序来控制数据流。

于 2015-06-29T20:28:03.930 回答