引用聲明:本文部分文字內容及範例程式出自LABVIEW網路篇,作者:蕭子健(出版日:2001/4/20),由於距離公元2千年已有14年之久,LabVIEW在網路應用上從6.x版本中至今已有許多更新,為讓在此領域應用更為廣泛,又從書上及網路收集許多程式並加以彙整說明,並讓LabVIEW成為在網路應用中如監控、資料傳輸、遠端遙控、瀏覽器製作等提供更多的解決方案。而為了解與網路相關的各種通訊協定與技術,網路的七層架構亦稱為(OSI)模式,如下圖與LabVIEW在往後使用上做一簡單說明。
7.Application Layer-最接近使用者的一層為傳輸的資料提供正確的意義與功能,例如:FTP、HTTP協定即屬於此層的管轄範圍。 |
6.Presentation Layer-表示協助初始連結與結束等動作之執行,並將第七層獨立出來。 |
5.Session Layer-將兩端使用者之間的通訊進行連結並管理,網域名稱服務(DNS)即屬於此層 |
4.Transport Layer-將訊息切割成較小單位並運送稱之為封包,並確認這些封包不會漏掉,傳輸控制協定(TCP)即屬於此層。 |
3.Network Layer-網際網路協定,簡稱IP即屬於此層,來辨認資料來源與目的之位址例如:140.129.66.92。 |
2.Data Link Layer |
1.Physical Layer |
而平常較常遇到的通訊協定則包括:TCP/IP、UDP、AppleTalk、IPX、NetBEUI,目前你可能正在使用的則有HTTP、FTP、E-mail(POP3和SMTP協定)。後續陸續介紹各項協定,以致在未來使用LabVIEW時可更加了解其中。
(1).TCP/IP協定
TCP/IP定義第三層與第四層如何運作,由於各種電腦平台與操作系統都支援TCP/IP協定,每一台電腦皆擁有特定位址稱為IP。IP的定義是如何將資料傳送到一個特定的目的地,在兩端PC間沿著不同的路由器傳遞資料封包,而TCP將會檢查已確認全部封包均傳遞完成。
(2).網域名稱服務(DNS)
網域名稱通常由公司或個人所擁有,如雲林科技大學http://www.yuntech.edu.tw/ 的網址其中tw表示台灣、edu表示教育學術網站、網際網路伺服器(World Wild Web server:WWW)、yuntech則表示學校英文簡稱。下面列出常用的裝置與說明
FTP |
檔案傳輸協定 |
TELNET |
遠程終端機模擬 |
SMTP |
郵件傳送 |
WHOIS |
Nicname |
HTTP |
網際網路伺服器 |
POP3 |
接收郵件 |
NNTP |
網路新聞傳送協定 |
HTTPS |
經由安全Socket層次的HTTP |
NATI-DSTP |
NI LABVIEW環境中的DataSocket協定 |
NATI-VI-SERVER |
NI LabVIEW 環境中VI伺服器 |
Ex1.利用LabVIEW的VI來找出自己電腦的IP位址,實際上就是從電腦上網路設定中查詢此項資料,如果電腦上擁有許多IP位址則只會顯示出一項。
Ex2.Ping的功能主要以簡單的方式進行固定IP的檢測,並要求回傳結果且有下列的好處,可對於自己的網路檢測、偵測DNS或其他伺服器之狀況、偵測遠端的主機是否可以和主機連接,而ping是主要是由(System Exec)函數執行。
(3).LabVIEW中的主從架構模式
主從架構模式是網路應用程式中一個常見模式下處理(客戶端,Client),要求服務(伺服端,Server),伺服器通常都要等客戶端做連接通常一個伺服器都要同時為多個客戶做服務如下圖式。
在這架構中,伺服端中分為單一客戶端及多重客戶端伺服器差異在於接受客戶端socket連接的伺服器多寡,伺服端與客戶端最大差異在於客戶端扮演開啟連結的角色,而伺服端則持續等待連結。
Ex3.在NI Example Finder可以找到客戶端與伺服端的範例VI,是屬於單一客戶端VI可利用兩台電腦設定好IP或PORT連線後,伺服端可任意改變輸出的波形並傳送給客戶端。當然也可以只用一台電腦兩邊都RUN,使用者可依自身需要增加額外的功能。
Ex4.多重客戶端伺服器,同樣在LabVIEW的範例程式中收尋Date Server.vi 和Date Client.vi嘗試利用多台電腦連至伺服端並觀察#of connection的數量,後續由使用者自行變化功能。
(4).LabVIEW中的UDP主從架構,UDP是一個能用來代替TCP的另外一種協定,因為對某種特定的應用程式來說具有高度效率與執行能力,UDP使用相同的網際網路位址架構與阜號碼但仍和TCP下列幾項不同:
- 1. UDP為非連結協定,再傳送資料前,主機間是不需要建立連結,而資料能被傳遞至目的地
- 2. UDP不保證資料封包一定傳送抵達
- 3. 使用UDP時超過某的大小的資料封包,可能抵達時會不完整或無法抵達
而利用UDP主要考量,不在乎偶爾遺失掉一些資料又想要比TCP還高的單位時間輸出量時使用。
Ex5.接著收尋UDP multicast sender 和 UDP multicast receiver兩個VI來嘗試連線過後由伺服端任意改變字串或數字,同時客戶端能及時接收訊息,與ex3.相似。
(5).遠端DAQ伺服器,由於現在利用資料擷取卡用來越普遍 ,而當人在遠方又想馬上了解DAQ目前工作的數據是否有異常,能有隨時監控或操作功能就顯得相當重要。
(6).DataSocket之定義,除了上述TCP網路通訊連結應用方式之外,DataSocket是一種終端使用者的應用套件,基本目的是藉由URL網址通訊方式來進行量測與自動化量測的應用,透過簡單的網路設定傳遞至遠端的電腦上且不被通訊協定、程式語言、及操作系統等功能與技術而受限。
DataSocket API也可執行下列不同形式的資料:HTTP、FTP、OPC、DSTP伺服器上的資料也能讀取一般文字、Excel、WAV聲音檔案。
(7).Web技術,執行Web時首先須了解URLs,可藉由提供網際網路的位址及文件路徑明確指出Web上的文件位置。目前HTTP較常遇見可說自Web的主幹,介於Web伺服器與Web用戶端之間彼此的通訊協定,模式可從下圖看出。
HTML和HTTP之間是沒有直接關係,HTML是使用在文件上用來告訴Web瀏覽器如何顯示資料,HTTP是一種傳輸通道,由Web瀏覽器使用來擷取需要的文件,一般HTTP由伺服器控制而HTML由用戶端操控。一般架構Web伺服器,可由下列選擇1.使用LabVIEW內建的Web伺服器 2.使用網際網路工具箱的Web伺服器,並藉由考量許多特性如功能選擇、安全選擇、組態模式控制、執行效率等。
HTML在目前上能有許多工具能夠產生Web網頁例如:FrontPage Express,且文件架構容易判讀使用。
Ex6利用LabVIEW顯示網頁
單純連上網頁~XD
Ex7.連上遠端正在執行資料擷取電腦
輸入遠端電腦之IP位置,即可從伺服端電腦中從中擷取正在工作的資料,此端為Client彼端Server再另外同樣需要建立可分享的Server端程式可參考Ex4.範例。
Ex8.寄信
最常用儲存訊息的電子郵件伺服器是POP3與IMAP,利用TCP/IP功能來執行POP3和IMAP指令以連結至伺服器並讀取訊息
Ex9.LabVIEW網頁製作
由於現階段已有多種可以網頁製作之軟體,在LabVIEW雖然也有此項功能,但便利性不及市面上眾多教學書籍與軟體,僅以簡單顯示。
目前網路上與書籍對於LabVIEW網路應用甚少,最近應用書籍距今已14年之久,未來LabVIEW網路應用在系統整合上並達到遠端資料傳輸或遠端操控仍需要使用者開發。同樣有需要之相關資料請私訊留言。