『7x24小时有问必答』
“GetChecksum”指令用于读取对象组的校验和。这些对象通过“Scope”参数进行选择。

下表列出了“GetChecksum”指令的参数:

参数
声明
数据类型
说明
Scope
Input
UINT
通过参数 Scope,可选择待读取校验和的对象。
1:标准块(即,非安全块)
2:安全块
3:文本列表
Range(隐藏)
Input
UINT
“Range”的值必须为“0”。
Subrange(隐藏)
Input
UINT
“Subrange”的值必须为“0”。
Done
Output
BOOL
指令执行成功。校验和已传送到 Checksum   参数中。
Busy
Output
BOOL
状态参数
0:指令执行完成。
1:指令的执行尚未完成。
Error
Output
BOOL
状态参数
0:无错误。
1:指令执行过程中发生错误。
详细信息将在“Status”参数中输出。
Status
Output
WORD
状态参数

该参数仅设置为用于一个调用周期。要显示该状态,需要将   STATUS 复制到一个空闲数据区。
Checksum
InOut
VARIANT
校验和
|“Checksum”参数必须指向一个数据类型为 ARRAY[0..7]   of BYTE 的变量;空闲字节需置位为“0”。

有关有效数据类型的更多信息,请参见“有效数据类型概述”。
参数“Status”
错误代码* (W16#...)
说明
0
无错误
7001
首次调用:校验和生成过程已初始化
7002
中间调用:校验和生成过程已激活
8080
参数“Scope”的值无效
8081
该版本固件不支持参数“Range”,值需为“0”。
8082
该版本固件不支持参数“Subrange”,值需为“0”。
8091
CPU 不支持“GetChecksum”指令,或者 CPU   中的程序故障等因素导致寻址对象不可用。
8852
参数“Checksum”指定的变量数据类型不正确。
*   在程序编辑器中,错误代码将显示为整数或十六进制值。有关切换显示格式的信息,请参见“另请参见”。

示例
在以下示例中,将读取 S7-1500 CPU 中标准块的校验和。
创建以下变量,在全局数据块中进行数据存储:
创建一个函数块。在该函数块中创建以下局部变量。
程序段 1:互连“GetChecksum”指令的参数,如下所示:
程序段 2:如果出错,则保存相关状态,如下所示。
如果常开触点(“execute”)的信号状态为“TRUE”,则执行“GetChecksum”指令。根据输入参数   SCOPE(“scope”)的值“1”,读取标准块的校验和。校验和将在参数 CHECKSUM(“checksum”)中输出。GetChecksum   的状态将显示在输出参数 DONE(“done”)中。
输出参数 STATUS(“status”和“memErrStatus”)和 ERROR(“error”)用于指示该作业已完成且无错误。
校验和也位于 CPU 的属性中。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码