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