【導讀】PLC程序加密,其實不能算是一個新鮮的話題。雖然很多時候,程序加密本身并不是一個討喜的事情,但是某些情況下卻又不得不為之。
在展開正文之前,我想閑聊兩句。程序的加密這個話題,讓我想起了馬斯克關于申請專利保護的說辭。專利不應該成為阻礙行業進步,社會發展的障礙。同樣的,程序加密這個事情,亦是如此。真正的高手,其實從來不給自己寫的代碼加密!因為敞開的程序給你,你也不見得能領悟他的精髓~ 話題扯遠了,畢竟我們距離這樣的高手層次還有很長的路。今天我們就聊聊,讓別人最無可奈何的加密方式:與硬件綁定加密。
綁定存儲卡/綁定CPU
程序塊的的防拷貝保護,可分為兩種:綁定存儲卡的序列號和綁定CPU的序列號,兩者只能選其一。建議選擇綁定存儲卡的序列號,如果激活該功能,在下載程序時,會自動比對序列號,如果與實際存儲卡的序列號不一致,則無法完成程序下載。
相關指令
然后呢,我們需要聊聊一個非常重要的指令:“Get_IM_Data”。該指令的作用就是讀出存儲卡的序列號和CPU的序列號,然后就可以用到自己想用的地方了。這個指令不僅適用于S7-1500,同樣也適合S7-1200的PLC。我們從'擴展指令 > 診斷' 中拖拽出'Get_IM_Data' 指令到程序編輯器即可。
在如下的例程(圖1)中,調用并參數化 'Get_IM_Data' 指令,以讀取SMC(SIMATIC存儲卡)的數據。
參數
下表列出了“Get_IM_Data”指令的參數:
示例
在以下示例中,將讀取 S7-1500 CPU 的 IM0 數據。IM0 數據是設備的基本信息,包含制造商 ID、訂貨號、序列號以及硬件和固件版本等信息。
在全局數據塊中創建 4 個變量和一個結構(數據類型為 IM0_Data),用于存儲 IM0 數據。此時,可為該結構指定任意名稱(“MyPLC_IM_Data”)。
在 LADDR 參數中輸入 CPU 的硬件標識符。硬件標識符唯一地標識產品。要確定 CPU 的硬件標識符,請打開 PLC 變量表和“系統常量”(System constants) 選項卡。然后在“名稱”(Name) 列中搜索 CPU。關聯值是您在 LADDR 參數中輸入的硬件標識符。
在指令成功執行后,IM0 數據將寫入到數據塊。
小伙伴們,學會了嗎?記得一鍵三連哦!~
審核編輯 :李倩
-
plc
+關注
關注
5016文章
13385瀏覽量
464827 -
cpu
+關注
關注
68文章
10901瀏覽量
212683 -
西門子
+關注
關注
94文章
3062瀏覽量
116279
原文標題:西門子S7-1200/1500程序塊加密,你真的了解嗎?
文章出處:【微信號:工控PLC布道師,微信公眾號:工控PLC布道師】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論