我們正在尋找直接的 Labview 連接。 正如 MathLab 上顯示的那樣,它是一個 TCP/IP 交換: https://de.mathworks.com/matlabcentral/fileexchange/42567-matlab-and-labview-data-exchange-over-tcp-ip
是否可以為 JMP 創建類似的東西或者它已經存在?
提前感謝您的幫助!
馬庫斯
看起來應該是可以的。 https://www.ni.com/en-us/support/documentation/supplemental/06/basic-tcp-ip-communication-in-labview.html是 LabView 的起點;它說“LabVIEW 用戶可以開髮用於 TCP/IP 通信的自定義應用程序。 程序員負責開發客戶端和服務器”。
我對LabVIEW知之甚少,所以我無法幫助你。 看來您將使用 LabView GUI 創建 JMP 可以連接以交換數據的服務器。 在 LabVIEW 端,該服務器將負責從 LabVIEW 設置收集和發送數據,以及向 LabVIEW 設置接收和分發數據。
服務器在您提供的鏈接中(對我來說)並不明顯,但它必須存在。 看https://www.vut.cz/www_base/zav_prace_soubor_verejne.php?file_id=125490第 21 頁 - 可能顯示服務器。 它似乎有一個聽者(有耳朵)、一個發射器(出站箭頭)和接收器(入站箭頭)。
在 JMP 端,您將使用套接字編寫 JSL 腳本。 JMP >=15 的最新版本在腳本索引中有非常好的套接字示例。 您將編寫類似於 matlab 示例中的 Java(?) 代碼的代碼。
在運行 JSL 之前保存它;很容易讓套接字掛起等待服務器永遠不會發送的數據! 您可以將 JSL 套接字設置為使用非阻塞 I/O (NBIO) 來防止掛起...您需要輪詢套接字。
也可以使用 UDP 連接,並且 UDP 的不可靠部分在本地主機上可能足夠可靠。 這可以大大簡化兩端。
您找到的示例看起來必須始終存在雙向交換,但我很確定這就是示例的編寫方式。
現在是幾奌?UDP 套接字示例
動態消息在 JSL 中創建服務器的示例(我建議相反,在 LabVIEW 中創建服務器)
這並不是第一次“只是去上班”。 計劃學習一些關於 TCP 和套接字的知識;當它不起作用時,沒有太多跡象表明出了什麼問題。
您可能想首先構建一個基於文件的原型。 通過在 LabVIEW 中將文件保存到磁盤並在 JMP 中讀取該文件(或相反,或兩者兼而有之),您可以了解正在發生的情況。 如果速度足夠快,你就可以完成。