1 计算指令 (CPT )
CPT 指令是一条输出指令。

操作数:
操作数: | 数据类型: | 格式: | 说明: |
目的单元 | sINT INT DINT REAL | 标签 | 存储结果的标签 |
表达式 | sINT 1NT DINT REAL | 立即数 标签 | 表达式由运算符分开 的标签/立即数组成。 |
说明:CPT 指令执行表达式中定义的算术运算。当指令被使能时 CPT 指令计算表达式的数值 并且存放结果于目的单元内。与其它算术指令运算相比 CPT 指令的运算速度稍慢而 且占用 更多的内存。CPT 指令的优点是它允许用户在一条指令内输入复杂的表达式。
有效运算符:
运算符: | 说明: | 最优数据类型: |
+ | 加 | D INT, REAL |
- | 减/非 | D INT, REAL |
* | 乘 | D INT, REAL |
/ | 除 | D INT, REAL |
** | 指数(xtoy) | D INT, REAL |
ACS | 反余弦 | REAL |
AND | 按位与 | DINT |
ASN | 反正弦 | REAL |
ATN | 反正切 | REAL |
COS | 余弦 | REAL |
DEG | 弧度转换成角度 | D INT, REAL |
FRD | BCD码转换成整数 | DINT |
LN | 自然对数 | REAL |
LOG | 以 10 为底的对数 | REAL |
NOT | 位补码 | DINT |
OR | 按位 0R | DINT |
RAD | 角度转换成弧度 | D INT, REAL |
SIN | 正弦 | REAL |
SQR | 平方根 | D INT, REAL |
TAN | 正切 | REAL |
TOD | 整数转换成 BCD | DINT |
XOR | 按位异或 | DINT |
确定运算顺序 指令按预先规定的顺序而不必按用户列出的顺序执行写入表达式的运算。可 以通过把分组项组合到圆括号内来改变运算顺序强制指令在执行其他运算之前执行圆括号 内的运算来改变运算顺序。同级的运算顺序是从左向右执行。
顺序: 运算符: |
1 ACS , ASN , ATN , COS , DEG , FRD , LN , LOG , RAD , S IN , SQR , TAN TOD |
2 ** |
3 -(取反)NOT |
4 * , / |
5 -(减)+ |
6 AND |
7 XOR |
8 OR |
执行:
条件: | 动作: |
预扫描 | 梯级输出条件被设置为假。 |
梯级输入条件为假 | 梯级输出条件被设置为假。 |
梯级输入条件为真 | 指令计算表达式并存放结果于目的单元梯 级输出条件被设置为真。 |
算术状态标志: 影响算术状态标志
故障条件: 无 CPT指令举例: 当指令被使能时 CPT 指令计算 value_ 1 乘以 5 的结果, 然后此结果被 value_2 除以 7 的结果 除并把最后结果存放在 result_ 1 内.

2 加法指令(ADD)
ADD 指令是一条输出指令。
操作数:
操作数 | 数据类型 | 格式 | 说明 |
源A | SINT INT DINT REAL | 立即数 标签 | 与源B操作数相加的 值。 |
说明:ADD 指令使源 A 操作数与源 B 操作数相加并存放计算结果于目的单元内。
执行:
条件: | 动作: |
预扫描 | 梯级输出条件被设置为假。 |
梯级输入条件为假 | 梯级输出条件被设置为假。 |
梯级输入条件为真 | 目的单元=源A+源B,梯级输出条件被 设置为真。 |
算术状态标志: 影响算术状态标志
故障条件: 无 ADD指令举例: 当指令使能时 ADD 指令使 float_value_ 1 与 float_value_2 相加并存放结果于 add _result 内。

3 减法指令(SUB)
SUB 指令是一条输出指令。
操作数:
操作数 | 数据类型 | 格式 | 说明 |
源A | SINT INT DINT REAL | 立即数 标签 | 减去源B操作数相加 的值。 |
源B | SINT INT DINT REAL | 立即数 标签 | 从源A操作数减去的 值 |
目的单元 | SINT INT DINT REAL | 标签 | 存放计算结果的标 签。 |
说明:SUB 指令使源 A 操作数减去源 B 操作数并存放结果于目的单元内。
执行:
条件: | 动作: |
预扫描 | 梯级输出条件被设置为假。 |
梯级输入条件为假 | 梯级输出条件被设置为假。 |
梯级输入条件为真 | 目的单元=源A一源B梯级输出条件被 设置为真。 |
算术状态标志: 影响算术状态标志
故障条件: 无SUB指令举例:
当指令使能时 SUB 指令使 float _value_ 1 减去 float_ value_2 并存放结果于 subtract_result 内。

4 乘法指令(MUL)
MUL 指令是一条输出指令。 操作数:
操作数 | 数据类型 | 格式 | 说明 |
源A | SINT INT DINT REAL | 立即数 标签 | 被乘数 |
源B | SINT INT DINT REAL | 立即数 标签 | 乘数 |
目的单元 | SINT INT DINT REAL | 标签 | 存放计算结果的 标签。 |
说明:MUL 指令使源 A 操作数与源 B 操作数相乘并存放计算结果于目的单元。
执行:
条件: | 动作: |
预扫描 | 梯级输出条件被设置为假。 |
梯级输入条件为假 | 梯级输出条件被设置为假。 |
梯级输入条件为真 | 目的单元=源A*源B,梯级输出条件被 设置为真。 |
算术状态标志: 影响算术状态标志
故障条件: 无 MUL指令举例: 当指令使能时 MUL 指令使 float_value_ 1 与 float_value_2 相乘并存放结果于 multjply_result 内。

5 .除法指令(DIV)
DIV指令是一条输出指令。
操作数:
操作数 | 数据类型 | 格式 | 说明 |
源A | SINT INT DINT REAL | 立即数 标签 | 被除数值。 |
源B | SINT INT DINT REAL | 立即数 标签 | 除数值。 |
说明:DIV 指令使源 A 操作数被源 B 操作数除并存放结果于目的单元。
执行:
条件: | 动作: |
预扫描 | 梯级输出条件被设置为假。 |
梯级输入条件为假 | 梯级输出条件被设置为假。 |
梯级输入条件为真 | 目的单元=源A/源B, 梯级输出条件被 设置为真。 |
算术状态标志: 影响算术状态标志
故障条件: 无 DIV指令举例: 当指令使能时 DIV 指令使 float_value_ 1 被 float_value_2 除并存放结果于 pide_result 内。

6 平方根指令(SQR)
SQR 指令是一条输出指令。
操作数:
操作数 | 数据类型 | 格式 | 说明 |
源 | SINT INT DINT REAL | 立即数 标签 | 计算该值的平方 根。 |
目的单元 | SINT INT DINT REAL | 立即数 标签 | 存放计算结果的 标签。 |
说明: SQR 指令计算源操作数的平方根并存放计算结果于目的单元内。如果源操作数是负数 则指令在计算源操作数的平方根之前先计算其绝对值。
执行:
条件: | 动作: |
预扫描 | 梯级输出条件被设置为假。 |
梯级输入条件为假 | 梯级输出条件被设置为假。 |
梯级输入条件为真 | 目的单元=梯级输出条件被设置为真。 Destination=(Soure)1/2 |
算术状态标志: 影响算术状态标志
故障条件: 无
SQR指令举例:
当指令被使能时 SQR 指令计算value_ 1 的平方根并存放计算结果于 sqr_result 内。
7 取反指令(NEG)
NEG 指令是一条输出指令。
操作数:
操作数 | 数据类型 | 格式 | 说明 |
源 | SINT INT DINT REAL | 立即数 标签 | 要取反的数值。 |
目的 | SINT INT DINT REAL | 立即数 标签 | 存放计算结果的 标签。 |
说明: NEG 指令改变源操作数的符号并存放结果于目的单元。如果对一个负数取反则结果是 正数。如果对正数取反则结果是负数。
执行:
条件: | 动作: |
预扫描 | 梯级输出条件被设置为假。 |
梯级输入条件为假 | 梯级输出条件被设置为假。 |
梯级输入条件为真 | 目的单元=0一源操作数,梯级输出条件 被设置为真。 |