我需要创建一个硬件在环测试设置。我将使用Modelica (Dymola)对系统进行实时仿真。Dymola应该向/从一些硬件发送/接收数据,并且接收到的数据将被输入到模型。我正在尝试通过串行连接与Modbus通信。硬件是一个类似PLC的设备,所以这似乎是首选的方法。
我还没有硬件,所以我正在用Arduino Uno进行测试。我已经在Arduino上安装了来自here的Modbus从库,并使用Modbus测试器对其进行了测试。
我想不出怎么和迪莫拉沟通。我已经尝试过Modelica_DeviceDrivers库,能够从arduino发送或接收数据(不能同时发送或接收),但不能通过Modbus协议。我的问题是,Dymola/modelica是否有任何用于modbus通信的modelica库或任何其他方式来实现这一点?
发布于 2015-06-29 05:36:23
免费的ModelPlug库将把SystemModeler (可能还有迪莫拉)连接到Arduino板上进行I/O。你可以在这里下载:http://www.wolfram.com/system-modeler/libraries/model-plug/
发布于 2015-06-30 04:28:04
如果您想编写自己的驱动程序,可以转到Modleica_Device_Drivers库下的Resources\Include文件夹,那里有一堆c头文件,它们是如何编写自己的驱动程序的很好的示例。如果你能以与Modleica_Device_Drivers“包”兼容的方式编写它,那么组装/拆卸你的数据消息将是相当容易的。
如果你只是想要一些快速的东西,你可以编写一个C函数并在Dymola中引用它。
这两种方法都可能需要when(sample(...))子句,以便同步您的模拟时间与实时。但这意味着事件生成,尽管它是一个时间事件,但对于具有许多状态的大型模型,它可能会减慢您的模拟。
我更喜欢围绕模型创建几个输入和输出,然后将Dymola模型导出为C或FMU模型,我将编写另一个通信程序来控制数据流。
https://stackoverflow.com/questions/31101390
复制相似问题