此处我们介绍算术运算指令, 其包括加/减法指令, 乘/除法指令, 平方根、 指数和自然对数指令, 三角函数指令, 以及增/减计数指令。
1. 加/减法指令
加/减法指令盒由指令类型、 使能端(EN)、 操作数输入端(IN1、 IN2)、 运算结果输出端 (OUT)、 逻辑结果输出端 (ENO) 等组成。 加/减法指令的LAD 格式及功能如表3 -10 -1 所示。
表3-10-1 加/减法指令的LAD 格式及功能
使用STL 格式编写加/减法指令时, 需要使用两条语句, 如表3 -10 -2 所示。
表3-10-2 加/减法指令的STL 格式
当IN1 =OUT 时, STL 格式程序中第一条数据传送指令可省略, 本规律适用于所有算术运算指令。
加/减法指令可影响特殊标志的算术状态位SM1.0 ~SM1.2, 并建立加/减法指令盒能流输出(ENO)。 SM1.1 (溢出) 用来指示溢出错误和非法值, 若SM1.1 置位, 则SM1.0(零) 和SM1.2 (负) 的状态无效, 原始操作数不变。 反之, 可用SM1.0 和SM1.2 来反映算术运算结果。 当使能端(EN) 输入有效、 运算结果无错误时, ENO=1, 否则ENO=0。
将VW200 中的数据与50 相加, 结果存入VW300 中, 其应用示例的梯形图和语句表如图3 -10 -2 所示。
图3-10-2 加法指令的应用示例
(a) 梯形图; (b) 语句表
2. 乘/除法指令
乘/除法指令分为整数乘/除法(MUL I/DIV I)、 双整数乘/除法(MUL DI/DIV DI)、 整数乘/除双整数输出乘/除法(MUL/DIV) 和实数乘/除法(MUL R/DIV R) 8 种类型。 乘/除法指令的LAD 格式及功能如表3 -10 -3 所示。
表3-10-3 乘/除法指令的LAD 格式及功能
与加/减法指令类似, 使用STL 格式编写乘/除法指令时, 也需要使用两条语句, 如表3 -10 -4 所示。
表3-10-4 乘/除法指令的STL 格式
乘/除法指令可影响特殊标志的算术状态位SM1.0 ~SM1.3, 乘法运算过程中SM1.1(溢出) 被置位, 就不写输出, 并且所有其他的算术状态位置0 (MUL 指令不会产生溢出)。如果除法运算过程中SM1.3 (被0 除) 被置位, 其他算术状态位保留不变, 原始输入操作数不变。
乘/除法指令的应用示例如图3 -10 -3 所示(输出地址与输入地址有包含关系时, 语句表不需使用数据传动指令)。(www.xing528.com)
图3-10-3 乘/除法指令的应用示例
3. 平方根、 指数和自然对数指令
平方根、 指数和自然对数指令是把一个双字长32 位的实数(IN) 开方(取以e 为底的指数、 取自然对数), 得到32 位的实数运算结果, 通过指定的存储器单元输出(OUT)。 平方根、 指数和自然对数指令的格式及功能如表3 -10 -5 所示。
表3-10-5 平方根、 指数和自然对数指令的格式及功能
求以10 为底, 150 的常用对数, 150 存于VD100, 结果放到自然对数指令的应用示例如图3 -10 -4 所示。
图3-10-4 自然对数指令的应用示例
(a) 梯形图; (b) 语句表
4. 三角函数指令
三角函数指令包括正弦(SIN)、 余弦(COS) 和正切(TAN) 指令, 三角函数指令把一个双字长32 位的实数弧度值(IN) 取正弦、 余弦或正切, 得到32 位实数运算结果, 通过指定的存储器输出(OUT)。 三角函数指令的格式及功能如表3 -10 -6 所示。
表3-10-6 三角函数指令的格式及功能
求65°的正切值, 三角函数指令的应用示例如图3 -10 -5 所示。
图3-10-5 三角函数指令的应用示例
(a) 梯形图; (b) 语句表
平方根、 指数、 自然对数和三角函数指令执行的结果将影响特殊存储器位: SM1.0(零)、 SM1.1 (溢出)、 SM1.2 (负)、 SM1.3 (被0 除)。
5. 增/减计数指令
增/减计数指令用于自增、 自减操作, 以实现累加计数和循环控制等程序的编制。 增/减计数指令的LAD 格式及功能如表3 -10 -7 所示。
表3-10-7 增/减计数指令的LAD 格式及功能
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。