3. 使用面板類型的人機(jī)界面
盡量在自動(dòng)化系統(tǒng)中使用面板類型的人機(jī)界面來代替單一的按鈕指示燈,雖然按鈕指示燈的功能是無法保密的,但目前為止,面板型人機(jī)界面能夠?qū)崿F(xiàn)程序上載并實(shí)現(xiàn)反編譯的產(chǎn)品還不多見,開發(fā)者可以在面板的畫面上加上明顯的廠家標(biāo)識(shí)和聯(lián)系方式等信息,仿制者還不至于傻到連這個(gè)也原樣照抄吧。這樣迫使仿制者必須重新編寫操作面板的程序甚至于PLC的程序,而開發(fā)者則可利用面板和PLC數(shù)據(jù)接口的一些特殊功能區(qū)(如西門子面板的區(qū)域指針,或VB腳本)來控制PLC的程序執(zhí)行。這樣的PLC程序在沒有HMI源程序的情況下只能靠猜測(cè)和在線監(jiān)視來獲取PLC內(nèi)部變量的變化邏輯,費(fèi)時(shí)費(fèi)力,極大的增加了仿制抄襲的難度。
4. 采用高級(jí)語言編寫部分重要的工藝程序
這一點(diǎn)主要針對(duì)采用S7-300/400或WINAC產(chǎn)品的控制設(shè)備,除了使用STEP 7提供的LAD,STL,F(xiàn)BD標(biāo)準(zhǔn)編程語言來開發(fā)控制程序,我們還可以使用SCL,S7-GRAPH等高級(jí)語言來開發(fā)一些重要的工藝程序,WINAC還可以使用ODK軟件包開發(fā)出專有的程序塊。一般的仿制者是不容易搞到這些開發(fā)工具的,即使有也不一定會(huì)使用,更不用說來讀懂這些程序了。
Ø 在項(xiàng)目具體實(shí)施的過程中,我們應(yīng)該從軟件開發(fā)技巧的角度來考慮PLC控制程序的保護(hù):
1. 編程方式的采用
a) 采用模塊化的程序結(jié)構(gòu),采用符號(hào)名,參數(shù)化來編寫子程序塊
b) S7-300/400盡量采用背景數(shù)據(jù)塊和多重背景的數(shù)據(jù)傳遞方式
c) 多采用間接尋址的編程方式
d) 復(fù)雜系統(tǒng)的控制程序尤其是一些帶有順序控制或配方控制的程序,可以考慮采用數(shù)據(jù)編程的方式,即通過數(shù)據(jù)的變化來改變系統(tǒng)的控制邏輯或控制順序。
用戶應(yīng)該盡量采用以上幾種高級(jí)層次的編程方式,這樣編出來的程序中嵌入系統(tǒng)的保護(hù)加密程序,才不容易被發(fā)現(xiàn)和破解
2. 主動(dòng)保護(hù)方法
a) 利用系統(tǒng)的時(shí)鐘
b) 利用程序卡或者CPU的ID號(hào)和序列號(hào)
c) 利用EEPROM的反寫入功能,及一些需要設(shè)置的內(nèi)存保持功能
d) 利用系統(tǒng)提供的累時(shí)器功能
e) 在用戶程序的數(shù)據(jù)塊中設(shè)置密碼
f) 軟件上設(shè)置邏輯陷阱
g) 可以反向利用自己在編程時(shí)犯的錯(cuò)誤
3. 被動(dòng)保護(hù)方法
a) 在內(nèi)存容量利用許可的條件下,不要?jiǎng)h除被認(rèn)為是無用的程序
b) 在數(shù)據(jù)塊里留下開發(fā)者的標(biāo)識(shí),以便于將來遭到侵權(quán)時(shí)可以取證
4. 應(yīng)用反破解技術(shù)的注意事項(xiàng)
a) 在用戶程序中嵌入保護(hù)程序要顯得自然一些,不能很突兀的加出一段程序來,代碼要盡量精簡(jiǎn),變量符號(hào)名應(yīng)與被嵌入程序段的變量保持一致
b) 往往一種保護(hù)加密手段是不夠的,應(yīng)該多種方法并用,并且這些保護(hù)程序一旦激活后對(duì)系統(tǒng)造成的后果也應(yīng)該盡量不同,造成所謂的“地雷效應(yīng)”,從而增加程序被破解的難度,時(shí)間與成本,短時(shí)間內(nèi)讓抄襲者束手無策,
c) 保護(hù)好程序的原代碼,如果需要交付程序的,在不影響用戶對(duì)設(shè)備維護(hù)的前提下,應(yīng)對(duì)交付的程序做適當(dāng)?shù)募夹g(shù)處理,如刪除部分符號(hào)名,采用上載的程序或數(shù)據(jù)塊
d) 做好嚴(yán)格的測(cè)試,以避免保護(hù)程序的不完善引起的誤動(dòng)作而帶來的不必要的麻煩,同時(shí)也能降低售后服務(wù)的的費(fèi)用
Ø 運(yùn)用保護(hù)手段的原則
我們雖然掌握了一些加密保護(hù)的手段,有一點(diǎn)必須明白,密碼和鎖的道理是一樣的,天下沒有打不開的鎖,也沒有解不開的密碼,我們從技術(shù)上采取的措施來防止侵權(quán)的作用還是十分有限的,因此大家不能把所有的希望都寄托在所謂的加密技術(shù)或破解與反破解技術(shù)上;除此之外我們還可以通過專利的申請(qǐng)等其他諸如法律手段來保護(hù)我們的知識(shí)產(chǎn)權(quán);但最重要的是我們不能安于現(xiàn)狀,而是要勇于創(chuàng)新,不斷地利用新技術(shù)開發(fā)新產(chǎn)品,占領(lǐng)技術(shù)新高地,爭(zhēng)做行業(yè)的領(lǐng)頭人,才能使我們的企業(yè)立于不敗之地。
加密保護(hù)技術(shù)本身也是一把雙刃劍,用好了客戶滿意,自己的權(quán)益又悄悄的得到了保護(hù),用不好不僅不起作用,給售后服務(wù)帶來許多麻煩,還會(huì)得罪客戶;好人掌握這種技術(shù)是用來保護(hù)自己不被侵權(quán),而用心不良的人會(huì)利用它去要挾客戶。因此本文也僅限于討論了關(guān)于PLC程序加密保護(hù)的一些原則性指導(dǎo)性的內(nèi)容,而沒有公布具體的程序代碼指令,請(qǐng)讀者們諒解。
轉(zhuǎn)載請(qǐng)注明出處。