新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > RS-485網(wǎng)絡在數(shù)控機床聯(lián)網(wǎng)中應用

RS-485網(wǎng)絡在數(shù)控機床聯(lián)網(wǎng)中應用

作者: 時間:2016-09-12 來源:網(wǎng)絡 收藏

RS-485在電力系統(tǒng)及工業(yè)自動化中有廣泛的應用,木文介紹通過RS-485網(wǎng)絡實現(xiàn)聯(lián)網(wǎng)方式,木方法也可為電力系統(tǒng)自動化設備的串行通信網(wǎng)絡的設計提供參考。

本文引用地址:http://www.butianyuan.cn/article/201609/304023.htm

1 聯(lián)網(wǎng)系統(tǒng)組成結構

聯(lián)網(wǎng)系統(tǒng)采用一臺控制卞機(計算機)與幾臺不同的數(shù)控機床,通過RS-485網(wǎng)絡形成卞從型網(wǎng)絡結構??刂票鍣C根據(jù)不同的任務安排,把數(shù)據(jù)傳輸?shù)较鄳臄?shù)控機床,同時控制卞機根據(jù)數(shù)控機床的請求狀態(tài),把數(shù)控機床的數(shù)據(jù)采集到計算機中。因大多數(shù)的計算機和數(shù)控機床都只有RS-232串口,須設計RS-232/RS-485接口轉(zhuǎn)換電路,把計算機和數(shù)控機床的RS-232通信信號轉(zhuǎn)換成RS-485信號。這樣,計算機和多臺數(shù)控機床就通過 RS-485總線聯(lián)網(wǎng)。其聯(lián)接結構如圖1所示。

1.jpg

2 RS-232/RS-485轉(zhuǎn)換電路設計

數(shù)控機床聯(lián)網(wǎng)系統(tǒng)需多個RS-232/RS-485接口轉(zhuǎn)換器.考慮到大部分計算機和數(shù)控機床的通信端口為9芯D型插頭,在串行通信時,通常只使用其中的RTS , RXD , TXD與GND 4個端子,利用光電禍合器的隔離特性和RS - 232工作時RTS線與TXD線之間的電平關系,采用美國TI公司生產(chǎn)的RS - 485接口芯片SN75LBC184,設計了一種實用RS - 232 / RS -485轉(zhuǎn)換器,其電路如圖2所示。

2.jpg

圖中RS - 485接口芯片SN75LBC 184在發(fā)送使能端DE為高電平,接收使能端RE為低電平時,作為發(fā)送器使用;接收使能RE為高電平,發(fā)送使能端DE為低電平時,作為接收器使用。該電路還使用了3片光電禍合器TLP521-1進行隔離,這使PC機與SN75LBC184之間完全沒有了電的聯(lián)系,從而提高了工作的可靠性。

當RS-232的RTS端為邏輯電平1(-12 V)時,光電禍合器的發(fā)光一極管不發(fā)光,光敏二極管不導通,輸出端為TTL邏輯電平1(+5 V),此時選中RS-485的DE端允許RS - 485接收,這樣,RS-232的TXD端就可以發(fā)送數(shù)據(jù)(工作邏輯與RTS端相似)。當RS-232的RTS端為邏輯電平0(+12 V)時,光電禍合器的發(fā)光一極管發(fā)光,光敏二極管導通,輸出端為TTL邏輯電平0(0 V),此時選中RS-485的RE端允許RS - 485發(fā)送,RS-232的RXD端就可以接受 RS - 485網(wǎng)絡傳輸?shù)臄?shù)據(jù)。當RS - 485的R端輸出為邏輯電平1時,光電禍合器發(fā)光一極管不發(fā)光,光敏二極管不導通,這樣,在RS-232輸出停止時,其TXD電平為-12 V,電容被充電到-12 V以使其輸出也變成-12 V,即邏輯電平1;當其輸出為邏輯電平0時,光電禍合器發(fā)光一極管發(fā)光,光敏二極管導通,這時,其輸出為+SV,也在RS-232邏輯電平0的范圍之內(nèi),即為邏輯電平0。

3 通信軟件設計

計算機卞控數(shù)據(jù)傳輸系統(tǒng)軟件安裝在計算機端,由于數(shù)控機床數(shù)據(jù)傳輸軟件是固化在數(shù)控機床的控制器中,不需要特別的編程,在進行數(shù)據(jù)傳輸時根據(jù)通信要求設置通信參數(shù),計算機端與其設置相同,由于不同的數(shù)控機床采用的通信方式即握手信號與幀格式不一樣,因此,數(shù)據(jù)傳輸軟件設計必須根據(jù)不同的數(shù)控機床采用不同握手信號。通常實現(xiàn)串行通信有多種方法,如利用調(diào)用Win

3.1 MSComm ActiveX控件介紹

Borland C++ Builder作為新一代的可視化編程工具,提供了大量的封裝好各種功能的VCL控件庫以便快速編程,遺憾的是并沒有直接提供串口通信功能的VCL控件; 而微軟公司提供的MSCommActiveX控制將串行通信的大部分操作都封裝到控件內(nèi)部,為編程者提供了簡化的Windows卜的串行通信編程,通過導入微軟MSComm控制,C++ Builder也能方便地實現(xiàn)計算機串口通信編程,為應用程序提供串行通信功能。

MSComm控件提供卜列兩種處理通信的方式:事件馭動通信方式和查詢方式。事件馭動通信是處理串行端口交互作用的一種非常有效的方法。在許多情況卜,在事件發(fā)生時需要得到通知,例如:在CD (Carrier Detect)或RTS ( Request to Send)線上一個字符到達或一個變化發(fā)生時,可利用MSComm控件的OnComm事件捕獲并處理這些通信事件。OnComm事件還可以檢查和處理通信錯誤。查詢方式是在程序的每個關鍵功能之后,通過檢查CommEvent屬性的值查詢事件和錯誤。MSComm控件的屬性 InBuf'ferCount()和Out2BufferCount()就用于串口的查詢方式??赏ㄟ^Set2CommEvent(函數(shù)設置串口要響應的事件,當響應事件或串口錯誤發(fā)生時,系統(tǒng)會激活OnComm)事件,在OnComm)中添加相應的程序,即可實現(xiàn)類似DOS中斷的串口處理程序。每個使用的MSComm控件對應著一個串行端口。如果應用程序需要訪問多個串行端口.必須使用多個MSComm控件??梢栽赪indows“控制而板”中改變端口地址和中斷地址。

3.2 計算機與數(shù)控機床通信程序編寫

首先,把MSComm控件安裝入C++ Builder的集成開發(fā)環(huán)境,通過C++ Builder菜單項的“Component項卜的“Import ActiveX Control,裝入C++ Builder控件板的AetiveX組中。其次,為了用該控件控制一個串口進行通信操作,還必須在相應程序中插入該控件。為此,在程序的某個C++ Builder的Form中插入MSComm控件,控件名為MSComml(可以更改此名),在程序中對串口的各種操作可通過MSComml實現(xiàn)。為了得到MSComm控件的有關參數(shù),可以在控件上按F1鍵查詢,或參閱有關的Visual C++與Vi-sual書籍。

數(shù)控機床通過軟件、硬件握手方式與計算機進行數(shù)據(jù)的傳輸,為此,在計算機數(shù)據(jù)傳輸通信程序編制上,采用查詢的通信方式。在對木次通信任務中,可通過SetCommEvent函數(shù)設置串口要響應的事件。木設計把計算機串口每接收一幀數(shù)據(jù)設置為串口要響應的事件,也即EV2RXFLAG事件。這是 WindowsAPI函數(shù)中的一個基木事件。通過它去激活OnComm,在OnComm)消息處理函數(shù)中可加入處理代碼,判斷是否是所需要的數(shù)據(jù),并作出相應的處理,如顯示、存盤、分析等。卜而簡要給出事件馭動方式接收數(shù)控機床發(fā)送數(shù)據(jù)的程序源代碼。計算機串口各參數(shù)設置,如波特率、校驗及數(shù)據(jù)格式等,必須與數(shù)控機床完全一致,否則兩者之間的通信無法正常進行。設置計算機串口參數(shù)的初始化程序如下:


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉