死区时间 (DEDT)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
死区时间 (DEDT) 指令用于执行单路输入的延时。死区时间延时可以选择。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块
DEDT_FB_avail_v31
结构化文本
DEDT(DEDT_tag,storage);
操作数
结构化文本
操作数
类型
格式
说明
DEDT 标签
DEADTIME
结构
DEDT 结构
storage
REAL
数组
死区时间缓冲区
有关结构化文本中表达式语法的详细信息,请参见
结构化文本语法
部分。
功能块
操作数
类型
格式
说明
DEDT 标签
DEADTIME
结构
DEDT 结构
storage
REAL
数组
死区时间缓冲区
DEADTIME 结构
输入参数
数据类型
说明
EnableIn
BOOL
启用输入。如果为假,指令不会执行,也不会更新输出。
默认值为真。
In
REAL
指令的模拟信号输入。
有效值 = 任意浮点值
默认值 = 0.0
InFault
BOOL
输入不良状况指示器。如果输入值从模拟输入读取,则 InFault 由模拟输入的故障状态控制。InFault 为真时,说明输入信号存在错误,此指令会将 Status 中的相应位置位,控制算法不会执行且 Out 处于保持状态。
默认值为假。
假 = 状况良好
Deadtime
REAL
指令的死区时间输入。以秒为单位输入死区时间。如果该值无效,该指令会假定该值等于零并置位 Status 中的相应位。
有效值 = 0.0 至(StorageArray 大小 * DeltaT)
默认值 = 0.0
Gain
REAL
指令的增益输入。In 的值将与该值相乘。这允许模拟过程增益。
有效值 = 任意浮点值
默认值 = 1.0
Bias
REAL
指令的偏置输入。In 的值将乘以 Gain,然后再与该值相加。这允许模拟环境条件。
有效值 = 任意浮点值
默认值 = 0.0
TimingMode
DINT
选择时序执行模式。
0 = 周期模式
1 = 过采样模式
2 = 实时采样模式
有效值 = 0 至 2
默认值 = 0
有关时序模式的更多信息,请参见“功能块属性”部分。
OversampleDT
REAL
过采样模式的执行时间。
有效值 = 0 到 4194.303 秒
默认值 = 0
RTSTime
DINT
实时采样模式的模块更新周期
有效值 = 1 至 32,767 ms
默认值 = 1
RTSTimeStamp
DINT
实时采样模式的模块时戳值。
有效值 = 0 至 32,767 ms
默认值 = 0
输出参数
数据类型
说明
EnableOut
BOOL
指示指令是否处于启用状态。如果 Out 溢出,则设置为假。
Out
REAL
计算所得的死区时间算法输出。
DeltaT
REAL
两次更新间隔的时间。控制算法计算过程输出所用的时间(秒)。
Status
DINT
功能块的状态。
InstructFault (Status.0)
BOOL
该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。
InFaulted (Status.1)
BOOL
In 状况不良。
DeadtimeInv (Status.2)
BOOL
Deadtime 值无效。
TimingMode (Status.27)
BOOL
TimingMode 值无效。
有关时序模式的更多信息,请参见“功能块属性”部分。
RTSMissed (Status.28)
BOOL
仅用于实时采样模式。当
ABS(DeltaT - RTSTime) > 1 毫秒。
RTSTimeInv (Status.29)
BOOL
RTSTime 值无效。
RTSTimeStampInv (Status.30)
BOOL
RTSTimeStamp 值无效。
DeltaTInv (Status.31)
BOOL
DeltaT 值无效。
说明
DEDT 指令使用数据缓冲区存储延迟的数据,因此支持使用任意时长的所需死区时间。DEDT 指令设计为在扫描速率保持恒定的任务中执行。
要使用 DEDT 指令,需创建一个存储数组,存储用于保存 (In x Gain) + Bias 采样值的死区时间缓冲区。存储数组的大小应足以容纳所需的最长死区时间,计算公式如下:
所需 StorageArray 的大小 = 最大死区时间(秒)/DeltaT(秒)
提供死区时间缓冲区服务
运行期间,该指令将检查 Deadtime 是否有效。Deadtime 必须介于 0.0 和(StorageArray 的大小 x DeltaT)之间。
如果 Deadtime 无效,该指令会将 Status 中的相应位置位,并设置 Out = (In x Gain) + Bias。
死区时间缓冲区用作先进先出缓冲区。每次死区时间算法执行时,最先进入死区时间缓冲区的值都会移到 Out 中。缓冲区中的其余值下移,而值 ((Inx Gain) + Bias) 则移至死区时间缓冲区的开始位置。经过 Deadtime 秒后,放入死区时间缓冲区中的新值将显示在 Out 中。
执行所设延时所需的数组元素数按 Deadtime 除以 DeltaT 计算。如果 Deadtime 不能被 DeltaT 整除,则数组元素数将四舍五入为最接近的整数,所设延时则四舍五入为最接近的 DeltaT 增量。例如,给定 Deadtime = 4.25s 且 DeltaT = 0.50s,执行所设延时所需的数组元素数计算如下:
4.25s / 0.50s = 8.5
所需数组元素数为 9
此示例中应用于输入的实际延时为:
数组元素数 x DeltaT = 所设延时,即
9 x 0.5s = 4.5s
若在运行期间更改 Deadtime 或 DeltaT,将改变各个值从缓冲区中移出时对应的时间点。执行所设延时所需的元素数既可以增大也可以减小。提供死区时间缓冲区服务之前,将执行以下更新:
如果所需元素数需要增大,则使用当前死区时间缓冲区中最先进入的值填充新的缓冲区元素。
如果所需元素数需要减小,则放弃当前死区时间缓冲区中最先进入的元素。
InFault 跳变时指令的行为
InFault 为真(状况不良)时,指令将暂停执行,保持上一个输出并将 Status 中的相应位置位。
当 InFault 由真跳变为假时,指令会将死区时间缓冲区中的所有值设置为 In x Gain + Bias。
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性
执行
功能块
条件/状态
执行的操作
预扫描
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为假
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为真
EnableIn 和 EnableOut 位设置为真。
指令执行。
指令首次运行
不适用
指令首次扫描
不适用
该指令不会执行,但确实验证输入参数。
后扫描
EnableIn 和 EnableOut 位设置为假。
结构化文本
条件/状态
执行的操作
预扫描
请参见“功能块”表中的“预扫描”行。
正常执行
请参见“功能块”表中的“Tag.EnableIn 为真”行。
后扫描
请参见“功能块”表中的“后扫描”行。
示例
本例中,DEDT 指令将对所模拟过程中的死区时间延时进行模拟。为模拟此过程,PIDE 指令的输出将经过死区时间延时和一阶滞后。数组 DEDT_01array 是一个包含 100 个元素的 REAL 数组,最多可支持 100 个采样值的死区时间。例如,如果此例程每 100 毫秒执行一次,则该数组最多可支持 10 秒的死区时间。
功能块
DEDT_FB_ex_v31
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal