减 (SUB)

此信息适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370、GuardLogix 5570、Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器。在适用的情况下会注明控制器的差异。
使能后,SUB 指令和运算符“-”用于将 Source A 减 Source B。
可用语言
梯形图
SUB_LD_avail_v31
功能块图
功能块图支持以下元素:
FBD 块
SUB_FBD Block
FBD 函数
小贴士: FBD 函数仅适用于 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器。
FBD Function
结构化文本
此指令不可用于结构化文本中。
小贴士: 在表达式中使用“-”运算符可以计算出相同的结果。有关结构化文本中表达式和赋值语法的信息,请参见结构化文本语法部分。
操作数
重要提示: 以下情况下会导致运行出现意外:
  • 输出标签操作数被覆盖。
  • 结构操作数的成员被覆盖。
  • 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅数据转换“数据转换”部分。
梯形图
操作数
数据类型
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
数据类型
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
格式
说明
Source A
SINT
INT
DINT
REAL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
LTIME*
TIME*
TIME32*
LDT*
DT*
立即数
标签
用来减去 Source B 的值。
Source B
SINT
INT
DINT
REAL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
LTIME*
TIME*
TIME32*
LDT*
DT*
立即数
标签
Source A 要减去的值。
Dest
SINT
INT
DINT
REAL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
LTIME*
TIME*
TIME32*
LDT*
DT*
标签
用于存储指令结果的标签。
小贴士: *在 SUB 指令中使用相对时间(LTIME、TIME32、TIME)和绝对时间(LDT、DT)数据类型时,请牢记以下注意事项:
  • 如果 Source A 和 Source B 均为相对时间,则 Dest 必须为相对时间。
  • 如果 Source A 为相对时间,Source B 为绝对时间,反之亦然,则 Dest 必须为绝对时间。
  • 在 ADD 指令中,Source A 和 Source B 不能同时为绝对时间。
有关相对时间(LTIME、TIME 和 TIME32)和绝对时间(LDT 和 DT)数据类型的完整说明,请参见时间和日期数据类型
功能块图
FBD 块
操作数
数据类型
格式
说明
SUB
FBD_MATH
标签
SUB 结构
FBD_MATH 结构
输入成员
数据类型
说明
EnableIn
BOOL
启用输入。如果为假,指令不会执行,也不会更新输出。
默认值为真。
SourceA
REAL
用来减去 SourceB 的值。
SourceB
REAL
SourceA 要减去的值。
输出成员
数据类型
说明
EnableOut
BOOL
指示指令使能后是否无故障执行。
Dest
REAL
指令结果。
FBD 函数
小贴士: FBD 函数仅适用于 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器。
输入操作数(左侧引脚)
数据类型
仅 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
说明
SourceA(上方)
SINT
USINT
INT
UINT
DINT
UDINT
LINT
ULINT
REAL
LREAL
TIME
TIME32
LTIME
DT
LDT
用来减去 SourceB 的值。
SourceB (bottom)
SINT
USINT
INT
UINT
DINT
UDINT
LINT
ULINT
REAL
LREAL
TIME
TIME32
LTIME
DT
LDT
SourceA 要减去的值。
输出操作数
(右侧引脚)
数据类型
仅 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
说明
Dest
DINT
UDINT
LINT
ULINT
REAL
LREAL
TIME
TIME32
LTIME
DT
LDT
函数的结果。
请参阅 FBD 函数
影响数学状态标志
控制器
影响数学状态标志
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
在一定条件下影响
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
请参见数学状态标志部分。
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”通过数组建立索引,了解关于数组索引故障的信息。
执行
梯形图
条件/状态
执行的操作
预扫描
不适用
梯级输入条件为假
将梯级输出条件设置为梯级输入条件
梯级输入条件为真
将梯级输出条件设置为梯级输入条件
Dest = Source A - Source B
后扫描
不适用
功能块图
FBD 块
条件/状态
执行的操作
预扫描
不适用
EnableIn 为假
将 EnableOut 设为 EnableIn
EnableIn 为真
Dest = SourceA - SourceB
如果发生溢出
将 EnableOut 设置为假
否则
将 EnableOut 设置为真
指令首次运行
不适用
指令首次扫描
不适用
后扫描
不适用
FBD 函数
小贴士: FBD 函数仅适用于 CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器。
条件/状态
执行的操作
预扫描
不适用
普通扫描
Dest = SourceA - SourceB
指令首次运行
不适用
指令首次扫描
不适用
后扫描
不适用
示例
梯形图
SUB_LD_ex_v31
功能块图
FBD 块
SUB_FBD_ex_v31
FBD 函数
SUB_FBD Function
结构化文本
DINT_dest := DINT_srcA - DINT_srcB;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal