淺談西門(mén)子PLC控制程序的保護(hù)
前言:
隨著中國(guó)整體經(jīng)濟(jì)實(shí)力的加強(qiáng),制造和加工工業(yè)正逐步向中國(guó)轉(zhuǎn)移,這給中國(guó)國(guó)內(nèi)工業(yè)裝備市場(chǎng)帶來(lái)了大量的商機(jī),國(guó)內(nèi)各行業(yè)的制造商開(kāi)發(fā)和制造出大量?jī)r(jià)廉物美的設(shè)備,取得了良好的經(jīng)濟(jì)和社會(huì)效應(yīng)。但是,也有小部分的制造商,由于其自身能力和客觀因素的限制,無(wú)法及時(shí)開(kāi)發(fā)出合適的產(chǎn)品,但利益的驅(qū)動(dòng)使他們把目光瞄準(zhǔn)了同行,抄襲和仿制同行開(kāi)發(fā)成功的產(chǎn)品,更有甚者是整機(jī)拷貝或者克隆。由于現(xiàn)代工業(yè)設(shè)備大量采用PLC作為主控制系統(tǒng),PLC作為整個(gè)設(shè)備的核心部件,其軟件包涵了生產(chǎn)工藝,控制邏輯,設(shè)備數(shù)據(jù),加工參數(shù)及信息通訊等重要內(nèi)容,從而成為設(shè)備仿制者重點(diǎn)要獲取的目標(biāo)之一。縱觀目前中國(guó)國(guó)內(nèi)市場(chǎng)上應(yīng)用的主流品牌PLC,雖然在設(shè)計(jì)上都采用了各種軟硬件加密的手段,但破解者運(yùn)用的破解手段也越來(lái)越先進(jìn),從 初的窮舉法,端口偵聽(tīng),軟件跟蹤,到現(xiàn)在可以通過(guò)直接復(fù)制提取內(nèi)存芯片的內(nèi)容來(lái)分析破解,更有甚者在互連網(wǎng)上公開(kāi)討論和傳播破解方法和工具,因此所有產(chǎn)品無(wú)一例外地遭到了破解。這對(duì)中國(guó)眾多的中小型OEM制造商來(lái)說(shuō)是非常不利的,“我們幾年的開(kāi)發(fā)成果可能因此一夜之間付諸東流”當(dāng)?shù)弥猄7-200/300硬件加密也被破解后,一位OEM制造商無(wú)奈地說(shuō)。由于仿制者的開(kāi)發(fā)成本很低或幾乎為零,因此開(kāi)發(fā)者還沒(méi)有來(lái)得及收回開(kāi)發(fā)成本就陷入了低價(jià)競(jìng)爭(zhēng),這極大的影響了開(kāi)發(fā)者開(kāi)發(fā)新產(chǎn)品的積極性,對(duì)我國(guó)的裝備工業(yè)的長(zhǎng)遠(yuǎn)發(fā)展是十分有害的。
難道就這樣束手無(wú)策,聽(tīng)任仿制者為所欲為了嗎?答案是否定的,多年來(lái)一直關(guān)注和研究PLC控制程序保護(hù)方面的問(wèn)題,筆者在實(shí)踐中取得了一些經(jīng)驗(yàn)和心得,在本文中愿意和同行們共同分享和討論,大家共同為保護(hù)自己的勞動(dòng)成果而努力。筆者多年來(lái)一直從事西門(mén)子SIAMTIC S7 PLC的應(yīng)用,因此本文也只是從純粹的技術(shù)層面出發(fā),重點(diǎn)探討SIMATIC S7 PLC控制程序的保護(hù)。
在系統(tǒng)設(shè)計(jì)的初期,我們應(yīng)該從系統(tǒng)的角度來(lái)考慮PLC控制程序的保護(hù):
1. T.I.A(全集成自動(dòng)化)的概念有助于保護(hù)我們的KNOW HOW
T.I.A實(shí)現(xiàn)了組態(tài)和編程,數(shù)據(jù)管理和通訊,自動(dòng)化與驅(qū)動(dòng)產(chǎn)品(包括PLC控制器、HMI人機(jī)界面、網(wǎng)絡(luò)、驅(qū)動(dòng)器等產(chǎn)品)的高度集成。實(shí)踐證明,采用T.I.A集成概念設(shè)計(jì)的控制系統(tǒng)很難被抄襲。同一個(gè)軟件平臺(tái),相同的硬件組成,一樣的總線通訊,完全可以設(shè)計(jì)出截然不同的控制系統(tǒng),這是一個(gè)讓開(kāi)發(fā)者自由發(fā)揮的平臺(tái)。例如,一個(gè)CPU315-2DP和2個(gè)MM440變頻器進(jìn)行PROFIBUS-DP的通訊,除了PLC和變頻器有常規(guī)的數(shù)據(jù)交換,如果用戶使用了DRIVES ES的工程軟件,還能實(shí)現(xiàn)2個(gè)MM440之間的直接的快速數(shù)據(jù)交換,另外通過(guò)DRIVES ES還能實(shí)現(xiàn)PLC和MM440之間超過(guò)10個(gè)總共16個(gè)PZD過(guò)程數(shù)據(jù)的交換,實(shí)現(xiàn)PLC批量下載變頻器參數(shù)的功能。而這一切的實(shí)現(xiàn)從表面上看,硬件沒(méi)有發(fā)生任何的變化,仿制者很難從硬件上來(lái)判斷出系統(tǒng)是如何控制這兩臺(tái)驅(qū)動(dòng)器的速度的。不熟悉西門(mén)子產(chǎn)品的仿制者無(wú)法輕易更換硬件配置或修改軟件,而即使仿制者是個(gè)西門(mén)子產(chǎn)品的專(zhuān)家,要獨(dú)自分析清楚具體細(xì)節(jié)問(wèn)題也不是件容易的事情。從某種程度上說(shuō),T.I.A大大提高了對(duì)仿制者的技術(shù)水平要求的門(mén)檻,達(dá)到西門(mén)子系統(tǒng)集成專(zhuān)家水平的技術(shù)人員一是不多,二很少有愿意做這些不齒的事情的。
此外,對(duì)于一些較大系統(tǒng)的OEM開(kāi)發(fā)商,路由通訊功能,iMAP軟件包等都是很不錯(cuò)的T.I.A系統(tǒng)功能或工具,我們應(yīng)該盡量利用T.I.A給我們帶來(lái)的技術(shù)優(yōu)勢(shì),占領(lǐng)技術(shù)制高點(diǎn),加大仿制或抄襲的技術(shù)難度。
2. 使用通訊功能
在實(shí)際的工作中,我們往往會(huì)遇到一些系統(tǒng)間需要數(shù)據(jù)交換的問(wèn)題(如PLC-PLC之間,PLC與驅(qū)動(dòng)器之間,PLC與儀表之間),無(wú)論是西門(mén)子產(chǎn)品之間還是西門(mén)子產(chǎn)品與第三方產(chǎn)品之間,建議使用通訊的方案來(lái)代替模擬量或開(kāi)關(guān)量之間的信號(hào)互連的方案。對(duì)于前者,仿制者只能看見(jiàn)一條硬件的通訊線,至于有多少數(shù)據(jù)是如何通過(guò)通訊交換的,仿制者必須要花精力研究具體的用戶程序才能搞清楚;而對(duì)于后者,開(kāi)發(fā)者是省心省力了,仿制者也是一目了然,盡收眼底。
PLC與驅(qū)動(dòng)器的通訊,除了了控制字/狀態(tài)字、設(shè)定值/反饋值及過(guò)程變量的數(shù)據(jù)通訊,驅(qū)動(dòng)器工作的參數(shù) 好也能由PLC通過(guò)軟件下載,這樣即可以降低 終用戶維護(hù)系統(tǒng)的技術(shù)要求,同時(shí)可以防止仿制者通過(guò)驅(qū)動(dòng)器工作參數(shù)分析系統(tǒng)尤其在驅(qū)動(dòng)方面的工作原理和設(shè)計(jì)思路。西門(mén)子公司的工程軟件DRIVE ES BASIC/SIAMTIC,為廣大的西門(mén)子產(chǎn)品用戶實(shí)現(xiàn)此類(lèi)功能提供了一個(gè)強(qiáng)大的工具;而使用SIMATIC PLC卻使用第三方驅(qū)動(dòng)器的用戶,也可以自行開(kāi)發(fā)針對(duì)性的參數(shù)讀寫(xiě)程序,一般支持PROFIBU-DP的驅(qū)動(dòng)器都可以實(shí)現(xiàn)。
有時(shí)候我們的控制系統(tǒng)會(huì)由多個(gè)子控制系統(tǒng)構(gòu)成,由此形成多CPU加人機(jī)界面的網(wǎng)絡(luò),西門(mén)子S7-200產(chǎn)品常見(jiàn)的是PPI網(wǎng)絡(luò),S7-300/400產(chǎn)品常見(jiàn)的是MPI網(wǎng)絡(luò),通常是人機(jī)界面與CPU之間的數(shù)據(jù)交換,而我們也可在CPU的用戶程序中添加一些無(wú)須組態(tài)的S7基本通訊功能(S7-200可用NETR/NETW指令,S7-300/400可以用X_PUT/X_GET指令),定時(shí)或不定時(shí)地在CPU之間進(jìn)行少量數(shù)據(jù)交換,通過(guò)這些數(shù)據(jù)實(shí)現(xiàn)子系統(tǒng)控制邏輯的互鎖。對(duì)于這樣的系統(tǒng),仿制者要分析某一子系統(tǒng)的程序也不是件十分容易事情。