開放式數(shù)控系統(tǒng)中IPC與PLC通信技術(shù)
IPC指的是工業(yè)中的使用計(jì)算機(jī),也就是工業(yè)PC,工業(yè)PC的設(shè)計(jì)、制造與實(shí)際使用需要考慮到實(shí)際工作環(huán)境的影響,因?yàn)楣I(yè)生產(chǎn)中的設(shè)備需要能夠承受溫度、濕度、機(jī)械擾動、電磁場甚至灰塵等惡劣條件的影響,因此IPC的制造需要使用工業(yè)級別的處理器,全部密封的封裝箱柜,并且在設(shè)備中需要安裝保持空氣潔凈的器件,同時還要能夠鋪墊避免機(jī)械擾動的物質(zhì)和抗電磁干擾的屏蔽器件,加上多方面的保護(hù)措施才能夠在工業(yè)環(huán)境中長期穩(wěn)定運(yùn)行,因此其具有極強(qiáng)的穩(wěn)定性,可以廣泛應(yīng)用在工業(yè)、航空、礦業(yè)、軍事等多種領(lǐng)域中。
PLC的全稱為可編程控制器,它是在計(jì)算機(jī)基礎(chǔ)上進(jìn)行開發(fā)而成的自動化工業(yè)控制器。在工作中可編程控制器可以進(jìn)行隨時更改程序、適應(yīng)性強(qiáng),因此具有很強(qiáng)的適應(yīng)能力和計(jì)算能力,同時加上大容量空間、多樣化的軟件程序應(yīng)用、便捷的操作和多種獨(dú)特的功能,如今PLC已經(jīng)在工業(yè)控制中獲得了極其廣泛的應(yīng)用。在IPC和PLC發(fā)展如此迅猛的今天,兩者進(jìn)行聯(lián)合開發(fā),在數(shù)控領(lǐng)域中發(fā)揮強(qiáng)大功能已經(jīng)獲得了可能,在開放式的數(shù)控系統(tǒng)中,通過PLC作為下位機(jī)處理一線的物理處理和數(shù)據(jù)收集,IPC可以作為處理設(shè)備進(jìn)行計(jì)算、控制、數(shù)據(jù)研究等多項(xiàng)后期工作,同時如果多個PLC連接還可以實(shí)現(xiàn)網(wǎng)絡(luò)化的控制,因此這兩者的聯(lián)合控制模式,將成為工業(yè)數(shù)控領(lǐng)域內(nèi)的主流發(fā)展方向。
一、數(shù)控系統(tǒng)結(jié)構(gòu)
開放性的數(shù)控系統(tǒng)采用了開放式的PLC,也就是外置式的PLC,傳統(tǒng)的PLC是內(nèi)置的,且多個PLC只能夠由一個CPU進(jìn)行控制,嚴(yán)重影響了工作效率也錯誤判別的準(zhǔn)確性,外置式的PLC具有成熟的生產(chǎn)廠家,穩(wěn)定的通信渠道,且具有獨(dú)立的CPU對其進(jìn)行控制,大大提高了通信的穩(wěn)定性和執(zhí)行效率。
在本文的數(shù)控系統(tǒng)中,將以數(shù)控機(jī)床中的數(shù)控系統(tǒng)為例,PLC的主要功能是在機(jī)床的工作前線進(jìn)行數(shù)據(jù)的采集、判斷上位指令的傳達(dá)、執(zhí)行輸入的控制指令,也就是對數(shù)控機(jī)床的運(yùn)行狀態(tài)進(jìn)行實(shí)時的狀態(tài)數(shù)據(jù)采集工作。PLC在數(shù)控系統(tǒng)中處于協(xié)調(diào)自身所在的數(shù)控系統(tǒng)和外部的控制指令的位置,一方面它需要能夠執(zhí)行IPC傳達(dá)的控制命令和發(fā)送數(shù)據(jù)信息,一方面也需要通過DMP接收機(jī)床操作命令,根據(jù)這些接收到的命令輸入機(jī)床的各個電機(jī)環(huán)節(jié)進(jìn)行操作。而上位的工業(yè)計(jì)算機(jī)IPC的主要工作是對采集好的數(shù)據(jù)進(jìn)行存儲、挖掘并將結(jié)果進(jìn)行輸出顯示等工作,這樣就能夠通過兩者的配合實(shí)現(xiàn)對數(shù)控機(jī)床工作數(shù)據(jù)進(jìn)行實(shí)時的采集與顯示工作,另外上位機(jī)還需要進(jìn)行對活動的機(jī)械設(shè)備進(jìn)行電機(jī)等運(yùn)動器件位置與方向、速度等參數(shù)的實(shí)時控制工作。系統(tǒng)中IPC與PLC采用點(diǎn)對點(diǎn)的通信方式,具體是通過RS232的串行接口進(jìn)行連接,PLC與計(jì)算機(jī)的各個接口也都是通過RS232來進(jìn)行。
二、IPC與PLC之間的通信
數(shù)控系統(tǒng)中的通信接口主要有兩個,一個通過RS232串行接口進(jìn)行數(shù)據(jù)指令的傳輸,一個是通過數(shù)據(jù)線與計(jì)算機(jī)進(jìn)行程序的輸出與寫入工作,該接口也是通過RS232的串行接口,通過RS232數(shù)據(jù)線進(jìn)行程序的傳輸和讀寫操作。
在通信工作開始之前,IPC與PLC的連接需要在正式開始之前進(jìn)行初始化操作,PLC、IPC需要各自都采用同樣的數(shù)據(jù)傳輸格式以及波特率參數(shù)。同時,在通信正式開始之前,PLC的寄存器也需要進(jìn)行統(tǒng)一的讀寫操作,其中寄存器412用于進(jìn)行選擇計(jì)算機(jī)的連接方式,寄存器413用于選擇奇校驗(yàn),設(shè)置傳輸8位,并選擇停止位,寄存器414的作用是設(shè)置數(shù)據(jù)傳輸?shù)乃俾?。在?jì)算機(jī)中,默認(rèn)設(shè)置一號端口為PLC的通信讀寫端口。
在計(jì)算機(jī)通過串口對PLC進(jìn)行通信程序的讀寫時,存在一套完備成熟的通信協(xié)議工具進(jìn)行輔助程序通信,這個協(xié)議已經(jīng)具備了如何接收上位機(jī)的控制指令、PLC的編號和命令設(shè)置方式。該指令的具體執(zhí)行過程如下:
首先,由上位機(jī)發(fā)出命令,該命令的前段包括起始碼、接收的PLC的編號、特征碼、正文命令內(nèi)容、塊校驗(yàn)碼等內(nèi)容,該格式由通信協(xié)議實(shí)現(xiàn)進(jìn)行了規(guī)定;其次,PLC的工作,其在接收到上位機(jī)發(fā)出的命令之后會首先對其進(jìn)行檢查是不是一段完整的合法指令,然后再檢查自身的PLC編號是不是與指令中的目的編號相符合,如果這一切都符合要求,那么其會進(jìn)行數(shù)據(jù)的發(fā)送工作,不然其會進(jìn)行中斷以拒絕操作,根據(jù)錯誤的原因發(fā)送固定格式的錯誤代碼。
為了保證上位機(jī)與PLC之間通信的準(zhǔn)確與可靠性,在通信協(xié)議中會設(shè)置一段塊校驗(yàn)碼,具體的使用方法是將上位機(jī)傳來的指令進(jìn)行校驗(yàn),在校驗(yàn)中會將正文的指令內(nèi)容進(jìn)行一定形式的邏輯運(yùn)算,轉(zhuǎn)換為其它形式的代碼,PLC在接收到信號后會對塊校驗(yàn)碼進(jìn)行反演計(jì)算,如果與發(fā)送端的相同,那么就可以進(jìn)行正常通信工作執(zhí)行,否則就說明通信出現(xiàn)問題,根絕校驗(yàn)碼輸出的錯誤信息可以判斷出發(fā)生問題的具體位置和原因。
三、IPC的通信程序
對于作為上位機(jī)的IPC來說,在其與PLC通信的過程中,始終處于主動發(fā)送命令的位置,根據(jù)用戶的需求,使用特定的功能,讓IPC發(fā)送相應(yīng)的命令信息,而PLC則始終處于被動接受信息和執(zhí)行的狀態(tài),由于PLC中不需要進(jìn)行編程信息的編寫和存儲,因此其只能夠處于響應(yīng)控制命令,不能夠進(jìn)行主動發(fā)送信息和命令。在數(shù)控系統(tǒng)中,各種一線設(shè)備的工作狀態(tài)數(shù)據(jù)需要隨時進(jìn)行讀取顯示,因此IPC并不具備主動進(jìn)行實(shí)時讀取的功能,所以這樣的方式影響了PLC的實(shí)時工作性質(zhì)。 傳統(tǒng)的上位機(jī)與PLC之間的通信方式采用定時進(jìn)行查詢的方式,該方式具體的做法是IPC會在固定的時間間隔點(diǎn)后進(jìn)行讀取PLC的工作狀態(tài),如果某一次對PLC的讀取發(fā)現(xiàn)其狀態(tài)異常,那么會觸發(fā)對應(yīng)的處理方案,這種方法在故障發(fā)生并不嚴(yán)重的時候可以發(fā)揮基本的監(jiān)控和提醒作用,但是在實(shí)時性上仍然具有一定的劣勢,且操作的效率不高。而當(dāng)使用串行接口進(jìn)行通信工作時,在一開始對PLC的端口進(jìn)行了預(yù)先的設(shè)置后,并不需要進(jìn)行定時的數(shù)據(jù)匯報(bào),而是當(dāng)其實(shí)時觀察到的數(shù)據(jù)產(chǎn)生變化時才會觸發(fā)緊急狀態(tài)信息,這樣的數(shù)據(jù)會立即被傳送至上位機(jī)進(jìn)行處理,這樣IPC上位機(jī)就能夠在錯誤發(fā)生的第一時間進(jìn)行處理,工作的效率較高,也節(jié)省了大量的監(jiān)控?cái)?shù)據(jù)傳送,從錯誤發(fā)生到事件處理之間的時間也大大減少。
在IPC與PLC之間的通信中,需要開發(fā)相應(yīng)的通信軟件,以筆者所在的學(xué)校擁有的數(shù)控系統(tǒng)設(shè)備來講,配備了成熟的串行通信程序編寫控件MSComm,它能夠?yàn)榻^大多數(shù)的串口通信模塊提供通信程序的編寫工具。在Visual Basic環(huán)境中,利用該控件可以為各端口提供完備的輸入輸出數(shù)據(jù)信號的能力,另外其優(yōu)勢在于完善的中斷功能,中斷功能可以幫助開發(fā)者開發(fā)出更加成熟穩(wěn)定的通信工具。如上述所說,通信中斷的方式主要有兩種,固定間隔的查詢功能與實(shí)施狀態(tài)變化發(fā)生的信息傳送功能,如果數(shù)控系統(tǒng)涉及的器件不多,且結(jié)構(gòu)簡單無任何嚴(yán)重的不良后果,則可以采用定時查詢的方式進(jìn)行監(jiān)控,如果數(shù)控系統(tǒng)的中斷對即時性要求較高,那么則必須采用串口通信的方式處理錯誤事件。也叫做事件驅(qū)動方式。事件驅(qū)動方式的具體方法是當(dāng)上位機(jī)決定好發(fā)送數(shù)據(jù)時,事件的屬性定義為查詢式傳送數(shù)據(jù)時,系統(tǒng)將會以定時間間隔的方式由PLC匯報(bào)系統(tǒng)運(yùn)行狀態(tài),而當(dāng)事件的屬性定義為事件驅(qū)動方式時,那么該通信會即時生效,開始處理程序,如果PLC匯報(bào)狀態(tài)改變的信息時,上位機(jī)會立即作出處理。在處理的過程中,為了避免重復(fù)通信,可以繼而轉(zhuǎn)換為定時查詢的方法向PLC發(fā)送信息處理狀態(tài),保證在處理過程中通信程序的暢通運(yùn)行。
四、總結(jié)
總的來說,在數(shù)控機(jī)床等非標(biāo)準(zhǔn)機(jī)械的開發(fā)制造過程中,PLC的長期穩(wěn)定工作能夠?yàn)橄到y(tǒng)的運(yùn)行帶來可靠性,但是自身帶有無法進(jìn)行信息管理的弱點(diǎn),而且不能夠直接與使用者進(jìn)行交流,所以在故障的發(fā)現(xiàn)與排除、實(shí)時狀態(tài)的匯報(bào)等方面無法實(shí)現(xiàn)功能,在本文中利用了其與IPC進(jìn)行通信的方式,成功地解決了該弱點(diǎn),PLC能夠?qū)崿F(xiàn)數(shù)控系統(tǒng)前沿的信息收集,由IPC進(jìn)行信息處理和現(xiàn)實(shí),對于用戶來說使用更方便,可靠性更高,在實(shí)際的各類數(shù)控系統(tǒng)開發(fā)中都可以得到廣泛的應(yīng)用。
評論