数学运算指令主要包括整数和浮点数运算指令。整数运算指令又包括整数、双整数的加、减、乘、除、加1、减1指令,整数乘法产生双整数指令和带余数的整数除法指令;浮点数运算指令又包括浮点数加、减、乘、除、三角函数指令、自然对数及自然指数指令、平方根指令等。
整数运算指令的梯形图及语句表如表4-18所示。
在梯形图中,整数的加、减、乘、除、加1、减1指令分别执行下列运算:
IN1+IN2=OUT IN1-IN2=OUT IN1*IN2=OUT IN1/IN2=OUT IN+1=OUT IN-1= OUT
在语句表中,整数的加、减、乘、除、加1、减1指令分别执行下列运算:
IN1+OUT=OUT OUT-INI =OUT INI* OUT=OUT OUT/IN1 =OUT OUT+l =OUT OUT-1 =OUT
(1) 整数的加、减、乘、除运算指令
整数的加、减、乘、除运算指令是将两个16位整数进行加、减、乘、除运算,产生一 个16位的结果,而除法的余数不保留;双整数的加、减、乘、除运算指令是将两个32位整数进行加、减、乘、除运算,产生一个32位的结果,而除法的余数不保留。
(2) 整数乘法产生双整数指令
整数乘法产生双整数指令(Multiply Integer to Double Integet, MUL)是将两个16位整数相乘,产生一个32位的结果。在语句表中,32位OUT的低16位被用作乘数。
(3) 带余数的整数除法指令
带余数的整数除法(Divide Integer with Remainder, DIV)是将两个16位整数相除,产生一个32位的结果,其中高16位为余数,低16位为商。在语句表中,32位OUT的低16 位被用作被除数。
(4) 整数运算指令使用说明
1) 表中指令执行将影响特殊存储器SM中的SM1.0 (零)、SM1.1 (溢出)、SM1.2 (负)、SM1.3(除数为0)。
2) 若运算结果超出允许的范围,溢出位SM1.1置1。
3) 若在乘除法操作中溢出位SM1.1置1,则运算结果不写到输出,且其他状态位均清0。
4) 若除法操作中,除数为0,则其他状态位不变,操作数也不改变。
5) 字节加1和减1操作是无符号的,字和双字的加1和减1操作是有符号的。 整数运算指令的操作数范围如表4-19所示。
浮点数运算指令的输入参数IN与输出参数OUT均为实数(即浮点数),指令执行后影响零标志SM1.0、溢出标志SM1.1和负数标志SM1.2。三角函数运算指令用于计算输入参数 IN (角度)的三角函数,结果存放在输出参数OUT指定的地址中,输入值是以弧度为单位的浮点数,求三角函数前应先将以度为单位的角度乘以Π/180 (0.017 453 29)。浮点数运算指令的梯形图及语句表如表4-20所示。
1) 实数的加、减、乘、除运算指令是将两个32位实数进行加、减、乘、除运算,产生 一个32位的结果。
2) 对于数学函数指令,SM1.1用于指示溢出错误和非法值。如果SM1.1置位,则 SM1.0和SM1.2的状态无效,原始输入操作数不变。如果SM1.1未置位,则数学运算已完成且结果有效,并且SM1.0和SM1.2包含有效状态。
3) 平方根指令SQRT (Square Root)将32位正实数IN开平方,得到32位实数运算结果 OUT。
4) 自然对数指令LN (Natural Logarithm)计算输入值IN的自然对数,并将结果存放在输出参数OUT中,即LN(IN)=OUT。求以10为底的对数时,应将自然对数值除以2.302 585 (10的自然对数值)。
5) 自然指数指令EXP (Natural Exponential)计算输入值IN的以e为底的指数(e约等 于2.718 28),结果用OUT指定的地址存放。该指令与自然对数指令配合,可以实现以任意实数为底,任意实数为指数的运算。
6) PID回路指令(PID)根据输入和表(TBL)中的组态信息对引用的LOOP执行PID回路计算。
【例4-6】求3的4次方的值。
34=EXP(4 X LN(3.0))= 81.0
浮点数运算指令的操作数范围如表4-21所示。
知识点词条:数学运算指令