專利名稱:Plc固件升級系統(tǒng)及方法
技術領域:
本發(fā)明涉及可編程邏輯控制器領域,更具體地說,涉及一種PLC固件升級系統(tǒng)及方法。
背景技術:
隨著工業(yè)設備自動化控制需求的持續(xù)增長,PLC (可編程邏輯控制器)的使用領域迅速擴大,并且在功能上也推陳出新。PLC作為工業(yè)自動化控制系統(tǒng)的控制單元,面對擴大的市場需求和千變萬化的應用現(xiàn)場,需要不斷開發(fā)新的功能和優(yōu)化完善已有的功能。目前,對于已經(jīng)裝備在客戶現(xiàn)場和集成在設備廠商工業(yè)設備上的PLC產(chǎn)品,通常需要由PLC廠商的服務人員或者用戶現(xiàn)場升級PLC系統(tǒng)。為了提高產(chǎn)品的易用性和升級的可靠性,一些PLC產(chǎn)品本身具有固件升級功能,以方便后續(xù)的功能更新和產(chǎn)品升級,滿足客戶對PLC產(chǎn)品功能的持續(xù)需求。在這些固件升級系統(tǒng)中有數(shù)據(jù)接收模塊和系統(tǒng)升級模塊等部分組成,把接收的數(shù)據(jù)存儲并對當前的PLC系統(tǒng)進行軟件版本的升級。然而這種固件升級方法,存在著諸多缺點缺乏固件升級過程中突然斷電情況的有效處理;對升級數(shù)據(jù)有效性判斷不足;固件升級權限的限制不足;升級過程繁瑣,甚至需要過多的人為介入;缺乏對當前待升級系統(tǒng)標簽信息的判斷和處理;升級數(shù)據(jù)保密性的問
題等等。
發(fā)明內容
本發(fā)明要解決的技術問題在于,針對上述PLC固件升級缺乏斷電處理等問題,提供一種PLC固件升級系統(tǒng)及方法。本發(fā)明解決上述技術問題的技術方案是,提供一種PLC固件升級系統(tǒng),包括升級判斷單元、系統(tǒng)升級單元、升級啟動單元以及位于非易失性存儲器中的升級標識,其中所述升級判斷單元,用于判斷升級標識是否有效并在升級標識無效時啟動PLC系統(tǒng)處理PLC任務,該升級判斷單元在PLC上電啟動時自動執(zhí)行;所述系統(tǒng)升級單元,用于在所述升級標識有效時接收升級數(shù)據(jù)及使用所述升級數(shù)據(jù)更新PLC系統(tǒng)程序,并在數(shù)據(jù)更新完成后將所述升級標識設為無效及啟動更新后PLC系統(tǒng)處理PLC任務;所述升級啟動單元,用于在接收到固件升級指令時使PLC系統(tǒng)中斷PLC任務及將升級標識設為有效,并啟動升級判斷單元。在本發(fā)明所述的PLC固件升級系統(tǒng)中,所述升級啟動單元包括指令接收子單元、權限驗證子單元、系統(tǒng)中斷子單元以及標識設置子單元;所述指令接收子單元用于接收固件升級指令及升級校驗碼;所述權限驗證子單元用于通過預存的校驗碼對升級校驗碼進行驗證;所述系統(tǒng)中斷子單元用于在升級校驗碼驗證通過后使PLC系統(tǒng)中斷PLC任務;所述標識設置子單元用于在升級校驗碼驗證通過后將升級標識設置為有效,并啟動升級判斷單
J Li ο在本發(fā)明所述的PLC固件升級系統(tǒng)中,所述系統(tǒng)升級單元包括標簽驗證子單元、數(shù)據(jù)接收子單元、數(shù)據(jù)更新子單元以及標識修改子單元;所述標簽驗證子單元用于從控制終端接收更新數(shù)據(jù)的標簽信息并驗證該標簽信息;所述數(shù)據(jù)接收子單元用于在所述標簽信息驗證通過后接收升級數(shù)據(jù);所述數(shù)據(jù)更新子單元用于使用所述升級數(shù)據(jù)更新PLC系統(tǒng);標識修改子單元用于在系統(tǒng)更新完成后將升級標識修改為無效,并啟動更新后的PLC系統(tǒng)。在本發(fā)明所述的PLC固件升級系統(tǒng)中,所述升級啟動單元還包括標簽保存子單元,用于保存當前運行的PLC系統(tǒng)的標簽信息;所述標簽驗證子單元根據(jù)標簽保存子單元保存的標簽信息驗證從控制終端接收的標簽信息。在本發(fā)明所述的PLC固件升級系統(tǒng)中,所述系統(tǒng)升級單元通過串口、USB接口或者無線網(wǎng)絡從控制終端接收加密的升級數(shù)據(jù)。
本發(fā)明還提供一種PLC固件升級方法,包括以下步驟(a) PLC 上電啟動;(b) PLC判斷升級標識是否有效,并在所述升級標識有效時執(zhí)行步驟(C),否則執(zhí)行步驟(d),所述升級標識位于非易失性存儲器中;(C )所述PLC接收升級數(shù)據(jù)并使用所述升級數(shù)據(jù)更新PLC系統(tǒng)程序,在更新完成后擦除所述升級標識并執(zhí)行步驟(d);(d)所述PLC執(zhí)行PLC任務并在接收到固件升級指令后使PLC系統(tǒng)中斷PLC任務及將升級標識設置為有效,然后執(zhí)行步驟(a)。在本發(fā)明所述的PLC固件升級方法中,所述步驟(d)中,所述PLC在接收到固件升級指令后對升級權限進行驗證并在升級權限驗證通過后使PLC系統(tǒng)中斷PLC任務及將升級標識設置為有效。在本發(fā)明所述的PLC固件升級方法中,所述步驟(b)包括(bl)所述PLC接收并驗證標簽信息,在所述標簽信息驗證通過后執(zhí)行步驟(c),否則升級失敗。在本發(fā)明所述的PLC固件升級方法中,所述步驟(d)中包括保存當前運行的PLC系統(tǒng)的標簽信息,所述步驟(bl)中根據(jù)保存的標簽信息驗證接收的升級數(shù)據(jù)的標簽信息。
在本發(fā)明所述的PLC固件升級方法中,所述步驟(c )中,PLC通過串口、USB接口或者無線網(wǎng)絡從控制終端接收加密的升級數(shù)據(jù)。本發(fā)明的PLC固件升級系統(tǒng)及方法,通過升級標識并在PLC上電啟動時判斷升級標識是否有效來啟動固件升級過程,保證了固件升級過程中突然斷電等異常情況恢復后重新開始升級。本發(fā)明還提供添加PLC系統(tǒng)的標簽信息保證了升級數(shù)據(jù)和待升級PLC系統(tǒng)的一致性,有效防止誤升級問題的產(chǎn)生。并且,本發(fā)明通過固件升級校驗碼來限制升級權限,可防止誤操作的發(fā)生。
圖I是本發(fā)明PLC固件升級系統(tǒng)實施例的示意圖。圖2是圖I中升級啟動單元實施例的示意圖。圖3是圖I中系統(tǒng)升級單元實施例的示意圖。圖4是本發(fā)明PLC固件升級方法實施例的示意圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明適用于基于微處理器的PLC產(chǎn)品的固件升級,該PLC包括PLC系統(tǒng)和獨立于PLC系統(tǒng)的用于固件升級的升級引導系統(tǒng)(BootLoader ),其中PLC系統(tǒng)具有PLC產(chǎn)品的全部功能,而升級引導系統(tǒng)主要進行PLC系統(tǒng)軟件的升級。在PLC上電啟動后首先進入升級引導系統(tǒng),判斷升級標志(或者升級引腳),如果有效則開始固件升級過程,否則跳轉到PLC系統(tǒng)運行。如圖I所示,是本發(fā)明PLC固件升級系統(tǒng)實施例的示意圖。本發(fā)明的固件升級系統(tǒng)包括升級引導系統(tǒng)以及升級啟動單元,其中升級引導系統(tǒng)獨立于用于執(zhí)行PLC任務的PLC 系統(tǒng),其在PLC上電啟動時載入PLC的處理器運行。上述升級引導系統(tǒng)包括升級標識、升級判斷單元11、系統(tǒng)升級單元13。上述升級判斷單元11、系統(tǒng)升級單元13以及升級啟動單元12由運行于PLC的處理器的軟件實現(xiàn)。升級標識為PLC的存儲裝置(非易失存儲器,可掉電存儲)中的一個字段,當該字段的值為預設值時升級標識有效,否則升級標識無效。升級判斷單元11用于判斷升級標識是否有效并在升級標識無效時(即升級標識非預設值)啟動PLC系統(tǒng)執(zhí)行PLC任務、在升級標識有效(即升級標識為預設值)時啟動系統(tǒng)升級單元13進行系統(tǒng)升級。該升級判斷單元11在PLC上電啟動時自動執(zhí)行。由于升級判斷單元11在上電啟動時即執(zhí)行,因此在PLC升級異常(例如在固件升級過程中斷電等)并恢復后自動重新進入固件升級操作。在實際應用中,上述升級標識也可用升級引腳代替,即升級判斷單元11在判斷升級引腳是否有效,并根據(jù)升級引腳是否有效來進行相應操作。系統(tǒng)升級單元13用于在升級標識有效時接收升級數(shù)據(jù)及使用升級數(shù)據(jù)更新PLC系統(tǒng)程序。該系統(tǒng)升級單元13在數(shù)據(jù)更新完成(即固件升級完成)后將升級標識設為無效,然后啟動更新后的PLC系統(tǒng)工作,執(zhí)行PLC任務。具體地,升級數(shù)據(jù)可以通過連接升級服務器、官方網(wǎng)站下載對應的升級包等途徑獲得(例如通過具有PLC控制軟件的控制終端下載)。升級數(shù)據(jù)可使用算法加密,并通過串口、USB甚至無線網(wǎng)絡等通訊方式從控制終端接收。上述控制終端可以為個人電腦(PC)。在PLC系統(tǒng)正常運行過程中,升級啟動單元12在接收到固件升級指令時使PLC系統(tǒng)中斷PLC任務處理及將升級標識設為有效,并啟動升級判斷單元11開始固件升級操作。如圖2所示,是圖I中升級啟動單元12的實施例的示意圖。該升級啟動單元12包括指令接收子單元121、權限驗證子單元122、系統(tǒng)中斷子單元123以及標識設置子單元124。上述指令接收子單元121、權限驗證子單元122、系統(tǒng)中斷子單元123以及標識設置子單元124由運行于PLC的處理器的軟件實現(xiàn)。指令接收子單元121用于接收固件升級指令及升級校驗碼(該固件升級指令及升級校驗碼由與PLC連接的控制終端發(fā)送)。升級校驗碼可通過控制終端的人機界面輸入,用于進行升級權限驗證。
權限驗證子單元122用于通過預存的校驗碼對升級校驗碼進行驗證。上述預存的校驗碼存儲于PLC的非易失存儲器中。若指令接收子單元121接收的升級校驗碼與預存的校驗碼匹配,則升級權限驗證通過。系統(tǒng)中斷子單元123用于在升級校驗碼驗證通過后使PLC系統(tǒng)中斷操作,停止相應的處理。標識設置子單元124用于在升級校驗碼驗證通過后將升級標識設置為有效,并啟動升級判斷單元11。如圖3所示,是圖I中系統(tǒng)升級單元13實施例的示意圖。該系統(tǒng)升級單元13包括標簽驗證子單元131、數(shù)據(jù)接收子單元132、數(shù)據(jù)更新子單元133以及標識修改子單元134。上述簽驗證子單元131、數(shù)據(jù)接收子單元132、數(shù)據(jù)更新子單元133以及標識修改子單元134由運行于PLC的處理器的軟件實現(xiàn)。標簽驗證子單元131用于從控制終端接收更新數(shù)據(jù)的標簽信息并驗證該標簽信 息。該標簽驗證子單元131可通過存儲在PLC的非易失存儲器中的標簽信息對接收的標簽信息進行驗證。上述從控制終端接收的標簽信息可包括更新后的PLC系統(tǒng)程序的版本號、使用環(huán)境、PLC型號等。而PLC中預存的標簽信息則為當前PLC系統(tǒng)的版本號、使用環(huán)境、PLC型號等。只有當接收的標簽信息中的PLC型號與預存標簽信息中的PLC型號相同、接收的標簽信息中的使用環(huán)境與預存標簽信息中的使用環(huán)境相同時,標簽驗證子單元131才確認通過標簽信息驗證。數(shù)據(jù)接收子單元132用于在標簽信息驗證通過后接收升級數(shù)據(jù);數(shù)據(jù)更新子單元133用于使用接收的升級數(shù)據(jù)更新PLC系統(tǒng)。該過程與現(xiàn)有的PLC升級過程類似,該過程中可包括升級數(shù)據(jù)完整性校驗等。標識修改子單元134用于在系統(tǒng)更新完成后將升級標識修改為無效,并啟動更新后的PLC系統(tǒng)。標識修改子單元134還可在標簽驗證未通過時將升級標識修改為無效,通知與PLC通訊的控制終端標簽信息不匹配升級失敗,并啟動原有的PLC系統(tǒng)。上述的升級啟動單元12還可包括標簽保存子單元,用于保存當前運行的PLC系統(tǒng)的標簽信息(存儲到非易失存儲器中)。標簽驗證子單元131即根據(jù)標簽保存子單元保存的標簽信息驗證從控制終端接收的標簽信息。該標簽保存子單元可在PLC系統(tǒng)固件升級啟動前保存標簽信息,也可在PLC系統(tǒng)運行過程中保存標簽信息。如圖4所示,是本發(fā)明PLC固件升級方法實施例的示意圖,包括以下步驟步驟S41 :PLC上電啟動。步驟S42 =PLC判斷升級標識是否有效,并在升級標識有效時執(zhí)行步驟S43,否則執(zhí)行步驟S44。上述升級標識為PLC的存儲裝置(非易失存儲器,可掉電存儲)中的一個字段,當該字段的值為預設值時升級標識有效,否則升級標識無效。步驟S43 =PLC接收升級數(shù)據(jù)并使用升級數(shù)據(jù)更新PLC系統(tǒng)程序,在更新完成后擦除所述升級標識并執(zhí)行步驟S44。具體地,升級數(shù)據(jù)可以通過連接升級服務器、官方網(wǎng)站下載對應的升級包等途徑獲得(例如通過具有PLC控制軟件的控制終端下載)。且升級數(shù)據(jù)可使用算法加密,并通過串口、USB甚至無線網(wǎng)絡等通訊方式從控制終端接收。在該步驟中,在接收升級數(shù)據(jù)前可包括標簽信息驗證步驟,即接收并驗證標簽信息(包括升級數(shù)據(jù)的版本號、使用環(huán)境、PLC型號等),在標簽信息驗證通過后進行固件升級,否則執(zhí)行步驟S44。步驟S44 :啟動PLC系統(tǒng),執(zhí)行PLC任務。步驟S45 =PLC判斷是否接收到固件升級指令,并在接收到固件升級指令后使PLC系統(tǒng)中斷PLC任務及將升級標識設置為有效,然后執(zhí)行步驟S41。在該步驟中,PLC在接收到固件升級指令后對升級權限進行驗證并在升級權限驗證通過后使PLC系統(tǒng)中斷PLC任務及將升級標識設置為有效。在上述步驟S45中,還可包括保存運行的PLC系統(tǒng)的標簽,從而在進行標簽信息驗證中可根據(jù)保存的系統(tǒng)標簽驗證接收的標簽信息。以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此, 任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。
權利要求
1.一種PLC固件升級系統(tǒng),其特征在于包括升級判斷單元、系統(tǒng)升級單元、升級啟動單元以及位于非易失性存儲器中的升級標識,其中所述升級判斷單元,用于判斷升級標識是否有效并在升級標識無效時啟動PLC系統(tǒng)處理PLC任務,該升級判斷單元在PLC上電啟動時自動執(zhí)行;所述系統(tǒng)升級單元,用于在所述升級標識有效時接收升級數(shù)據(jù)及使用所述升級數(shù)據(jù)更新PLC系統(tǒng)程序,并在數(shù)據(jù)更新完成后將所述升級標識設為無效及啟動更新后的PLC系統(tǒng)處理PLC任務;所述升級啟動單元,用于在接收到固件升級指令時使PLC系統(tǒng)中斷PLC任務及將升級標識設為有效,并啟動升級判斷單元。
2.根據(jù)權利要求I所述的PLC固件升級系統(tǒng),其特征在于所述升級啟動單元包括指令接收子單元、權限驗證子單元、系統(tǒng)中斷子單元以及標識設置子單元;所述指令接收子單元用于接收固件升級指令及升級校驗碼;所述權限驗證子單元用于通過預存的校驗碼對升級校驗碼進行驗證;所述系統(tǒng)中斷子單元用于在升級校驗碼驗證通過后使PLC系統(tǒng)中斷PLC任務;所述標識設置子單元用于在升級校驗碼驗證通過后將升級標識設置為有效,并啟動升級判斷單元。
3.根據(jù)權利要求2所述的PLC固件升級系統(tǒng),其特征在于所述系統(tǒng)升級單元包括標簽驗證子單元、數(shù)據(jù)接收子單元、數(shù)據(jù)更新子單元以及標識修改子單元;所述標簽驗證子單元用于從控制終端接收更新數(shù)據(jù)的標簽信息并驗證該標簽信息;所述數(shù)據(jù)接收子單元用于在所述標簽信息驗證通過后接收升級數(shù)據(jù);所述數(shù)據(jù)更新子單元用于使用所述升級數(shù)據(jù)更新PLC系統(tǒng);標識修改子單元用于在系統(tǒng)更新完成后將升級標識修改為無效,并啟動更新后的PLC系統(tǒng)。
4.根據(jù)權利要求3所述的PLC固件升級系統(tǒng),其特征在于所述升級啟動單元包括標簽保存子單元,用于保存當前運行的PLC系統(tǒng)的標簽信息;所述標簽驗證子單元根據(jù)標簽保存子單元保存的標簽信息驗證從控制終端接收的標簽信息。
5.根據(jù)權利要求I所述的PLC固件升級系統(tǒng),其特征在于所述系統(tǒng)升級單元通過串口、USB接口或者無線網(wǎng)絡從控制終端接收加密的升級數(shù)據(jù)。
6.一種PLC固件升級方法,其特征在于包括以下步驟 (a)PLC上電啟動; (b)PLC判斷升級標識是否有效,并在所述升級標識有效時執(zhí)行步驟(C),否則執(zhí)行步驟(d),所述升級標識位于非易失性存儲器中; (c)所述PLC接收升級數(shù)據(jù)并使用所述升級數(shù)據(jù)更新PLC系統(tǒng)程序,在更新完成后擦除所述升級標識并執(zhí)行步驟(d); Cd)所述PLC執(zhí)行PLC任務并在接收到固件升級指令后使PLC系統(tǒng)中斷PLC任務及將升級標識設置為有效,然后執(zhí)行步驟(a)。
7.根據(jù)權利要求6所述的PLC固件升級方法,其特征在于所述步驟(d)中,所述PLC在接收到固件升級指令后對升級權限進行驗證并在升級權限驗證通過后使PLC系統(tǒng)中斷PLC任務及將升級標識設置為有效。
8.根據(jù)權利要求6所述的PLC固件升級方法,其特征在于所述步驟(b)包括(bl)所述PLC接收并驗證標簽信息,在所述標簽信息驗證通過后執(zhí)行步驟(c),否則升級失敗。
9.根據(jù)權利要求8所述的PLC固件升級方法,其特征在于所述步驟(d)中包括保存當前運行的PLC系統(tǒng)的標簽信息,所述步驟(bl)中根據(jù)保存的標簽信息驗證接收的升級數(shù)據(jù)的標簽信息。
10.根據(jù)權利要求6所述的PLC固件升級方法,其特征在于所述步驟(C)中,PLC通過串口、USB接口或者無線網(wǎng)絡從控制終端接收加密的升級數(shù)據(jù)?!?br>
全文摘要
本發(fā)明提供了一種PLC固件升級系統(tǒng),包括升級判斷單元、系統(tǒng)升級單元、升級啟動單元以及位于非易失性存儲器中的升級標識,其中所述升級判斷單元,用于判斷升級標識是否有效并在升級標識無效時啟動PLC系統(tǒng)處理PLC任務;所述系統(tǒng)升級單元,用于在所述升級標識有效時接收升級數(shù)據(jù)及使用所述升級數(shù)據(jù)更新PLC系統(tǒng)程序,并在數(shù)據(jù)更新完成后將所述升級標識設為無效;所述升級啟動單元,用于在接收到固件升級指令時將升級標識設為有效并啟動固件升級流程。本發(fā)明還提供一種PLC固件升級方法。本發(fā)明通過升級標識并在PLC上電啟動時判斷升級標識是否有效來啟動固件升級過程,保證了固件升級過程中突然斷電等異常情況恢復后重新升級。
文檔編號G06F9/445GK102945177SQ20121046456
公開日2013年2月27日 申請日期2012年11月16日 優(yōu)先權日2012年11月16日
發(fā)明者孟國軍 申請人:深圳市匯川控制技術有限公司, 深圳市匯川技術股份有限公司, 蘇州匯川技術有限公司