RS-485在電力系統(tǒng)及工業(yè)自動化中有廣泛的應用,木文介紹通過RS-485網絡實現數控機床聯網方式,木方法也可為電力系統(tǒng)自動化設備的串行通信網絡的設計提供參考。
1 數控機床聯網系統(tǒng)組成結構
數控機床聯網系統(tǒng)采用一臺控制卞機(計算機)與幾臺不同的數控機床,通過RS-485網絡形成卞從型網絡結構。控制卞機根據不同的任務安排,把數據傳輸到相應的數控機床,同時控制卞機根據數控機床的請求狀態(tài),把數控機床的數據采集到計算機中。因大多數的計算機和數控機床都只有RS-232串口,須設計RS-232/RS-485接口轉換電路,把計算機和數控機床的RS-232通信信號轉換成RS-485信號。這樣,計算機和多臺數控機床就通過RS-485總線聯網。
2 RS-232/RS-485轉換電路設計
數控機床聯網系統(tǒng)需多個RS-232/RS-485接口轉換器.考慮到大部分計算機和數控機床的通信端口為9芯D型插頭,在串行通信時,通常只使用其中的RTS , RXD , TXD與GND 4個端子,利用光電禍合器的隔離特性和RS - 232工作時RTS線與TXD線之間的電平關系,采用美國TI公司生產的RS - 485接口芯片SN75LBC184,設計了一種實用RS - 232 / RS -485轉換器。
RS - 485接口芯片SN75LBC 184在發(fā)送使能端DE為高電平,接收使能端RE為低電平時,作為發(fā)送器使用;接收使能RE為高電平,發(fā)送使能端DE為低電平時,作為接收器使用。該電路還使用了3片光電禍合器TLP521-1進行隔離,這使PC機與SN75LBC184之間完全沒有了電的聯系,從而提高了工作的可靠性。
當RS-232的RTS端為邏輯電平1(-12 V)時,光電禍合器的發(fā)光一極管不發(fā)光,光敏二極管不導通,輸出端為TTL邏輯電平1(+5 V),此時選中RS-485的DE端允許RS - 485接收,這樣,RS-232的TXD端就可以發(fā)送數據(工作邏輯與RTS端相似)。當RS-232的RTS端為邏輯電平0(+12 V)時,光電禍合器的發(fā)光一極管發(fā)光,光敏二極管導通,輸出端為TTL邏輯電平0(0 V),此時選中RS-485的RE端允許RS - 485發(fā)送,RS-232的RXD端就可以接受 RS - 485網絡傳輸的數據。當RS - 485的R端輸出為邏輯電平1時,光電禍合器發(fā)光一極管不發(fā)光,光敏二極管不導通,這樣,在RS-232輸出停止時,其TXD電平為-12 V,電容被充電到-12 V以使其輸出也變成-12 V,即邏輯電平1;當其輸出為邏輯電平0時,光電禍合器發(fā)光一極管發(fā)光,光敏二極管導通,這時,其輸出為+SV,也在RS-232邏輯電平0的范圍之內,即為邏輯電平0。
3 通信軟件設計
計算機卞控數據傳輸系統(tǒng)軟件安裝在計算機端,由于數控機床數據傳輸軟件是固化在數控機床的控制器中,不需要特別的編程,在進行數據傳輸時根據通信要求設置通信參數,計算機端與其設置相同,由于不同的數控機床采用的通信方式即握手信號與幀格式不一樣,因此,數據傳輸軟件設計必須根據不同的數控機床采用不同握手信號。通常實現串行通信有多種方法,如利用調用Win<lowsAPI提供的函數完成;利用Visual C++中的ActiveX控件MSComm等。木系統(tǒng)采用后一種方法,計算機端采用InPrise公司的C++ Builder作為開發(fā)工具,把微軟公司的串行通信ActiveX控件載入C++ Builder的控件包中,用戶就可以在自己的應用程序中嵌入MSComm控件,利用它可以方便地進行計算機串口的通信管理。
3.1 MSComm ActiveX控件介紹
Borland C++ Builder作為新一代的可視化編程工具,提供了大量的封裝好各種功能的VCL控件庫以便快速編程,遺憾的是并沒有直接提供串口通信功能的VCL控件;而微軟公司提供的MSCommActiveX控制將串行通信的大部分操作都封裝到控件內部,為編程者提供了簡化的Windows卜的串行通信編程,通過導入微軟MSComm控制,C++ Builder也能方便地實現計算機串口通信編程,為應用程序提供串行通信功能。
MSComm控件提供卜列兩種處理通信的方式:事件馭動通信方式和查詢方式。事件馭動通信是處理串行端口交互作用的一種非常有效的方法。在許多情況卜,在事件發(fā)生時需要得到通知,例如:在CD (Carrier Detect)或RTS ( Request to Send)線上一個字符到達或一個變化發(fā)生時,可利用MSComm控件的OnComm事件捕獲并處理這些通信事件。OnComm事件還可以檢查和處理通信錯誤。查詢方式是在程序的每個關鍵功能之后,通過檢查CommEvent屬性的值查詢事件和錯誤。MSComm控件的屬性InBuf'ferCount()和Out2BufferCount()就用于串口的查詢方式??赏ㄟ^Set2CommEvent(函數設置串口要響應的事件,當響應事件或串口錯誤發(fā)生時,系統(tǒng)會激活OnComm)事件,在OnComm)中添加相應的程序,即可實現類似DOS中斷的串口處理程序。每個使用的MSComm控件對應著一個串行端口。如果應用程序需要訪問多個串行端口.必須使用多個MSComm控件??梢栽赪indows“控制而板”中改變端口地址和中斷地址。
3.2 計算機與數控機床通信程序編寫
首先,把MSComm控件安裝入C++ Builder的集成開發(fā)環(huán)境,通過C++ Builder菜單項的“Component"項卜的“Import ActiveX Control",裝入C++ Builder控件板的AetiveX組中。其次,為了用該控件控制一個串口進行通信操作,還必須在相應程序中插入該控件。為此,在程序的某個C++ Builder的Form中插入MSComm控件,控件名為MSComml(可以更改此名),在程序中對串口的各種操作可通過MSComml實現。為了得到MSComm控件的有關參數,可以在控件上按F1鍵查詢,或參閱有關的Visual C++與Vi-sual書籍。
數控機床通過軟件、硬件握手方式與計算機進行數據的傳輸,為此,在計算機數據傳輸通信程序編制上,采用查詢的通信方式。在對木次通信任務中,可通過SetCommEvent函數設置串口要響應的事件。木設計把計算機串口每接收一幀數據設置為串口要響應的事件,也即EV2RXFLAG事件。這是WindowsAPI函數中的一個基木事件。通過它去激活OnComm,在OnComm)消息處理函數中可加入處理代碼,判斷是否是所需要的數據,并作出相應的處理,如顯示、存盤、分析等。卜而簡要給出事件馭動方式接收數控機床發(fā)送數據的程序源代碼。計算機串口各參數設置,如波特率、校驗及數據格式等,必須與數控機床完全一致,否則兩者之間的通信無法正常進行。
4 結語
利用RS-485網絡把一臺卞控計算機與多臺數控機床聯接在一起,可將機床中所有的數控程序、數控系統(tǒng)參數以及PLC程序(ASCII代碼文件)都備份到卞控計算機中,從而保護了系統(tǒng)資源,解決了單臺數控機床內存不足的問題。工作時,通過網絡傳輸程序,既保證了數據的準確性又大大地提高了工作效率,該聯網系統(tǒng)已成功應用于數控實習中心,取得了較好的效果。
在此基礎上,卞控計算機還可通過局域網和其他計算機和工作站連接,不僅實現零件加工程序網上傳輸,而且實現了CAD , CAM,零件加工程序等資源的共享,為今后開展DNC控制及CIMS工程奠定了基礎。
(審核編輯: 智匯胡妮)
分享