第13章LabVIEW串口通信程序設(shè)計_第1頁
第13章LabVIEW串口通信程序設(shè)計_第2頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第13章 LabVIEW串口通信程序設(shè)計以PC作為上位機(jī),以調(diào)制解調(diào)器(Modem)、串行打印機(jī)、各種監(jiān)控模塊、PLC、攝像頭云臺、數(shù)控機(jī)床、單片機(jī)及智能設(shè)備等作為下位機(jī)廣泛應(yīng)用于測控領(lǐng)域。本章舉幾個典型實例,詳細(xì)介紹利用LabVIEW實現(xiàn)PC與各種下位機(jī)設(shè)備串口通信的程序設(shè)計方法。13.1 PC與PC串口通信當(dāng)兩臺串口設(shè)備通信距離較近時,可以直接連接,最簡單的情況,在通信中只需三根線(發(fā)送線、接收線、信號地線)便可實現(xiàn)全雙工異步串行通信。本設(shè)計通過兩臺PC串口三線連接,介紹了串口通信的基本編程方法。13.1.1 PC與PC串口通信硬件線路當(dāng)兩臺RS-232串口設(shè)備通信距離較近時(15m)時,

2、需附加調(diào)制解調(diào)器(Modem)。在RS-232的應(yīng)用中,很少嚴(yán)格按照RS-232標(biāo)準(zhǔn)。其主要原因是因為許多定義的信號在大多數(shù)的應(yīng)用中并沒有用上。在許多應(yīng)用中,例如Modem,只用了9個信號(兩條數(shù)據(jù)線、6條控制線、一條地線);在其他一些應(yīng)用中,可能只需要5個信號(兩條數(shù)據(jù)線、兩條握手線、一條地線);還有一些應(yīng)用,可能只需要數(shù)據(jù)線,而不需要握手線,即只需要3個信號線。因為在控制領(lǐng)域,在近距離通信時常采用RS-232,所以這里只對近距離通信的線路連接進(jìn)行討論。當(dāng)通信距離較近時,通信雙方不需要Modem,可以直接連接,這種情況下,只需使用少數(shù)幾根信號線。最簡單的情況,在通信中根本不需要RS-232C

3、的控制聯(lián)絡(luò)信號,只需三根線(發(fā)送線、接收線、信號地線)便可實現(xiàn)全雙工異步串行通信。在實際使用中常使用串口通信線將兩個串口設(shè)備連接起來。串口線的制作方法非常簡單:準(zhǔn)備兩個9針的串口接線端子(因為計算機(jī)上的串口為公頭,因此連接線為母頭),準(zhǔn)備3根導(dǎo)線(最好采用3芯屏蔽線),按圖13-1所示將導(dǎo)線焊接到接線端子上。圖13-1 串口通信線的制作圖13-2所示中的2號接收腳與3號發(fā)送腳交叉連接是因為在直連方式時,把通信雙方都當(dāng)作數(shù)據(jù)終端設(shè)備看待,雙方都可發(fā)也可收。在這種方式下,通信雙方的任何一方,只要請求發(fā)送RTS有效和數(shù)據(jù)終端準(zhǔn)備好DTR有效就能開始發(fā)送和接收。 圖13-2 PC與PC串口通信線路在計

4、算機(jī)通電前,按圖13-2所示將兩臺PC的COM1口用串口線連接起來。連接串口線時,計算機(jī)嚴(yán)禁通電,否則極易燒毀串口。13.1.2 設(shè)計任務(wù)利用LabVIEW編寫程序?qū)崿F(xiàn)PC與PC串口通信。任務(wù)要求如下。兩臺計算機(jī)互發(fā)字符并自動接收,如一臺計算機(jī)輸入字符串“收到信息請回字符abc123”,單擊“發(fā)送字符”命令,另一臺計算機(jī)若收到,就輸入字符串“收到,abc123”,單擊“發(fā)送字符”命令,信息返回到第一組的計算機(jī)。實際上就是編寫一個簡單的雙機(jī)聊天程序。13.1.3 任務(wù)實現(xiàn)1建立新VI程序啟動NI LabVIEW程序,選擇新建(New)選項中的VI項,建立一個新VI程序。2程序前面板設(shè)計 在前面板

5、設(shè)計區(qū)空白處單擊鼠標(biāo)右鍵,顯示控件選板(Controls)。(1)添加一個字符串輸入控件:控件(Controls)新式(Modern)字符串與路徑(String & Path)字符串輸入控件(String Control),將標(biāo)簽改為“發(fā)送區(qū):”。(2)添加一個字符串顯示控件:控件(Controls)新式(Modern)字符串與路徑(String & Path) 字符串顯示控件(String Indicator),將標(biāo)簽改為“接收區(qū):”。(3)添加一個串口資源檢測控件:控件(Controls)新式(Modern) I/O VISA資源名稱(VISA resource name);單擊控件箭頭,

6、選擇串口號,如COM1或ASRL1:。(4)添加一個確定(OK)按鈕控件:控件(Controls)新式(Modern)布爾(Boolean) 確定按鈕(OK Butoon),將標(biāo)題改為“發(fā)送字符”。(5)添加一個停止(Stop)按鈕控件:控件(Controls)新式(Modern)布爾(Boolean) 停止按鈕(Stop Butoon),將標(biāo)題改為“關(guān)閉程序”。圖13-3 程序前面板設(shè)計的程序前面板,如圖13-3所示。3框圖程序設(shè)計添加函數(shù) 進(jìn)入框圖程序設(shè)計界面,在設(shè)計區(qū)的空白處單擊鼠標(biāo)右鍵,顯示函數(shù)選板(Functions)。添加的所有函數(shù)及其布置如圖13-4所示。詳細(xì)步驟介紹如下。(1)

7、添加一個配置串口函數(shù):編程(Programming)儀器I/O(Instrument I/O)串口(Serial)VISA配置串口(VISA Configure Serial Port)。圖13-4 框圖程序函數(shù)添加與布置(2)添加4個數(shù)值常量:編程(Programming)數(shù)值(Numeric) 數(shù)值常量(數(shù)值常量(Numeric Constant),值分別為9600(波特率)、8(數(shù)據(jù)位)、0(校驗位,無)、1(停止位)。(3)添加兩個關(guān)閉串口函數(shù):編程(Programming)儀器I/O(Instrument I/O)串口(Serial)VISA關(guān)閉(VISA Close)。(4)添加一

8、個循環(huán)結(jié)構(gòu):編程(Programming)結(jié)構(gòu)(Structures) While 循環(huán)(While Loop)。添加理由:隨時監(jiān)測串口接收緩沖區(qū)的數(shù)據(jù)。以下添加的函數(shù)或結(jié)構(gòu)放置在While循環(huán)結(jié)構(gòu)框架中。(5)添加一個時鐘函數(shù):編程(Programming) 定時(Timing) 等待下一個整數(shù)倍毫秒(Wait Until Next ms Multiple)。添加理由:以一定的周期監(jiān)測串口接收緩沖區(qū)的數(shù)據(jù)。(6)添加一個數(shù)值常量:編程(Programming)數(shù)值(Numeric) 數(shù)值常量(Numeric Constant),將值改為500(時鐘頻率值)。(7)添加一個VISA串口字節(jié)數(shù)函

9、數(shù):編程(Programming)儀器I/O(Instrument I/O) 串口(Serial) VISA串口字節(jié)數(shù)(VISA Bytes at Serial Port),標(biāo)簽為“Property Node”。(8)添加一個數(shù)值常量:編程(Programming)數(shù)值(Numeric)數(shù)值常量(Numeric Constant),將值為0(比較值)。(9)添加一個比較函數(shù):編程(Programming) 比較(Comparison) 不等于?(Not Equal ?)。添加理由:只有當(dāng)串口接收緩沖區(qū)的數(shù)據(jù)個數(shù)不等于0時,才將數(shù)據(jù)讀入到接收區(qū)。(10)添加一個布爾函數(shù):編程(Programmi

10、ng)布爾(Boolean)非(Not)函數(shù)。添加理由:當(dāng)關(guān)閉程序時,將關(guān)閉按鈕真(True)變?yōu)榧伲‵alse),退出循環(huán)。如果將循環(huán)結(jié)構(gòu)的條件端子設(shè)置為“真時停止(Stop if True)”,則不需要添加非(Not)函數(shù)。(11)添加兩個條件結(jié)構(gòu):編程(Programming)結(jié)構(gòu)(Structures) 條件結(jié)構(gòu)(Case Structure)。添加理由:發(fā)送字符時,需要單擊按鈕“發(fā)送字符”,因此需要判斷是否單擊了發(fā)送按鈕;接收數(shù)據(jù)時,需要判斷串口接收緩沖區(qū)的數(shù)據(jù)個數(shù)是否不為0。(12)添加一個串口寫入函數(shù):編程(Programming)儀器I/O(Instrument I/O)串口(

11、Serial)VISA寫入(VISA Write),并拖入條件結(jié)構(gòu)(上)的真(True)選項框架中。(13)添加一個串口讀取函數(shù):編程(Programming) 儀器I/O(Instrument I/O) 串口(Serial)VISA讀?。╒ISA Read),并拖入條件結(jié)構(gòu)(下)的真(True)選項框架中。(14)將字符輸入控件圖標(biāo)(標(biāo)簽為“發(fā)送區(qū):”)拖入條件結(jié)構(gòu)(上)的真(True)選項框架中,將字符顯示控件圖標(biāo)(標(biāo)簽為“接收區(qū):”)拖入條件結(jié)構(gòu)(下)的真(True)選項框架中。(15)分別將確定(OK)按鈕控件圖標(biāo)(標(biāo)簽為“確定按鈕(OK Button)”)、停止(Stop)按鈕控件圖

12、標(biāo)(標(biāo)簽為“停止按鈕(Stop Button)”)拖入循環(huán)結(jié)構(gòu)框架中。4框圖程序設(shè)計連線使用連線工具,將所有函數(shù)連接起來,如圖13-5所示。圖13-5 框圖程序連線(1)將VISA資源名稱(VISA resource name)函數(shù)的輸出端口分別與串口配置(VISA Configure Serial Port)函數(shù)、串口字節(jié)數(shù)(VISA Bytes at Serial Port)函數(shù)、串口寫入(VISA Write)函數(shù)、串口讀?。╒ISA Read)函數(shù)的輸入端口VISA資源名稱(VISA resource name)相連。(2)將數(shù)值常量9600、8、0、1分別與串口配置(VISA Con

13、figure Serial Port)函數(shù)的輸入端口波特率(baud rate)、數(shù)據(jù)比特(data bits)、奇偶(parity)、停止位(stop bits)相連。(3)將數(shù)值常量(值為500)與等待下一個整數(shù)倍毫秒(Wait Until Next ms Multiple)函數(shù)的輸入端口毫秒倍數(shù)(millisecond multiple)相連。(4)將確定按鈕圖標(biāo)“OK Button”與條件結(jié)構(gòu)(上)的選擇端子?相連。(5)將串口字節(jié)數(shù)(VISA Bytes at Serial Port)函數(shù)的輸出端口Number of bytes at Serial port與不等于?(Not Equ

14、al ?)函數(shù)的輸入端口x相連。將串口字節(jié)數(shù)(VISA Bytes at Serial Port)函數(shù)的輸出端口Number of bytes at Serial port與串口讀取(VISA Read)函數(shù)的輸入端口字節(jié)總數(shù)(byte count)相連。(6)將數(shù)值常量(值為0)與不等于?(Not Equal ?)函數(shù)的輸入端口y相連。(7)將不等于?(Not Equal ?)函數(shù)的輸出端口x != y? 與條件結(jié)構(gòu)(下)的選擇端子?相連。(8)在條件結(jié)構(gòu)(上)中將字符輸入控件圖標(biāo)(標(biāo)簽為“發(fā)送區(qū):”)與串口寫入(VISA Write)函數(shù)的輸入端口寫入緩沖區(qū)(write buffer)相連

15、。(9)在條件結(jié)構(gòu)(下)中將串口讀?。╒ISA Read)函數(shù)的輸出端口讀取緩沖區(qū)(read buffer)與字符顯示控件圖標(biāo)(標(biāo)簽為“接收區(qū):”)相連。(10)將停止按鈕(Stop Button)函數(shù)與非(Not)函數(shù)的輸入端口x相連。(11)將非(Not)函數(shù)的輸出端口.not. x ? 與循環(huán)結(jié)構(gòu)的條件端子相連。(12)在條件結(jié)構(gòu)(上)中將串口寫入(VISA Write)函數(shù)的輸出端口VISA資源名稱輸出(VISA resource name out)與串口關(guān)閉(VISA Close)函數(shù)(上)的輸入端口VISA資源名稱(VISA resource name)相連。(13)在條件結(jié)構(gòu)(下

16、)中將串口讀取(VISA Read)函數(shù)的輸出端口VISA資源名稱輸出與關(guān)閉串口函數(shù)VISA Close(下)的輸入端口VISA資源名稱相連。(14)進(jìn)入兩個條件結(jié)構(gòu)的假(False)選項,將VISA資源名稱函數(shù)的輸出端口分別與串口關(guān)閉(VISA Close)函數(shù)(上、下)的輸入端口VISA資源名稱相連,如圖13-6所示。5運(yùn)行程序進(jìn)入程序前面板,保存設(shè)計好的VI程序。單擊快捷工具欄“運(yùn)行(Run)”按鈕,運(yùn)行程序。兩臺計算機(jī)同時運(yùn)行本程序。在一臺計算機(jī)程序窗體中發(fā)送字符區(qū)輸入要發(fā)送的字符,比如“收到信息請回字符abc123”,單擊“發(fā)送字符”按鈕,發(fā)送區(qū)的字符串通過COM1口發(fā)送出去。如果聯(lián)

17、網(wǎng)通信的另一臺計算機(jī)程序收到字符,則返回字符串,如“收到,abc123”;如果通信正常該字符串將顯示在接收區(qū)中。程序運(yùn)行界面如圖13-7所示。 圖13-6 框圖程序連線 圖13-7 程序運(yùn)行界面6單PC雙串口互通信程序如果只有一臺計算機(jī)且具有兩個串口,那么可以通過串口線將兩個串口直接連接起來,如圖13-8所示,編寫程序?qū)崿F(xiàn)雙串口互通信。圖13-9是單PC雙串口互通信程序的前面板。圖13-10是單PC雙串口互通信程序的后面板。(a) (b)圖13-8 雙串口直接連接圖13-9 單PC雙串口互通信程序的前面板圖13-10 單PC雙串口互通信程序的后面板13.2 PC與單片機(jī)串口通信程序設(shè)計目前,在

18、許多單片機(jī)應(yīng)用系統(tǒng)中,上、下位機(jī)分工明確,作為下位機(jī)核心器件的單片機(jī)往往只負(fù)責(zé)數(shù)據(jù)的采集和通信,而上位機(jī)通常以基于圖形界面的Windows系統(tǒng)為操作平臺。為便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,這種應(yīng)用的核心是數(shù)據(jù)通信,它包括單片機(jī)和上位機(jī)之間、客戶端和服務(wù)器之間以及客戶端和客戶端之間的通信,而單片機(jī)和上位機(jī)之間數(shù)據(jù)通信則是整個系統(tǒng)的基礎(chǔ)。圖13-11 單片機(jī)實驗板單片機(jī)和PC的通信是通過單片機(jī)的串口和PC串口之間的硬件連接實現(xiàn)的。圖13-11所示是本設(shè)計使用的單片機(jī)實驗板。有關(guān)單片機(jī)實驗板的詳細(xì)信息請查詢電子開發(fā)網(wǎng). com/。13.2.1 PC與單片機(jī)串口通信程序設(shè)計硬件線路PC圖13-

19、12 PC與單片機(jī)串口通信線路如圖13-12所示,數(shù)據(jù)通信的硬件上采用3線制,將單片機(jī)和PC串口的3個引腳(RXD、TXD、GND)分別連在一起,即將PC和單片機(jī)的發(fā)送數(shù)據(jù)線TXD與接收數(shù)據(jù)RXD交叉連接,兩者的地線GND直接相連,而其他信號線,如握手信號線均不用,采用軟件握手的方式,這樣既可以實現(xiàn)預(yù)定的任務(wù)又可以簡化電路設(shè)計。但由于單片機(jī)的TTL邏輯電平和RS-232C的電氣特性完全不同,RS-232C的邏輯0電平規(guī)定為+3V+15V之間,邏輯1電平為3V15V之間,因此在將PC和單片機(jī)的RXD和TXD交叉連接時必須進(jìn)行電平轉(zhuǎn)換,這里使用的是MAX232電平轉(zhuǎn)換芯片。單片機(jī)系統(tǒng)有LED顯示器

20、模塊、繼電器輸出模塊、蜂鳴器模塊等。13.2.2 PC與單片機(jī)串口通信程序設(shè)計任務(wù)利用Keil C51和LabVIEW編寫程序?qū)崿F(xiàn)PC與單片機(jī)串口通信。任務(wù)要求有以下幾方面。1設(shè)計任務(wù)一PC通過串行口將數(shù)字(00,01,02,03.,F(xiàn)F,十六進(jìn)制)發(fā)送給單片機(jī),單片機(jī)收到后回傳這個數(shù)字,PC接收到回傳數(shù)據(jù)后顯示出來,若發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)相等,則串行通信正確,否則有錯誤。啟始符是數(shù)字00,結(jié)束符是數(shù)字FF。2設(shè)計任務(wù)二(1)測試通信狀態(tài)。先在文本框中輸入字符串“Hello”,單擊“測試”按鈕,將字符串“Hello”發(fā)送到單片機(jī),若PC與單片機(jī)通信正常,在PC程序的文本框中顯示字符串“OK

21、!”,否則顯示字符串“ERROR!”。(2)循環(huán)計數(shù)。單擊“開始”按鈕,文本框中數(shù)字從0開始累加,0、1、2、3,并將此數(shù)發(fā)送到單片機(jī)的顯示器上顯示。當(dāng)累加到10時,回到0重新開始累加,依次循環(huán)。任何時候,單擊“停止”按鈕,PC程序中和單片機(jī)顯示器都停止累加;再單擊“開始”按鈕,接著停下的數(shù)繼續(xù)累加。(3)控制指示燈。在單片機(jī)繼電器接線端子的兩個通道上分別接上兩個指示燈,在PC程序畫面上選擇指示燈號,如1號燈,單擊畫面“打開”按鈕,單片機(jī)上1號燈亮,同時蜂鳴器響;單擊畫面“關(guān)閉”按鈕,1號燈滅,蜂鳴器停止響,同樣控制2號燈的亮滅(蜂鳴器同時動作)。單片機(jī)和PC通信,在程序設(shè)計上涉及兩個部分的內(nèi)

22、容。一是單片機(jī)的C51程序,二是PC的串口通信程序和界面的編制。13.2.3 任務(wù)實現(xiàn)13.2.3.1 利用Keil C51實現(xiàn)單片機(jī)與PC串口通信任務(wù)一Keil C51軟件是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯、編譯、仿真于一體,支持匯編、PLM語言和C語言的程序設(shè)計,界面友好,易學(xué)易用。啟動Keil C51,出現(xiàn)編輯界面。1建立一個新工程單擊Project菜單,在彈出的下拉菜單中選中New Project選項,出現(xiàn)Create New Project對話框,然后選擇要保存的路徑、文件夾,輸入工程文件的名字,如pc_com(后綴名默認(rèn)),單擊“保存”按鈕。這時會彈出一個 “Select

23、 Device for Target Target 1” 對話框,要求用戶選擇單片機(jī)的型號,可以根據(jù)使用的單片機(jī)來選擇,Keil C51幾乎支持所有的51核的單片機(jī)。這里選擇Atmel 的89C51。選擇89C51之后,右邊一欄是對這個單片機(jī)的基本的說明,然后單擊“確定”按鈕。2編寫程序單擊“File”菜單,再在下拉菜單中單擊“New”選項。此時光標(biāo)在編輯窗口里閃爍,這時可以鍵入用戶的應(yīng)用程序了,但建議首先保存該空白的文件。單擊菜單上的“File”項,在下拉菜單中選中“Save As”選項,在“文件名”欄右側(cè)的編輯框中鍵入欲使用的文件名,同時,必須鍵入正確的擴(kuò)展名,如pc_com.c,然后單擊

24、“保存”按鈕。如果用語言編寫程序,則擴(kuò)展名為(.c);如果用匯編語言編寫程序,則擴(kuò)展名必須為(.asm)。回到編輯界面后,單擊“Target 1”前面的“”號,再在“Source Group 1”上單擊鼠標(biāo)右鍵,彈出快捷菜單,然后單擊“Add File to GroupSource Group 1”。選中pc_com.c,然后單擊“Add”按鈕,再單擊“Close”按鈕。此時注意到“Source Group 1”文件夾中多了一個子項“pc_com.c”。子項的多少與所增加的源程序的多少相同?,F(xiàn)在,請輸入C語言源程序。在輸入程序時,讀者可以發(fā)現(xiàn)事先保存待編輯的文件的好處,即Keil C51會自動

25、識別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會使用戶少犯錯誤,有利于提高編程效率。3編譯程序單擊“Project”菜單,在下拉菜單中選擇“Options for TargetTarget 1”選項,出現(xiàn)對話框;選擇Output選項卡,選中“Create HEX Files”項,單擊“確定”按鈕。再單擊“Project”菜單,在下拉菜單中選擇“Built Target”選項(或者使用快捷鍵F7),進(jìn)行編譯。若有錯誤會在output窗口提示,可根據(jù)此提示,找出錯誤并修改,直至編譯通過,如圖13-13所示。圖13-13 Keil C51編譯界面至此,用Keil C51上做了一個完整工程,其中,生

26、成一個編程器燒寫文件pc_。4燒錄程序?qū)T89C51芯片安裝在編程器插座上,運(yùn)行編程器程序。選擇單片機(jī)芯片類型AT89C51,讀入Intel Hex文件pc_,執(zhí)行自動編程指令,將pc_文件燒錄入AT89C51芯片中。將燒錄好的AT89C51芯片安裝到單片機(jī)實驗板上,就可以用串口調(diào)試助手程序?qū)λM(jìn)行測試了。以下是完成單片機(jī)與PC串口通信任務(wù)1的C51參考程序:# pragma db code# include# define uchar unsigned charvoid rece(void);void init(void);uchar re17;/*主程序*/void main(void)

27、 uchar temp;init();do while(RI=0); temp=SBUF; if(temp=0 x00) rece(); else break; while(1);/*串口初始化*/void init(void)TMOD=0 x20; /定時器1-方式2 PCON=0 x80; /電源控制SCON=0 x50; /方式1TL1=0 xF3; TH1=0 xF3; /22.1184MHz晶振,波特率為4800 0 xf3 96000 xfa 19200 0 xfd TR1=1; /*接收返回數(shù)據(jù)*/void rece(void)char i;i=0;dowhile(RI=0);

28、rei=SBUF; RI=0; SBUF=rei; while(TI=0); TI=0; i+; while(rei-1!=255);13.2.3.2 利用LabVIEW實現(xiàn)PC與單片機(jī)串口通信任務(wù)一1建立新VI程序啟動NI LabVIEW程序,選擇新建(New)選項中的VI項,建立一個新VI程序。2程序前面板設(shè)計 在前面板設(shè)計區(qū)空白處單擊鼠標(biāo)右鍵,顯示控件選板(Controls)。(1)添加一個字符串輸入控件:控件(Controls)新式(Modern)字符串與路徑(String & Path) 字符串輸入控件(String Control),將標(biāo)簽改為“發(fā)送數(shù)據(jù)(十六進(jìn)制)”,在該控件上單

29、擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“十六進(jìn)制顯示(Hex Display)”。(2)添加一個字符串顯示控件:控件(Controls)新式(Modern)字符串與路徑(String & Path)字符串顯示控件(String Indicator),將標(biāo)簽改為“返回數(shù)據(jù)(十六進(jìn)制)”,在該控件上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“十六進(jìn)制顯示(Hex Display)”。(3)添加一個字符顯示控件:控件(Controls)新式(Modern)字符串與路徑(String & Path)字符串顯示控件(String Indicator),將標(biāo)簽改為“通信狀態(tài)”。(4)添加一個串口資源檢測控件:控件(

30、Controls)新式(Modern) I/O VISA資源名稱(VISA resource name);單擊控件箭頭,選擇串口號,如ASRL1:或COM1。圖13-14 程序前面板(5)添加一個確定按鈕控件:控件(Controls)新式(Modern)布爾(Boolean)確定按鈕(OK Butoon),將標(biāo)題改為“發(fā)送”。(6)添加一個停止按鈕控件:控件(Controls)新式(Modern)布爾(Boolean)停止按鈕(Stop Butoon),將標(biāo)題改為“關(guān)閉”。設(shè)計的程序前面板如圖13-14所示。3框圖程序設(shè)計添加函數(shù)與連線 進(jìn)入框圖程序設(shè)計界面,在設(shè)計區(qū)的空白處單擊鼠標(biāo)右鍵,顯示

31、函數(shù)選板(Functions)。(1)添加一個配置串口函數(shù):編程(Programming) 儀器I/O(Instrument I/O) 串口(Serial) VISA配置串口(VISA Configure Serial Port)。(2)添加4個數(shù)值常量:編程(Programming) 數(shù)值(Numeric) 數(shù)值常量(Numeric Constant),值分別為4800(波特率)、8(數(shù)據(jù)位)、0(校驗位,無)、1(停止位)。(3)添加一個While循環(huán)結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(Structures) While 循環(huán)(While Loop)。(4)添加一個關(guān)閉串口函數(shù):編

32、程(Programming) 儀器I/O(Instrument I/O) 串口(Serial) VISA關(guān)閉(VISA Close)。(5)在While循環(huán)結(jié)構(gòu)中添加一個條件結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(Structures) 條件結(jié)構(gòu)(Case Structure)。(6)在條件結(jié)構(gòu)中添加一個順序結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(Structures) 層疊式順序結(jié)構(gòu)(Stacked Sequence Structure)。將其幀(Frame)設(shè)置為4個(序號0-3)。設(shè)置方法:選中Stacked Sequence Structures上邊框,單擊鼠標(biāo)右鍵,執(zhí)行在后面

33、添加幀(Add Frame After)選項3次。(7)在順序結(jié)構(gòu)的Frame 0中添加一個串口寫入函數(shù):編程(Programming) 儀器I/O(Instrument I/O)串口(Serial) VISA寫入(VISA Write)。(8)將控件“發(fā)送數(shù)據(jù)(十六進(jìn)制)”的圖標(biāo)拖入順序結(jié)構(gòu)的Frame 0中,分別將確定按鈕(OK Button)、停止按鈕(Stop Buffon) 的圖標(biāo)拖入循環(huán)結(jié)構(gòu)中。(9)將VISA資源名稱(VISA resource name)函數(shù)的輸出端口分別與串口配置(VISA Configure Serial Port)函數(shù)、串口寫入(VISA Write)函數(shù)

34、(在順序結(jié)構(gòu)Frame 0中)、串口關(guān)閉(VISA Close)函數(shù)的輸入端口VISA資源名稱(VISA resource name)相連。(10)將數(shù)值常量4800、8、0、1分別與VISA配置串口(VISA Configure Serial Port)函數(shù)的輸入端口波特率(baud rate)、數(shù)據(jù)位(data bits)、奇偶(parity)、停止位(stop bits)相連。(11)右鍵選擇循環(huán)結(jié)構(gòu)的條件端子,設(shè)置為“真時停止(Stop if True)”,圖標(biāo)變?yōu)?。將停止按鈕(Stop Buffon)與循環(huán)結(jié)構(gòu)的條件端子相連。(12)將確定按鈕(OK Button)與條件結(jié)構(gòu)的選擇端

35、子?相連。(13)將函數(shù)“發(fā)送數(shù)據(jù)(十六進(jìn)制)”與串口寫入(VISA Write)函數(shù)的輸入端口寫入緩沖區(qū)(write buffer)相連。連接好的框圖程序如圖13-15所示。(14)在順序結(jié)構(gòu)的Frame 1中添加一個時鐘函數(shù):編程(Programming)定時(Timing) 等待下一個整數(shù)倍毫秒(Wait Until Next ms Multiple)。(15)在順序結(jié)構(gòu)的Frame 1中添加一個數(shù)值常量:編程(Programming)數(shù)值(Numeric) 數(shù)值常量(Numeric Constant),將值改為200(時鐘頻率值)。(16)在順序結(jié)構(gòu)的Frame 1中將數(shù)值常量(值為2

36、00)與等待下一個整數(shù)倍毫秒(Wait Until Next ms Multiple)函數(shù)的輸入端口毫秒倍數(shù)(millisecond multiple)相連。連接好的框圖程序如圖13-16所示。 圖13-15 框圖程序連線1 圖13-16 框圖程序連線2(17)在順序結(jié)構(gòu)的Frame 2中,添加一個串口字節(jié)數(shù)函數(shù):編程(Programming) 儀器I/O(Instrument I/O)串口(Serial) VISA串口字節(jié)數(shù)(VISA Bytes at Serial Port),標(biāo)簽為“Property Node”。(18)在順序結(jié)構(gòu)的Frame 2中,添加一個串口讀取函數(shù):編程(Progr

37、amming) 儀器I/O(Instrument I/O)串口(Serial) VISA讀?。╒ISA Read)。(19)將控件“返回數(shù)據(jù)(十六進(jìn)制)”的圖標(biāo)拖入順序結(jié)構(gòu)的Frame 2中。(20)將VISA串口字節(jié)數(shù)(VISA Bytes at Serial Port)函數(shù)的輸出端口VISA資源名稱(VISA resource name)與VISA讀?。╒ISA Read)函數(shù)的輸入端口VISA資源名稱(VISA resource name)相連。(21)將VISA串口字節(jié)數(shù)(VISA Bytes at Serial Port)函數(shù)的輸出端口Number of bytes at Seria

38、l port與串口讀?。╒ISA Read)函數(shù)的輸入端口字節(jié)總數(shù)(byte count)相連。(22)將VISA讀?。╒ISA Read)函數(shù)的輸出端口讀取緩沖區(qū)(read buffer)與控件“返回數(shù)據(jù)(十六進(jìn)制)”的輸入端口相連。連接好的框圖程序如圖13-17所示。圖13-17 框圖程序連線3(23)在順序結(jié)構(gòu)的Frame 3中,添加兩個局部變量:編程(Programming) 結(jié)構(gòu)(Structures)局部變量(Local Variable)。選擇局部變量,單擊鼠標(biāo)右鍵,在彈出的快捷菜單的(Select Item)選項下,為局部變量分別選擇對象:“返回數(shù)據(jù)(十六進(jìn)制)”和“發(fā)送數(shù)據(jù)(

39、十六進(jìn)制)”,將其讀寫屬性設(shè)置為“轉(zhuǎn)換為讀?。–hange To Read)”。(24)在順序結(jié)構(gòu)的Frame 3中,添加一個比較函數(shù):編程(Programming)比較(Comparison)等于?(Equal ?)。(25)在順序結(jié)構(gòu)的Frame 3中,添加一個條件結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(Structures)條件結(jié)構(gòu)(Case Structure)。(26)將局部變量“返回數(shù)據(jù)(十六進(jìn)制)”和“發(fā)送數(shù)據(jù)(十六進(jìn)制)”分別與比較函數(shù)等于?(Equal ?)的輸入端口x和y相連。(27)將比較函數(shù)等于?(Equal ?)的輸出端口x=y?與條件結(jié)構(gòu)的選擇端子?相連。(28

40、)在條件結(jié)構(gòu)的真(True)選項中,添加一個字符串常量:編程(Programming) 字符串(String) 字符串常量(String Constant),將其值改為“通信正常!”。(29)將控件“通信狀態(tài)”拖入條件結(jié)構(gòu)中。(30)將字符串常量“通信正常!”與控件“通信狀態(tài)”的輸入端口相連。(31)在條件結(jié)構(gòu)的假(False)選項中,添加一個字符串常量,將其值改為“通信異常!”。(32)在條件結(jié)構(gòu)的假(False)選項中,添加一個局部變量,為局部變量選擇對象“通信狀態(tài)”,屬性默認(rèn)為:“寫”。(33)將字符串常量“通信異常!”與局部變量“通信狀態(tài)”相連。連接好的框圖程序如圖13-18所示。圖1

41、3-18 框圖程序連線44運(yùn)行程序圖13-19 程序運(yùn)行界面進(jìn)入程序前面板,保存設(shè)計好的VI程序。單擊快捷工具欄中的“運(yùn)行(Run)”按鈕,運(yùn)行程序。程序運(yùn)行界面如圖13-19所示。在“發(fā)送數(shù)據(jù)”框中輸入兩位的十六進(jìn)制數(shù)字(00,01,02,03.,F(xiàn)F),單擊“發(fā)送”按鈕,將數(shù)據(jù)發(fā)送給單片機(jī);單片機(jī)收到后回傳這個數(shù)字,PC接收到回傳數(shù)據(jù)后在“返回數(shù)據(jù)”框中顯示出來(十六進(jìn)制),若發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)相等,則在“通信狀態(tài)”框中顯示“通信正常!”,否則顯示“通信異常!”。當(dāng)發(fā)送“FF”后,要想繼續(xù)發(fā)送數(shù)據(jù),必須先發(fā)送“00”。13.2.3.3 利用Keil C51實現(xiàn)單片機(jī)與PC串口通信任務(wù)

42、二。13.2.3.4 利用LabVIEW實現(xiàn)PC與單片機(jī)串口通信任務(wù)二。13.3 PC與智能儀器串口通信案例目前儀器儀表的智能化程度越來越高,大量的智能儀器都配備了RS-232通信接口,并提供了相應(yīng)的通信協(xié)議,能夠?qū)y試、采集的數(shù)據(jù)傳輸給計算機(jī)等設(shè)備,以便進(jìn)行大量數(shù)據(jù)的儲存、處理、查詢和分析。通常計算機(jī)(PC)或工控機(jī)(IPC)是智能儀器上位機(jī)的最佳選擇,因為PC或IPC不僅能解決智能儀器(作為下位機(jī))所不能解決的問題,如數(shù)值運(yùn)算、曲線顯示、數(shù)據(jù)查詢、報表打印等;而且具有豐富和強(qiáng)大的軟件開發(fā)工具環(huán)境。圖13-23 智能儀器示意圖圖13-23是XMT-3000A型智能儀器示意圖(詳細(xì)信息請查詢網(wǎng)

43、站)。13.3.1 PC與智能儀器串口通信硬件線路1線路說明XMT-3000A智能儀器采用先進(jìn)的微電腦芯片、專家PID控制算法,具備高準(zhǔn)確度的自整定功能,并可以設(shè)置出多種報警方式。圖13-24 PC與智能儀表串口通信線路XMT-3000A智能儀表有多種輸入功能,一臺儀表可以接熱電偶(K、S、Wr、E、J、T、B、N)、熱電阻(Pt100、Cu50)、電壓(05V、1V5V)、電流(010mA、4mA20mA)等不同的輸入信號。XMT-3000A智能儀表接熱電阻輸入時,采用三線制接線,消除了引線帶來的誤差;接熱電偶輸入時,儀表內(nèi)部帶有冷端補(bǔ)償部件;接電壓/電流輸入時,對應(yīng)顯示的物理量程可任意設(shè)定

44、。在計算機(jī)與智能儀器通電前,按圖13-24所示將熱電阻傳感器Cu50、上、下限報警指示燈與XMT-3000A智能儀器連接。通過串口線將計算機(jī)與智能儀器連接起來:智能儀器的14端子(RXD)與計算機(jī)串口COM1的3腳(TXD)相連;智能儀器的15端子(TXD)與計算機(jī)串口COM1的2腳(RXD)相連;智能儀器的16端子(GND)與計算機(jī)串口COM1的5腳(GND)相連。連接儀器與計算機(jī)串口線時,儀器與計算機(jī)嚴(yán)禁通電,否則極易燒毀串口。本設(shè)計用到的硬件為:智能儀器(XMT-3000A型,需配置RS-232通信、上下限控制繼電器、DC24V電源等模塊),串口通信線(三線制),熱電阻傳感器(Cu50)

45、,指示燈(DC24V)等。2XMT-3000A智能儀器的參數(shù)設(shè)置XMT-3000A智能儀器在使用前應(yīng)對其輸入/輸出參數(shù)進(jìn)行正確設(shè)置,設(shè)置好的儀器才能投入正常使用。請按表13-1設(shè)置儀器的主要參數(shù)。表13-1儀表的主要參數(shù)設(shè)置參 數(shù)參 數(shù) 含 義設(shè) 置 值HIiAL上限絕對值報警值30LoAL下限絕對值報警值20Sn輸入規(guī)格傳感器為:Cu50,則Sn=20diP小數(shù)點位置要求顯示一位小數(shù),則diP=1ALP儀表功能定義要求上限報警由報警1 (ALM1)輸出,下限報警由報警2(ALM 2)輸出,報警時在下顯示器顯示報警符號,則ALP=10Addr通信地址0baud通信波特率48003XMT-300

46、0A智能儀表的通信協(xié)議XMT-3000A智能儀器使用異步串行通信接口,共有兩種通信方式:RS232和RS485。接口電平符合RS232C或RS485標(biāo)準(zhǔn)中的規(guī)定。數(shù)據(jù)格式為一個起始位,8位數(shù)據(jù),無校驗位,2個停止位。通信傳輸數(shù)據(jù)的波特率可調(diào)為3004800 bit/s。XMT儀表采用多機(jī)通信協(xié)議,如果采用RS485通信接口,則可將164臺的儀表同時連接在一個通信接口上;采用RS232C通信接口時,一個通信接口只能連接一臺儀表。RS485通信接口與RS422接口的信號電平相同,通信距離長達(dá)1km以上,優(yōu)于RS232C通信接口。RS422為全雙工工作方式,RS485為半雙工工作方式,RS485只需

47、兩根線就能使多臺XMT儀表與計算機(jī)進(jìn)行通信,而RS422需要4根通信線。由于通信協(xié)議的限制,XMT只能工作在半雙工模式,所以XMT儀表推薦使用RS485接口,以簡化通信線路接線。為使普通計算機(jī)作上位機(jī),可使用RS232C/RS485型通信接口轉(zhuǎn)換器,將計算機(jī)上的RS232C通信口轉(zhuǎn)為RS485通信口。XMT儀表采用十六進(jìn)制數(shù)據(jù)格式來表示各種指令代碼及數(shù)據(jù)。通信指令只有兩條,一條為讀指令,一條為寫指令。讀指令格式為:地址代號+52H+參數(shù)代號。返回:依次返回為測量值PV、給定值SV、輸出值MV+報警狀態(tài)、所讀參數(shù)值。寫指令格式:地址指令+43H+參數(shù)代號+寫入值的低位字節(jié)+寫入值的高位字節(jié)。返回

48、:測量值PV、給定值SV、輸出值MV+報警狀態(tài)、被寫入的參數(shù)值。地址代號:為了在一個通信接口上連接多臺XMT儀表,需要給每臺XMT儀表編一個互不相同的代號,這一代號在本文約定稱為通信地址代號(簡稱地址代號)。XMT有效的地址為063。所以一條通信線路上最多可連接64臺XMT儀表。儀表的地址代號由參數(shù)Addr決定。XMT儀表通信協(xié)議規(guī)定,地址代號為兩個字節(jié),其數(shù)值范圍(十六進(jìn)制)是80HBFH,兩個字節(jié)必須相同,數(shù)值為:儀表地址+80H。例如,儀表參數(shù)Addr=5(十六進(jìn)制數(shù)為05H),05+80H=85H,則該儀表的地址表示為:85H 85H。參數(shù)代號:儀表的參數(shù)用一個十六進(jìn)制數(shù)的參數(shù)代號來表

49、示。它在指令中表示要讀/寫的參數(shù)名。表13-2列出了XMT儀表可讀/寫的參數(shù)代號(部分)。表13-2XMT儀表可讀/寫的參數(shù)代號表參 數(shù) 代 號參 數(shù) 名含 義參 數(shù) 代 號參 數(shù) 名含 義00HSV給定值0BHSn輸入規(guī)格01HHIAL上限報警值0CHdIP小數(shù)點位置02HLoAL下限報警值0DHdIL下限顯示值03HdHAL正偏差報警0EHdIH上限顯示值04HdLAL負(fù)偏差報警15Hbaud通信波特率05HdF回差16HAddr通信地址06HCtrL控制方式 17HdL數(shù)字濾波如果向儀表讀取參數(shù)代號在表格中參數(shù)以外,則返回參數(shù)值為錯誤信號(兩個7F值)。返回的測量值數(shù)據(jù)每兩個8位數(shù)據(jù)代表

50、一個16位整形數(shù),低位字節(jié)在前,高位字節(jié)在后,負(fù)溫度值采用補(bǔ)碼表示,熱電偶或熱電阻輸入時其單位都是0.1,回送的十六進(jìn)制數(shù)據(jù)(兩個字節(jié))先轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),然后將十進(jìn)制數(shù)據(jù)除以10再顯示出來。上位機(jī)每次向儀表發(fā)一個指令,儀表返回一個數(shù)據(jù)。編寫上位機(jī)軟件時,注意每條有效指令,儀表在00.36s內(nèi)作出應(yīng)答,而上位機(jī)也必須等儀表返回指令后,才能發(fā)新的指令,否則將引起錯誤。4溫度測量與控制(1)正確設(shè)置儀器參數(shù)后,儀器PV窗顯示當(dāng)前溫度測量值。(2)給傳感器升溫,當(dāng)溫度測量值大于上限報警值30時,上限指示燈L2亮,儀器SV窗顯示上限報警信息。(3)給傳感器降溫,當(dāng)溫度測量值小于上限報警值30,大于下限

51、報警值20時,上限指示燈L2和下限指示燈L1均滅。(4)給傳感器繼續(xù)降溫,當(dāng)溫度測量值小于下限報警值20時,下限指示燈L1亮,儀器SV窗下限報警信息。5串口調(diào)試XMT-3000A智能儀器使用異步串行通信接口,采用RS-232通信方式,其數(shù)據(jù)格式為:一個起始位,8個數(shù)據(jù)位,無校驗位,2個停止位。打開“串口調(diào)試助手”程序,首先設(shè)置串口號COM1、波特率4800、校驗位NONE、數(shù)據(jù)位8、停止位2等參數(shù)(注意:設(shè)置的參數(shù)必須與儀器設(shè)置的一致),選擇十六進(jìn)制顯示和十六進(jìn)制發(fā)送方式,打開串口,如圖13-25所示。在“發(fā)送的字符/數(shù)據(jù)”文本框中輸入讀指令:80 80 52 0C ,單擊“手動發(fā)送”按鈕,則

52、PC向儀器發(fā)送一條指令,儀器返回一串?dāng)?shù)據(jù),如:3D 01 E7 03 64 00 01 00 ,該串?dāng)?shù)據(jù)在返回信息框內(nèi)顯示。根據(jù)儀器返回數(shù)據(jù),可知儀器的當(dāng)前溫度測量值為:01 3D(十六進(jìn)制,低位字節(jié)在前,高位字節(jié)在后),十進(jìn)制為31.7。使用說明。圖13-25 串口調(diào)試助手若選擇了“手動發(fā)送”,每單擊一次可以發(fā)送一次;若選中了“自動發(fā)送”,則每隔設(shè)定的發(fā)送周期內(nèi)發(fā)送一次,直到去掉“自動發(fā)送”為止。值得注意的一點是:選中“十六進(jìn)制發(fā)送”后,發(fā)送框中所填字符每兩個字符之間應(yīng)有一個空格,如:01 23 00 34 45。還有一些特殊的字符,如回車換行,則直接敲入回車即可。6使用“計算器”實現(xiàn)數(shù)制轉(zhuǎn)

53、換打開Windows附件中“計算器”程序,在“查看”菜單下選擇“科學(xué)型”。選擇“十六進(jìn)制”,輸入儀器當(dāng)前溫度測量值:01 3D(十六進(jìn)制,0在最前面不顯示),如圖13-26所示。單擊“十進(jìn)制”選項,則十六進(jìn)制數(shù)“013D”轉(zhuǎn)換為十進(jìn)制數(shù)“317”,如圖13-27所示。儀器的當(dāng)前溫度測量值為:31.7(十進(jìn)制)。為什么? 圖13-26 在“計算器”中輸入十六進(jìn)制數(shù) 圖13-27 十六進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制數(shù)13.3.2 設(shè)計任務(wù)。13.4 PC與PLC串口通信案例可編程序邏輯控制器(簡稱PLC)主要是為現(xiàn)場控制而設(shè)計的,其人機(jī)界面主要是開關(guān)、按鈕、指示燈等。其具有良好的適應(yīng)性和可擴(kuò)展能力得到越來越廣泛的

54、應(yīng)用。采用PLC的控制系統(tǒng)或裝置具有可靠性高、易于控制、系統(tǒng)設(shè)計靈活、能模擬現(xiàn)場調(diào)試、編程使用簡單、性價比高、有良好的抗干擾能力等特點。但是,PLC也有不易顯示各種實時圖表/曲線(趨勢線)和漢字、無良好的用戶界面、不便于監(jiān)控等缺陷。圖13-34 PLC產(chǎn)品示意圖20世紀(jì)90年代后,許多的PLC都配備有計算機(jī)通信接口,通過總線將一臺或多臺PLC相連接。計算機(jī)作為上位機(jī)可以提供良好的人機(jī)界面,進(jìn)行系統(tǒng)的監(jiān)控和管理,進(jìn)行程序編制、參數(shù)設(shè)定和修改、數(shù)據(jù)采集等,既能保證系統(tǒng)性能,又能使系統(tǒng)操作簡便,便于生產(chǎn)過程的有效監(jiān)督。而PLC作為下位機(jī),執(zhí)行可靠有效的分散控制。用一臺計算機(jī)(上位機(jī))去監(jiān)控下位機(jī)(P

55、LC),這就要求PC與PLC之間穩(wěn)定、可靠的數(shù)據(jù)通信。圖13-34是某型號PLC示意圖。13.4.1 PC與PLC串口通信硬件線路西門子S13-200PLC系統(tǒng)為用戶提供了靈活的通信功能。集成在S13-200中的點對點接口(PPI)可用普通的雙絞線作波特率高達(dá)9600bit/s的數(shù)據(jù)通信,用RS-485接口實現(xiàn)的高速用戶可編程接口,可使用專用位通信協(xié)議(如ASCII)做波特率高達(dá)38.4 kbit/s的高速通信并可按步調(diào)整。而PC的接口為RS-232,兩者之間需要進(jìn)行電平轉(zhuǎn)換。利用西門子公司的PC/PPI電纜,可將S13-200CPU與計算機(jī)連接起來組成PC/PPI網(wǎng)絡(luò),實現(xiàn)點對點通信,如圖1

56、3-35所示。圖13-35 PC與S13-200PLC串口通信線路本設(shè)計用到的硬件為:西門子S13-200PLC(CPU224),PC/PPI電纜,開關(guān),指示燈(DC24V),直流電源(OUT:DC24V)等。13.4.2 設(shè)計任務(wù)利用LabVIEW編寫程序?qū)崿F(xiàn)PC與PLC串口通信。任務(wù)要求。(1)開關(guān)量輸入:利用繼電器開關(guān)改變某個輸入端口的狀態(tài),程序讀取該端口的輸入狀態(tài)(打開/關(guān)閉),并在程序中顯示。(2)開關(guān)量輸出:程序畫面中指定元件地址,單擊置位/復(fù)位命令按鈕,置指定地址的元件端口(繼電器)狀態(tài)為ON或OFF,使線路中指示燈亮/滅。13.5 PC與GSM短信模塊串口通信案例在很多監(jiān)控領(lǐng)域

57、,各種監(jiān)控設(shè)備大多還是有線方式傳輸,當(dāng)距離遙遠(yuǎn)時,監(jiān)控設(shè)備的安裝、維護(hù)非常不便,因為監(jiān)控端遠(yuǎn)離采集端,鋪設(shè)電纜的投入有時可以說是巨大的。通過無線方式來交換數(shù)據(jù),則可以有效地避免這些問題。GSM網(wǎng)絡(luò)是目前國內(nèi)覆蓋范圍最廣,應(yīng)用最普遍的無線通信網(wǎng)絡(luò),利用GSM網(wǎng)絡(luò)構(gòu)建遠(yuǎn)程監(jiān)測系統(tǒng)時,完全可利用現(xiàn)成的GSM無線網(wǎng)絡(luò)而無需再新建基站。利用GSM網(wǎng)絡(luò)短消息業(yè)務(wù)(SMS)實現(xiàn)監(jiān)測領(lǐng)域的應(yīng)用具有以下優(yōu)點:通信網(wǎng)絡(luò)覆蓋面廣、網(wǎng)絡(luò)設(shè)施完備,不需投資建設(shè)基礎(chǔ)設(shè)施;實施與運(yùn)行費(fèi)用低;可以實現(xiàn)在無人職守、環(huán)境惡劣、超遠(yuǎn)距離的情況下控制信息的收集和傳送。圖13-38 GSM模塊示意圖GSM短信模塊是專門用于短信接收發(fā)送

58、的模塊,具有RS-232通信口,可與單片機(jī)、計算機(jī)相連。圖13-38所示為某型號GSM模塊示意圖。13.5.1 PC與GSM短信模塊串口通信硬件線路在數(shù)據(jù)采集站,傳感器檢測的數(shù)據(jù)送入單片機(jī)模擬量輸入口,單片機(jī)通過串口與GSM模塊相連;在監(jiān)控中心,GSM模塊通過串口線與PC直接相連,如圖13-39所示。 圖13-39 利用GSM模塊組成的遠(yuǎn)程監(jiān)控系統(tǒng)傳感器檢測的數(shù)據(jù)經(jīng)單片機(jī)MCU單元的處理,編輯成短信息,通過串行口傳送給GSM模塊后以短消息的方式將數(shù)據(jù)發(fā)送到監(jiān)控中心的計算機(jī)或用戶的GSM手機(jī)。同樣,監(jiān)控中心PC通過串口向GSM模塊TC35發(fā)送命令,通過TC35以短消息形式把設(shè)置命令發(fā)送到下位機(jī)系

59、統(tǒng)的GSM模塊,對單片機(jī)進(jìn)行控制。本設(shè)計用到的硬件為:GSM短信模塊(TC35i),串口通信線(三線制),SIM卡,手機(jī)等。用戶手機(jī)通過GSM模塊與PC和單片機(jī)可以實現(xiàn)雙向通信。13.5.2 PC與GSM短信模塊串口通信設(shè)計任務(wù)利用LabVIEW編寫程序?qū)崿F(xiàn)PC與GSM短信模塊串口通信。任務(wù)要求。(1)在程序畫面輸入短信內(nèi)容,指定接收方手機(jī)號碼,將編輯的短信息發(fā)送到用戶手機(jī)。(2)用戶手機(jī)向監(jiān)控中心的GSM模塊發(fā)送短信,程序界面顯示短信內(nèi)容及來電號碼。13.5.3 任務(wù)實現(xiàn)13.6 PC與智能儀器構(gòu)成DCS案例智能儀器在我國的工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。實際上,只要具有RS-485(或RS-

60、232)通信接口、支持站號設(shè)置和通信協(xié)議訪問的智能儀器都可以和PC構(gòu)成一個主從式網(wǎng)絡(luò)系統(tǒng),這也是中小型DCS的一般結(jié)構(gòu)。智能儀器具有較強(qiáng)的過程控制功能和較高的可靠性,因此這類中小型DCS在目前仍然占有較大的應(yīng)用市場。13.6.1 PC與智能儀器構(gòu)成DCS硬件線路1線路說明由于一個RS-232通信接口只能聯(lián)接一臺RS-232儀表,當(dāng)PC與多臺具有RS-232接口的儀表通信時,可使用RS-232/RS-485型通信接口轉(zhuǎn)換器,將計算機(jī)上的RS-232通信口轉(zhuǎn)為RS-485通信口。在信號進(jìn)入儀表前再使用RS-485/RS-232轉(zhuǎn)換器將RS-485通信口轉(zhuǎn)為RS-232通信口,再與儀表相連,如圖13

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論