使用西門子安全PLC或者博途的KNOWHOW功能西門子安全PLC作為西門子主打安全功能的一款產(chǎn)品,,它的性能毋庸置疑,,而且安全PLC的程序塊加密后無法破解,;可以很好的保護核心。
而博途PLC作為西門子的最新產(chǎn)品,,其版權保護也是它的主要功能之一,,KNOWHOW功能是軟硬件雙重加密,,不加密的塊可以正常監(jiān)控,,沒有密碼的話甚至無法下載到其他PLC,;因此使用博途的KNOWHOW功能既可以將程序交給甲方方便維護,,又可以保護自己的核心程序不被竊取。
采用gaoji語言編寫部分重要的工藝程序西門子除了最基礎的LAD梯形圖編程,,F(xiàn)BD功能塊編程和STL語句表編程還有很多其他的方式,,比如說PCS7的CFC,SFC; 除此之外還有SCL,S7-GRAPH等等,。
對于這些語言,,一般的工控人員很難全部精通,因此仿制難度大大提升,,因此非常關鍵的工藝程序可以由這些語言編寫,,也可以很好的保護自己的核心,。
1.編程方式的采用a)采用模塊化的程序結構,,采用符號名,參數(shù)化來編寫子程序塊b)盡量采用背景數(shù)據(jù)塊和多重背景的數(shù)據(jù)傳遞方式c)多采用間接尋址的編程方式d)復雜系統(tǒng)的控制程序尤其是一些帶有順序控制或配方控制的程序,,可以考慮采用數(shù)據(jù)編程的方式,,即通過數(shù)據(jù)的變化來改變系統(tǒng)的控制邏輯或控制順序。
用戶應該盡量采用以上幾種gaoji層次的編程方式,,這樣編出來的程序中嵌入系統(tǒng)的保護加密程序,,才不容易被發(fā)現(xiàn)而仿制。
2.主動保護方法a)利用系統(tǒng)的時鐘b)利用程序卡或者CPU的ID號和序列號c)利用EEPROM的反寫入功能,,及一些需要設置的內存保持功能 d)利用系統(tǒng)提供的累時器功能e)在用戶程序的數(shù)據(jù)塊中設置密碼f)軟件上設置邏輯陷阱g)可以反向利用自己在編程時犯的錯誤3.被動保護方法a)在內存容量利用許可的條件下,,不要刪除被認為是無用的程序b)在數(shù)據(jù)塊里留下開發(fā)者的標識,以便于將來遭到侵權時可以取證4.應用反竊取技術的注意事項a)在用戶程序中嵌入保護程序要顯得自然一些,,不能很突兀的加出一段程序來,,代碼要盡量精簡,變量符號名應與被嵌入程序段的變量保持一致b)往往一種保護加密手段是不夠的,,應該多種方法并用,,并且這些保護程序一旦激活后對系統(tǒng)造成的后果也應該盡量不同,造成所謂的“地雷效應”,,從而增加程序被竊取的難度,,時間與成本,短時間內讓抄襲者束手無策,,c)保護好程序的原代碼,,如果需要交付程序的,在不影響用戶對設備維護的前提下,,應對交付的程序做適當?shù)募夹g處理,,如刪除部分符號名,采用上載的程序或數(shù)據(jù)塊d)做好嚴格的測試,,以避免保護程序的不完善引起的誤動作而帶來的不必要的麻煩,,同時也能降低售后服務的的費用,。
使用通訊功能在實際應用中,往往會遇到一些系統(tǒng)間需要數(shù)據(jù)交換的問題(多個PLC之間,,PLC與第三方儀表之間),,無論是西門子產(chǎn)品之間還是西門子產(chǎn)品與第三方產(chǎn)品之間,建議使用通訊的方案來代替模擬量或開關量之間的信號互連的方案,。
對于前者,,仿制者只能看見一條硬件的通訊線,至于有多少數(shù)據(jù)是如何通過通訊交換的,,仿制者必須要花精力研究具體的用戶程序才能搞清楚;而對于后者,,開發(fā)者是省心省力了,仿制者也是一目了然,,盡收眼底,。
對于一些變頻器或者伺服電機等的程序設計,一般有多種方式,,可以線路直接控制還可以通訊控制,,那么使用通訊的方式的話會使得程序增加了仿制的難度,比如說PLC對于伺服驅動器的控制有多種,,簡單一些的可以是脈沖直接控制或者模擬量控制,,這種方式就容易仿制,如果換成通訊控制,,則會使得程序復雜很多,,加上仿制者如果對報文不熟悉,很難去仿制,。
有時候控制系統(tǒng)會由多個子控制系統(tǒng)構成,,由此形成多CPU加人機界面的網(wǎng)絡,西門子S7-200產(chǎn)品常見的是PPI網(wǎng)絡,,S7-300400產(chǎn)品常見的是MPI網(wǎng)絡,,通常是人機界面與CPU之間的數(shù)據(jù)交換,而我們也可在CPU的用戶程序中添加一些無須組態(tài)的S7基本通訊功能(S7-200可用NETRNETW指令,,S7-300400可以用X_PUTX_GET指令),,定時或不定時地在CPU之間進行少量數(shù)據(jù)交換,通過這些數(shù)據(jù)實現(xiàn)子系統(tǒng)控制邏輯的互鎖,。
對于這樣的系統(tǒng),,仿制者要分析某一子系統(tǒng)的程序也不是件十分容易事情。
采用面板類型的人機界面盡量在自動化系統(tǒng)中使用面板類型的人機界面來代替單一的按鈕指示燈,,很多人機界面沒有源程序的話只有備份和恢復功能,,完全可以實現(xiàn)維護功能還保密了HMI這一層的程序,而對于一個PLC系統(tǒng)而言,,即使擁有了源程序但是缺失了HMI部分的標記也是很難仿制的,。
而且開發(fā)者可以在面板的畫面上加上明顯的廠家標識和聯(lián)系方式等信息,,仿制者就不能原樣照抄。
如果就使得如果仿制者想要復制程序的話,,就必須重新編寫操作面板的程序甚至于PLC的程序,,而開發(fā)者則可利用面板和PLC數(shù)據(jù)接口的一些特殊功能區(qū)(如西門子面板的區(qū)域指針,或VB腳本)來控制PLC的程序執(zhí)行,。
這樣的PLC程序在沒有HMI源程序的情況下只能靠猜測和在線監(jiān)視來獲取PLC內部變量的變化邏輯,,費時費力,極大的增加了仿制抄襲的難度,。
采用非標準的人機界面德國工程師都愿意使用這種方式,。
在中國,大多數(shù)工程師都愿意使用WINCC,,INTOUCH或者組態(tài)王等等,,但其實除了這些軟件,還有一種更加高大上的編寫方式,,那就是利用VB自己寫程序,,而對于軟件與PLC的接口,,大家可以選擇LIBNODAVE或者其他庫等,,這種方式寫出來的人機界面有著很多好處,首先沒有版權問題,,因為VB軟件是免費的,,而且對于WINDOW系統(tǒng)的升級來說只需要簡單的添加幾個文件即可實現(xiàn),不像WINCC那樣,,如果window升級了,,需要大量修改文件。
一般人都無法修改,,更別提仿制了,;沒有很好的計算機編程功底的話就不敢輕易修改,而僅僅有計算機功底又沒有PLC或者工藝基礎的話也是無法更改的,。