PLC HARDY1756-WS
PLC HARDY1756-WS
非致命故障
非致命故障是PLC可以探測到,但不至于使PLC離開運行模式的故障。有些可探測的硬件問題,如內存的后備電池電壓低,只導致非致命故障。非致命故障也可以由組態和編程錯誤引起,如一個定時中斷程序的執行被一個更高優先級的程序的運行而延遲,或者一個算術操作產生了一個太大以致無法存入 目標內存的數,等等。
非致命故障導致PLC設定相關的狀態位或者將相關的錯誤代碼寫到內存中。當結果太大或太小以致無法保存時,數據字處理指令將把內存中的算術標志位設置為1。用戶程序應當檢查這些狀態位或代碼,并作出響應,因為PLC將像沒有錯誤發生一樣繼續執行程序,有些非致命錯誤狀態位在前面的章節已經討論過,本章我們將討論另外一些。
編程或組態邏輯錯誤
這些錯誤是PLC不能自動檢查出來的,但可以用程序中的故障檢測指令或者編程單元的程序監視功能來檢查。
邏輯錯誤的例子包括一個用戶將一位設為OFF而不是ON,兩段用戶程序試圖控制同一個輸出,或者結構化編程旁路了一段需要的程序等等。
用戶應該盡量采用以上幾種高級層次的編程方式,這樣編出來的程序中嵌入系統的保護加密程序,才不容易被發現和破解
2. 主動保護方法
a) 利用系統的時鐘
b) 利用程序卡或者CPU的ID號和序列號
c) 利用EEPROM的反寫入功能,及一些需要設置的內存保持功能
d) 利用系統提供的累時器功能
e) 在用戶程序的數據塊中設置密碼
f) 軟件上設置邏輯陷阱
g) 可以反向利用自己在編程時犯的錯誤
3. 被動保護方法
a) 在內存容量利用許可的條件下,不要刪除被認為是無用的程序
b) 在數據塊里留下開發者的標識,以便于將來遭到侵權時可以取證
4. 應用反破解技術的注意事項
a) 在用戶程序中嵌入保護程序要顯得自然一些,不能很突兀的加出一段程序來,代碼要盡量精簡,變量符號名應與被嵌入程序段的變量保持一致
b) 往往一種保護加密手段是不夠的,應該多種方法并用,并且這些保護程序一旦激活后對系統造成的后果也應該盡量不同,造成所謂的“地雷效應”,從而增加程序被破解的難度,時間與成本,短時間內讓抄襲者束手無策,
c) 保護好程序的原代碼,如果需要交付程序的,在不影響用戶對設備維護的前提下,應對交付的程序做適當的技術處理,如刪除部分符號名,采用上載的程序或數據塊
d) 做好嚴格的測試,以避免保護程序的不完善引起的誤動作而帶來的不必要的麻煩,同時也能降低售后服務的的費用
? 運用保護手段的原則
Siemens 6AV8100-1BA00-0AA1
Kuhnke KDT.636
Siemens 6FX1138-5BA01
Siemens 6SG2010-1CA11
Siemens 6SG2210-1CA00/6SG2 210-1CA00
VLT6004/VLT6004HT4C54STR3DLF00A00C0
Siemens 6FC3551-0AC-Z
Siemens 6SG2210-1CA00/6SG2
Siemens 6FC3551-0AC-Z
Siemens 6SG2210-1CA00
VLT6004/VLT6004HT4C54STR3DLF00A00C0
Siemens 6SG2010-2CA10
Bosch SR600
Okuma BL-MC24E-30SN
Siemens Sinumerik 6FC5111-0BA01-0AA0
Siemens CPU416-3 6ES7416-3XL04-0AB0
Siemens Sinumerik 6FC5111-0BA01-0AA0