诊断检测 (DDT)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
DDT 指令将 Source 数组中的位与 Reference 数组中的位进行比较,以找到不匹配位。然后记录不匹配位的位置,并根据 Source 位更改不匹配的 Reference 位。
启用后,DDT 指令会将 Source 数组中的位与 Reference 数组中的位进行比较,将每个不匹配项的位号记录在 Result 数组中,并根据对应的 Source 位的值更改 Reference 位的值。
重要提示: DDT 指令对连续内存进行操作。必须进行测试并确认指令不会更改用户不希望更改的数据。
DDT 与 FBC 指令的区别是:DDT 指令每次发现不匹配项时,会根据源位的值更改参考位的值。而 FBC 指令不更改参考位。
如果指令尝试超出数组的末尾执行读操作,则指令会将 .ER 位置位并生成严重故障。
可用语言
梯形图
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参见“数据转换”数据转换
梯形图
操作数
类型
格式
说明
Source
DINT
数组标签
要与参考数组进行比较的数组
不要在下标中使用 CONTROL.POS
Reference
DINT
数组标签
要与源数组进行比较的数组
不要在下标中使用 CONTROL.POS
Result
DINT
数组标签
用于存储结果的数组
不要在下标中使用 CONTROL.POS
Cmp. Control
CONTROL
结构
比较的控制结构
Length
DINT
立即数
要比较的位数
Position
DINT
立即数
源数组中的当前位置
初始值通常为 0
Result control
CONTROL
结构
结果的控制结构
Length
DINT
立即数
结果数组中的存储位置数
Position
DINT
立即数
结果数组中的当前位置
初始值通常为 0
重要提示: 对于比较控制结构和结果控制结构,应使用不同的标签。这两个结构使用相同标签可能会引发不可预知的操作,从而可能引起设备损坏和/或人身伤害。
COMPARE 结构
助记符
数据类型
说明
.EN
BOOL
使能位,指示 DDT 指令是否使能。
.DN
BOOL
完成位,当 DDT 指令比较 Source 和 Reference 数组中的最后一位后置位。
.FD
BOOL
发现位,DDT 指令每次记录不匹配项(每次记录一个)或记录所有不匹配项(每次扫描记录全部)后置位。
.IN
BOOL
禁用位,指示 DDT 搜索模式。
0 = “所有”模式
1 =“每次一个不匹配项”模式
.ER
BOOL
错误位,POS 或 LEN 无效时置位。
.LEN
DINT
长度值,指示要比较的位数。
.POS
DINT
位置值,指示当前位。
RESULT 结构
助记符
数据类型
说明
.DN
BOOL
完成位,Result 数组已满时置位。
.LEN
DINT
长度值,指示 Result 数组中的存储位置数。
.POS
DINT
位置值,指示 Result 数组中的当前位置。
选择搜索模式
如果要:
选择此模式:
每次检测一个不匹配项
将比较 CONTROL 结构中的 .IN 位置位。
每次 EnableIn 由假跳变为真时,DDT 指令会搜索 Source 数组和 Reference 数组之间的下一个不匹配项。找到不匹配项后,该指令停止,将 .FD 位置位,并记录该不匹配项的位置。
检测所有不匹配项
将比较 CONTROL 结构中的 .IN 位清零。
每次 EnableIn 由假跳变为真时,DDT 指令会搜索 Source 数组和 Reference 数组之间的所有不匹配项。
影响数学状态标志
严重/轻微故障
在以下情况下会发生严重故障:
故障类型
故障代码
result.POS > 结果数组大小
4
20
有关操作数相关的故障,请参阅 常用属性
执行
梯形图
条件/状态
执行的操作
预扫描
请参见“DDT 流程图(预扫描)”
梯级输入条件为假
请参见“DDT 流程图(假)”
梯级输入条件为真
请参见“DDT 流程图(真)”
后扫描
不适用
DDT 流程图(预扫描)
DDT 流程图(假)
DDT 流程图(真)
DDT 流程图(真)- 续
示例
梯形图
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal