PLC程序加密方法匯總講解

2021-02-25 電氣工控自動化

大家都知道,很多品牌PLC的程序都可以通過軟體解密,那麼一旦解密後程序就非常透明的顯示在了別人的眼中,而將設備賣給別人又將PLC程序整個鎖死的話又不切實際,甲方會無法維護;而保密和維權更是中國市場經久不衰的話題,其實德國的工程師從來不會給自己的程序整體加密,而是使用其他方式,既不影響發生故障時的診斷,又可以保護自己的核心機密。今天給大家介紹一下這些方式,供大家參考。

一、使用西門子安全PLC或者博途的KNOWHOW功能

西門子安全PLC作為西門子主打安全功能的一款產品,它的性能毋庸置疑,而且安全PLC的程序塊加密後無法破解;可以很好的保護核心。而博途PLC作為西門子的最新產品,其版權保護也是它的主要功能之一,KNOWHOW功能是軟硬體雙重加密,不加密的塊可以正常監控,沒有密碼的話甚至無法下載到其他PLC;因此使用博途的KNOWHOW功能既可以將程序交給甲方方便維護,又可以保護自己的核心程序不被竊取。

二、採用高級語言編寫部分重要的工藝程序

西門子除了最基礎的LAD梯形圖編程,FBD功能塊編程和STL語句表編程還有很多其他的方式,比如說PCS7的CFC,SFC; 除此之外還有SCL,S7-GRAPH等等。對於這些語言,一般的工控人員很難全部精通,因此仿製難度大大提升,因此非常關鍵的工藝程序可以由這些語言編寫,也可以很好的保護自己的核心。

1.編程方式的採用

a)採用模塊化的程序結構,採用符號名,參數化來編寫子程序塊

b)儘量採用背景數據塊和多重背景的數據傳遞方式

c)多採用間接尋址的編程方式

d)複雜系統的控制程序尤其是一些帶有順序控制或配方控制的程序,可以考慮採用數據編程的方式,即通過數據的變化來改變系統的控制邏輯或控制順序。

用戶應該儘量採用以上幾種高級層次的編程方式,這樣編出來的程序中嵌入系統的保護加密程序,才不容易被發現而仿製。

2.主動保護方法

a)利用系統的時鐘

b)利用程序卡或者CPU的ID號和序列號

c)利用EEPROM的反寫入功能,及一些需要設置的內存保持功能 d)利用系統提供的累時器功能

e)在用戶程序的數據塊中設置密碼

f)軟體上設置邏輯陷阱

g)可以反向利用自己在編程時犯的錯誤

3.被動保護方法

a)在內存容量利用許可的條件下,不要刪除被認為是無用的程序

b)在數據塊裡留下開發者的標識,以便於將來遭到侵權時可以取證

4.應用反竊取技術的注意事項

a)在用戶程序中嵌入保護程序要顯得自然一些,不能很突兀的加出一段程序來,代碼要儘量精簡,變量符號名應與被嵌入程序段的變量保持一致

b)往往一種保護加密手段是不夠的,應該多種方法並用,並且這些保護程序一旦激活後對系統造成的後果也應該儘量不同,造成所謂的「地雷效應」,從而增加程序被竊取的難度,時間與成本,短時間內讓抄襲者束手無策,

c)保護好程序的原代碼,如果需要交付程序的,在不影響用戶對設備維護的前提下,應對交付的程序做適當的技術處理,如刪除部分符號名,採用上載的程序或數據塊

d)做好嚴格的測試,以避免保護程序的不完善引起的誤動作而帶來的不必要的麻煩,同時也能降低售後服務的的費用。

三、使用通訊功能

在實際應用中,往往會遇到一些系統間需要數據交換的問題(多個PLC之間,PLC與第三方儀表之間),無論是西門子產品之間還是西門子產品與第三方產品之間,建議使用通訊的方案來代替模擬量或開關量之間的信號互連的方案。對於前者,仿製者只能看見一條硬體的通訊線,至於有多少數據是如何通過通訊交換的,仿製者必須要花精力研究具體的用戶程序才能搞清楚;而對於後者,開發者是省心省力了,仿製者也是一目了然,盡收眼底。

對於一些變頻器或者伺服電機等的程序設計,一般有多種方式,可以線路直接控制還可以通訊控制,那麼使用通訊的方式的話會使得程序增加了仿製的難度,比如說PLC對於伺服驅動器的控制有多種,簡單一些的可以是脈衝直接控制或者模擬量控制,這種方式就容易仿製,如果換成通訊控制,則會使得程序複雜很多,加上仿製者如果對報文不熟悉,很難去仿製。

有時候控制系統會由多個子控制系統構成,由此形成多CPU加人機界面的網絡,西門子S7-200產品常見的是PPI網絡,S7-300400產品常見的是MPI網絡,通常是人機界面與CPU之間的數據交換,而我們也可在CPU的用戶程序中添加一些無須組態的S7基本通訊功能(S7-200可用NETRNETW指令,S7-300400可以用X_PUTX_GET指令),定時或不定時地在CPU之間進行少量數據交換,通過這些數據實現子系統控制邏輯的互鎖。對於這樣的系統,仿製者要分析某一子系統的程序也不是件十分容易事情。

四、採用面板類型的人機界面

儘量在自動化系統中使用面板類型的人機界面來代替單一的按鈕指示燈,很多人機界面沒有源程序的話只有備份和恢復功能,完全可以實現維護功能還保密了HMI這一層的程序,而對於一個PLC系統而言,即使擁有了源程序但是缺失了HMI部分的標記也是很難仿製的。

而且開發者可以在面板的畫面上加上明顯的廠家標識和聯繫方式等信息,仿製者就不能原樣照抄。

如果就使得如果仿製者想要複製程序的話,就必須重新編寫操作面板的程序甚至於PLC的程序,而開發者則可利用面板和PLC數據接口的一些特殊功能區(如西門子面板的區域指針,或VB腳本)來控制PLC的程序執行。這樣的PLC程序在沒有HMI源程序的情況下只能靠猜測和在線監視來獲取PLC內部變量的變化邏輯,費時費力,極大的增加了仿製抄襲的難度。

五、採用非標準的人機界面

德國工程師都願意使用這種方式。在中國,大多數工程師都願意使用WINCC,INTOUCH或者組態王等等,但其實除了這些軟體,還有一種更加高大上的編寫方式,那就是利用VB自己寫程序,而對於軟體與PLC的接口,大家可以選擇LIBNODAVE或者其他庫等,這種方式寫出來的人機界面有著很多好處,首先沒有版權問題,因為VB軟體是免費的,而且對於WINDOW系統的升級來說只需要簡單的添加幾個文件即可實現,不像WINCC那樣,如果window升級了,需要大量修改文件。

一般人都無法修改,更別提仿製了;沒有很好的計算機編程功底的話就不敢輕易修改,而僅僅有計算機功底又沒有PLC或者工藝基礎的話也是無法更改的。

相關焦點

  • 西門子plc程序加密和程序塊加密及解密方法
    第一種情況是在硬體組態中,在CPU屬性中按照保護等級設置密碼,將CPU中程序鎖住,不影響CPU的正常運行。這種情況是往往是程序設計編程人員出於安全和智慧財產權的保護等目的而進行的設置。常見的加密方式有三種。1、程序可讀出,數據可修改,運行可監視,只是程序不可更改。
  • PLC程序加密解密方法詳解
    大家都知道,很多品牌PLC的程序都可以通過軟體解密,那麼一旦解密後程序就非常透明的顯示在了別人的眼中,而將設備賣給別人又將PLC程序整個鎖死的話又不切實際,甲方會無法維護;而保密和維權更是中國市場經久不衰的話題,其實德國的工程師從來不會給自己的程序整體加密,而是使用其他方式,既不影響發生故障時的診斷,又可以保護自己的核心機密。今天給大家介紹一下這些方式,供大家參考。
  • PLC程序加密的新思路
    點擊上方↑『技成培訓』關注中國領先製造業在線教育品牌10萬+工控人關注的微信平臺:技術分享、學習交流、工控視頻對於PLC的程序加密一般是用於對不守信用客戶的
  • 西門子PLC編程,STEP7組態通信與用戶程序下載,高手勿進!
    到了該介紹西門子plc利用STEP7軟體編程時,組態通信和下載用戶程序方法的時候了。需要提醒大家的是,不能在windows7作業系統下使用,不支持187.5 Kbps每秒的波特率,用這種電纜連接好計算機的USB埠和我plc的RS485埠,安裝好USB電纜的驅動程序以後,打開Windows的控制面板,在雙擊系統,在硬體選項卡,單機設備管理器,在埠文件夾,可以看到被映射為COM3的USB埠。關於設置計算機的通訊埠我們這樣操作。
  • 三菱plc學習方法與步驟
    提示:點擊上方"八方匯PLC實戰編程培訓"↑免費關注我們三菱plc學習方法與步驟1、學習plc首先應該了解強電電路中繼電器
  • plc時序圖怎麼畫_plc時序圖編程方法
    打開APP plc時序圖怎麼畫_plc時序圖編程方法 發表於 2017-10-23 09:39:25 在plc順序控制設計法編制梯形圖程序時往往是先畫出時序圖,再根據時序圖設計流程圖,再按流程圖編制梯形圖程序。   一、plc時序圖編程方法:   時序圖編程設計法適用PLC各輸出信號的狀態變化有一定的時間順序的場合,要求系統工作時所有的動作都在定時器的控制下按時間順序工作。
  • 西門子PLC模擬量編程實例講解
    S7-300PLC模擬量方面的實例,包含了以下幾個方面的要點:1、對變送器進行取值,並進行控制2、對模數功能塊 FC105 進行調用3、對 AI 模塊進行設置4、對 AI 量程塊進行選擇這個實例, 調試的是一個流量調節迴路中, 流量變送器輸出 2-2-MA DC信號到 SM331 模擬輸入模塊,模塊將該信號轉換成浮點數,然後在程序中調用
  • plc是什麼?PLC好學嗎?學plc需要什麼基礎?怎樣學習?
    LG-plc---應用指令手冊15. 西門子PLC指令表16. PLC-IO點表2019092917. PLC的分類組成及工作原理18. TwinCAT-PLC-編程手冊19. plc詳細講解20. plc與控制技術21. 施奈德PLC教程315頁22. 三菱PLC編程實例23. 【永宏PLC手冊】24.
  • PLC編程及應用
    3、i/o編碼使用plc,就是以軟體程序來取代硬體配線。傳統電工圖當中,主電路是plc無法取代的;plc可以取代的部份,是控制電路。由傳統電工圖轉換為階梯圖的第一個步驟,就是i/o編碼,亦即將傳統電工圖中的輸入/輸出組件,先行確定其在plc中所擬對應之外部輸入/輸出端子編號,以及外部輸入組件接線方式是採用a/b接點,如表1所示。
  • 西門子plc軟體仿真軟體使用方法圖解
    本文給大家介紹一個學習西門子s7200 plc的工具軟體,這個軟體的使用對象是剛接觸電氣行業而又想學習西門子plc的三無人員(無基礎,無經驗,無硬體
  • 最簡單的plc程序 初學者必看
    這個程序是西門子s7200 plc最簡單的一個程序,但是通過大家的回覆,我發現大家對這個程序還是一知半解,對這個程序的正確性還是存在疑惑,為了能讓大家徹底的弄明白這個PLC程序,我決定把這個本來就最簡單的程序,再拆成最最最簡單的單個部件來說一下。因為這是plc編程的基礎,一定要弄明白。奧,不是一定是必須。
  • 電氣圖轉換為PLC梯形圖實用方法
    須經歷一段瞎子摸象的嘗試錯誤(tryanderror)時期,對程序進行除錯之後才能符合所需功能或動作要求;因此設計出來的程序因人而異,除了原程序設計者之外,使用者或維修人員較不易理解其動作流程,亦即程序的可讀性較低。但程序設計其實有些許脈絡可循,只是坊間的書籍很少提及這一部份。已知的三相感應電動機故障警報控制電路,其傳統電工圖,如圖1所示。
  • 乾貨|經典PLC順序控制案例
    普通的動作,我們只需要根據一定的邏輯,去編寫程序,想到什麼,就寫什麼,寫法非常靈活。但是,假設一套設備,動作非常多,非常複雜,用普通的編程邏輯去寫的話,會非常麻煩,這個時候就需要使用到順序控制。順序控制的優點有以下幾點,一是可以更清晰、簡潔地去分布程序的動作,方便編程;二是監控程序的時候能夠清晰的知道程序運行到哪一步了,出問題了能很快找到問題點,方便維護。每個類型的plc都會有對應的順序控制的編程方法。
  • 三菱PLC動畫3D仿真軟體FXTRN編程神器+視頻教程,你值得擁有!
    支持梯形圖、指令表、SFC、 ST及FB、Label語言程序設計,網絡參數設置,可進行程序的線上更改、監控及調試,具有異地讀寫PLC程序功能。本次發布的這個FX-TRN-BEG-C中文版,是新手學習PLC編程的好工具。
  • 西門子PLC FC和FB用法講解
    在適當地方,使用InOut類型變量,可以減少佔用plc的變量聲明空間。Temp:局部變量,在函數內部使用,不提供外部的接口。我們常常把temp變量用於數據轉換的中間值,或者用於循環變量,比如用於For 或者While循環。由於Temp是局部變量,它的值是隨機,使用必須初始化,對其賦值。
  • 電氣圖轉換為PLC梯形圖實用方法,朋友圈瘋狂轉載
    必須經歷一段瞎子摸象的嘗試錯誤(tryanderror)時期,對程序進行除錯之後才能符合所需功能或動作要求;因此設計出來的程序因人而異,除了原程序設計者之外,使用者或維修人員較不易理解其動作流程,亦即程序的可讀性較低。但程序設計確實有脈絡可循,只是現有的書籍很少提及這一部份。
  • 完美的PLC程序是什麼樣子?
    而至於保密性的考慮,我覺得應該在程序的加密算法或者塊的加密上考慮,而不應該用減少注釋這種小聰明來實現。3、正確性PLC的程序一定要正確,並要經過實際工作驗證,證明其能夠正確工作。這是對PLC程序的最根本的要求,若這一點做不到,其它的再好也沒有用。要使程序正確,一定要準確的使用指令,正確的使用內部器件。
  • 電氣圖轉換為PLC梯形圖實用方法,看完秒懂!
    須經歷一段瞎子摸象的嘗試錯誤(tryanderror)時期,對程序進行除錯之後才能符合所需功能或動作要求;因此設計出來的程序因人而異,除了原程序設計者之外,使用者或維修人員較不易理解其動作流程,亦即程序的可讀性較低。但程序設計其實有些許脈絡可循,只是坊間的書籍很少提及這一部份。
  • 電氣圖轉換為PLC梯形圖實用方法,你都掌握了嗎?
    必須經歷一段瞎子摸象的嘗試錯誤(tryanderror)時期,對程序進行除錯之後才能符合所需功能或動作要求;因此設計出來的程序因人而異,除了原程序設計者之外,使用者或維修人員較不易理解其動作流程,亦即程序的可讀性較低。但程序設計確實有脈絡可循,只是現有的書籍很少提及這一部份。
  • PLC入門知識點匯總,小白收藏
    (1)100ms通用定時器(T0~T199) 共200點,其中T192~T199為子程序和中斷服務程序專用定時器。,所以在程序中不可能出現其線圈。  輸出繼電器是用來將plc內部信號輸出傳送給外部負載(用戶輸出設備)。