本發(fā)明涉及PLC編程領(lǐng)域,尤其涉及一種對子程序進(jìn)行加密的方法、校驗(yàn)方法及相應(yīng)的PLC編程系統(tǒng)。
背景技術(shù):
為了使一個具有重要價值的工程只能在特定的PLC上使用,會在PLC的POU(程序組織單元)的某一個子程序里,設(shè)置讀取特殊寄存器(PLC版本號)的步驟,若當(dāng)前PLC不是所需版本,則該子程程序執(zhí)行STOP指令,讓PLC停止運(yùn)行。
故該STOP指令,必需在一直調(diào)用的加密的子程序里(比如此子程序有核心算法,必須加密),以防用戶刪除這條指令,從而避免該子程序在任何PLC上使用。
但是現(xiàn)有的這種方法也存在不足之處,由于密碼存在被破解的可能,故該加密的子程序的安全性仍然存在隱患。
技術(shù)實(shí)現(xiàn)要素:
鑒于現(xiàn)有技術(shù)的不足,本發(fā)明提供一種一種對子程序進(jìn)行加密的方法、校驗(yàn)方法及相應(yīng)的PLC編程系統(tǒng),可以大大提高特定加密子程序的安全性。
為了達(dá)到上述發(fā)明目的,本發(fā)明實(shí)施例的一方面提供了一種對PLC子程序進(jìn)行加密的方法,包括如下步驟:
在PLC程序編輯器中,選擇需要進(jìn)行加密的子程序;
在所述子程序?qū)傩跃庉嬳撁嬷?,對所述子程序進(jìn)行加密處理,并勾選“上載禁止打開”選項;
根據(jù)所述選項是否勾選,修改所述“上載禁止打開”選項對應(yīng)的標(biāo)志位;
將所述加密后的子程序以及所述標(biāo)志位下載至PLC中。
其中,所述修改所述“上載禁止打開”選項對應(yīng)的標(biāo)志位的步驟具體為:
當(dāng)在所述子程序?qū)傩跃庉嬳撁嬷校催x了“上載禁止打開”選項,則將對應(yīng)的標(biāo)志位修改為“1”,否則將對應(yīng)的標(biāo)志位修改為“0”。
其中,所述需要進(jìn)行加密的子程序中包含有PLC的版本號校驗(yàn)子程序以及停止子程序;
其中,PLC的版本號校驗(yàn)子程序用于讀取所述子程序所下載至的當(dāng)前PLC的版本號,并將所讀取的版本號與子程序中存儲的版本號進(jìn)行比較;
所述停止子程序用于在PLC的版本號校驗(yàn)子程序比較結(jié)果為兩者不相同時,控制停止所述PLC的運(yùn)行。
其中,進(jìn)一步包括:
在所述加密后的子程序從PLC上載至PLC程序編輯器成功后,在所述子程序中增加“上載成功”標(biāo)志位;
當(dāng)所述加密后的子程序中所述“上載禁止打開”所對應(yīng)的標(biāo)志位為“1”,且存在所述“上載成功”標(biāo)志位,則控制使所述子程序的內(nèi)容不能被查看以及被編輯。
相應(yīng)地,本發(fā)明實(shí)施例的另一方面還提供一種PLC編程系統(tǒng),包括:
子程序選擇單元,用于在PLC程序編輯器中,選擇需要進(jìn)行加密的子程序;
加密處理單元,用于在所述子程序?qū)傩跃庉嬳撁嬷?,對所述子程序進(jìn)行加密處理,并勾選“上載禁止打開”選項;
標(biāo)志位修改單元,用于根據(jù)所述選項是否勾選,修改所述“上載禁止打開”選項對應(yīng)的標(biāo)志位;
下載單元,用于將所述加密后的子程序以及所述標(biāo)志位下載至PLC中。
其中,所述標(biāo)志位修改單元具體地以下述方式來修改修改所述“上載禁止打開”選項對應(yīng)的標(biāo)志位:
當(dāng)在所述子程序?qū)傩跃庉嬳撁嬷?,勾選了“上載禁止打開”選項,則將對應(yīng)的標(biāo)志位修改為“1”,否則將對應(yīng)的標(biāo)志位修改為“0”。
其中所述需要進(jìn)行加密的子程序中包含有PLC版本號校驗(yàn)子程序以及停止子程序;
其中,PLC版本號校驗(yàn)子程序用于讀取所述子程序所下載至的當(dāng)前PLC的版本號,并將所讀取的版本號與子程序中存儲的版本號進(jìn)行比較;
所述停止子程序用于在PLC的版本號校驗(yàn)子程序比較結(jié)果為兩者不相同時,控制停止所述PLC的運(yùn)行。
其中,進(jìn)一步包括:
上載成功標(biāo)示單元,用于在檢測到所述加密后的子程序從PLC上載至PLC程序編輯器成功后,在所述子程序中增加“上載成功”標(biāo)志位;
子程序編輯控制單元,用于當(dāng)所述加密后的子程序中所述“上載禁止打開”所對應(yīng)的標(biāo)志位為“1”,且存在所述“上載成功”標(biāo)志位,控制使所述子程序的內(nèi)容不可見且不能被編輯;當(dāng)所述加密后的子程序中所述“上載禁止打開”所對應(yīng)的標(biāo)志位為“0”,則控制使所述子程序的內(nèi)容在解密后可被查看以及可被編輯。
相應(yīng)地,本發(fā)明實(shí)施例的再一方面,還提供一種在PLC中校驗(yàn)加密子程序的方法,用于對采用前述對子程序進(jìn)行加密的方法所獲得的加密子程序在下載至PLC中后進(jìn)行檢驗(yàn),包括如下步驟:
運(yùn)行所述加密子程序中的PLC版本號校驗(yàn)子程序,讀取當(dāng)前PLC的版本號,并將所讀取的版本號與所述加密子程序中存儲的版本號進(jìn)行比較;
在比較結(jié)果為兩者不相同時,控制停止所述PLC的運(yùn)行。
實(shí)施本發(fā)明實(shí)施例,具有如下有益效果:
本發(fā)明實(shí)施例提供的技術(shù)方案,通過在加密子程序中設(shè)置“上載禁止打開”對應(yīng)的標(biāo)志位以及“上載成功”標(biāo)志位,當(dāng)該子程序被上載后,且“上載禁止打開”對應(yīng)的標(biāo)志位為“1”是,則該子程序不允許被打開,在PLC程序編輯器上無法查看或編輯該子程序的內(nèi)容,可以防止加密的子程序被破解以及被復(fù)制,從而防止該加密子程序在非授權(quán)的PLC上運(yùn)行。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明提供的對子程序進(jìn)行加密的方法一個實(shí)施例中的主流程示意圖;
圖2是圖1中步驟S12對應(yīng)的界面圖;
圖3是圖1中步驟S19對應(yīng)的一個界面圖;
圖4是圖1中步驟S19對應(yīng)的另一個界面圖;
圖5是本發(fā)明提供的一種PLC編程系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳見說明。
如圖1所示,是本發(fā)明提供的一種對子程序進(jìn)行加密的方法的一個實(shí)施例的主流程示意圖;并請一并參見圖2至圖4所示,在該實(shí)施例中,該方法包括如下步驟:
步驟S10,在PLC程序編輯器中,選擇需要進(jìn)行加密的子程序;
步驟S12,在所述子程序?qū)傩跃庉嬳撁嬷?,對所述子程序進(jìn)行加密處理,并勾選“上載禁止打開”選項;具體界面可參見圖2所示;
步驟S14,根據(jù)所述選項是否勾選,修改所述“上載禁止打開”選項對應(yīng)的標(biāo)志位;該步驟具體為當(dāng)在所述子程序?qū)傩跃庉嬳撁嬷校催x了“上載禁止打開”選項,則將對應(yīng)的標(biāo)志位修改為“1”,否則將對應(yīng)的標(biāo)志位修改為“0”。
步驟S16,將所述加密后的子程序以及所述標(biāo)志位下載至PLC中。
進(jìn)一步的,還包括如下的步驟:
步驟S18,在所述加密后的子程序從PLC上載至PLC程序編輯器成功后,在所述子程序中增加“上載成功”標(biāo)志位,只要有一次上載成功,此標(biāo)志位就一直為1;
步驟S19,當(dāng)所述加密后的子程序中所述“上載禁止打開”所對應(yīng)的標(biāo)志位為“1”,且存在所述“上載成功”標(biāo)志位,則控制使所述子程序的內(nèi)容不能被查看以及被編輯;當(dāng)所述加密后的子程序中所述“上載禁止打開”所對應(yīng)的標(biāo)志位為“0”,則控制使所述子程序的內(nèi)容在解密后可被查看以及可被編輯。該兩種狀態(tài)的界面可以分別參見圖3和圖4所示。
具體在,在所述需要進(jìn)行加密的子程序中包含有PLC的版本號校驗(yàn)子程序以及停止(Stop)子程序;
其中,PLC的版本號校驗(yàn)子程序用于讀取所述子程序所下載至的當(dāng)前PLC的版本號,并將所讀取的版本號與子程序中存儲的版本號進(jìn)行比較;
所述停止子程序用于在PLC的版本號校驗(yàn)子程序比較結(jié)果為兩者不相同時,控制停止所述PLC的運(yùn)行。
這樣,通過設(shè)置“上載禁止打開”對應(yīng)的標(biāo)志位以及“上載成功”標(biāo)志位,可以在子程序上載后不不允許打開,可以防止這個加密的子程序被破解。
如圖5所示,是本發(fā)明提供的一種PLC編程系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)示意圖。在該實(shí)施例中,該P(yáng)LC編程系統(tǒng)1包括:
子程序選擇單元,用于在PLC程序編輯器中,選擇需要進(jìn)行加密的子程序;
加密處理單元10,用于在所述子程序?qū)傩跃庉嬳撁嬷?,對所述子程序進(jìn)行加密處理,并勾選“上載禁止打開”選項;
標(biāo)志位修改單元11,用于根據(jù)所述選項是否勾選,修改所述“上載禁止打開”選項對應(yīng)的標(biāo)志位;
下載單元12,用于將所述加密后的子程序以及所述標(biāo)志位下載至PLC中;
上載成功標(biāo)示單元13,用于在檢測到所述加密后的子程序從PLC上載至PLC程序編輯器成功后,在所述子程序中增加“上載成功”標(biāo)志位;
子程序編輯控制單元16,用于當(dāng)所述加密后的子程序中所述“上載禁止打開”所對應(yīng)的標(biāo)志位為“1”,且存在所述“上載成功”標(biāo)志位,控制使所述子程序的內(nèi)容不可見且不能被編輯;當(dāng)所述加密后的子程序中所述“上載禁止打開”所對應(yīng)的標(biāo)志位為“0”,則控制使所述子程序的內(nèi)容在解密后可被查看以及可被編輯;
存儲單元15,用于存儲前面提及的標(biāo)志位、PLC版本號等信息。
其中,所述標(biāo)志位修改單元12具體地以下述方式來修改修改所述“上載禁止打開”選項對應(yīng)的標(biāo)志位:
當(dāng)在所述子程序?qū)傩跃庉嬳撁嬷?,勾選了“上載禁止打開”選項,則將對應(yīng)的標(biāo)志位修改為“1”,否則將對應(yīng)的標(biāo)志位修改為“0”。
其中,所述需要進(jìn)行加密的子程序中包含有PLC版本號校驗(yàn)子程序以及停止子程序;
其中,PLC版本號校驗(yàn)子程序用于讀取所述子程序所下載至的當(dāng)前PLC的版本號,并將所讀取的版本號與子程序中存儲的版本號進(jìn)行比較;
所述停止子程序用于在PLC的版本號校驗(yàn)子程序比較結(jié)果為兩者不相同時,控制停止所述PLC的運(yùn)行。
相應(yīng)地,本發(fā)明的其中一個實(shí)施例還提供了一種對子程序進(jìn)行校驗(yàn)的方法,用于對采用前述圖1至圖4所介紹的對子程序進(jìn)行加密的方法所獲得的加密子程序在下載至PLC中后進(jìn)行檢驗(yàn),其特征在于,包括如下步驟:
運(yùn)行所述加密子程序中的PLC版本號校驗(yàn)子程序,讀取當(dāng)前PLC的版本號,并將所讀取的版本號與所述加密子程序中存儲的PLC版本號進(jìn)行比較;
在比較結(jié)果為兩者不相同時,表示該P(yáng)LC為非授權(quán)的PLC,控制停止所述PLC的運(yùn)行。
更多的細(xì)節(jié),可一并參考前述對圖1至圖4的說明。
具體地,在PLC程序編輯器中,該子程序可以是程序組織單元(POU)的一部分;程序組織單元(POU)包括主程序(OB1)、子程序和中斷服務(wù)程序。POU可以單獨(dú)加密,加密后的POU會顯示一個鎖的標(biāo)記,不能打開查看程序內(nèi)容。程序下載到CPU中,再上載后也保持加密狀態(tài)。
實(shí)施本發(fā)明實(shí)施例,具有如下的有益效果:
本發(fā)明實(shí)施例提供的技術(shù)方案,通過在加密子程序中設(shè)置“上載禁止打開”對應(yīng)的標(biāo)志位以及“上載成功”標(biāo)志位,當(dāng)該子程序被上載后,且“上載禁止打開”對應(yīng)的標(biāo)志位為“1”是,則該子程序不允許被打開,在PLC程序編輯器上無法查看或編輯該子程序的內(nèi)容,可以防止加密的子程序被破解以及被復(fù)制,從而防止該加密子程序在非授權(quán)的PLC上運(yùn)行。
以上所揭露的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。