有四種方法可以通過在S7-300和ET200 CPU上設(shè)置密碼來保護(hù)S7程序。
第一種:在硬件配置中激活CPU的在線訪問功能
一、STEP7在線功能的密碼保護(hù)是為了阻止對(duì)CPU的訪問,使用密碼保護(hù)可以:
(1)保護(hù)CPU中的用戶程序和數(shù)據(jù)防止未經(jīng)授權(quán)的更改(寫保護(hù))
(2)保護(hù)用戶程序中的專有知識(shí)(讀保護(hù))
(3)阻止可能損害進(jìn)程的在線功能
二、想要激活CPU的密碼保護(hù)需要進(jìn)行以下操作:
(1)在硬件組態(tài)中雙擊CPU打開CPU的屬性。
(2)選擇"保護(hù)"選項(xiàng)卡并在這里設(shè)置所需的保護(hù)等級(jí)。
(3)為保護(hù)等級(jí)3(讀/寫保護(hù))設(shè)定一個(gè)密碼
(4)點(diǎn)擊OK按鈕關(guān)閉對(duì)話框同時(shí)編譯并保存硬件組態(tài)。
(5)將硬件組態(tài)下載至CPU。
說明:根據(jù)所設(shè)定的保護(hù)等級(jí),每個(gè)在線功能在執(zhí)行前都會(huì)進(jìn)行檢查以確保所選擇的保護(hù)等級(jí)下該功能是否允許執(zhí)行,因此,從保護(hù)等級(jí)2開始,在執(zhí)行特定功能前必須輸入訪問密碼。根據(jù)設(shè)定的保護(hù)等級(jí),可以執(zhí)行診斷功能并讀取變量聲明表。例如,保護(hù)等級(jí)3允許讀取診斷緩沖區(qū),可以通過"PLC > Access Authorization > Setup"直接調(diào)出輸入密碼的對(duì)話框,除非SIMATIC Manager會(huì)話終止或則使用 "PLC > Access Authorization > Cancel"取消密碼輸入,否則不會(huì)出現(xiàn)進(jìn)一步的密碼查詢。
第二種:通過SFC109激活CPU在線訪問功能
一、通過在程序中調(diào)用系統(tǒng)功能塊SFC 109 "PROTECT"來更改CPU的保護(hù)等級(jí) ,通過SFC109 的MODE參數(shù)選擇"PROTECT",可以選擇3種級(jí)別的保護(hù)等級(jí):
(1)以MODE=0調(diào)用SFC 109:設(shè)置保護(hù)等級(jí)為 1,如果禁用密碼授權(quán),可以通過以MODE=0 調(diào)用 SFC 109 將其啟用。
(2)以MODE=1調(diào)用SFC 109:設(shè)置保護(hù)等級(jí)為 2,這意味著具有有效密碼的用戶可以刪除通過調(diào)用 SFC 109 設(shè)置的寫保護(hù),如果啟用密碼授權(quán),可以通過以MODE=1 調(diào)用 SFC 109 將其禁用。
(3)以MODE=12 調(diào)用 SFC 109:設(shè)置保護(hù)等級(jí)為 3,無需密碼授權(quán)。 這意味著如果設(shè)置了讀寫保護(hù), 即使擁有有效的密碼也不能將其禁用。 如果以MODE=12 調(diào)用 SFC 109是在建立授權(quán)連接后,則調(diào)用SFC 109 調(diào)用對(duì)該連接無效。
二、注意:
(1)以MODE=12 調(diào)用 SFC 109 “PROTECT” 僅適用于固件版本 V3.2.7 的 S7-300 CPU 和固件版本V3.3.7ET 200 CPU。 使用參數(shù) MODE=12,無需密碼授權(quán)便可設(shè)置保護(hù)級(jí)等級(jí)為 3。 下圖顯示了以參數(shù)“W#16#C”(對(duì)應(yīng)于 MODE=12)調(diào)用SFC 109 “PROTECT”,用以在沒有密碼授權(quán)的情況下設(shè)置保護(hù)等級(jí) 3(讀/寫保護(hù))。
(2)同時(shí)請(qǐng)注意以下情況
- 即使知道有效密碼,也無法取消通過 SFC 109 設(shè)置的讀/寫保護(hù)。
- 只有在使用 MODE=0 或 MODE=1 再次調(diào)用 SFC 109 后,才能通過輸入有效密碼來激活讀/寫保護(hù)。
第三種:加密塊保護(hù)(STEP7 V5.5以上)
在 STEP7 V5.5 版本中,可以提供塊保護(hù)的加密功能,在離線和在線情況下,加密功能和功能塊程序代碼。
一、下面描述了如何使用 “S7 Block Privacy” 程序進(jìn)行對(duì)塊的保護(hù)加密的步驟。
(1)使用 STEP7 V5.5 的塊的保護(hù)加密功能,必須先安裝“S7 Block Privacy”程序。
(2)安裝完成后,在SIMATIC Manager“Tools>Block protection...”,選擇“ Block Protection”功能。
(3)在 SIMATIC Manager 中選中塊文件夾,主菜單中選擇“Tools>Block protection”功能?;蛘哌x中塊文件夾后,右鍵彈出菜單中選擇“ Block protection”功能。
(4)在“S7 Block Privacy”對(duì)話窗口,打開層次樹,顯示使用“ S7 Block Privacy ”程序進(jìn)行保護(hù)地塊的列表。“ S7 Block Privacy ”僅可以加密 FBs 和 FCs。
(5)右鍵點(diǎn)擊塊,在彈出菜單中選擇加密功能 “ Encrypt block ..”。
(6)在“ Block Encyrption ”對(duì)話窗口,必須輸入至少12個(gè)字符密碼,在下一行重新輸入密碼,點(diǎn)擊 ok 確認(rèn)。
注意:上圖中檢查 “ Also encrypt decompilation information ”選項(xiàng)是啟用的,如果沒有啟用此選項(xiàng),在加密之后,將不能再次取消加密此功能塊。程序代碼將永久加密。
(7)點(diǎn)擊 “ OK ”確認(rèn)信息,當(dāng)打開塊的加密功能,將不能再次查詢與編輯程序代碼。
注意:加密完成后,只有通過輸入密碼后,允許再次對(duì)塊進(jìn)行代碼編輯,建議保存好密碼。
(8)如果想一次加密多個(gè)塊, 選中左側(cè)復(fù)選框,將所有塊一次全部加密,點(diǎn)擊塊文件夾左側(cè)復(fù)選框,選擇所有的文件,然后重復(fù)完成 4~7步驟。
二、在 SIMATIC Manager 上,被加密的塊將被標(biāo)記成紅色和一個(gè)鑰匙圖示,下面將描述取消加密塊的步驟。
(1)在SIMATIC Manager上,選中塊文件夾,在主菜單中選擇“ Tool>Block protection ”功能。或者右鍵點(diǎn)擊塊文件夾,在彈出菜單中點(diǎn)擊“ User protection ...”功能。
(2)在“ S7 Block Privacy ”對(duì)話窗口,打開層次樹,選中想取消加密的塊。
(3)右鍵點(diǎn)擊塊,選擇 “取消加密”。
(4)當(dāng)出現(xiàn)“ Block Encryption ”對(duì)話窗口,輸入密碼后點(diǎn)擊 OK 確認(rèn)。
(5)關(guān)閉“ S7 Block Privacy ”程序,被選中的塊已經(jīng)取消加密并且可以編輯程序。
第四種:在源程序中輸入KNOW_HOW_PROTECT
STEP 7 為程序提供 KNOW_HOW_PROTECT 保護(hù)功能。為要保護(hù)的塊生成一個(gè)源。在此源塊中,在聲明部分中輸入了關(guān)鍵字“KNOW_HOW_PROTECT”。該塊在編譯源代碼后受到保護(hù)。如果打開使用此保護(hù)功能的塊時(shí),僅塊接口參數(shù) (IN, OUT 和 IN/OUT 參數(shù)) 和塊注釋可見,而無法顯示程序代碼、臨時(shí)/靜態(tài)變量和網(wǎng)段注釋。(保護(hù)源程序?qū)ο鬄椋篎C、FB和DB)
一、程序塊設(shè)置 KNOW_HOW_PROTECT 保護(hù)功能步驟
(1)打開要編輯的塊,在 LAD/STL/FBD 編輯器中選擇 "File > Generate source..." ,生成源文件。
(2)在打開的對(duì)話框中輸入項(xiàng)目名稱,如 "P_FB"。
(3)彈出 "Generate source <名稱>" 對(duì)話框。 選中需要轉(zhuǎn)換的塊,點(diǎn)擊箭頭按鈕將其移至右側(cè) "Blocks Selected" 窗口中。 點(diǎn)擊 OK 鍵進(jìn)行確認(rèn)后,生成STL 源文件。關(guān)閉 LAD/STL/FBD 編輯器。如下圖所示:
(4)在 S7 program 的 “Sources” 文件夾中打開最近生成的源文件。
(5)如下圖所示在需要加密的源程序的聲明部分的 "TITLE"語(yǔ)句下面插入"KNOW_HOW_PROTECT" 命令。
(6)通過菜單 "File > Save" 和 "File > Compile" 保存編譯 STL 源文件,完成塊的保護(hù)。
注意:如果經(jīng)“KNOW_HOW_PROTECT”命令的程序或者項(xiàng)目中的STL 源文件不再可用,則不能再去除對(duì)塊的保護(hù)。只有通過 STL 源文件才能去除塊的保護(hù)。
二、程序塊取消 KNOW_HOW_PROTECT 保護(hù)功能步驟
(1)打開源文件。
(2)刪除 "KNOW_HOW_PROTECT" 語(yǔ)句行或用雙斜杠將其標(biāo)記為注釋。
(3)使用菜單命令 "File > Save" 和 "File > Compile" 保存編譯該 STL 源文件。
(4)至此去除對(duì)該塊的保護(hù)。
1.《怎么弄字符密碼看這里!給S7-300和ET200 CPU程序加密,你會(huì)幾種方法?》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識(shí),僅代表作者本人觀點(diǎn),與本網(wǎng)站無關(guān),侵刪請(qǐng)聯(lián)系頁(yè)腳下方聯(lián)系方式。
2.《怎么弄字符密碼看這里!給S7-300和ET200 CPU程序加密,你會(huì)幾種方法?》僅供讀者參考,本網(wǎng)站未對(duì)該內(nèi)容進(jìn)行證實(shí),對(duì)其原創(chuàng)性、真實(shí)性、完整性、及時(shí)性不作任何保證。
3.文章轉(zhuǎn)載時(shí)請(qǐng)保留本站內(nèi)容來源地址,http://f99ss.com/gl/3206211.html