累加器 (TOT)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
累加器 (TOT) 指令可对一段时间内的模拟输入值进行累加。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块
TOT_FB_avail_v31
结构化文本
TOT(TOT_tag)
操作数
功能块
操作数
类型
格式
说明
TOT 标签
TOTALIZER
结构
TOT 结构
结构化文本
操作数
类型
格式
说明
TOT 标签
TOTALIZER
结构
TOT 结构
有关结构化文本中表达式语法的详细信息,请参见
结构化文本语法
部分。
TOTALIZER 结构
输入参数
数据类型
说明
EnableIn
BOOL
启用输入。如果为假,指令不会执行,也不会更新输出。
默认值为真。
In
REAL
指令的模拟信号输入。
有效值 = 任意浮点值
默认值 = 0.0
InFault
BOOL
In 不良状况指示器。如果为真,说明输入信号存在错误,此指令会将 Status 中的相应位置位,控制算法不会执行且不会更新 Total。
默认值为假。
TimeBase
DINT
时基输入。基于 In 工程单位的累加时基。
0 = 秒
1 = 分钟
2 = 小时
3 = 天
例如,如果 In 的单位为 gal/min,则使用 TimeBase = 分钟。如果该值无效,该指令会将 Status 中的相应位置位,并且不会更新 Total。
有关时序模式的更多信息,请参见“功能块属性”部分。
有效值 = 0 至 3
默认值 = 0
Gain
REAL
增量累加值的乘数。用户可以使用 Gain 来转换累加单位。例如,可以使用 Gain 将 gal/min 转换为以桶为单位的总计值。
有效值 = 任意浮点值
默认值 = 1.0
ResetValue
REAL
复位值输入。OperResetReq 或 ProgResetReq 由假跳变为真时的 Total 重置值。
有效值 = 任意浮点值
默认值 = 0.0
Target
REAL
累加的 In 的目标值。
有效值 = 任意浮点值
默认值 = 0.0
TargetDev1
REAL
Total 预设目标值与 Target 值之间较大的偏差值。此值表示为与 Target 的偏差。
有效值 = 任意浮点值
默认值 = 0.0
TargetDev2
REAL
Total 预设目标值与 Target 值之间较小的偏差值。此值表示为与 Target 的偏差。
有效值 = 任意浮点值
默认值 = 0.0
LowInCutoff
REAL
指令输入下限输入。当 In 等于或小于 LowInCutoff 值时,累加停止。
有效值 = 任意浮点值
默认值 = 0.0
ProgProgReq
BOOL
程序发出的程序控制请求。设置为真时可请求程序控制。如果 ProgOperReq 为真,则忽略该值。若此参数保持为真,并且 ProgOperReq 保持为假,会将指令锁定在程序控制模式。
默认值为假。
ProgOperReq
BOOL
程序发出的操作员控制请求。设置为真时可请求操作员控制。若将此参数保持为真,会将该指令锁定在操作员控制模式。
默认值为假。
ProgStartReq
BOOL
程序启动请求输入。设置为真时可请求累加启动。
默认值为假。
ProgStopReq
BOOL
程序停止请求输入。设置为真时可请求累加停止。
默认值为假。
ProgResetReq
BOOL
程序复位请求输入。设置为真时可请求 Total 复位为 ResetValue。
默认值为假。
OperProgReq
BOOL
操作员发出的程序控制请求。由操作员界面设置为真以请求程序控制模式。指令将该输入设置为假。
默认值为假。
OperOperReq
BOOL
操作员发出的操作员控制请求。由操作员界面设置为真可请求操作员控制模式。指令将该输入设置为假。
默认值为假。
OperStartReq
BOOL
操作员启动请求输入。由操作员界面设置为真可请求累加启动。指令将该输入设置为假。
默认值为假。
OperStopReq
BOOL
操作员停止请求输入。由操作员界面设置为真可请求累加停止。指令将该输入设置为假。
默认值为假。
OperResetReq
BOOL
操作员复位请求输入。由操作员界面设置为真可请求累加复位。指令将该输入设置为假。默认值为假。
ProgValueReset
BOOL
将程序控制值复位。该值为真时,每次执行指令时,所有程序请求输入都将设置为假。
默认值为假。
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
指示指令是否处于启用状态。如果 Total 值溢出,则设置为假。
Total
REAL
累加值(如果出现 In 值)。
OldTotal
REAL
复位前的总计值。可通过监视该值来读取最近一次复位前的确切总计值。
ProgOper
BOOL
程序/操作员控制指示器。在程序控制模式下为真。在操作员控制模式下为假。
RunStop
BOOL
累加器运行状态指示器。TOT 指令运行时为真。TOT 指令停止时为假。
ProgResetDone
BOOL
该指示器用于指示 TOT 指令已完成程序复位请求。指令因 ProgResetReq 而复位时,设置为真。可通过监视此参数来确定是否已成功完成复位。ProgResetReq 为假时设置为假。
TargetFlag
BOOL
Total 值的标志。当 Total Greater than or equal to Target 时,设置为 true。
TargetDev1Flag
BOOL
TargetDev1 值的标志。当 Total Greater than or equal to Target - TargetDev1 时,设置为 true。
TargetDev2Flag
BOOL
TargetDev2 值的标志。当 Total Greater than or equal to Target - TargetDev2 时,设置为 true。
LowInCutoffFlag
BOOL
指令输入下限标志输出。在以下情况下设置为真
In £ LowInCutoff。
DeltaT
REAL
两次更新间隔的时间。控制算法计算过程输出所用的时间(秒)。
Status
DINT
功能块的状态。
InstructFault (Status.0)
BOOL
该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。
InFaulted (Status.1)
BOOL
In 值有误。
TimeBaseInv (Status.2)
BOOL
TimeBase 值无效。
TimingModeInv (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 值无效。如果在过采样时序模式下 OversampleDT 值无效,则可能发生此情况。
说明
该指令通常根据流量信号对一定时间内添加的物料量进行累加。
TOT 指令支持以下功能:
  • 将时基选择为秒、分、小时或天。
  • 可指定一个目标值和最多两个预设目标值。预设目标值通常用于切换为更慢的给料速度。相应的数字标志会指示是否达到目标值或预设目标值。
  • 可使用低流量输入下限值,来避免在进料流停止时因微小的流量计校准错误而发生负向累加。
  • 可由操作员或程序控制启动/停止/复位功能。
  • 可由用户自定义复位值。
  • 支持梯形规则的数字积分,可提高准确度。
  • 内部累加采用双精度运算方式,可提高准确度。
监视 TOT 指令
TOT 指令有相应的操作员面板。
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性
执行
功能块
条件/状态
执行的操作
预扫描
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为假
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为真
EnableIn 和 EnableOut 位设置为真。
指令执行。
指令首次运行
Total 设置为 ResetValue。
OldTotal 清零为 0.0。
ProgOper 设置为假。
指令首次扫描
所有操作员请求输入设置为假。如果 ProgValueReset 为真,则所有程序请求输入设置为假。
后扫描
EnableIn 和 EnableOut 位设置为假。
结构化文本
条件/状态
执行的操作
预扫描
请参见“功能块”表中的“预扫描”行。
正常执行
请参见“功能块”表中的“Tag.EnableIn 为真”行。
后扫描
请参见“功能块”表中的“后扫描”行。
检查低流量输入下限
如果 (In <= LowInCutoff),则指令将 LowInCutoffFlag 设置为真,并使 In(n-1) = 0.0。
否则,指令将 LowInCutoffFlag 设置为假。
LowInCutoffFlag 为真时,会确定工作模式,但停止累加。
LowInCutoffFlag 为假时,该次扫描将继续累加。
工作模式
下图显示了 TOT 指令在程序控制与操作员控制模式之间进行切换的方式。
TOT instruction changes.png
(1) 当 ProgOperReq 为真时,指令保持在操作员控制模式。
下图显示了 TOT 指令在运行模式和停止模式之间进行切换的方式。
TOT changes between Run amd Stop modes
(1) 停止请求优先于启动请求。
(2) 停止后再次运行时的首次扫描期间,不计算累加值,但更新 In
n-1
下次扫描时,继续进行累加。
每次扫描结束时,所有操作员请求输入都将设置为假。如果 ProgValueReset 为真,每次扫描结束时,所有程序请求输入都将设置为假。
复位 TOT 指令
如果 ProgOper 为真,当 ProgResetReq 跳变为真值时,将发生以下情况:
  • OldTotal = Total
  • Total = ResetValue
  • ProgResetDone 设置为真
如果 ProgResetReq 为假且 ProgResetDone 为真,则 ProgResetDone 设置为假
如果 ProgOper 为假,当 OperResetReq 跳变为真值,将发生以下情况:
  • OldTotal = Total
  • Total = ResetValue
计算累加值
当 RunStop 为真且 LowInCutoffFlag 为假时,将根据以下公式进行累加计算。
TOT Calculating the Totalization
其中 TimeBase 为:
条件
1
TimeBase = 0(秒)
60
TimeBase = 1(分钟)
3600
TimeBase = 2(小时)
86400
TimeBase = 3(天)
确定是否达到目标值
计算出累加值后,将根据以下规则确定是否达到目标值或预设目标值:
  • 当 Total Greater than or equal toTarget 时,TargetFlag 为 true
  • 当 Total Greater than or equal to (Target - TargetDev1) 时,TargetDev1Flag 为 true
  • 当 Total Greater than or equal to (Target - TargetDev2) 时,TargetDev2Flag 为 true
示例
在本示例中,使用 TOT 指令计量加入水箱中的水量,当添加量达到特定值后,水流关闭。按下 AddWater 按钮后,TOT 指令会复位并开始累加流入水箱的水量。达到 Target 值后,TOT 指令将 TargetFlag 输出置位,使电磁阀关闭。在此示例中,通过将 ProgProgReq 和 ProgStartReq 输入置位,将 TOT 指令“锁定”到程序运行模式。这样,操作员便无需再直接控制 TOT 指令。
功能块
L5K_TOT_FB_ex_v32
结构化文本
TotalWaterFlow.In := WaterFlowRate;
TotalWaterFlow.ProgProgReq := 1;
TotalWaterFlow.ProgStartReq := 1;
TotalWaterFlow.ProgResetReq := AddWater;
TOT(TotalWaterFlow);
RESD_01.Set := AddWater;
RESD_01.Reset := TotalWaterFlow.TargetFlag;
RESD(RESD_01);
WaterSolenoidValve := RESD_01.Out;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal