摘要:介紹了一種在經(jīng)濟(jì)型數(shù)控系統(tǒng)中實(shí)現(xiàn)可編程邏輯控制的方法,通過(guò)采用主一從式結(jié)構(gòu)的雙單片機(jī)控制系統(tǒng),在實(shí)現(xiàn)對(duì)邏輯變量掃描控制的同時(shí),保證了時(shí)機(jī)床坐標(biāo)精確的數(shù)字控制。文中闡述了系統(tǒng)的工作原理、硬件組成和軟件設(shè)計(jì)思想。
關(guān)鍵詞:可編程邏輯控制;數(shù)控系統(tǒng);掃描控制
Programmable logic control in economical numerical control system
Abstract:This paper presents a method for programmable logic control in economical numerical control system.By means of plication of double single — chip microprocessor control system with master—slave construction.not only scanning control to switching variable is achieved.but also accurate numerical control for machine tools coordinate is ensured.The principle of operation,hardware composition mad thinking of software design for the system are described.
Keg words:programmable logic control;numerical control system ;scanning control
1 引言
機(jī)床數(shù)控系統(tǒng)一般用于完成運(yùn)動(dòng)軌跡控制和開(kāi)關(guān)量的邏輯控制。目前,國(guó)內(nèi)的經(jīng)濟(jì)型數(shù)控系統(tǒng)大都側(cè)重于運(yùn)動(dòng)軌跡的控制。對(duì)于開(kāi)關(guān)量點(diǎn)數(shù)較多,特別是要求邏輯和順序控制的場(chǎng)臺(tái)(如專(zhuān)用數(shù)控機(jī)床、組合機(jī)床等),通常采用二級(jí)控制結(jié)構(gòu),既用一臺(tái)微機(jī)控制系統(tǒng)完成運(yùn)動(dòng)軌跡的控制,同時(shí)作為操作平臺(tái)。而機(jī)床開(kāi)關(guān)量I/0的邏輯控制用一個(gè)獨(dú)立的可編程邏輯控制器(PLC)實(shí)現(xiàn)。在這種控制方式下,由于需要在數(shù)控系統(tǒng)和PLC之間做大量的軟件和硬件開(kāi)發(fā)工作,并且對(duì)兩套系統(tǒng)分別編程,用戶(hù)常感到使用不便?;谏鲜銮闆r,本文介紹了一種在經(jīng)濟(jì)型數(shù)控系統(tǒng)中實(shí)現(xiàn)對(duì)開(kāi)關(guān)量邏輯和順序控制的方法,闡述了系統(tǒng)工作原理和硬、軟件設(shè)計(jì)思想。
2 工作原理
為了對(duì)可編程邏輯和坐標(biāo)位置實(shí)施混合控制,系統(tǒng)設(shè)計(jì)主要從以下幾個(gè)方面來(lái)考慮:
1)應(yīng)具備PLC系統(tǒng)對(duì)各種開(kāi)關(guān)量順序控制的特性和NC系統(tǒng)對(duì)執(zhí)行元件數(shù)字控制特性。
2)如何協(xié)調(diào)兩個(gè)控制模塊的同步控制問(wèn)題。
3)解決兩類(lèi)控制指令的混合編程問(wèn)題。
在本文介紹的機(jī)床數(shù)控系統(tǒng)中,運(yùn)動(dòng)軌跡控制和可編程邏輯控制分別由兩個(gè)獨(dú)立的模塊完成。PLC模塊作為數(shù)控系統(tǒng)的主控模塊,用于完成系統(tǒng)的管理和開(kāi)關(guān)量的邏輯控制。運(yùn)動(dòng)控制(MNC)模塊作為輔助控制模塊,用于完成步進(jìn)電機(jī)的兩坐標(biāo)聯(lián)動(dòng)控制。
系統(tǒng)為雙單片機(jī)并行工作的主一從式控制結(jié)構(gòu)。采用雙CPU結(jié)構(gòu)的目的在于,使MNC模塊有充裕的時(shí)間完成軌跡控制和坐標(biāo)顯示管理等工作。PLC主控模塊與MNC輔助控制模塊通過(guò)串行通信協(xié)調(diào)控制。系統(tǒng)采用連續(xù)掃描方式工作,按照以下步驟完成控制任務(wù):
(1)將機(jī)床開(kāi)關(guān)量輸入信號(hào)狀態(tài)送人內(nèi)部映像寄存器;
(2)按用戶(hù)程序存放順序,逐條解釋和執(zhí)行指令,產(chǎn)生相應(yīng)的控制信號(hào)去控制有關(guān)電路,完成數(shù)據(jù)的存取、傳送和處理工作,并根據(jù)運(yùn)算結(jié)果更新有關(guān)寄存器的內(nèi)容。在運(yùn)動(dòng)控制條件成立的情況下,調(diào)用發(fā)送子程序,將指令傳送紿MNC模塊,并設(shè)置相應(yīng)標(biāo)志。當(dāng)MNc模塊完成規(guī)定的控制任務(wù)后,則通過(guò)串行口回發(fā)狀態(tài)標(biāo)志,更改內(nèi)部寄存器的狀態(tài)。
(3)將輸出映像寄存器的內(nèi)容送給接口電路,去控制外部負(fù)載。由硬件WDT電路和單片機(jī)內(nèi)部定時(shí)器T2實(shí)現(xiàn)的軟件WDT共同組成程序運(yùn)行監(jiān)視系統(tǒng),以保證掃描控制的正常進(jìn)行。
3 系統(tǒng)結(jié)構(gòu)
系統(tǒng)結(jié)構(gòu)框圖如圖1所示。它由8032單片機(jī)、存儲(chǔ)器、鍵盤(pán)及接口電路、掉電保護(hù)電路、開(kāi)關(guān)量I/O接口電路、WDT電路和MNC控制電路組成。
8032單片機(jī)和MNC控制模塊中的8031單片機(jī)的系統(tǒng)時(shí)鐘均由外部公共晶體振蕩器提供,使二者的工作具有一致性,為雙機(jī)之間進(jìn)行高速數(shù)據(jù)傳送提供了可靠的物理保證。
系統(tǒng)軟件存放在一片27512中,用戶(hù)程序和數(shù)據(jù)存放在兩片6264靜態(tài)RAM中(其中一片帶掉電保護(hù)電路和備用電池)。52個(gè)編輯鍵和7個(gè)工作方式選擇鍵由一片8279來(lái)管理,P1口用來(lái)對(duì)4個(gè)方向鍵和啟動(dòng)鍵、暫停鍵的狀態(tài)進(jìn)行檢測(cè)??紤]到經(jīng)濟(jì)型數(shù)控系統(tǒng)的控制對(duì)象主要是單臺(tái)設(shè)備,開(kāi)關(guān)量I/O的基本配置為32路輸入和32路輸出,接口電路由3片8255組成。由555振蕩器和74LS393組成硬件WDT電路。MNC控制模塊可以根據(jù)給定的控制指令,完成對(duì)兩個(gè)坐標(biāo)的步進(jìn)電機(jī)運(yùn)動(dòng)控制。它以光刪傳感器作為檢測(cè)元件,工作臺(tái)實(shí)際位移量為反饋信號(hào),采用數(shù)字調(diào)節(jié)器進(jìn)行閉環(huán)控制[1]。該模塊帶有一個(gè)8位米字型LED顯示器,用于程序編制和加工過(guò)程中的數(shù)據(jù)顯示。
[b]4 軟件設(shè)計(jì)
4.1 內(nèi)部繼電器的安排[/b]
輸入/輸出繼電器狀態(tài)、中間繼電器狀態(tài)和PLC控制指令中標(biāo)志、指針均安排在8032單片機(jī)的內(nèi)部RAM中,最大限度地利用其位尋址區(qū)。繼電器狀態(tài)的存放,采用逐位對(duì)應(yīng)的方法,一個(gè)字節(jié)對(duì)應(yīng)存放8點(diǎn)的狀態(tài),對(duì)于定時(shí)器、計(jì)數(shù)器和移位寄存器,除本身有對(duì)應(yīng)的內(nèi)部繼電器外,還占有字節(jié)工作單元和標(biāo)志狀態(tài)寄存器。
1)定時(shí)器/計(jì)數(shù)器
定時(shí)器/計(jì)數(shù)器均為l6位,占用兩個(gè)工作單元,每一個(gè)定時(shí)器/計(jì)數(shù)器都有信號(hào)狀態(tài)位和三個(gè)標(biāo)志位:定時(shí)器/計(jì)數(shù)器標(biāo)志、定時(shí)器啟動(dòng)標(biāo)志和定時(shí)到標(biāo)志,均安排在定時(shí)器/計(jì)數(shù)器標(biāo)志寄存器中。定時(shí)器/計(jì)數(shù)器所需的1ms內(nèi)部定時(shí)脈沖由8032內(nèi)部定時(shí)器T0產(chǎn)生。
2)移位寄存器
移位寄存器每8個(gè)點(diǎn)一組,共有8組,每一組移位寄存器對(duì)應(yīng)一個(gè)CP狀態(tài)標(biāo)志位,用以保留上一個(gè)掃描周期的輸入時(shí)鐘狀態(tài)。當(dāng)兩組或兩組以上移位寄存器聯(lián)用時(shí),由移位寄存器的起始繼電器標(biāo)號(hào)決定CP狀態(tài)的存放位置。
3)微分器
為了對(duì)相鄰兩個(gè)掃描周期的輸入狀態(tài)進(jìn)行判別,每一個(gè)微分繼電器除有一個(gè)輸出狀態(tài)位外,還有一個(gè)輸入狀態(tài)標(biāo)志位,用以保存上一個(gè)掃描周期輸入信號(hào)的狀態(tài)。
4.2 輸入狀態(tài)的判別
區(qū)分開(kāi)關(guān)量狀態(tài)的變化,對(duì)PLC的控制非常重要。在計(jì)數(shù)、信號(hào)邊沿微分和移位過(guò)程中,需要根據(jù)開(kāi)關(guān)量的時(shí)序變化情況來(lái)決定程序執(zhí)行方式。除下降沿微分指令外,上述其它幾種情況都要求在輸入信號(hào)的圖1 控制系統(tǒng)結(jié)構(gòu)框圖上升沿工作。所以,對(duì)于計(jì)數(shù)、微分和移位操作,上一個(gè)掃描周期的時(shí)鐘狀態(tài)被保存在一個(gè)專(zhuān)用寄存器中,并和該繼電器編號(hào)相對(duì)應(yīng)。根據(jù)相鄶兩次掃描周期CP狀態(tài)的變化決定是否執(zhí)行指令規(guī)定的功能。
4.3 數(shù)控指令的轉(zhuǎn)化
混合編程是本設(shè)計(jì)的一個(gè)重要特點(diǎn)。PLC有其自己的編程語(yǔ)言,常采用梯形圖編程,語(yǔ)句表輸入的方式。而數(shù)控系統(tǒng)也有其自身的編程語(yǔ)言,廣泛采用的是ISO制定的標(biāo)準(zhǔn)代碼,考慮到人們對(duì)兩類(lèi)系統(tǒng)的使用習(xí)慣,在對(duì)縮程指令處理時(shí),把數(shù)控語(yǔ)言作為PLC指令系統(tǒng)的一個(gè)子集,每一種數(shù)控指令可用一個(gè)專(zhuān)用圖形符號(hào)表示,ISO標(biāo)準(zhǔn)代碼的指令助記符嵌入到PLC指令助記符中一同輸入[sup][2][/sup] 。
4.4 數(shù)據(jù)通訊方式
數(shù)據(jù)通訊方式是協(xié)調(diào)邏輯控制與軌跡控制的關(guān)鍵。雙向數(shù)據(jù)通訊通過(guò)兩個(gè)硬件模塊中單片機(jī)的串行口完成。串行口工作方式為模式3,均采用查詢(xún)式發(fā)送、中斷式接收的工作模式。在軟件設(shè)計(jì)上,PLC模塊把通訊口作為一個(gè)開(kāi)關(guān)量輸入/輸出口對(duì)待,在通訊標(biāo)志寄存器中有相應(yīng)的通訊標(biāo)志與之對(duì)應(yīng)。當(dāng)需要執(zhí)行數(shù)控指令時(shí),調(diào)用發(fā)送子程序完成控制數(shù)據(jù)的傳送。
數(shù)控指令的通訊數(shù)據(jù)格式為:
工作方式控制字決定該指令在什么方式下執(zhí)行,如編輯、自動(dòng)、空運(yùn)行、回零、手動(dòng)方式等。指令特征字是該指令的代碼,決定步進(jìn)電機(jī)運(yùn)動(dòng)的形式??刂茀?shù)則是該指令的運(yùn)動(dòng)坐標(biāo)值和運(yùn)動(dòng)速度。對(duì)于不同的控制指令,其參數(shù)可以缺省。如直線(xiàn)插補(bǔ)指令,則要求跟XZ向絕對(duì)(或相對(duì))坐標(biāo)值和速度;而快速返回原點(diǎn)指令,無(wú)需任何參數(shù)。累加和檢驗(yàn)碼是提供給接收方的檢驗(yàn)依據(jù),據(jù)此來(lái)判斷是否出現(xiàn)接收錯(cuò)誤。
4.5 軟件結(jié)構(gòu)
PLC主控模塊系統(tǒng)軟件由監(jiān)控程序、編輯與編譯程序、開(kāi)關(guān)量邏輯控制程序、指令模塊程序、中斷程序和數(shù)據(jù)傳送程序等組成。
1)監(jiān)控程序
監(jiān)控程序?qū)崿F(xiàn)對(duì)系統(tǒng)的操作管理,包括系統(tǒng)初始化和接收來(lái)自鍵盤(pán)的操作命令,并加以執(zhí)行;檢測(cè)系統(tǒng)面板上的部分開(kāi)關(guān)和按鍵,置以對(duì)應(yīng)標(biāo)志;調(diào)度系統(tǒng)的各應(yīng)用程序模塊。
2)編輯與編譯程序
編輯程序使用戶(hù)能夠?qū)庸こ绦蜻M(jìn)行輸入、編輯和修改。編譯程序?qū)⒁晕淖址?hào)形式輸入的用戶(hù)程序轉(zhuǎn)換成機(jī)器代碼,且在匯編過(guò)程中對(duì)輸入語(yǔ)句的正確性加以判斷并給出提示。
3)開(kāi)關(guān)量邏輯控制程序
進(jìn)入自動(dòng)運(yùn)行狀態(tài)后,CPU反復(fù)查詢(xún)有無(wú)工作啟動(dòng)按鈕的輸入信號(hào)。當(dāng)有啟動(dòng)輸入信號(hào),系統(tǒng)才執(zhí)行開(kāi)關(guān)量邏輯控制功能。對(duì)用戶(hù)程序的執(zhí)行以?huà)呙璺绞竭M(jìn)行,每個(gè)掃描周期分為輸入采樣(或處理)、邏輯關(guān)系處理和輸出刷新(或處理)三個(gè)階段。邏輯處理最終結(jié)果在結(jié)束標(biāo)志END出現(xiàn)時(shí)才送至輸出鎖存器。只要沒(méi)有停止工作的信號(hào)輸入,程序又轉(zhuǎn)向輸入掃描并循環(huán)往復(fù)。開(kāi)關(guān)量邏輯控制程序框圖如圖2所示。
5 結(jié)束語(yǔ)
采用混合控制模式,通過(guò)主一從式結(jié)構(gòu)的雙單片機(jī)控制系統(tǒng),在實(shí)現(xiàn)對(duì)邏輯變量掃描控制的同時(shí),保證了對(duì)機(jī)床坐標(biāo)精確的數(shù)字控制。該方法成功地應(yīng)用于PCNC一1經(jīng)濟(jì)型數(shù)控系統(tǒng),并在生產(chǎn)實(shí)踐中得到應(yīng)用,在柴油機(jī)體工藝定位孔加工和活塞油環(huán)槽底面油孔加工過(guò)程中取得了良好效果,比原生產(chǎn)工藝提高了加工精度和工作效率。
[參考文獻(xiàn)]
[1]王文熙、王玉林等.經(jīng)濟(jì)型散控機(jī)床控制技術(shù).機(jī)床.1993(9):34—36
[2]王文熙.單片機(jī)散控中的可編程邏輯控制.機(jī)電工程,2000 (1):27—29
作者簡(jiǎn)介:膝勤(1962一),男.黑龍江佳木斯人,臺(tái)肥工業(yè)大學(xué)翻教授,在職博士生。
經(jīng)濟(jì)型數(shù)控系統(tǒng)中的可編程邏輯控制:PDF