摘要:介紹了為三面打孔機用DNC控制系統開發的PC機用RS422通信板,以及它的通信協議。該DNC系統已經應用于浙江華能數控研究所的三面打孔機中,并在邯鄲冶金機械備件廠得到推廣。
機械制造業從單機自動化發展到分布式DNC控制系統,在技術上首先要解決的是數控機床計算機(上位機)的信息交換和互聯問題,這是實現DNC控制的核心問題。筆者開發了一塊PC機用RS422通信板,并且自行定義了一套可靠而行之有效的通信協議。
1 DNC系統的網絡結構
本DNC控制系統的拓撲結構采用兩級主從總線型網絡結構,通信網絡采用三層結構:物理層、數據鏈路層和應用層。
1) 物理層 采用平衡型標準RS422接口,以提高數據傳輸的可靠性。在新的平衡型標準RS422中(見圖),發送器與接收器均以差分方式工作,每個信號用兩根導線傳輸,整個接口無需共用信號線就可以正常工作。信號的電平由兩根導線上的信號的差值來表示,電壓范圍為-6~+6V,相對于其中的一根導線來說,差值為+4~+6V表示二進制的“0”,差值為-4~-6V表示二進制的“1”。對于新的平衡型標準RS422來說,當傳輸距離達到1000m時,信號傳輸速率在100kb/s以下,在10m以內的近距離傳輸中,速率可達10Mb/s。由于每個信號均用雙線傳輸,這種差分平衡結構能從地線的干擾中分離出有效信號,差分接收器可區分0.20V以上的電位差,因此,可不受對地參考系統之地電位的波動和共模電磁干擾的影響。
2) 鏈路層 本DNC系統控制系統采用異步串行通信方式。系統約定:數據的傳輸采用正反碼校驗:命令字和狀態字在發送時,必須先發送兩個BREAK,然后發送命令字或狀態字,再發送其反碼:文件傳輸時,32個字節(正反碼)組成一個信息包。
3) 應用層 這一層是面向用戶的,主要為命令的輸入和傳輸結果的說明。其中命令的輸入包括上位機對下位機實時控制命令的輸入和文件傳輸命令的輸入。傳輸結果的說明有兩種:當命令或文件正確傳輸時,在屏幕上顯示正確傳輸標志:當命令或文件錯誤傳輸時,在屏幕上顯示錯誤傳輸標志。
2 本DNC控制系統通信規程的約定
為了使網絡內不同結點之間能夠正確進行數據通信,通信雙方就必須有一套彼此能夠相互了解和共同遵守的規則和約定,這些格式、約定及應答關系概括起來就叫做通信規程。
本DNC控制系統為主從總線型網絡結構,上位機執行著整個系統的組織和管理。因此系統的通信規程是不平衡型的:上位機發送命令、接收響應并負責鏈路級的差錯恢復:下位機發送響應、接收命令。
1) 通信信息及地址的編碼
系統中RS422總線的一點對多點的通信是將所有下位機的接收端并聯在總線上,接至上位機的發送端:而將所有下位機的發送端并聯在總線上,接至上位機的接收端。因此,選擇下位機和分辨下位機,確定通信路徑是完成通信的第一步。
本系統采用一個字節來傳遞命令信息加地址信息或狀態信息加地址信息,分別稱為命令字、狀態字。從上位機向下位機傳送的為命令字,從下位機向上位機傳送的為狀態字。字節中地址信息占用字節的低四位,編碼為1~3。命令信息或狀態信息占用字節的高四位,地址信息、命令信息、狀態信息都應該是獨立和唯一的。
例如,急停命令信息編碼040,若上位機想控制地址編碼為1的正在加工的機床急停,則發送命令字應為041,該機床就會執行相應的動作,其他機床不予理會。又例如,若上位機接收到一個為02的狀態字,由于編輯狀態信息編碼為000,故可相應判別出此狀態字為地址編碼為2的機床的編輯狀態信息。
2) 命令字、狀態字和文件傳輸的通信約定
在本DNC系統通信中,通信的內容除了有命令和狀態,還有文件的傳輸,而文件中的字符是隨機的,很可能會被某臺機床誤認為是對本機床的命令字而發生誤動作:另外,由于電磁干擾和網絡沖突的存在,接到的字符也可能并不是發送的字符。因此,為保證通信的可靠性和正確性,應該在通信設計中采取某些通信約定。
本DNC控制系統采用了特殊字符的雙字符啟動和正反碼校驗技術來實現上述目的。正反碼校驗技術是指在發送完字符的正碼后,接著發送其反碼,這樣接收方就可根據前后兩字符是否為反碼來判斷接收是否正確。正反碼校驗技術對每一字符的每一位都進行校驗,比傳統的奇偶校驗及累加和校驗要可靠得多。特殊啟動字符BREAK規定為0X80,低四位字節為零,由于下位機的地址編碼為1~3,故命令字與狀態字都不會出現與BREAK相同的字符:文件傳輸中也采用正反碼校驗技術,因此文件傳輸中也不會出現連續的兩個BREAK字符,保證了正確啟動,不會引起誤動作。
系統中約定不論是上位機發送命令,還是下位機發送狀態,都必須先發送兩個連續的BREAK,然后發送命令字或狀態字,再接著發送其反碼,這樣連續幾個字符稱為一幀。
在這樣的通信約定下,對于下位機來說,只有在它接收到符合約定的命令幀后,才判斷接收到了正確的命令字,進而判斷該命令是否為上位機對本機的命令。如果是,則返回正確的響應,否則不予理睬。上位機在接收到下位機的正確響應后,就了解到下位機已經正確接收了:若上位機在規定的時間內(至少為幀往返總線一周所用時間)接收不到正確響應,上位機會三次重發來糾錯。對于上位機也是如此,只有在它接收到符合約定的狀態幀后,才認為接收到了正確的狀態字。
筆者采用Borland C++ 3.1 for DOS語言與Z80匯編語言編寫了通信功能模塊和DNC系統的其他功能模塊。
3 結語
該DNC控制系統已經應用于浙江華能數控研究所的三面打孔機系統中,并在邯鄲冶金機械備件廠得到推廣。系統工作穩定、可靠,達到預期的控制目的,證明RS422通信可靠。