LabVIEW-TCP/IP資料傳輸

更新 發佈閱讀 3 分鐘

LabVIEW做最基本的TCP/IP資料傳輸和可能遇到的問題處裡

準備兩個VI, 分別是傳輸端(TX)和接收端(RX)

流程是: TX先啟動等待連線-->RX建立連線-->TX送出資料-->RX接收資料-->結束

 

詳細說明如下:

傳輸端利用TCP listen來建立一個listner(或server)等待接收端連線

連線建立後, 用TCP write將資料字串送出

其中TCP listen的Service name接點其實是非必要的, 除非把port設成0讓程式隨機設定

另外TCP listen僅能提供一組連線, 如果要建立多組連線需使用TCP Create Listener

搭配TCP Wait On Listener

raw-image


 

接收端(RX)的部份用TCP Open Connection來建立連線

連線成功後用TCP Read來接收TX傳出的資料

Remote port接點可以選擇輸入特定port或者是service name

取決於TX端的設定

輸入listner IP是必要的, 這邊用本機伺服器127.0.0.1來測試

用localhost也是可以, 但他是不通過網卡傳輸

也有可能因為變更過系統host文件而不是127.0.0.x

raw-image


 

資料傳送接收的部份

可以看到不是直接一個指令就把資料處理掉

當然我們可以跟範例一樣隨便設定一個數字為byte to read

但這樣連續傳輸時就會讀到不正確的字串

為了精準的傳送接收正確大小的資料, 避免接收過多或過少

TX端傳送前我們用string length先取得字串長度, 會得到型態是 I32的數字

再把數字casting成字串,放在要傳送的資料前先傳出

 

RX接收時先讀取4個Byte的資料, casting回 I32就是正確的資料長度

4個Byte是因為 I32的儲存空間就是32bits=4Bytes

I32數值範圍可以到2,147,483,647足夠應付一般的一次傳輸量了

程式碼裡的數值常數"4"資料型態就是 I32

所以他除了設定第一次讀取的byte數外,同時還有設定casting型態的功用

=================================

raw-image


在做傳輸測試時偶而會出現像這樣記憶體不足的錯誤訊息

這不是因為硬體的記憶體不足, 而是程式在處理byte to read的數字時出了錯

導致讀取資料需要的記憶體太大

 

找到的解法有兩個

第一個是在兩次傳輸/接收間放一個delay指定, 設為0ms也可以

這個方法實際測試結果是可以改善, 但無法完全根除問題

raw-image


 

另一個解法是TX端傳輸長度和傳輸資料本體合併成一筆資料一次傳出

反正RX端有正確資料長度就可以分別正確讀出兩筆資料

目前用這個解法完全不會再出現記憶體不足的錯誤訊息

raw-image


 

另外在用兩台電腦做連線測試時發現有些電腦會有無法連接的狀況

推測是防火牆或某些網路設定被關閉造成

目前我是把共享檔案和印表機選項啟用就可以了

接下來要用TCP/IP功能製作LabVIEW多人連線通訊系統 (AKA 聊天室)

 

留言
avatar-img
hls Ding的沙龍
7會員
68內容數
ktest
hls Ding的沙龍的其他內容
2025/03/06
import csv import os folder = 'D:/PROGRAMMING/PythonCode/data_arrange/' fname_sum = 'sum.csv' bump = 6 csv_filenames = [f for f in os.listdir(folde
2025/03/06
import csv import os folder = 'D:/PROGRAMMING/PythonCode/data_arrange/' fname_sum = 'sum.csv' bump = 6 csv_filenames = [f for f in os.listdir(folde
看更多
你可能也想看
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
<iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
Thumbnail
<iostream> ​在之前的文章有提到過,<iostream> 是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。輸入輸出的對象是以電腦作為主角: 輸入指的是「把資料給電腦」,輸出指的是「從電腦那邊取得資料」。 在這個系列的文章中,程式輸入指的都是從鍵盤輸入資料給電
Thumbnail
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
Thumbnail
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
Thumbnail
紅外線(IR)接收模組是一種常見的元件,可用於接收來自遙控器等設備的紅外線訊號。在本教學中,我們將使用Arduino來連接和讀取IR Receiver Module V2.0模組,以捕捉紅外線訊號的數值。讓我們開始吧!
Thumbnail
紅外線(IR)接收模組是一種常見的元件,可用於接收來自遙控器等設備的紅外線訊號。在本教學中,我們將使用Arduino來連接和讀取IR Receiver Module V2.0模組,以捕捉紅外線訊號的數值。讓我們開始吧!
Thumbnail
LabVIEW FTP上傳檔案與建立資料夾
Thumbnail
LabVIEW FTP上傳檔案與建立資料夾
Thumbnail
建立Modbus IO Server
Thumbnail
建立Modbus IO Server
Thumbnail
這篇文章主要介紹 TCP 可靠性傳輸服務、連接管理、流量控制及擁塞控制等...
Thumbnail
這篇文章主要介紹 TCP 可靠性傳輸服務、連接管理、流量控制及擁塞控制等...
Thumbnail
從瀏覽器到伺服器之間究竟發生了哪些事情?才讓我們可以正常的瀏覽網頁呢?
Thumbnail
從瀏覽器到伺服器之間究竟發生了哪些事情?才讓我們可以正常的瀏覽網頁呢?
Thumbnail
橋接器的特色就是將多個不同網段的獨立網路﹝進行連接﹞,就好像一座橋一樣,把不同的網絡變成同一個網絡一樣。 然而這樣做的主要目的是﹝提高網絡的可靠度﹞、﹝增加網絡的效率及安全性﹞。 如圖所示,﹝Bridge﹞在這邊的運作流程是: 接收到發送請求→判斷請求是否放行→傳送到目的位址。 範例:
Thumbnail
橋接器的特色就是將多個不同網段的獨立網路﹝進行連接﹞,就好像一座橋一樣,把不同的網絡變成同一個網絡一樣。 然而這樣做的主要目的是﹝提高網絡的可靠度﹞、﹝增加網絡的效率及安全性﹞。 如圖所示,﹝Bridge﹞在這邊的運作流程是: 接收到發送請求→判斷請求是否放行→傳送到目的位址。 範例:
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News