1. <del id="sqmd4"></del>
      <object id="sqmd4"></object>
      1. <object id="sqmd4"></object>
          加入收藏 在線留言 聯系我們
          關注微信
          手機掃一掃 立刻聯系商家
          全國服務熱線13185520415
          公司新聞
          西門子PLC如何通過編程判斷程序是否發生過改動
          發布時間: 2024-09-01 21:36 更新時間: 2024-11-22 08:00
          觀看西門子PLC如何通過編程判斷程序是否發生過改動視頻

          當 S7-1x00 中的程序修改后,軟件校驗和會發生改變。使用 GetChecksum 指令可以讀取 PLC 程序中的軟件較驗和,將其與之前的校驗和進行比較可以得知 PLC 的程序是否被改動。


          本文檔介紹了如何使用 GetChecksum 指令判斷 PLC 中的程序是否被修改并紀錄修改時間。

          01   使用的硬件與軟件

          硬件:CPU 1215FC V4.4

          軟件:TIA Portal V17

          02   編寫 PLC 程序,調用讀取校驗和功能塊

          2.1 

          建立用于存儲校驗和及紀錄修改時間的 DB 塊


          建立的 DB 塊內容如圖 1 所示。

          注意:此處的校驗和變量 、上一周期校驗和變量、Zui終紀錄的修改時間一定要設置為保持性變量,否則會在 CPU 停機時,不能正確保存。

          圖 1. 建立存儲用 DB


          2.2 調用功能塊

          GetChecksum 指令位于“擴展指令>診斷”文件夾,如圖 2 所示。


          圖 2. 指令集中的位置


          指令調用參見圖 3,指令參數參考表 3。


          圖 3. 調用指令塊



          表 3. 指令管腳說明


          2.3 判斷校驗和改變時輸出當前時間

          當前讀取的校驗和與上一周期保存的校驗和比較,當較驗和發生改變時,紀錄較驗和改變時的時間,這個時間是程序改變后下載的生效時間。如圖 4 所示。


          圖 4. 輸出程序修改后下載的時間


          2.4 紀錄上一周期的校驗和


          將本周期計算的校驗和保存到上周期校驗和變量,用于下一周期的比較,如圖 5 所示。


          圖 5. 紀錄上一周期的校驗和


          2.5 保存錯誤代碼


          錯誤代碼僅當發生錯誤時出現一個周期,需要使用錯誤位為 true 時抓取錯誤代碼,如圖 6 所示。

          圖 6. 保存錯誤代碼

          03    檢查程序

          可以在程序下載后,對比離線的校驗和及在線讀取的校驗和,檢查程序是否正確下載,如圖 7 所示。


          圖 7. 檢查程序中讀取的校驗和


          注意:此程序僅檢查標準程序的修改;可以通過修改Scope為2,檢查安全程序的修改;通過修改Scope為3,檢查文本列表的修改。

          聯系方式

          • 電  話:13510737515
          • 聯系人:董海波
          • 手  機:13185520415
          • 微  信:13185520415