專利名稱:一種plc梯形圖代碼硬解題方法
ー種PLC梯形圖代碼硬解題方法本發(fā)明涉及可編程邏輯控制器,尤其涉及ー種PLC梯形圖代碼硬解題方法。
隨著國內(nèi)自動(dòng)化企業(yè)數(shù)量規(guī)模不斷擴(kuò)大,PLC的需求量也日益突顯,梯形圖解題為PLC的核心功能,高效、快速、準(zhǔn)確、穩(wěn)定的解題功能是判定PLC性能的重要標(biāo)準(zhǔn)。梯形圖解題分為ニ種方式,ー種是使用程序?qū)崿F(xiàn),稱為軟件解題;另ー種為使用專用的芯片來進(jìn)行,稱為硬件解題。本專利為使用硬件芯片來實(shí)現(xiàn)梯形圖的解題。它較軟解題方式有著運(yùn)行速度快,性能穩(wěn)定等特點(diǎn)。目前市場大部分PLC解題方式采用的是使用通用處理器(主控CPU)來實(shí)現(xiàn)梯形圖解題功能,通用處理器處理解題速度慢,正確率低,穩(wěn)定性差,不能滿足PLC在運(yùn)動(dòng)控制、脈沖輸出、高速計(jì)數(shù)等性能的需要。本發(fā)明要解決的技術(shù)問題是提供ー種解析速度快,性能穩(wěn)定的PLC梯形圖代碼硬解題方法,以改善PLC在運(yùn)動(dòng)控制、脈沖輸出、高速計(jì)數(shù)等方面的性能。為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案是,ー種PLC梯形圖代碼硬解題方法,PLC采用主控CPU和解題專用CPU雙核架構(gòu)模式,PLC系統(tǒng)運(yùn)算處理由主控CPU完成,梯形圖代碼解題由解題專用CPU成I)主控CPU運(yùn)行處理非梯形圖代碼內(nèi)容,主控CPU在運(yùn)行過程中發(fā)現(xiàn)是梯形圖代碼,即將控制權(quán)移交給解題專用CPU進(jìn)行梯形圖代碼解題;2)解題專用CPU在進(jìn)行梯形圖代碼解析過程中遇到功能塊指令吋,解題專用CPU將控制權(quán)移交給主控CPU調(diào)用功能塊函數(shù)進(jìn)行處理;3)兩個(gè)CPU相互切換完成梯形圖代碼的解題過程。以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU解題專用CPU定義的寄存器組包括垂直短路指示寄存器、功能塊向量寄存器、前導(dǎo)列狀態(tài)寄存器、梯形圖程序指針寄存器、高亮和模式控制寄存器、解題運(yùn)行命令寄存器、功能塊輸出寄存器和解題配置寄存器。以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU所述的垂直短路指示寄存器為列格式寄存器,用來保存梯形圖解析過程中,當(dāng)前列哪一行有元件以及元件之間的關(guān)系;所述的功能塊向量寄存器用于當(dāng)解題遇到功能塊指令時(shí),將功能塊號與功能塊的前導(dǎo)列輸入狀態(tài)以及特殊向量位存在此寄存器,解題專用CPU將控制權(quán)交給主控CPU后,主控CPU通過讀這個(gè)寄存器去調(diào)用對應(yīng)的功能塊函數(shù)。以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU所述的前導(dǎo)列狀態(tài)寄存器用于記錄解析過程中,當(dāng)前列和前ー個(gè)列的輸出狀態(tài)。將前ー個(gè)列的輸出狀態(tài)作為當(dāng)前列的輸入狀態(tài),井根據(jù)當(dāng)前列元件的開關(guān),計(jì)算當(dāng)前列的輸出;所述的高亮和模式控制寄存器用于支持上位機(jī)編程軟件的實(shí)時(shí)監(jiān)視和調(diào)試功能,將運(yùn)行中的中間狀態(tài)通過此寄存器在高亮碼狀態(tài)下傳給主控CPU。以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU所述的解題運(yùn)行命令寄存器寫任意數(shù)據(jù)均可啟動(dòng)一次解題專用CPU工作,至解題專用CPU遇到功能塊、高亮碼、結(jié)束碼跳出運(yùn)行,將控制權(quán)交還給主控CPU。
以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU所述的功能塊輸出寄存器用于當(dāng)功能塊運(yùn)行完畢后,輸出功能塊節(jié)點(diǎn)導(dǎo)通狀態(tài);所述的解題配置寄存器用來配置解題專用CPU的運(yùn)行模式、速度、程序空間和IO空間。以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU主控CPU將控制權(quán)移交給解題專用CPU的過程包括I)主控CPU向解題專用CPU控制器發(fā)出命令;2)解題專用CPU置高互斥請求線;3)主控CPU在檢測到該請求后,在一下個(gè)時(shí)鐘周期鎖住系統(tǒng)總線,然后置高互斥應(yīng)答線,同時(shí)斷開本身片選總線與外部的聯(lián)系;4)解題專用CPU在接到應(yīng)答線后,置高占用線,同時(shí)將外部總線接管,并在下ー個(gè)時(shí)鐘周期開始運(yùn)算解題。以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU解題專用CPU將控制權(quán)移交給主控CPU的過程包括I)解題專用CPU當(dāng)發(fā)現(xiàn)有外部中斷,或者遇到需要調(diào)用主控CPU運(yùn)算,或者程序運(yùn)算完畢需要將控制權(quán)交回給主控CPU時(shí),解題專用CPU斷開總線的主控制,同時(shí)將占用線和請求線同時(shí)釋放;2)主控CPU檢測到占用線和請求線釋放后,將應(yīng)答線釋放,同時(shí)接管外部總線,并在下一個(gè)時(shí)鐘周期釋放系統(tǒng)總線,開始程序的接著運(yùn)行;3)如果是解題專用CPU調(diào)用主控CPU或者是程序運(yùn)算完畢,主控CPU將接續(xù)原來的程序掛起點(diǎn)運(yùn)行;如果是中斷,則在下一個(gè)時(shí)鐘周期釋放系統(tǒng)總線,進(jìn)入中斷程序運(yùn)行,并在中斷返回后,再將控制權(quán)將給解題專用CPU。以上所述的PLC梯形圖代碼硬解題方法,解題專用CPU當(dāng)主控CPU將控制權(quán)交給解題專用CPU之前先關(guān)DCache,在重獲控制權(quán)后再將DCache打開。本發(fā)明PLC梯形圖代碼硬解題方法使用解題專用的CPU進(jìn)行梯形圖代碼的解析,具有速度快,性能穩(wěn)定等特點(diǎn),在運(yùn)動(dòng)控制、脈沖輸出、高速計(jì)數(shù)等性能方面尤為突出。下面結(jié)合附圖
和具體實(shí)施方式
對本發(fā)明作進(jìn)ー步詳細(xì)的說明。圖I是本發(fā)明PLC梯形圖代碼硬解題方法的流程圖。本發(fā)明在PLC領(lǐng)域梯形圖代碼解題技術(shù)方面主要解決梯形圖代碼轉(zhuǎn)化為PLC的邏輯控制指令采用硬件芯片進(jìn)行實(shí)現(xiàn)。使用主控CPU與解題專用CPU雙核架構(gòu)模式,PLC 一般系統(tǒng)運(yùn)算處理由主控CPU (通用處理器)完成,梯形圖代碼解題由解題專用CPU (硬解題專用處理器)完成。解題專用CPU與主控CPU的控制權(quán)相互切換功能的實(shí)現(xiàn)不影響PLC的正常運(yùn)行,并且處理的結(jié)果正確。解題專用CPU進(jìn)行PLC解題實(shí)現(xiàn)采用VHDL (全名Very-High-Speed IntegratedCircuit Hardware Description Language,硬件描述語言)進(jìn)行實(shí)現(xiàn)。PLC廠商都擁有ー套屬于自己的梯形圖代碼指令集。本發(fā)明實(shí)施例使用申請人的PLC指令集。通過硬件芯片實(shí)現(xiàn)用戶所編 寫的梯形圖代碼轉(zhuǎn)化為PLC能夠識別的控制命令完成過程控制功能。在申請人的PLC指令集中,定義了梯形圖所有元件的指令含義,上位機(jī)編寫的梯形圖下載到PLC中均是以申請人PLC指令集HLS指令的方式存儲(chǔ)在內(nèi)存中。當(dāng)PLC運(yùn)行時(shí)啟動(dòng)梯形圖代碼的指令解析功能,最終將解析的結(jié)果通過通信傳遞給上位機(jī)或其他設(shè)備或PLC自身的數(shù)字量或模擬量輸入輸出點(diǎn)執(zhí)行相應(yīng)的動(dòng)作。需要定義硬解題處理器寄存器組包括Formatting_reg垂直短路指示寄存器列格式寄存器主要用來保存梯形圖解析過程中,當(dāng)前列哪一行有元件以及元件之間的關(guān)系。Function_vector_reg功能塊向量寄存器當(dāng)解題遇到功能塊指令時(shí),將功能塊號與功能塊的前導(dǎo)列輸入狀態(tài)以及特殊向量位存在此寄存器,并將控制權(quán)交給主控CPU。主控CPU通過讀這個(gè)寄存器去調(diào)用對應(yīng)的功能塊函數(shù)。Column_reg前導(dǎo)列狀態(tài)寄存器主要用來記錄解析過程中,當(dāng)前列和前一個(gè)列的輸出狀態(tài)。將前一個(gè)列的輸出狀態(tài)作為當(dāng)前列的輸入狀態(tài),井根據(jù)當(dāng)前列元件的開關(guān),計(jì)算當(dāng)前列的輸出。PC_reg梯形圖程序指針寄存器程序指針,用戶程序在解題前對其進(jìn)行初始化。H_light_mode_reg高亮和模式控制寄存器高亮模式寄存器用于支持上位機(jī)編程軟件的實(shí)時(shí)監(jiān)視和調(diào)試功能,將運(yùn)行中的中間狀態(tài)通過此寄存器在高亮碼狀態(tài)下傳給主控 CPU。LadderPU_r_comd_port解題運(yùn)行命令寄存器寫任意數(shù)據(jù)均可啟動(dòng)一次解題專用CPU工作,至解題專用CPU遇到功能塊、高亮碼、結(jié)束碼跳出運(yùn)行,將控制權(quán)交還給主控CPU。Block_out_control_reg功能塊輸出寄存器當(dāng)功能塊運(yùn)行完畢后,需要將功能塊的位輸出結(jié)果。Config_reg解題配置寄存器用來配置解題專用CPU的運(yùn)行模式、速度、程序空間、IO空間,常使用的設(shè)置為0x58B。梯形圖代碼解題方式如下首先,在PLC內(nèi)部主控CPU運(yùn)行處理非梯形圖代碼內(nèi)容,如函數(shù)調(diào)用、變量、參數(shù)壓入堆棧、讀寫FLASH、SRAM,操作I/O ロ等。主控CPU在運(yùn)行過程中發(fā)現(xiàn)如果是梯形圖代碼,則暫停當(dāng)前工作,將控制權(quán)移交給解題專用CPU進(jìn)行梯形圖代碼解題。解題專用CPU在進(jìn)行梯形圖代碼解析吋,將ー些解題過程中得到的數(shù)據(jù)填入到上述幾個(gè)對應(yīng)的寄存器中。它在解析過程中如果遇到功能塊指令,解題專用CPU會(huì)將暫停當(dāng)前工作把控制權(quán)交給主控CPU調(diào)用功能塊函數(shù)。
兩個(gè)處理的功能相互切換完成梯形圖代碼的解題,從而完成硬解題的全過程,實(shí)現(xiàn)過程控制。
使用解題專用CPU進(jìn)行梯形圖代碼的解析,具有速度快,性能穩(wěn)定等特點(diǎn)。在運(yùn)動(dòng)控制、脈沖輸出、高速計(jì)數(shù)等性能方面尤為突出。主控CPU使用的Leon 2是ー款32位,符合IEEE-1754 (SPARC V8)結(jié)構(gòu)的處理器IP核。解題專用CPU使用自行開發(fā)的LadderPU處理器。整個(gè)工作原理機(jī)制如下Leon2 一> LadderPULeon2初始化完畢后,先掃描IO ;向LadderPU發(fā)出命令;LadderPU置高互斥請求線;Leon2在檢測到該請求后,在一下個(gè)時(shí)鐘周期鎖住系統(tǒng)總線,然后置高互斥應(yīng)答線,同時(shí)將本身的AMBAAHB總線斷開與外部的聯(lián)系;LadderPU在接到應(yīng)答線后,置高占用線,同時(shí)將外部總線接管,并在下一個(gè)時(shí)鐘周期開始運(yùn)算解題。LadderPU —> Leon2LadderPU當(dāng)發(fā)現(xiàn)有外部中斷,或者遇到需要調(diào)用Leon2運(yùn)算,或者程序運(yùn)算完畢需要將控制權(quán)交回給Leon2吋。LadderPU斷開總線的主控制,同時(shí)將占用線和請求線同時(shí)釋放。Leon2檢測到占用線和請求線釋放后,將應(yīng)答線釋放,同時(shí)接管外部總線,并在下一個(gè)時(shí)鐘周期釋放系統(tǒng)總線開始程序的接著運(yùn)行。如果是LadderPU調(diào)用Leon2或者是程序運(yùn)算完畢,Leon2將接續(xù)原來的程序掛起點(diǎn)運(yùn)行;如果是中斷,則在下一個(gè)時(shí)鐘周期釋放HOLD線,進(jìn)入中斷程序運(yùn)行,并在中斷返回后,由C程序控制再將控制權(quán)將給LadderPU。Cache數(shù)據(jù)唯一性和一致性的問題的解決因?yàn)橛脩舫绦蛑械臄?shù)據(jù)區(qū)是Leon2與LadderPU雙方共用的,所以存在ー種可能,當(dāng)這一塊區(qū)間被DCache命中后,這時(shí)控制轉(zhuǎn)交給了 LadderPU,而LadderPU修改了這一部分?jǐn)?shù)據(jù),并未讓Leon2中的DCache知道,所以當(dāng)控制權(quán)再轉(zhuǎn)交給Leon2時(shí),Leon2會(huì)仍然使用DCcache中的舊數(shù)據(jù),這就造成了數(shù)據(jù)的一致性和唯一性被破壞了。為了解決Dcache造成的數(shù)據(jù)不一致問題,Leon2將控制權(quán)交給LadderPU處理器之前先關(guān)DCache,在重獲控制權(quán)后再將DCache打開,這樣原來DCache中的數(shù)據(jù)將是無效的。
權(quán)利要求
1.一種PLC梯形圖代碼硬解題方法,其特征在于,PLC采用主控CPU和解題專用CPU雙核架構(gòu)模式,PLC系統(tǒng)運(yùn)算處理由主控CPU完成,梯形圖代碼解題由解題專用CPU成 101)主控CPU運(yùn)行處理非梯形圖代碼內(nèi)容,主控CPU在運(yùn)行過程中發(fā)現(xiàn)是梯形圖代碼,即將控制權(quán)移交給解題專用CPU進(jìn)行梯形圖代碼解題; 102)解題專用CPU在進(jìn)行梯形圖代碼解析過程中遇到功能塊指令時(shí),解題專用CPU將控制權(quán)移交給主控CPU調(diào)用功能塊函數(shù)進(jìn)行處理; 103)兩個(gè)CPU相互切換完成梯形圖代碼的解題過程。
2.根據(jù)權(quán)利要求I所述的PLC梯形圖代碼硬解題方法,其特征在于,解題專用CPU定義的寄存器組包括垂直短路指示寄存器、功能塊向量寄存器、前導(dǎo)列狀態(tài)寄存器、梯形圖程序指針寄存器、高亮和模式控制寄存器、解題運(yùn)行命令寄存器、功能塊輸出寄存器和解題配置寄存器。
3.根據(jù)權(quán)利要求2所述的PLC梯形圖代碼硬解題方法,其特征在于,所述的垂直短路指示寄存器為列格式寄存器,用來保存梯形圖解析過程中,當(dāng)前列哪一行有元件以及元件之間的關(guān)系;所述的功能塊向量寄存器用于當(dāng)解題遇到功能塊指令時(shí),將功能塊號與功能塊的前導(dǎo)列輸入狀態(tài)以及特殊向量位存在此寄存器,解題專用CPU將控制權(quán)交給主控CPU后,主控CPU通過讀這個(gè)寄存器去調(diào)用對應(yīng)的功能塊函數(shù)。
4.根據(jù)權(quán)利要求2所述的PLC梯形圖代碼硬解題方法,其特征在于,所述的前導(dǎo)列狀態(tài)寄存器用于記錄解析過程中,當(dāng)前列和前一個(gè)列的輸出狀態(tài),將前一個(gè)列的輸出狀態(tài)作為當(dāng)前列的輸入狀態(tài),并根據(jù)當(dāng)前列元件的開關(guān),計(jì)算當(dāng)前列的輸出;所述的高亮和模式控制寄存器用于支持上位機(jī)編程軟件的實(shí)時(shí)監(jiān)視和調(diào)試功能,將運(yùn)行中的中間狀態(tài)通過此寄存器在高亮碼狀態(tài)下傳給主控CPU。
5.根據(jù)權(quán)利要求2所述的PLC梯形圖代碼硬解題方法,其特征在于,所述的解題運(yùn)行命令寄存器寫任意數(shù)據(jù)均可啟動(dòng)一次解題專用CPU工作,至解題專用CPU遇到功能塊、高亮碼、結(jié)束碼跳出運(yùn)行,將控制權(quán)交還給主控CPU。
6.根據(jù)權(quán)利要求2所述的PLC梯形圖代碼硬解題方法,其特征在于,所述的功能塊輸出寄存器用于當(dāng)功能塊運(yùn)行完畢后,輸出功能塊的節(jié)點(diǎn)導(dǎo)通狀態(tài);所述的解題配置寄存器用來配置解題專用CPU的運(yùn)行模式、速度、程序空間和IO空間。
7.根據(jù)權(quán)利要求I所述的PLC梯形圖代碼硬解題方法,其特征在于,主控CPU將控制權(quán)移交給解題專用CPU的過程包括 701)主控CPU向解題專用CPU控制器發(fā)出命令; 702)解題專用CPU置高互斥請求線; 703)主控CPU在檢測到該請求后,在一下個(gè)時(shí)鐘周期鎖住系統(tǒng)總線,然后置高互斥應(yīng)答線,同時(shí)斷開本身片選總線與外部的聯(lián)系; 704)解題專用CPU在接到應(yīng)答線后,置高占用線,同時(shí)將外部總線接管,并在下一個(gè)時(shí)鐘周期開始運(yùn)算解題。
8.根據(jù)權(quán)利要求I所述的PLC梯形圖代碼硬解題方法,其特征在于,解題專用CPU將控制權(quán)移交給主控CPU的過程包括 解題專用CPU當(dāng)發(fā)現(xiàn)有外部中斷,或者遇到需要調(diào)用主控CPU運(yùn)算,或者程序運(yùn)算完畢需要將控制權(quán)交回給主控CPU時(shí),解題專用CPU斷開總線的主控制,同時(shí)將占用線和請求線同時(shí)釋放; 801)主控CPU檢測到占用線和請求線釋放后,將應(yīng)答線釋放,同時(shí)接管外部總線,并在下一個(gè)時(shí)鐘周期釋放系統(tǒng)總線,開始程序的接著運(yùn)行; 802)如果是解題專用CPU調(diào)用主控CPU或者是程序運(yùn)算完畢,主控CPU將接續(xù)原來的程序掛起點(diǎn)運(yùn)行;如果是中斷,則在下一個(gè)時(shí)鐘周期釋放系統(tǒng)總線,進(jìn)入中斷程序運(yùn)行,并在中斷返回后,再將控制權(quán)將給解題專用CPU。
9.根據(jù)權(quán)利要求I所述的PLC梯形圖代碼硬解題方法,其特征在于,當(dāng)主控CPU將控制權(quán)交給解題專用CPU之前先關(guān)DCache,在重獲控制權(quán)后再將DCache打開。
全文摘要
本發(fā)明公開了一種PLC梯形圖代碼硬解題方法, PLC采用主控CPU和解題專用CPU雙核架構(gòu)模式,PLC系統(tǒng)運(yùn)算處理由主控CPU完成,梯形圖代碼解題由解題專用CPU完成1)主控CPU運(yùn)行處理非梯形圖代碼內(nèi)容,主控CPU在運(yùn)行過程中發(fā)現(xiàn)是梯形圖代碼,即將控制權(quán)移交給解題專用CPU進(jìn)行梯形圖代碼解題;2)解題專用CPU在進(jìn)行梯形圖代碼解析過程中遇到功能塊指令時(shí),解題專用CPU將控制權(quán)移交給主控CPU調(diào)用功能塊函數(shù)進(jìn)行處理;3)兩個(gè)CPU相互切換完成梯形圖代碼的解題過程。本發(fā)明使用解題專用的CPU進(jìn)行梯形圖代碼的解析,具有速度快,性能穩(wěn)定等特點(diǎn),在運(yùn)動(dòng)控制、脈沖輸出、高速計(jì)數(shù)等性能方面尤為突出。
文檔編號G05B19/05GK102650861SQ20121013616
公開日2012年8月29日 申請日期2012年5月4日 優(yōu)先權(quán)日2012年5月4日
發(fā)明者王晟磊 申請人:深圳市矩形科技有限公司