當 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,檢查文本列表的修改。
- 西門子精簡面板和精智面板與S7-1200/1500PLC時間同步功能 2024-11-22
- 西門子TIA博途SCL編程學習7_計算N天后的日期 2024-11-22
- 西門子TIA博途S7-1200/1500學習7間接尋址指令PEEK的使用 2024-11-22
- 西門子TIA博途SCL編程學習2 2024-11-22
- 西門子PLC用TIA博途SCL語言寫的一個產生隨機實數的指令塊 2024-11-22
- 自動語音播報西門子WinCC報警消息 2024-11-22
- 西門子WinCC V7.5典型架構及選型指南 2024-11-22
- 通過Web Service與西門子WinCC交互數據 2024-11-22
- 西門子WinCC中的“地圖+數據” 2024-11-22
- 西門子WinCC中的三檔轉換 2024-11-22
- 西門子博途WinCC專業版C/S架構入門指南 2024-11-22
- 西門子PLC S7-300 SM338模塊SF報警處理過程 2024-11-22
- 西門子串口通信標準RS232 RS485 RS422的區別 2024-11-22
- 西門子PLC S7-200Smart五步實現Modbus溫濕度顯示--1拖3 2024-11-22
- 西門子變頻器6SE70裝置報F011故障分析 2024-11-22
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415