2015-10-26 48 views
0

我正在研究一個需要在Matlab的Simulink和Labview之間的網絡系統(目前運行Matlab 2010b和Labview 7.0)上實時傳遞值的項目。我一直在嘗試在任一程序中使用UDP發送/接收功能來做到這一點,但Labview似乎只處理帶有UDP/TCP-IP的字符串。 Simulink只能從UDP端口讀取int/double值。在Simulink/Labview之間通過UDP傳輸值

有沒有辦法讓我在讀入操作後轉換這些值,或者繞過類型限制?任何建議(或在兩個程序之間傳遞值的替代方法)真的很感激。不幸的是,由於硬件限制,我堅持使用這些程序版本。

謝謝!

回答

5

LV中的TCP/UDP函數使用字符串,因爲它是一種方便的方式來表示一個字節數組,這是TCP流的基本原理。您可以獲取數據並將其轉換爲可用。假設Simulink以相同的方式對值進行編碼(int的簡單二進制,浮點的IEEE754表示),那麼可以簡單地使用類型cast或flatten來從字符串函數/ unflatten轉換數據。您可能需要更改字節順序以考慮字節數。

您可以查看LV中的TCP示例以及有關展平數據的文檔,以更好地瞭解其工作原理。

作爲一個觀點,UDP是有損的,並且主要適用於需要快速廣播或獲取數據的情況,如流式傳輸視頻時。如果數據很重要,則應使用TCP。