![LabVIEW串口通信程序設(shè)計(jì)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/68fcde7b-4aed-4497-9df9-28d801658d03/68fcde7b-4aed-4497-9df9-28d801658d031.gif)
![LabVIEW串口通信程序設(shè)計(jì)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/68fcde7b-4aed-4497-9df9-28d801658d03/68fcde7b-4aed-4497-9df9-28d801658d032.gif)
![LabVIEW串口通信程序設(shè)計(jì)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/68fcde7b-4aed-4497-9df9-28d801658d03/68fcde7b-4aed-4497-9df9-28d801658d033.gif)
![LabVIEW串口通信程序設(shè)計(jì)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/68fcde7b-4aed-4497-9df9-28d801658d03/68fcde7b-4aed-4497-9df9-28d801658d034.gif)
![LabVIEW串口通信程序設(shè)計(jì)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/14/68fcde7b-4aed-4497-9df9-28d801658d03/68fcde7b-4aed-4497-9df9-28d801658d035.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、LabVIEW串口通信程序設(shè)計(jì)以PC作為上位機(jī),以調(diào)制解調(diào)器(Modem)、串行打印機(jī)、各種監(jiān)控模塊、PLC、攝像頭云臺(tái)、數(shù)控機(jī)床、單片機(jī)及智能設(shè)備等作為下位機(jī)廣泛應(yīng)用于測(cè)控領(lǐng)域。本章舉幾個(gè)典型實(shí)例,詳細(xì)介紹利用LabVIEW實(shí)現(xiàn)PC與各種下位機(jī)設(shè)備串口通信的程序設(shè)計(jì)方法。 PC與PC串口通信當(dāng)兩臺(tái)串口設(shè)備通信距離較近時(shí),可以直接連接,最簡(jiǎn)單的情況,在通信中只需三根線(發(fā)送線、接收線、信號(hào)地線)便可實(shí)現(xiàn)全雙工異步串行通信。本設(shè)計(jì)通過兩臺(tái)PC串口三線連接,介紹了串口通信的基本編程方法。13.1.1 PC與PC串口通信硬件線路當(dāng)兩臺(tái)RS-232串口設(shè)備通信距離較近時(shí)(<15m),可以用電纜線
2、直接將兩臺(tái)設(shè)備的RS-232端口連接;若通信距離較遠(yuǎn)(>15m)時(shí),需附加調(diào)制解調(diào)器(Modem)。在RS-232的應(yīng)用中,很少嚴(yán)格按照RS-232標(biāo)準(zhǔn)。其主要原因是因?yàn)樵S多定義的信號(hào)在大多數(shù)的應(yīng)用中并沒有用上。在許多應(yīng)用中,例如Modem,只用了9個(gè)信號(hào)(兩條數(shù)據(jù)線、6條控制線、一條地線);在其他一些應(yīng)用中,可能只需要5個(gè)信號(hào)(兩條數(shù)據(jù)線、兩條握手線、一條地線);還有一些應(yīng)用,可能只需要數(shù)據(jù)線,而不需要握手線,即只需要3個(gè)信號(hào)線。因?yàn)樵诳刂祁I(lǐng)域,在近距離通信時(shí)常采用RS-232,所以這里只對(duì)近距離通信的線路連接進(jìn)行討論。當(dāng)通信距離較近時(shí),通信雙方不需要Modem,可以直接連接,這種情況
3、下,只需使用少數(shù)幾根信號(hào)線。最簡(jiǎn)單的情況,在通信中根本不需要RS-232C的控制聯(lián)絡(luò)信號(hào),只需三根線(發(fā)送線、接收線、信號(hào)地線)便可實(shí)現(xiàn)全雙工異步串行通信。在實(shí)際使用中常使用串口通信線將兩個(gè)串口設(shè)備連接起來。串口線的制作方法非常簡(jiǎn)單:準(zhǔn)備兩個(gè)9針的串口接線端子(因?yàn)橛?jì)算機(jī)上的串口為公頭,因此連接線為母頭),準(zhǔn)備3根導(dǎo)線(最好采用3芯屏蔽線),按圖13-1所示將導(dǎo)線焊接到接線端子上。圖13-1 串口通信線的制作圖13-2所示中的2號(hào)接收腳與3號(hào)發(fā)送腳交叉連接是因?yàn)樵谥边B方式時(shí),把通信雙方都當(dāng)作數(shù)據(jù)終端設(shè)備看待,雙方都可發(fā)也可收。在這種方式下,通信雙方的任何一方,只要請(qǐng)求發(fā)送RTS有效和數(shù)據(jù)終端準(zhǔn)
4、備好DTR有效就能開始發(fā)送和接收。 圖13-2 PC與PC串口通信線路在計(jì)算機(jī)通電前,按圖13-2所示將兩臺(tái)PC的COM1口用串口線連接起來。連接串口線時(shí),計(jì)算機(jī)嚴(yán)禁通電,否則極易燒毀串口。13.1.2 設(shè)計(jì)任務(wù)利用LabVIEW編寫程序?qū)崿F(xiàn)PC與PC串口通信。任務(wù)要求如下。兩臺(tái)計(jì)算機(jī)互發(fā)字符并自動(dòng)接收,如一臺(tái)計(jì)算機(jī)輸入字符串“收到信息請(qǐng)回字符abc123”,單擊“發(fā)送字符”命令,另一臺(tái)計(jì)算機(jī)若收到,就輸入字符串“收到,abc123”,單擊“發(fā)送字符”命令,信息返回到第一組的計(jì)算機(jī)。實(shí)際上就是編寫一個(gè)簡(jiǎn)單的雙機(jī)聊天程序。13.1.3 任務(wù)實(shí)現(xiàn)1建立新VI程序啟動(dòng)NI LabVIEW程序,選擇新
5、建(New)選項(xiàng)中的VI項(xiàng),建立一個(gè)新VI程序。2程序前面板設(shè)計(jì)8 在前面板設(shè)計(jì)區(qū)空白處單擊鼠標(biāo)右鍵,顯示控件選板(Controls)。(1)添加一個(gè)字符串輸入控件:控件(Controls)新式(Modern)字符串與路徑(String & Path)字符串輸入控件(String Control),將標(biāo)簽改為“發(fā)送區(qū):”。(2)添加一個(gè)字符串顯示控件:控件(Controls)新式(Modern)字符串與路徑(String & Path) 字符串顯示控件(String Indicator),將標(biāo)簽改為“接收區(qū):”。(3)添加一個(gè)串口資源檢測(cè)控件:控件(Controls)新式(Mo
6、dern) I/O VISA資源名稱(VISA resource name);單擊控件箭頭,選擇串口號(hào),如COM1或ASRL1:。(4)添加一個(gè)確定(OK)按鈕控件:控件(Controls)新式(Modern)布爾(Boolean) 確定按鈕(OK Butoon),將標(biāo)題改為“發(fā)送字符”。(5)添加一個(gè)停止(Stop)按鈕控件:控件(Controls)新式(Modern)布爾(Boolean) 停止按鈕(Stop Butoon),將標(biāo)題改為“關(guān)閉程序”。圖13-3 程序前面板設(shè)計(jì)的程序前面板,如圖13-3所示。3框圖程序設(shè)計(jì)添加函數(shù)8 進(jìn)入框圖程序設(shè)計(jì)界面,在設(shè)計(jì)區(qū)的空白處單擊鼠標(biāo)右鍵,顯示函
7、數(shù)選板(Functions)。添加的所有函數(shù)及其布置如圖13-4所示。詳細(xì)步驟介紹如下。(1)添加一個(gè)配置串口函數(shù):編程(Programming)儀器I/O(Instrument I/O)串口(Serial)VISA配置串口(VISA Configure Serial Port)。圖13-4 框圖程序函數(shù)添加與布置(2)添加4個(gè)數(shù)值常量:編程(Programming)數(shù)值(Numeric) 數(shù)值常量(數(shù)值常量(Numeric Constant),值分別為9600(波特率)、8(數(shù)據(jù)位)、0(校驗(yàn)位,無)、1(停止位)。(3)添加兩個(gè)關(guān)閉串口函數(shù):編程(Programming)儀器I/O(Ins
8、trument I/O)串口(Serial)VISA關(guān)閉(VISA Close)。(4)添加一個(gè)循環(huán)結(jié)構(gòu):編程(Programming)結(jié)構(gòu)(Structures) While 循環(huán)(While Loop)。添加理由:隨時(shí)監(jiān)測(cè)串口接收緩沖區(qū)的數(shù)據(jù)。以下添加的函數(shù)或結(jié)構(gòu)放置在While循環(huán)結(jié)構(gòu)框架中。(5)添加一個(gè)時(shí)鐘函數(shù):編程(Programming) 定時(shí)(Timing) 等待下一個(gè)整數(shù)倍毫秒(Wait Until Next ms Multiple)。添加理由:以一定的周期監(jiān)測(cè)串口接收緩沖區(qū)的數(shù)據(jù)。(6)添加一個(gè)數(shù)值常量:編程(Programming)數(shù)值(Numeric) 數(shù)值常量(Num
9、eric Constant),將值改為500(時(shí)鐘頻率值)。(7)添加一個(gè)VISA串口字節(jié)數(shù)函數(shù):編程(Programming)儀器I/O(Instrument I/O) 串口(Serial) VISA串口字節(jié)數(shù)(VISA Bytes at Serial Port),標(biāo)簽為“Property Node”。(8)添加一個(gè)數(shù)值常量:編程(Programming)數(shù)值(Numeric)數(shù)值常量(Numeric Constant),將值為0(比較值)。(9)添加一個(gè)比較函數(shù):編程(Programming) 比較(Comparison) 不等于?(Not Equal ?)。添加理由:只有當(dāng)串口接收緩沖區(qū)
10、的數(shù)據(jù)個(gè)數(shù)不等于0時(shí),才將數(shù)據(jù)讀入到接收區(qū)。(10)添加一個(gè)布爾函數(shù):編程(Programming)布爾(Boolean)非(Not)函數(shù)。添加理由:當(dāng)關(guān)閉程序時(shí),將關(guān)閉按鈕真(True)變?yōu)榧伲‵alse),退出循環(huán)。如果將循環(huán)結(jié)構(gòu)的條件端子設(shè)置為“真時(shí)停止(Stop if True)”,則不需要添加非(Not)函數(shù)。(11)添加兩個(gè)條件結(jié)構(gòu):編程(Programming)結(jié)構(gòu)(Structures) 條件結(jié)構(gòu)(Case Structure)。添加理由:發(fā)送字符時(shí),需要單擊按鈕“發(fā)送字符”,因此需要判斷是否單擊了發(fā)送按鈕;接收數(shù)據(jù)時(shí),需要判斷串口接收緩沖區(qū)的數(shù)據(jù)個(gè)數(shù)是否不為0。(12)添加一
11、個(gè)串口寫入函數(shù):編程(Programming)儀器I/O(Instrument I/O)串口(Serial)VISA寫入(VISA Write),并拖入條件結(jié)構(gòu)(上)的真(True)選項(xiàng)框架中。(13)添加一個(gè)串口讀取函數(shù):編程(Programming) 儀器I/O(Instrument I/O) 串口(Serial)VISA讀?。╒ISA Read),并拖入條件結(jié)構(gòu)(下)的真(True)選項(xiàng)框架中。(14)將字符輸入控件圖標(biāo)(標(biāo)簽為“發(fā)送區(qū):”)拖入條件結(jié)構(gòu)(上)的真(True)選項(xiàng)框架中,將字符顯示控件圖標(biāo)(標(biāo)簽為“接收區(qū):”)拖入條件結(jié)構(gòu)(下)的真(True)選項(xiàng)框架中。(15)分別將確
12、定(OK)按鈕控件圖標(biāo)(標(biāo)簽為“確定按鈕(OK Button)”)、停止(Stop)按鈕控件圖標(biāo)(標(biāo)簽為“停止按鈕(Stop Button)”)拖入循環(huán)結(jié)構(gòu)框架中。4框圖程序設(shè)計(jì)連線使用連線工具,將所有函數(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 reso
13、urce name)相連。(2)將數(shù)值常量9600、8、0、1分別與串口配置(VISA Configure Serial Port)函數(shù)的輸入端口波特率(baud rate)、數(shù)據(jù)比特(data bits)、奇偶(parity)、停止位(stop bits)相連。(3)將數(shù)值常量(值為500)與等待下一個(gè)整數(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ù)的
14、輸出端口Number of bytes at Serial port與不等于?(Not Equal ?)函數(shù)的輸入端口x相連。將串口字節(jié)數(shù)(VISA Bytes at Serial Port)函數(shù)的輸出端口Number of bytes at Serial port與串口讀?。╒ISA 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ū):
15、”)與串口寫入(VISA Write)函數(shù)的輸入端口寫入緩沖區(qū)(write buffer)相連。(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ù)(上)
16、的輸入端口VISA資源名稱(VISA resource name)相連。(13)在條件結(jié)構(gòu)(下)中將串口讀?。╒ISA Read)函數(shù)的輸出端口VISA資源名稱輸出與關(guān)閉串口函數(shù)VISA Close(下)的輸入端口VISA資源名稱相連。(14)進(jìn)入兩個(gè)條件結(jié)構(gòu)的假(False)選項(xiàng),將VISA資源名稱函數(shù)的輸出端口分別與串口關(guān)閉(VISA Close)函數(shù)(上、下)的輸入端口VISA資源名稱相連,如圖13-6所示。5運(yùn)行程序進(jìn)入程序前面板,保存設(shè)計(jì)好的VI程序。單擊快捷工具欄“運(yùn)行(Run)”按鈕,運(yùn)行程序。兩臺(tái)計(jì)算機(jī)同時(shí)運(yùn)行本程序。在一臺(tái)計(jì)算機(jī)程序窗體中發(fā)送字符區(qū)輸入要發(fā)送的字符,比如“收到
17、信息請(qǐng)回字符abc123”,單擊“發(fā)送字符”按鈕,發(fā)送區(qū)的字符串通過COM1口發(fā)送出去。如果聯(lián)網(wǎng)通信的另一臺(tái)計(jì)算機(jī)程序收到字符,則返回字符串,如“收到,abc123”;如果通信正常該字符串將顯示在接收區(qū)中。程序運(yùn)行界面如圖13-7所示。 圖13-6 框圖程序連線 圖13-7 程序運(yùn)行界面6單PC雙串口互通信程序如果只有一臺(tái)計(jì)算機(jī)且具有兩個(gè)串口,那么可以通過串口線將兩個(gè)串口直接連接起來,如圖13-8所示,編寫程序?qū)崿F(xiàn)雙串口互通信。圖13-9是單PC雙串口互通信程序的前面板。圖13-10是單PC雙串口互通信程序的后面板。(a) (b)圖13-8 雙串口直接連接圖13-9 單PC雙串口互通信程序的前
18、面板圖13-10 單PC雙串口互通信程序的后面板13.2 PC與單片機(jī)串口通信程序設(shè)計(jì)目前,在許多單片機(jī)應(yīng)用系統(tǒng)中,上、下位機(jī)分工明確,作為下位機(jī)核心器件的單片機(jī)往往只負(fù)責(zé)數(shù)據(jù)的采集和通信,而上位機(jī)通常以基于圖形界面的Windows系統(tǒng)為操作平臺(tái)。為便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,這種應(yīng)用的核心是數(shù)據(jù)通信,它包括單片機(jī)和上位機(jī)之間、客戶端和服務(wù)器之間以及客戶端和客戶端之間的通信,而單片機(jī)和上位機(jī)之間數(shù)據(jù)通信則是整個(gè)系統(tǒng)的基礎(chǔ)。圖13-11 單片機(jī)實(shí)驗(yàn)板單片機(jī)和PC的通信是通過單片機(jī)的串口和PC串口之間的硬件連接實(shí)現(xiàn)的。圖13-11所示是本設(shè)計(jì)使用的單片機(jī)實(shí)驗(yàn)板。有關(guān)單片機(jī)實(shí)驗(yàn)板的詳細(xì)信
19、息請(qǐng)查詢電子開發(fā)網(wǎng) :/ dzkfw. com/。13.2.1 PC與單片機(jī)串口通信程序設(shè)計(jì)硬件線路PC圖13-12 PC與單片機(jī)串口通信線路如圖13-12所示,數(shù)據(jù)通信的硬件上采用3線制,將單片機(jī)和PC串口的3個(gè)引腳(RXD、TXD、GND)分別連在一起,即將PC和單片機(jī)的發(fā)送數(shù)據(jù)線TXD與接收數(shù)據(jù)RXD交叉連接,兩者的地線GND直接相連,而其他信號(hào)線,如握手信號(hào)線均不用,采用軟件握手的方式,這樣既可以實(shí)現(xiàn)預(yù)定的任務(wù)又可以簡(jiǎn)化電路設(shè)計(jì)。但由于單片機(jī)的TTL邏輯電平和RS-232C的電氣特性完全不同,RS-232C的邏輯0電平規(guī)定為+3V+15V之間,邏輯1電平為3V15V之間,因此在將PC和
20、單片機(jī)的RXD和TXD交叉連接時(shí)必須進(jìn)行電平轉(zhuǎn)換,這里使用的是MAX232電平轉(zhuǎn)換芯片。單片機(jī)系統(tǒng)有LED顯示器模塊、繼電器輸出模塊、蜂鳴器模塊等。13.2.2 PC與單片機(jī)串口通信程序設(shè)計(jì)任務(wù)利用Keil C51和LabVIEW編寫程序?qū)崿F(xiàn)PC與單片機(jī)串口通信。任務(wù)要求有以下幾方面。1設(shè)計(jì)任務(wù)一PC通過串行口將數(shù)字(00,01,02,03.,F(xiàn)F,十六進(jìn)制)發(fā)送給單片機(jī),單片機(jī)收到后回傳這個(gè)數(shù)字,PC接收到回傳數(shù)據(jù)后顯示出來,若發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)相等,則串行通信正確,否則有錯(cuò)誤。啟始符是數(shù)字00,結(jié)束符是數(shù)字FF。2設(shè)計(jì)任務(wù)二(1)測(cè)試通信狀態(tài)。先在文本框中輸入字符串“Hello”,單
21、擊“測(cè)試”按鈕,將字符串“Hello”發(fā)送到單片機(jī),若PC與單片機(jī)通信正常,在PC程序的文本框中顯示字符串“OK!”,否則顯示字符串“ERROR!”。(2)循環(huán)計(jì)數(shù)。單擊“開始”按鈕,文本框中數(shù)字從0開始累加,0、1、2、3,并將此數(shù)發(fā)送到單片機(jī)的顯示器上顯示。當(dāng)累加到10時(shí),回到0重新開始累加,依次循環(huán)。任何時(shí)候,單擊“停止”按鈕,PC程序中和單片機(jī)顯示器都停止累加;再單擊“開始”按鈕,接著停下的數(shù)繼續(xù)累加。(3)控制指示燈。在單片機(jī)繼電器接線端子的兩個(gè)通道上分別接上兩個(gè)指示燈,在PC程序畫面上選擇指示燈號(hào),如1號(hào)燈,單擊畫面“打開”按鈕,單片機(jī)上1號(hào)燈亮,同時(shí)蜂鳴器響;單擊畫面“關(guān)閉”按鈕
22、,1號(hào)燈滅,蜂鳴器停止響,同樣控制2號(hào)燈的亮滅(蜂鳴器同時(shí)動(dòng)作)。單片機(jī)和PC通信,在程序設(shè)計(jì)上涉及兩個(gè)部分的內(nèi)容。一是單片機(jī)的C51程序,二是PC的串口通信程序和界面的編制。 任務(wù)實(shí)現(xiàn).1 利用Keil C51實(shí)現(xiàn)單片機(jī)與PC串口通信任務(wù)一Keil C51軟件是眾多單片機(jī)應(yīng)用開發(fā)的優(yōu)秀軟件之一,它集編輯、編譯、仿真于一體,支持匯編、PLM語言和C語言的程序設(shè)計(jì),界面友好,易學(xué)易用。啟動(dòng)Keil C51,出現(xiàn)編輯界面。1建立一個(gè)新工程單擊Project菜單,在彈出的下拉菜單中選中New Project選項(xiàng),出現(xiàn)Create New Project對(duì)話框,然后選擇要保存的路徑、文件夾,輸入工程文
23、件的名字,如pc_com(后綴名默認(rèn)),單擊“保存”按鈕。這時(shí)會(huì)彈出一個(gè) “Select Device for Target Target 1” 對(duì)話框,要求用戶選擇單片機(jī)的型號(hào),可以根據(jù)使用的單片機(jī)來選擇,Keil C51幾乎支持所有的51核的單片機(jī)。這里選擇Atmel 的89C51。選擇89C51之后,右邊一欄是對(duì)這個(gè)單片機(jī)的基本的說明,然后單擊“確定”按鈕。2編寫程序單擊“File”菜單,再在下拉菜單中單擊“New”選項(xiàng)。此時(shí)光標(biāo)在編輯窗口里閃爍,這時(shí)可以鍵入用戶的應(yīng)用程序了,但建議首先保存該空白的文件。單擊菜單上的“File”項(xiàng),在下拉菜單中選中“Save As”選項(xiàng),在“文件名”欄右
24、側(cè)的編輯框中鍵入欲使用的文件名,同時(shí),必須鍵入正確的擴(kuò)展名,如pc_com.c,然后單擊“保存”按鈕。如果用語言編寫程序,則擴(kuò)展名為(.c);如果用匯編語言編寫程序,則擴(kuò)展名必須為(.asm)?;氐骄庉嫿缑婧?,單擊“Target 1”前面的“”號(hào),再在“Source Group 1”上單擊鼠標(biāo)右鍵,彈出快捷菜單,然后單擊“Add File to GroupSource Group 1”。選中pc_com.c,然后單擊“Add ”按鈕,再單擊“Close ”按鈕。此時(shí)注意到“Source Group 1”文件夾中多了一個(gè)子項(xiàng)“”。子項(xiàng)的多少與所增加的源程序的多少相同?,F(xiàn)在,請(qǐng)
25、輸入C語言源程序。在輸入程序時(shí),讀者可以發(fā)現(xiàn)事先保存待編輯的文件的好處,即Keil C51會(huì)自動(dòng)識(shí)別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會(huì)使用戶少犯錯(cuò)誤,有利于提高編程效率。3編譯程序單擊“Project”菜單,在下拉菜單中選擇“Options for TargetTarget 1”選項(xiàng),出現(xiàn)對(duì)話框;選擇Output選項(xiàng)卡,選中“Create HEX Files”項(xiàng),單擊“確定”按鈕。再單擊“Project”菜單,在下拉菜單中選擇“Built Target”選項(xiàng)(或者使用快捷鍵F7),進(jìn)行編譯。若有錯(cuò)誤會(huì)在output窗口提示,可根據(jù)此提示,找出錯(cuò)誤并修改,直至編譯通過,如圖13-13
26、所示。圖13-13 Keil C51編譯界面至此,用Keil C51上做了一個(gè)完整工程,其中,生成一個(gè)編程器燒寫文件pc_com.hex。4燒錄程序?qū)T89C51芯片安裝在編程器插座上,運(yùn)行編程器程序。選擇單片機(jī)芯片類型AT89C51,讀入Intel Hex文件AT89C51芯片中。將燒錄好的AT89C51芯片安裝到單片機(jī)實(shí)驗(yàn)板上,就可以用串口調(diào)試助手程序?qū)λM(jìn)行測(cè)試了。以下是完成單片機(jī)與PC串口通信任務(wù)1的C51參考程序:# pragma db code# include<reg51.h># define uchar unsigned charvoid rece(void);v
27、oid init(void);uchar re17;/*主程序*/void main(void) uchar temp;init();do while(RI=0); temp=SBUF; if(temp=0x00) rece(); else break; while(1);/*串口初始化*/void init(void)TMOD=0x20; /定時(shí)器1-方式2 PCON=0x80; /電源控制SCON=0x50; /方式1TL1=0xF3; TH1=0xF3; /22.1184MHz晶振,波特率為4800 0xf3 96000xfa 19200 0xfd TR1=1; /*接收返回?cái)?shù)據(jù)*/vo
28、id rece(void)char i;i=0;dowhile(RI=0); rei=SBUF; RI=0; SBUF=rei; while(TI=0); TI=0; i+; while(rei-1!=255);.2 利用LabVIEW實(shí)現(xiàn)PC與單片機(jī)串口通信任務(wù)一1建立新VI程序啟動(dòng)NI LabVIEW程序,選擇新建(New)選項(xiàng)中的VI項(xiàng),建立一個(gè)新VI程序。2程序前面板設(shè)計(jì)8 在前面板設(shè)計(jì)區(qū)空白處單擊鼠標(biāo)右鍵,顯示控件選板(Controls)。(1)添加一個(gè)字符串輸入控件:控件(Controls)新式(Modern)字符串與路徑(String & Path) 字符串輸入控件(St
29、ring Control),將標(biāo)簽改為“發(fā)送數(shù)據(jù)(十六進(jìn)制)”,在該控件上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“十六進(jìn)制顯示(Hex Display)”。(2)添加一個(gè)字符串顯示控件:控件(Controls)新式(Modern)字符串與路徑(String & Path)字符串顯示控件(String Indicator),將標(biāo)簽改為“返回?cái)?shù)據(jù)(十六進(jìn)制)”,在該控件上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“十六進(jìn)制顯示(Hex Display)”。(3)添加一個(gè)字符顯示控件:控件(Controls)新式(Modern)字符串與路徑(String & Path)字符串顯示控件(Str
30、ing Indicator),將標(biāo)簽改為“通信狀態(tài)”。(4)添加一個(gè)串口資源檢測(cè)控件:控件(Controls)新式(Modern) I/O VISA資源名稱(VISA resource name);單擊控件箭頭,選擇串口號(hào),如ASRL1:或COM1。圖13-14 程序前面板(5)添加一個(gè)確定按鈕控件:控件(Controls)新式(Modern)布爾(Boolean)確定按鈕(OK Butoon),將標(biāo)題改為“發(fā)送”。(6)添加一個(gè)停止按鈕控件:控件(Controls)新式(Modern)布爾(Boolean)停止按鈕(Stop Butoon),將標(biāo)題改為“關(guān)閉”。設(shè)計(jì)的程序前面板如圖13-14
31、所示。3框圖程序設(shè)計(jì)添加函數(shù)與連線8 進(jìn)入框圖程序設(shè)計(jì)界面,在設(shè)計(jì)區(qū)的空白處單擊鼠標(biāo)右鍵,顯示函數(shù)選板(Functions)。(1)添加一個(gè)配置串口函數(shù):編程(Programming) 儀器I/O(Instrument I/O) 串口(Serial) VISA配置串口(VISA Configure Serial Port)。(2)添加4個(gè)數(shù)值常量:編程(Programming) 數(shù)值(Numeric) 數(shù)值常量(Numeric Constant),值分別為4800(波特率)、8(數(shù)據(jù)位)、0(校驗(yàn)位,無)、1(停止位)。(3)添加一個(gè)While循環(huán)結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(S
32、tructures) While 循環(huán)(While Loop)。(4)添加一個(gè)關(guān)閉串口函數(shù):編程(Programming) 儀器I/O(Instrument I/O) 串口(Serial) VISA關(guān)閉(VISA Close)。(5)在While循環(huán)結(jié)構(gòu)中添加一個(gè)條件結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(Structures) 條件結(jié)構(gòu)(Case Structure)。(6)在條件結(jié)構(gòu)中添加一個(gè)順序結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(Structures) 層疊式順序結(jié)構(gòu)(Stacked Sequence Structure)。將其幀(Frame)設(shè)置為4個(gè)(序號(hào)0-3)。設(shè)置方
33、法:選中Stacked Sequence Structures上邊框,單擊鼠標(biāo)右鍵,執(zhí)行在后面添加幀(Add Frame After)選項(xiàng)3次。(7)在順序結(jié)構(gòu)的Frame 0中添加一個(gè)串口寫入函數(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ù)的輸出端口分別與串口配置(V
34、ISA Configure Serial Port)函數(shù)、串口寫入(VISA Write)函數(shù)(在順序結(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è)置為“真時(shí)停止(Stop if True)”,圖標(biāo)變?yōu)?。將停止按鈕(Stop Bu
35、ffon)與循環(huán)結(jié)構(gòu)的條件端子相連。(12)將確定按鈕(OK Button)與條件結(jié)構(gòu)的選擇端子?相連。(13)將函數(shù)“發(fā)送數(shù)據(jù)(十六進(jìn)制)”與串口寫入(VISA Write)函數(shù)的輸入端口寫入緩沖區(qū)(write buffer)相連。連接好的框圖程序如圖13-15所示。(14)在順序結(jié)構(gòu)的Frame 1中添加一個(gè)時(shí)鐘函數(shù):編程(Programming)定時(shí)(Timing) 等待下一個(gè)整數(shù)倍毫秒(Wait Until Next ms Multiple)。(15)在順序結(jié)構(gòu)的Frame 1中添加一個(gè)數(shù)值常量:編程(Programming)數(shù)值(Numeric) 數(shù)值常量(Numeric Const
36、ant),將值改為200(時(shí)鐘頻率值)。(16)在順序結(jié)構(gòu)的Frame 1中將數(shù)值常量(值為200)與等待下一個(gè)整數(shù)倍毫秒(Wait Until Next ms Multiple)函數(shù)的輸入端口毫秒倍數(shù)(millisecond multiple)相連。連接好的框圖程序如圖13-16所示。 圖13-15 框圖程序連線1 圖13-16 框圖程序連線2(17)在順序結(jié)構(gòu)的Frame 2中,添加一個(gè)串口字節(jié)數(shù)函數(shù):編程(Programming) 儀器I/O(Instrument I/O)串口(Serial) VISA串口字節(jié)數(shù)(VISA Bytes at Serial Port),標(biāo)簽為“Proper
37、ty Node”。(18)在順序結(jié)構(gòu)的Frame 2中,添加一個(gè)串口讀取函數(shù):編程(Programming) 儀器I/O(Instrument I/O)串口(Serial) VISA讀?。╒ISA Read)。(19)將控件“返回?cái)?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
38、 at Serial Port)函數(shù)的輸出端口Number of bytes at Serial port與串口讀取(VISA Read)函數(shù)的輸入端口字節(jié)總數(shù)(byte count)相連。(22)將VISA讀?。╒ISA Read)函數(shù)的輸出端口讀取緩沖區(qū)(read buffer)與控件“返回?cái)?shù)據(jù)(十六進(jìn)制)”的輸入端口相連。連接好的框圖程序如圖13-17所示。圖13-17 框圖程序連線3(23)在順序結(jié)構(gòu)的Frame 3中,添加兩個(gè)局部變量:編程(Programming) 結(jié)構(gòu)(Structures)局部變量(Local Variable)。選擇局部變量,單擊鼠標(biāo)右鍵,在彈出的快捷菜單的(
39、Select Item)選項(xiàng)下,為局部變量分別選擇對(duì)象:“返回?cái)?shù)據(jù)(十六進(jìn)制)”和“發(fā)送數(shù)據(jù)(十六進(jìn)制)”,將其讀寫屬性設(shè)置為“轉(zhuǎn)換為讀取(Change To Read)”。(24)在順序結(jié)構(gòu)的Frame 3中,添加一個(gè)比較函數(shù):編程(Programming)比較(Comparison)等于?(Equal ?)。(25)在順序結(jié)構(gòu)的Frame 3中,添加一個(gè)條件結(jié)構(gòu):編程(Programming) 結(jié)構(gòu)(Structures)條件結(jié)構(gòu)(Case Structure)。(26)將局部變量“返回?cái)?shù)據(jù)(十六進(jìn)制)”和“發(fā)送數(shù)據(jù)(十六進(jìn)制)”分別與比較函數(shù)等于?(Equal ?)的輸入端口x和y相連。
40、(27)將比較函數(shù)等于?(Equal ?)的輸出端口x=y?與條件結(jié)構(gòu)的選擇端子?相連。(28)在條件結(jié)構(gòu)的真(True)選項(xiàng)中,添加一個(gè)字符串常量:編程(Programming) 字符串(String) 字符串常量(String Constant),將其值改為“通信正常!”。(29)將控件“通信狀態(tài)”拖入條件結(jié)構(gòu)中。(30)將字符串常量“通信正常!”與控件“通信狀態(tài)”的輸入端口相連。(31)在條件結(jié)構(gòu)的假(False)選項(xiàng)中,添加一個(gè)字符串常量,將其值改為“通信異常!”。(32)在條件結(jié)構(gòu)的假(False)選項(xiàng)中,添加一個(gè)局部變量,為局部變量選擇對(duì)象“通信狀態(tài)”,屬性默認(rèn)為:“寫”。(33)
41、將字符串常量“通信異常!”與局部變量“通信狀態(tài)”相連。連接好的框圖程序如圖13-18所示。圖13-18 框圖程序連線44運(yùn)行程序圖13-19 程序運(yùn)行界面進(jìn)入程序前面板,保存設(shè)計(jì)好的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ī)收到后回傳這個(gè)數(shù)字,PC接收到回傳數(shù)據(jù)后在“返回?cái)?shù)據(jù)”框中顯示出來(十六進(jìn)制),若發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)相等,則在“通信狀態(tài)”框中顯示“通信正常!”,否則顯示“通信異常!”。當(dāng)發(fā)送“FF”后,要想繼續(xù)發(fā)
42、送數(shù)據(jù),必須先發(fā)送“00”。.3 利用Keil C51實(shí)現(xiàn)單片機(jī)與PC串口通信任務(wù)二。.4 利用LabVIEW實(shí)現(xiàn)PC與單片機(jī)串口通信任務(wù)二。13.3 PC與智能儀器串口通信案例目前儀器儀表的智能化程度越來越高,大量的智能儀器都配備了RS-232通信接口,并提供了相應(yīng)的通信協(xié)議,能夠?qū)y(cè)試、采集的數(shù)據(jù)傳輸給計(jì)算機(jī)等設(shè)備,以便進(jìn)行大量數(shù)據(jù)的儲(chǔ)存、處理、查詢和分析。通常計(jì)算機(jī)(PC)或工控機(jī)(IPC)是智能儀器上位機(jī)的最佳選擇,因?yàn)镻C或IPC不僅能解決智能儀器(作為下位機(jī))所不能解決的問題,如數(shù)值運(yùn)算、曲線顯示、數(shù)據(jù)查詢、報(bào)表打印等;而且具有豐富和強(qiáng)大的軟件開發(fā)工具環(huán)境。圖13-23 智能儀器示
43、意圖圖13-23是XMT-3000A型智能儀器示意圖(詳細(xì)信息請(qǐng)查詢網(wǎng)站 :/)。.1 PC與智能儀器串口通信硬件線路1線路說明XMT-3000A智能儀器采用先進(jìn)的微電腦芯片、專家PID控制算法,具備高準(zhǔn)確度的自整定功能,并可以設(shè)置出多種報(bào)警方式。圖13-24 PC與智能儀表串口通信線路XMT-3000A智能儀表有多種輸入功能,一臺(tái)儀表可以接熱電偶(K、S、Wr、E、J、T、B、N)、熱電阻(Pt100、Cu50)、電壓(05V、1V5V)、電流(010mA、4mA20mA)等不同的輸入信號(hào)。XMT-3000A智能儀表接熱電阻輸入時(shí),采用三線制接線,消除了引線帶來的誤差;接熱電偶輸入時(shí),儀表內(nèi)
44、部帶有冷端補(bǔ)償部件;接電壓/電流輸入時(shí),對(duì)應(yīng)顯示的物理量程可任意設(shè)定。在計(jì)算機(jī)與智能儀器通電前,按圖13-24所示將熱電阻傳感器Cu50、上、下限報(bào)警指示燈與XMT-3000A智能儀器連接。通過串口線將計(jì)算機(jī)與智能儀器連接起來:智能儀器的14端子(RXD)與計(jì)算機(jī)串口COM1的3腳(TXD)相連;智能儀器的15端子(TXD)與計(jì)算機(jī)串口COM1的2腳(RXD)相連;智能儀器的16端子(GND)與計(jì)算機(jī)串口COM1的5腳(GND)相連。連接儀器與計(jì)算機(jī)串口線時(shí),儀器與計(jì)算機(jī)嚴(yán)禁通電,否則極易燒毀串口。本設(shè)計(jì)用到的硬件為:智能儀器(XMT-3000A型,需配置RS-232通信、上下限控制繼電器、D
45、C24V電源等模塊),串口通信線(三線制),熱電阻傳感器(Cu50),指示燈(DC24V)等。2XMT-3000A智能儀器的參數(shù)設(shè)置XMT-3000A智能儀器在使用前應(yīng)對(duì)其輸入/輸出參數(shù)進(jìn)行正確設(shè)置,設(shè)置好的儀器才能投入正常使用。請(qǐng)按表13-1設(shè)置儀器的主要參數(shù)。表13-1儀表的主要參數(shù)設(shè)置參 數(shù)參 數(shù) 含 義設(shè) 置 值HIiAL上限絕對(duì)值報(bào)警值30LoAL下限絕對(duì)值報(bào)警值20Sn輸入規(guī)格傳感器為:Cu50,則Sn=20diP小數(shù)點(diǎn)位置要求顯示一位小數(shù),則diP=1ALP儀表功能定義要求上限報(bào)警由報(bào)警1 (ALM1)輸出,下限報(bào)警由報(bào)警2(ALM 2)輸出,報(bào)警時(shí)在下顯示器顯示報(bào)警符號(hào),則AL
46、P=10Addr通信地址0baud通信波特率48003XMT-3000A智能儀表的通信協(xié)議XMT-3000A智能儀器使用異步串行通信接口,共有兩種通信方式:RS232和RS485。接口電平符合RS232C或RS485標(biāo)準(zhǔn)中的規(guī)定。數(shù)據(jù)格式為一個(gè)起始位,8位數(shù)據(jù),無校驗(yàn)位,2個(gè)停止位。通信傳輸數(shù)據(jù)的波特率可調(diào)為3004800 bit/s。XMT儀表采用多機(jī)通信協(xié)議,如果采用RS485通信接口,則可將164臺(tái)的儀表同時(shí)連接在一個(gè)通信接口上;采用RS232C通信接口時(shí),一個(gè)通信接口只能連接一臺(tái)儀表。RS485通信接口與RS422接口的信號(hào)電平相同,通信距離長(zhǎng)達(dá)1km以上,優(yōu)于RS232C通信接口。R
47、S422為全雙工工作方式,RS485為半雙工工作方式,RS485只需兩根線就能使多臺(tái)XMT儀表與計(jì)算機(jī)進(jìn)行通信,而RS422需要4根通信線。由于通信協(xié)議的限制,XMT只能工作在半雙工模式,所以XMT儀表推薦使用RS485接口,以簡(jiǎn)化通信線路接線。為使普通計(jì)算機(jī)作上位機(jī),可使用RS232C/RS485型通信接口轉(zhuǎn)換器,將計(jì)算機(jī)上的RS232C通信口轉(zhuǎn)為RS485通信口。XMT儀表采用十六進(jìn)制數(shù)據(jù)格式來表示各種指令代碼及數(shù)據(jù)。通信指令只有兩條,一條為讀指令,一條為寫指令。讀指令格式為:地址代號(hào)+52H+參數(shù)代號(hào)。返回:依次返回為測(cè)量值PV、給定值SV、輸出值MV+報(bào)警狀態(tài)、所讀參數(shù)值。寫指令格式:
48、地址指令+43H+參數(shù)代號(hào)+寫入值的低位字節(jié)+寫入值的高位字節(jié)。返回:測(cè)量值PV、給定值SV、輸出值MV+報(bào)警狀態(tài)、被寫入的參數(shù)值。地址代號(hào):為了在一個(gè)通信接口上連接多臺(tái)XMT儀表,需要給每臺(tái)XMT儀表編一個(gè)互不相同的代號(hào),這一代號(hào)在本文約定稱為通信地址代號(hào)(簡(jiǎn)稱地址代號(hào))。XMT有效的地址為063。所以一條通信線路上最多可連接64臺(tái)XMT儀表。儀表的地址代號(hào)由參數(shù)Addr決定。XMT儀表通信協(xié)議規(guī)定,地址代號(hào)為兩個(gè)字節(jié),其數(shù)值范圍(十六進(jìn)制)是80HBFH,兩個(gè)字節(jié)必須相同,數(shù)值為:儀表地址+80H。例如,儀表參數(shù)Addr=5(十六進(jìn)制數(shù)為05H),05+80H=85H,則該儀表的地址表示為
49、:85H 85H。參數(shù)代號(hào):儀表的參數(shù)用一個(gè)十六進(jìn)制數(shù)的參數(shù)代號(hào)來表示。它在指令中表示要讀/寫的參數(shù)名。表13-2列出了XMT儀表可讀/寫的參數(shù)代號(hào)(部分)。表13-2XMT儀表可讀/寫的參數(shù)代號(hào)表參 數(shù) 代 號(hào)參 數(shù) 名含 義參 數(shù) 代 號(hào)參 數(shù) 名含 義00HSV給定值0BHSn輸入規(guī)格01HHIAL上限報(bào)警值0CHdIP小數(shù)點(diǎn)位置02HLoAL下限報(bào)警值0DHdIL下限顯示值03HdHAL正偏差報(bào)警0EHdIH上限顯示值04HdLAL負(fù)偏差報(bào)警15Hbaud通信波特率05HdF回差16HAddr通信地址06HCtrL控制方式 17HdL數(shù)字濾波如果向儀表讀取參數(shù)代號(hào)在表格中參數(shù)以外,則返
50、回參數(shù)值為錯(cuò)誤信號(hào)(兩個(gè)7F值)。返回的測(cè)量值數(shù)據(jù)每?jī)蓚€(gè)8位數(shù)據(jù)代表一個(gè)16位整形數(shù),低位字節(jié)在前,高位字節(jié)在后,負(fù)溫度值采用補(bǔ)碼表示,熱電偶或熱電阻輸入時(shí)其單位都是,回送的十六進(jìn)制數(shù)據(jù)(兩個(gè)字節(jié))先轉(zhuǎn)換為十進(jìn)制數(shù)據(jù),然后將十進(jìn)制數(shù)據(jù)除以10再顯示出來。上位機(jī)每次向儀表發(fā)一個(gè)指令,儀表返回一個(gè)數(shù)據(jù)。編寫上位機(jī)軟件時(shí),注意每條有效指令,儀表在0s內(nèi)作出應(yīng)答,而上位機(jī)也必須等儀表返回指令后,才能發(fā)新的指令,否則將引起錯(cuò)誤。4溫度測(cè)量與控制(1)正確設(shè)置儀器參數(shù)后,儀器PV窗顯示當(dāng)前溫度測(cè)量值。(2)給傳感器升溫,當(dāng)溫度測(cè)量值大于上限報(bào)警值30時(shí),上限指示燈L2亮,儀器SV窗顯示上限報(bào)警信息。(3)
51、給傳感器降溫,當(dāng)溫度測(cè)量值小于上限報(bào)警值30,大于下限報(bào)警值20時(shí),上限指示燈L2和下限指示燈L1均滅。(4)給傳感器繼續(xù)降溫,當(dāng)溫度測(cè)量值小于下限報(bào)警值20時(shí),下限指示燈L1亮,儀器SV窗下限報(bào)警信息。5串口調(diào)試XMT-3000A智能儀器使用異步串行通信接口,采用RS-232通信方式,其數(shù)據(jù)格式為:一個(gè)起始位,8個(gè)數(shù)據(jù)位,無校驗(yàn)位,2個(gè)停止位。打開“串口調(diào)試助手”程序,首先設(shè)置串口號(hào)COM1、波特率4800、校驗(yàn)位NONE、數(shù)據(jù)位8、停止位2等參數(shù)(注意:設(shè)置的參數(shù)必須與儀器設(shè)置的一致),選擇十六進(jìn)制顯示和十六進(jìn)制發(fā)送方式,打開串口,如圖13-25所示。在“發(fā)送的字符/數(shù)據(jù)”文本框中輸入讀指
52、令:80 80 52 0C ,單擊“手動(dòng)發(fā)送”按鈕,則PC向儀器發(fā)送一條指令,儀器返回一串?dāng)?shù)據(jù),如:3D 01 E7 03 64 00 01 00 ,該串?dāng)?shù)據(jù)在返回信息框內(nèi)顯示。根據(jù)儀器返回?cái)?shù)據(jù),可知儀器的當(dāng)前溫度測(cè)量值為:01 3D(十六進(jìn)制,低位字節(jié)在前,高位字節(jié)在后),十進(jìn)制為。使用說明。圖13-25 串口調(diào)試助手若選擇了“手動(dòng)發(fā)送”,每單擊一次可以發(fā)送一次;若選中了“自動(dòng)發(fā)送”,則每隔設(shè)定的發(fā)送周期內(nèi)發(fā)送一次,直到去掉“自動(dòng)發(fā)送”為止。值得注意的一點(diǎn)是:選中“十六進(jìn)制發(fā)送”后,發(fā)送框中所填字符每?jī)蓚€(gè)字符之間應(yīng)有一個(gè)空格,如:01 23 00 34 45。還有一些特殊的字符,如回車換行,
53、則直接敲入回車即可。6使用“計(jì)算器”實(shí)現(xiàn)數(shù)制轉(zhuǎn)換打開Windows附件中“計(jì)算器”程序,在“查看”菜單下選擇“科學(xué)型”。選擇“十六進(jìn)制”,輸入儀器當(dāng)前溫度測(cè)量值:01 3D(十六進(jìn)制,0在最前面不顯示),如圖13-26所示。單擊“十進(jìn)制”選項(xiàng),則十六進(jìn)制數(shù)“013D”轉(zhuǎn)換為十進(jìn)制數(shù)“317”,如圖13-27所示。儀器的當(dāng)前溫度測(cè)量值為:(十進(jìn)制)。為什么? 圖13-26 在“計(jì)算器”中輸入十六進(jìn)制數(shù) 圖13-27 十六進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制數(shù).2 設(shè)計(jì)任務(wù)。13.4 PC與PLC串口通信案例可編程序邏輯控制器(簡(jiǎn)稱PLC)主要是為現(xiàn)場(chǎng)控制而設(shè)計(jì)的,其人機(jī)界面主要是開關(guān)、按鈕、指示燈等。其具有良好的適應(yīng)
54、性和可擴(kuò)展能力得到越來越廣泛的應(yīng)用。采用PLC的控制系統(tǒng)或裝置具有可靠性高、易于控制、系統(tǒng)設(shè)計(jì)靈活、能模擬現(xiàn)場(chǎng)調(diào)試、編程使用簡(jiǎn)單、性價(jià)比高、有良好的抗干擾能力等特點(diǎn)。但是,PLC也有不易顯示各種實(shí)時(shí)圖表/曲線(趨勢(shì)線)和漢字、無良好的用戶界面、不便于監(jiān)控等缺陷。圖13-34 PLC產(chǎn)品示意圖20世紀(jì)90年代后,許多的PLC都配備有計(jì)算機(jī)通信接口,通過總線將一臺(tái)或多臺(tái)PLC相連接。計(jì)算機(jī)作為上位機(jī)可以提供良好的人機(jī)界面,進(jìn)行系統(tǒng)的監(jiān)控和管理,進(jìn)行程序編制、參數(shù)設(shè)定和修改、數(shù)據(jù)采集等,既能保證系統(tǒng)性能,又能使系統(tǒng)操作簡(jiǎn)便,便于生產(chǎn)過程的有效監(jiān)督。而PLC作為下位機(jī),執(zhí)行可靠有效的分散控制。用一臺(tái)計(jì)
55、算機(jī)(上位機(jī))去監(jiān)控下位機(jī)(PLC),這就要求PC與PLC之間穩(wěn)定、可靠的數(shù)據(jù)通信。圖13-34是某型號(hào)PLC示意圖。13.4.1 PC與PLC串口通信硬件線路西門子S13-200PLC系統(tǒng)為用戶提供了靈活的通信功能。集成在S13-200中的點(diǎn)對(duì)點(diǎn)接口(PPI)可用普通的雙絞線作波特率高達(dá)9600bit/s的數(shù)據(jù)通信,用RS-485接口實(shí)現(xiàn)的高速用戶可編程接口,可使用專用位通信協(xié)議(如ASCII)做波特率高達(dá)38.4 kbit/s的高速通信并可按步調(diào)整。而PC的接口為RS-232,兩者之間需要進(jìn)行電平轉(zhuǎn)換。利用西門子公司的PC/PPI電纜,可將S13-200CPU與計(jì)算機(jī)連接起來組成PC/PPI網(wǎng)絡(luò),實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信,如圖13-35所示。圖13-35 PC與S13-200PLC串口通信線路本設(shè)計(jì)用到的硬件為:西門子S13-200PLC(CPU224),PC/PPI電纜,開關(guān),指示燈(DC24V),直流電源(OUT:DC24V)等。 設(shè)計(jì)任務(wù)利用LabVIEW編寫程序?qū)崿F(xiàn)PC與PLC串口通信。任務(wù)要求。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司轉(zhuǎn)讓股權(quán)合同范本
- 供水搶修承包合同范本
- 業(yè)務(wù)外包服務(wù)合同范例
- 債務(wù)收購(gòu)合同范例
- 農(nóng)村房父子贈(zèng)與合同范例
- 農(nóng)機(jī)具供貨合同范本
- 中國(guó)國(guó)家合同范本
- 2025年度婚禮現(xiàn)場(chǎng)舞臺(tái)搭建與燈光音響租賃服務(wù)合同
- 個(gè)人租賃車庫合同范本
- 信息托管合同范本
- 一氧化碳中毒培訓(xùn)
- 初二上冊(cè)好的數(shù)學(xué)試卷
- 廣東省潮州市2024-2025學(xué)年九年級(jí)上學(xué)期期末道德與法治試卷(含答案)
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應(yīng)急
- 部編版2024-2025學(xué)年三年級(jí)上冊(cè)語文期末測(cè)試卷(含答案)
- 門窗安裝施工安全管理方案
- 2024年安徽省高校分類對(duì)口招生考試數(shù)學(xué)試卷真題
- ISO45001管理體系培訓(xùn)課件
- 動(dòng)畫課件教學(xué)教學(xué)課件
- 小學(xué)生心理健康講座5
- 綿陽市高中2022級(jí)(2025屆)高三第一次診斷性考試(一診)數(shù)學(xué)試卷(含答案逐題解析)
評(píng)論
0/150
提交評(píng)論