LabVIEW中TCP/IP網(wǎng)絡(luò)通訊模塊小談
TCP節(jié)點(diǎn)介紹
Connection節(jié)點(diǎn):用于建立客戶機(jī)和服務(wù)器之間通訊的連接
Transmission節(jié)點(diǎn):用于在客戶機(jī)和服務(wù)器之間傳輸數(shù)據(jù)
Conversion節(jié)點(diǎn):用于計(jì)算機(jī)IP地址和計(jì)算機(jī)名稱間的切換
雙機(jī)TCP通訊流程
兩種通訊方式
多機(jī)都采用LabVIEW進(jìn)行通訊
在多機(jī)采用LV中TCP實(shí)現(xiàn)的通訊,一端我們設(shè)定為服務(wù)器端,一端為客戶端。這樣在運(yùn)行的時(shí)候服務(wù)器端不斷的偵聽,當(dāng)有客戶端連接的時(shí)候進(jìn)行建立連接,然后收取和發(fā)送數(shù)據(jù)形成通訊,客戶端運(yùn)行后不斷的與服務(wù)器端進(jìn)行試探連接,如果沒有連接上做一定的處理,當(dāng)連接上后進(jìn)行收發(fā)數(shù)據(jù)進(jìn)行處理。該VI圖結(jié)構(gòu)如下
通過以上方式,可以方便的實(shí)現(xiàn)多機(jī)進(jìn)行通訊。
有一端采用LabVIEW另一端是其他的工具實(shí)現(xiàn)進(jìn)行通訊
在實(shí)際工作當(dāng)中,有的時(shí)候下位機(jī)或者其他的機(jī)器使用其他的語言或者組態(tài)工具實(shí)現(xiàn),這個(gè)時(shí)候在實(shí)現(xiàn)TCP之間進(jìn)行交互通訊的時(shí)候,我們就不能象上面多機(jī)都是LV編寫的通訊那樣處理了,如何去實(shí)現(xiàn)呢。經(jīng)過研究發(fā)現(xiàn),LabVIEW提供了運(yùn)行控制技術(shù),在Semaphonre技術(shù)中,該功能可以限制任務(wù)數(shù)目,這些任務(wù)可以同時(shí)堆一個(gè)共享資源進(jìn)行操作。所以大膽采用共享資源操作信息,將其他端設(shè)置為服務(wù)器端,本端為客戶端,進(jìn)行操作,這樣受保護(hù)的資源或者臨界區(qū)進(jìn)行外部通訊,我們可以利用該技術(shù)同步多個(gè)相互獨(dú)立的、并行的任務(wù),這樣可以利用一個(gè)公用的Semaphore可以在某一時(shí)刻僅允許一個(gè)任務(wù)執(zhí)行
該圖是簡要的功能顯示,具體有興趣的讀者可以根據(jù)上面的提示使之完善
注意事項(xiàng):
當(dāng)建立客戶端和服務(wù)器端之間的通訊時(shí)候,除了指定Internet地址之外,還必須指定通訊端口號(hào),端口號(hào)的范圍是0到65535,該端口號(hào)區(qū)分不同的通訊服務(wù),這樣很容易的管理多個(gè)通訊連接。端口號(hào)最好手動(dòng)設(shè)置,最好不要低于1000(由于該低于1000的一方面防火墻可能會(huì)禁止并且1000以下的端口號(hào)是保留個(gè)特定用途的
客戶端和服務(wù)器端要指定端口,同時(shí)這兩個(gè)端口必須相同,才能進(jìn)行有效的通訊
在客戶端首先要指定服務(wù)器的名稱才能與服務(wù)器建立連接,服務(wù)器的名稱是指服務(wù)器端的計(jì)算機(jī)名,若在同一臺(tái)計(jì)算機(jī)上運(yùn)行時(shí)候,客戶端的輸入服務(wù)器名稱既可以是該臺(tái)計(jì)算機(jī)名稱也可以是LOCALHOST
在與多機(jī)并且與其他語言的接口的時(shí)候,按照以上3點(diǎn)執(zhí)行外,加上了執(zhí)行了排隊(duì),這樣在連接成功后進(jìn)行數(shù)據(jù)相互交換,交換完畢后斷開連接,然后與下一個(gè)連接。這樣依次執(zhí)行程序。形成臨界區(qū)保護(hù)
總結(jié):
參考文獻(xiàn)
《LabVIEW高級(jí)程序設(shè)計(jì)》
評論