一種基於雙核處理器的pac實時控制系統的製作方法
2023-05-23 11:45:16 1
一種基於雙核處理器的pac實時控制系統的製作方法
【專利摘要】本發明涉及可編程自動化控制器PAC系統【技術領域】,一種基於雙核處理器的PAC實時控制系統,包括基於工業PC機的雙核處理器、共享內存及I/O設備,所述雙核處理器包括處理器核心CPU0和CPU1;所述CPU0中的第三方應用程式與人機互動模塊連接、人機互動模塊與內核接口模塊連接、內核接口模塊分別與實時內核模塊及共享內存連接,所述CPU1中的實時內核模塊分別與共享內存及I/O設備連接;所述CPU0運行Windows作業系統並負責人機互動與網絡通信,使CPU1運行PAC實時內核代碼並負責用戶程序的實時執行與I/O設備的控制;本發明將雙核處理器的兩個核心獨立開來,相互獨立的CPU0和CPU1由於分擔不同任務而運行不同的系統內核,從而保證了系統的開放性、穩定性和實時性。
【專利說明】—種基於雙核處理器的PAC實時控制系統
【技術領域】
[0001]本發明涉及一種基於雙核處理器的PAC實時控制系統,屬於可編程自動化控制器PAC系統【技術領域】。
【背景技術】
[0002]在工業自動化領域中,可編程控制器PLC是一種專門為工業環境應用而設計的數字運算操作電子裝置,它將邏輯運算、算術運算、順序控制、定時和計數等操作指令保存在存儲器內,並通過數字式或模擬式的I/o接口,控制各種類型的機械和生產過程。隨著工業控制系統越來越追求網絡化和智能化,傳統PLC軟硬體系統受限於其專屬式的設計弊端,其互操作性和靈活性很差,並不能完全滿足用戶需求,於是PAC的概念應運而生。作為一種系統級的多功能控制平臺,PAC綜合了 PLC實時性與可靠性、軟PLC開放性和工業PC運算與通信能力的幾大優勢,不僅體系結構開放、互操作性強,還具有更好的實時性和穩定性,滿足了高端工業應用對多領域控制、大規模控制、控制算法優化、網絡設備通信、實時數據處理和企業數據集成等功能的要求。
[0003]開發PAC控制系統主要有兩種方法:一種是基於PLC平臺的開發方案,這種PAC由傳統PLC升級發展而來,具有較強的穩定性和實時性,但多數PLC廠商是通過在已有掃描式架構中添加乙太網通信、運動控制和高級算法的方式實現新功能,因此導致系統缺乏開放性與靈活性;另一種是基於工業PC平臺的開發方案,這種PAC基於工業PC硬體平臺和I/O設備,在商業作業系統環境下運行,是PAC設計與開發的主流方案,該方案雖然具有較強的開放性和通用性,但由於商業作業系統不是實時作業系統,無法保證PAC系統的穩定性和實時性。目前,國內市場上還未發現價格合理同時功能完備的PAC控制系統。
【發明內容】
[0004]為了克服現有技術中存在的不足,本發明目的是提供一種基於雙核處理器的PAC實時控制系統。該系統包括基於工業PC機的雙核處理器、共享內存及I/O設備,所述雙核處理器包括處理器核心CPUO和處理器核心CPUl ;使雙核處理器中的一個CPU核心CPUO負責人機互動與網絡通信,使另一個CPU核心CPUl負責用戶程序的實時執行與I/O設備的控制,兩個相互獨立的CPU核心由於分擔不同任務而運行不同的系統內核,保證了系統的開放性、穩定性和實時性。
[0005]為了實現上述發明目的,解決現有技術中所存在的問題,本發明採取的技術方案是:一種基於雙核處理器的PAC實時控制系統,包括基於工業PC機的雙核處理器、共享內存及I/o設備,所述雙核處理器包括處理器核心CPUO和處理器核心CPUl ;所述CPUO含有第三方應用程式、人機互動模塊及內核接口模塊,所述CPUl含有實時內核模塊;所述CPUO中的第三方應用程式與人機互動模塊連接、人機互動模塊與內核接口模塊連接、內核接口模塊分別與實時內核模塊及共享內存連接,所述CPUl中的實時內核模塊分別與共享內存及I/O設備連接;所述CPUO運行Windows作業系統,通過操作CPUO的高級可編程中斷控制器APIC中的ICR寄存器產生CPU間中斷,發送初始化命令和啟動命令至CPU1,使CPUl運行實時內核代碼。
[0006]所述人機互動模塊是在CPUO上執行的Windows作業系統用戶層應用程式,通過EPA協議應用層通信服務與第三方應用程式連接,提供PAC實時控制系統的監控界面,通過I/O請求包與內核接口模塊連接;所述人機互動模塊將接收到的PLC用戶程序和監控命令以I/O請求包的形式發送給內核接口模塊處理,內核接口模塊再將處理結果以I/O請求包的形式返回給人機互動模塊並顯示給用戶。
[0007]所述內核接口模塊是在CPUO上執行的Windows作業系統內核層設備驅動程序,負責人機互動模塊與實時內核模塊之間的接口工作,通過I/o請求包與人機互動模塊連接,通過發送CPU間中斷以及在工業PC機內存中建立共享內存與實時內核模塊連接,引導CPUl初始化並加載實時內核代碼,讀取存儲在本地磁碟的系統配置文件,通過分派例程將系統配置信息、PLC用戶程序和監控命令存儲到共享內存中供實時內核模塊讀取,再讀取實時內核模塊存儲在共享內存中的運行狀態和處理結果並以I/o請求包的形式發送給人機互動模塊。
[0008]所述的實時內核模塊是運行在CPUl最高特權級ringO層的內核代碼,佔用CPUl全部寄存器和緩存資源,實時調用定時管理、程序管理、內存管理和驅動管理四個功能模塊,其中所述定時管理模塊利用CPUl定時時基提供高精度定時器,所述內存管理模塊與共享內存連接、在共享內存中實時維護系統運行狀態和用戶程序變量。
[0009]所述程序管理模塊包括邏輯控制指令、運動控制指令和過程控制指令,負責循環掃描、順序執行PLC用戶程序的指令,提供4M用戶程序存儲空間,支持符合IEC61131-3標準的梯形圖和功能塊圖形程式語言。
[0010]所述驅動管理模塊包括乙太網驅動例程和RS-485串口驅動例程,所述乙太網驅動例程通過EtherCAT協議與外部I/O設備連接,完成系統I/O點周期刷新和I/O點擴展;所述RS-485串口驅動例程通過串口方式與外部I/O設備連接,提供Modbus從站服務和Profibus從站服務,可同時與外部I/O設備進行串行通信。
[0011]本發明有益效果是:一種基於雙核處理器的PAC實時控制系統,包括基於工業PC機的雙核處理器、共享內存及I/o設備,所述雙核處理器包括處理器核心CPUO和處理器核心CPUl ;所述CPUO含有第三方應用程式、人機互動模塊及內核接口模塊,所述CPUl含有實時內核模塊;所述CPUO中的第三方應用程式與人機互動模塊連接、人機互動模塊與內核接口模塊連接、內核接口模塊分別與實時內核模塊及共享內存連接,所述CPUl中的實時內核模塊分別與共享內存及I/o設備連接;所述CPUO運行Windows作業系統,通過操作CPUO的高級可編程中斷控制器APIC中的ICR寄存器產生CPU間中斷,發送初始化命令和啟動命令至CPU1,使CPUl運行實時內核代碼。與已有技術相比,本發明將雙核處理器的兩個核心CPUO和CPUl獨立開來,使CPUO運行Windows作業系統並負責人機互動與網絡通信,使CPUl運行PAC實時內核代碼並負責用戶程序的實時執行與1/0設備的控制,相互獨立的CPUO和CPUl由於分擔不同任務而運行不同的系統內核,保證了系統的開放性、穩定性和實時性,從而實現了符合產品定義標準的PAC實時控制系統。
【專利附圖】
【附圖說明】[0012]圖1是本發明總體框圖。
[0013]圖2是本發明中的實時內核模塊組成框圖。
[0014]圖3是本發明運行流程圖。
【具體實施方式】
[0015]下面結合附圖對本發明作進一步說明。
[0016]如圖1所不,一種基於雙核處理器的PAC實時控制系統,包括基於工業PC機的雙核處理器、共享內存及I/O設備,所述雙核處理器包括處理器核心CPUO和處理器核心CPUl ;所述CPUO含有第三方應用程式、人機互動模塊及內核接口模塊,所述CPUl含有實時內核模塊;所述CPUO中的第三方應用程式與人機互動模塊連接、人機互動模塊與內核接口模塊連接、內核接口模塊分別與實時內核模塊及共享內存連接,所述CPUl中的實時內核模塊分別與共享內存及I/O設備連接;所述CPUO運行Windows作業系統,通過操作CPUO的高級可編程中斷控制器APIC中的ICR寄存器產生CPU間中斷,發送初始化命令和啟動命令至CPU1,使CPUl運行實時內核代碼。所述人機互動模塊是在CPUO上執行的Windows作業系統用戶層應用程式,通過EPA協議應用層通信服務與第三方應用程式連接,提供PAC實時控制系統的監控界面,通過I/O請求包與內核接口模塊連接;所述人機互動模塊將接收到的PLC用戶程序和監控命令以I/O請求包的形式發送給內核接口模塊處理,內核接口模塊再將處理結果以I/o請求包的形式返回給人機互動模塊並顯示給用戶。所述內核接口模塊是在CPUO上執行的Windows作業系統內核層設備驅動程序,負責人機互動模塊與實時內核模塊之間的接口工作、通過I/O請求包與人機互動模塊連接、通過發送CPU間中斷以及在工業PC機內存中建立共享內存與實時內核模塊連接,引導CPUl初始化並加載實時內核代碼,讀取存儲在本地磁碟的系統配置文件,通過分派例程將系統配置信息、PLC用戶程序和監控命令存儲到共享內存中供實時內核模塊讀取,再讀取實時內核模塊存儲在共享內存中的運行狀態和處理結果並以I/O請求包的形式發送給人機互動模塊。本發明所應用的系統平臺包括基於雙核處理器的PAC開發平臺和I/O設備,所述的PAC開發平臺採用工業PC機,其處理器為Intel雙核四線程Atom-D525型號處理器,該處理器包含兩個CPU核心,即CPUO和CPU I, CPUO與CPUl之間通過CPU間中斷進行通信,將雙核處理器的核心CPUO和CPUl獨立開來,使CPUO運行Windows作業系統,在Windows作業系統內運行人機互動模塊和內核接口模塊;使CPUl只運行PAC實時內核代碼,即實時內核模塊。為實現所述的對雙核處理器核心的分配,需要先在工業PC機的BIOS設置中關閉超線程功能,然後對Windows作業系統進行系統配置,使Windows作業系統只使用一個核心CPU0,此時核心CPUl在初始化後便可以運行PAC實時內核代碼。為實現所述的對CPUl的初始化,需要通過內核接口模塊操作核心CPUO的高級可編程中斷控制器APIC中ICR寄存器來產生CPU間中斷,即通過正在活動的核心CPUO發送CPU間中斷的初始化命令和啟動命令給CPUl,CPUl啟動後直接運行PAC實時內核代碼。為實現所述的CPUl啟動後直接運行PAC實時內核代碼,需要提前將引導程序Boot代碼和實時內核代碼加載到指定內存位置。因為CPUl剛啟動時處於實模式狀態,需要從實模式跳轉到保護模式,實模式下CPUl的尋址範圍只是前IM內存空間,而計算機前IM內存是用來啟動系統之用,所以內核接口模塊將引導程序Boot代碼加載到內存前IM空間中,同時將PAC實時內核代碼加載到為實時內核模塊指定的代碼段內存位置。CPUO發送給CPUl的CPU間中斷命令序列包含了引導程序Boot代碼的入口地址,CPUl接收完三個命令後跳轉到該地址去執行引導程序Boot代碼,即開啟保護模式、開啟32位地址線和初始化全局內存描述符表,之後CPUl再跳轉到PAC實時內核代碼的入口地址去執行實時內核模塊。為實現所述的將PAC實時內核代碼加載到為實時內核模塊指定的代碼段內存位置,需要對Windows作業系統的引導頁選項進行系統配置,從而分配出256M物理內存空間,其中196M內存空間分配給實時內核模塊作為代碼段、數據段和堆棧段,其餘60M內存空間作為共享內存,供內核接口模塊和實時內核模塊進行信息與數據交互。為實現所述的內核接口模塊和實時內核模塊通過共享內存進行信息與數據交互,需要設備驅動程序內核接口模塊將其運行時使用的邏輯地址經過段頁轉換變為物理地址,可通過調用Windows作業系統的API函數MmMap1Space,使內核接口模塊所使用的指針變量直接指向共享內存中。
[0017]如圖2所示,所述實時內核模塊是運行在CPUl最高特權級ringO層的內核代碼,佔用CPUl全部寄存器和緩存資源,實時調用定時管理、程序管理、內存管理和驅動管理四個功能模塊,通過實時執行PLC用戶程序,滿足PAC實時控制系統對穩定性和實時性的要求。其中所述定時管理模塊與Windows作業系統保持時間同步,利用CPUl定時時基提供高精度定時器、所述內存管理模塊與共享內存連接,負責管理實時內核模塊對共享內存的數據訪問和存儲,在共享內存中實時維護系統運行狀態和用戶程序變量。所述程序管理模塊負責循環掃描、順序執行PLC用戶程序的指令,提供4M用戶程序存儲空間,支持符合IEC61131-3標準的梯形圖和功能塊圖形程式語言,包括143條邏輯控制指令、45條運動控制指令和PID過程控制指令,通過指令指針寄存器EIP對應的全局指針變量對用戶程序指令進行尋址,每次掃描過程包括輸入數據採樣、程序指令執行和輸出數據刷新三個步驟,全局指針變量首先指向存儲用戶程序的代碼段內存地址,按照指令第I個字所存儲的操作碼跳轉到該指令的執行函數,完成該指令功能後再跳過此指令的存儲區域,繼續指向下一個要執行的指令。所述驅動管理模塊包括乙太網驅動例程和RS-485串口驅動例程,所述乙太網驅動例程通過EtherCAT協議與外部I/O設備連接、完成系統I/O點周期刷新和I/O點擴展;所述RS-485串口驅動例程通過串口方式與外部I/O設備連接,提供Modbus從站服務和Profibus從站服務,可同時與外部I/O設備進行串行通信。
[0018]最後說明的是本發明提供的基於雙核處理器的PAC實時控制系統不局限於上述實施例,還可以做出各種修改、變換和變形。因此,說明書和附圖應被認為是說明性的而非限制性的。凡是依據本發明的技術方案進行修改、修飾或等同變化,而不脫離本發明技術方案的思想和範圍,其均應涵蓋在本發明的權利要求範圍之內。
【權利要求】
1.一種基於雙核處理器的PAC實時控制系統,包括基於工業PC機的雙核處理器、共享內存及I/o設備,其特徵在於:所述雙核處理器包括處理器核心CPUO和處理器核心CPUl ;所述CPUO含有第三方應用程式、人機互動模塊及內核接口模塊,所述CPUl含有實時內核模塊;所述CPUO中的第三方應用程式與人機互動模塊連接、人機互動模塊與內核接口模塊連接、內核接口模塊分別與實時內核模塊及共享內存連接,所述CPUl中的實時內核模塊分別與共享內存及I/O設備連接;所述CPUO運行Windows作業系統,通過操作CPUO的高級可編程中斷控制器APIC中的ICR寄存器產生CPU間中斷,發送初始化命令和啟動命令至CPU1,使CPUl運行實時內核代碼。
2.根據權利要求1所述一種基於雙核處理器的PAC實時控制系統,其特徵在於:所述人機互動模塊是在CPUO上執行的Windows作業系統用戶層應用程式,通過EPA協議應用層通信服務與第三方應用程式連接,提供PAC實時控制系統的監控界面,通過I/O請求包與內核接口模塊連接;所述人機互動模塊將接收到的PLC用戶程序和監控命令以I/O請求包的形式發送給內核接口模塊處理,內核接口模塊再將處理結果以I/O請求包的形式返回給人機互動模塊並顯示給用戶。
3.根據權利要求1所述一種基於雙核處理器的PAC實時控制系統,其特徵在於:所述內核接口模塊是在CPUO上執行的Windows作業系統內核層設備驅動程序,負責人機互動模塊與實時內核模塊之間的接口工作,通過I/O請求包與人機互動模塊連接,通過發送CPU間中斷以及在工業PC機內存中建立共享內存與實時內核模塊連接,引導CPUl初始化並加載實時內核代碼,讀取存儲在本地磁碟的系統配置文件,通過分派例程將系統配置信息、PLC用戶程序和監控命令存儲到共享內存中供實時內核模塊讀取,再讀取實時內核模塊存儲在共享內存中的運行狀態和處理結果並以I/O請求包的形式發送給人機互動模塊。
4.根據權利要求1所述一種基於雙核處理器的PAC實時控制系統,其特徵在於:所述的實時內核模塊是運行在CPUl最高特權級ringO層的內核代碼,佔用CPUl全部寄存器和緩存資源,實時調用定時管理、程序管理、內存管理和驅動管理四個功能模塊,其中所述定時管理模塊利用CPUl定時時基提供高精度定時器,所述內存管理模塊與共享內存連接、在共享內存中實時維護系統運行狀態和用戶程序變量。
5.根據權利要求4所述一種基於雙核處理器的PAC實時控制系統,其特徵在於:所述程序管理模塊包括邏輯控制指令、運動控制指令和過程控制指令,負責循環掃描、順序執行PLC用戶程序的指令,提供4M用戶程序存儲空間,支持符合IEC61131-3標準的梯形圖和功能塊圖形程式語言。
6.根據權利要求4所述一種基於雙核處理器的PAC實時控制系統,其特徵在於:所述驅動管理模塊包括乙太網驅動例程和RS-485串口驅動例程,所述乙太網驅動例程通過EtherCAT協議與外部I/O設備連接,完成系統I/O點周期刷新和I/O點擴展;所述RS-485串口驅動例程通過串口方式與外部I/O設備連接,提供Modbus從站服務和Profibus從站服務,可同時與外部I/O設備進行串行通信。
【文檔編號】G05B19/05GK103744342SQ201410033505
【公開日】2014年4月23日 申請日期:2014年1月22日 優先權日:2014年1月22日
【發明者】仲崇權, 李稚春, 劉鑫, 徐陸, 劉正一, 劉雪梅, 劉雪喆 申請人:大連理工計算機控制工程有限公司