我們正在尋找直接的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 的不可靠部分在 localhost 上可能足夠可靠。 這可以大大簡化兩端。
您找到的示例使它看起來必須始終存在雙向交換,但我很確定這正是示例的編寫方式。
現在是幾奌?UDP 套接字示例
新聞提要在 JSL 中創建服務器的示例(我建議反過來,在 LabVIEW 中創建服務器)
這不是第一次“只是去工作”。 計劃學習一些關於 TCP 和套接字的知識;當它不起作用時,沒有太多跡象表明出了什麼問題。
您可能想先構建一個基於文件的原型。 通過在 LabVIEW 中將文件保存到磁盤並在 JMP(或相反的方式,或兩者)中讀取它,您可以查看正在發生的事情。 如果它足夠快,你就可以完成。