加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線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