S7-1x00 如何通过编程判断程序是否发生过改动
自动化so酷
当 S7-1x00 中的程序修改后,软件校验和会发生改变。使用 GetChecksum 指令可以读取 PLC程序中的软件较验和,将其与之前的校验和进行比较可以得知 PLC 的程序是否被改动。
本文档介绍了如何使用 GetChecksum 指令判断 PLC 中的程序是否被修改并纪录修改时间。
01 使用的硬件与软件
硬件:CPU 1215FC V4.4
软件:TIA Portal V
02 编写PLC 程序,调用读取校验和功能块
2.1
建立用于存储校验和及纪录修改时间的 DB 块
建立的 DB 块内容如图 1 所示。
注意:此处的校验和变量 、上一周期校验和变量、Zui终纪录的修改时间一定要设置为保持性变量,否则会在 CPU停机时,不能正确保存。
图 1. 建立存储用 DB
2.2 调用功能块
GetChecksum 指令位于“扩展指令>诊断”文件夹,如图 2 所示。
图 2. 指令集中的位置
指令调用参见图 3,指令参数参考表 3。
图 3. 调用指令块
表 3. 指令管脚说明
2.3 判断校验和改变时输出当前时间
当前读取的校验和与上一周期保存的校验和比较,当较验和发生改变时,纪录较验和改变时的时间,这个时间是程序改变后下载的生效时间。如图 4所示。
图 4. 输出程序修改后下载的时间