计算 (CPT)

此信息适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370、GuardLogix 5570、Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器。在适用的情况下会注明控制器的差异。
启用后,CPT 指令会求表达式的值并将结果放入 Dest 中。
CPT 指令支持在一个指令中实现复杂的表达式。
如果符合以下任一条件,对表达式进行求值时,在执行计算前会将所有非 LREAL 类型的操作数转换为 LREAL 类型:
  • 表达式中的任一操作数为 LREAL 类型。
  • Dest 为 LREAL 类型。
如果表达式中任一操作数或 Dest 为非 REAL 类型,且符合以下任一条件,则对表达式求值时,在执行计算前会将所有非 REAL 类型的操作数转换为 REAL 类型:
  • 表达式中的所有操作数均为 REAL 类型。
  • 表达式中包含 SIN、COS、TAN、ASN、ACS、ATN、LN、LOG、DEG 或 RAD。
  • Dest 为 REAL 类型。
在安全应用中允许使用的运算符需要遵从相关规则。请参见
有效运算符
部分。
可用语言
梯形图
L5K_CPT_LD_avail_v31
功能块
此指令不可用于功能块中。
结构化文本
此指令不可用于结构化文本中。
操作数
重要提示: 以下情况下会导致运行出现意外:
  • 输出标签操作数被覆盖。
  • 结构操作数的成员被覆盖。
  • 除非另外指定,否则结构操作数由多条指令共用。
指令中混用数据类型时,需遵从相关的数据转换规则。请参阅数据转换“数据转换”部分。
梯形图
操作数
数据类型
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
数据类型
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
格式
说明
Dest
SINT
INT
DINT
REAL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
标签
用于存储结果的标签。
Expression
SINT
INT
DINT
REAL
SINT
INT
DINT
LINT
USINT
UINT
UDINT
ULINT
REAL
LREAL
立即数
标签
表达式由标签和/或立即数组成,并以运算符分隔。
规范表达式的格式
对于表达式中使用的每个运算符,必须为其提供一到两个操作数(标签或立即数)。可使用下表规范表达式中运算符和操作数的格式。
对如下数量的操作数进行运算的运算符:
使用此格式:
示例
一个操作数
运算符(操作数)
ABS(tag)
两个操作数
operand_a 运算符 operand_b
tag_b + 5
tag_c AND tag_d
(tag_e**2) MOD (tag_f / tag_g)
确定运算顺序
该指令遵照上述顺序进行表达式运算。使用括号分组来指定运算顺序。这样可以强制指令先执行括号内运算,然后再执行其它运算。
相同顺序的运算从左至右执行。
Order
操作
1
( )
2
ABS, ACOS, ASIN, ATAN, COS, DEG, BCD_TO, LN, LOG, RAD, SIN, SQRT, TAN, TO_BCD, TRUNC
3
**
4
-(取反),NOT
5
*,/,MOD
6
-(减),+
7
AND
8
XOR
9
OR
影响数学状态标志
控制器
影响数学状态标志
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器
在一定条件下影响
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器
请参见数学状态标志部分。
严重/轻微故障
没有特定于此指令的故障。请参见“数组索引编制”通过数组建立索引,了解关于数组索引故障的信息。
执行
梯形图
条件/状态
执行的操作
预扫描
不适用
梯级输入条件为假
将梯级输出条件设置为梯级输入条件。
梯级输入条件为真
将梯级输出条件设置为梯级输入条件。
指令会求表达式的值并将结果放入 Dest 中。
后扫描
不适用
示例
梯形图
示例 1
使能后,CPT 指令首先计算 value_1 乘以 5,然后将得出的结果与 value_2 除以 7 的结果相除,并将最终结果放入 result_1。
CPT Result
CPT_LD_ex1_v31
示例 2
使能后,CPT 指令首先将 float_value_1 和 float_value_2 截断并计算截断后的 float_value_2 的 2 次方,再将截断后的 float_value_1 除以该结果,然后将除得的余数存储在 float_value_result_cpt 中。
梯形图
L5K_CPT_LD_ex2_v31
CPT Result Example 2
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal