您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 新余分类信息网,免费分类信息发布

算术、逻辑运算指令

2024/4/22 5:33:04发布4次查看
目前各种型号的plc普遍具备较强的运算功能。和其他plc不同,s7—200 plc对算术运算指令来说,在使用要注意存储单元的分配。建议大家在使用算术指令和数学指令时,最好用lad形式编程。运算指令包括加法、减法、乘法、除法、数学函数指令、增减和逻辑运算指令。
一、加法
1、整数加法
+i,整数加法指令。使能输入有效时,将两个单字长(16位)的符号整数in1和in2相加,产生一个16位整数结果out。
图1 整数加法
2、双整数加法
+d,双整数加法指令。使能输入有效时,将两个双字长(32位)的符号双整数in1和in2相加,产生一个32位双整数结果out。
在lad和fbd中,以指令盒形式编程,执行结果:in1+in2=out。
在stl中,执行结果:in1+out=out。
out的寻址范围:vd、id、qd、md、sd、smd、ld、ac、*vd、*ac、*ld。
指令格式:+d in1, out
3、+r,实数加法指令
使能输入有效时,将两个双字长(32位)的实数in1和in2相加,产生一个32位实数结果out。
在lad和fbd中,以指令盒形式编程,执行结果:in1+in2=out。
out的寻址范围:vd、id、qd、md、sd、smd、ld、ac、*vd、*ac、*ld。
本指令影响的特殊存储器位:sm1.0(零);sm1.1(溢出);sm1.2(负)。
二、减法
减法指令是对有符号数进行相减操作。包括:整数减法、双整数减法和实数减法。这三种减法指令与所对应的加法指令除运算法则不同之外,其他方面基本相同。
图2 减法
在lad和fbd中,以指令盒形式编程,执行结果:in1-in2=out。
在stl中,执行结果: out- in2=out。
指令格式: -i in2, out (整数减法);-d in2, out (双整数减法);-r in2, out (实数减法)
例: -i ac0, vw4
图3 减法运算
三、乘法
1、整数乘法
*i,整数乘法指令。使能输入有效时,将两个单字长(16位)的符号整数in1和in2相乘,产生一个16位整数结果out。
指令格式:*i in1,out
例:*i vw0,ac0
图4 乘法
图5 乘法
2、完全整数乘法
mul,完全整数乘法指令。使能输入有效时,将两个单字长(16位)的符号整数in1和in2相乘,产生一个32位双整数结果out。
在lad和fbd中,以指令盒形式编程,执行结果:in1*in2=out。
out的寻址范围:vd、id、qd、md、sd、smd、ld、ac、*vd、*ac、*ld。
本指令影响的特殊存储器位:sm1.0(零);sm1.1(溢出);sm1.2(负);sm1.3(被0除)。
指令格式: mul in1,out
例: mul ac0,vd10
3、双整数乘法
*d,双整数乘法指令。使能输入有效时,将两个双字长(32位)的符号整数in1和in2相乘,产生一个32位双整数结果out。
在stl中,执行结果:in1*out=out。
n1和in2的寻址范围:vd、id、qd、md、sd、smd、ld、hc、ac、*vd、*ac、*ld和常数。
out的寻址范围:vd、id、qd、md、sd、smd、ld、ac、*vd、*ac、*ld。
本指令影响的特殊存储器位:sm1.0(零);sm1.1(溢出);sm1.2(负);sm1.3(被0除)。
指令格式:*d in1,out
例:*d vd0,ac0
4、实数乘法
*r,实数乘法指令。使能输入有效时,将两个双字长(32位)的实数in1和in2相乘,产生一个32位实数结果out。
在lad和fbd中,以指令盒形式编程,执行结果:in1*in2=out。
在stl中,执行结果:in1*out=out。
in1和in2的寻址范围:vd、id、qd、md、sd、smd、ld、ac、*vd、*ac、*ld和常数。
out的寻址范围:vd、id、qd、md、sd、smd、ld、ac、*vd、*ac、*ld。
本指令影响的特殊存储器位:sm1.0(零);sm1.1(溢出);sm1.2(负);sm1.3(被0除)。
指令格式:*r in1,out
例:*r vd0,ac0
四、除法
在lad和fbd中,以指令盒形式编程,执行结果: in1/in2=out。
在stl中,执行结果: out/ in2=out。
指令格式: /i in2, out(整数除法)
div in2, out(整数完全除法)
/d in2, out(双整数除法)
/r in2, out(实数除法)
图6 除法
例:div vw10, vd100
/i vw20, vw200
两条指令的编程及执行情况比较如图所示。
图7 指令执行图
对于完全除法指令:
图8 完全除法指令
对于除法指令:
图9 除法指令
图10 算术运算举例
图11 算术运算举例
五、数学函数指令
1、平方根
sqrt,平方根指令。把一个双字长(32位)的实数in开平方,得到32位的实数结果。
在lad和fbd中,以指令盒形式编程,执行结果:sqrt(in)=out。
在stl中,执行结果:sqrt(in)=out。
本指令影响的特殊存储器位:sm1.0(零);sm1.1(溢出和非法值);sm1.2(负)。
使能流输出eno断开的出错条件:sm1.1(溢出);sm4.3(运行时间);0006(间接寻址)。
指令格式: sqrt in,out
例: sqrt vd0,ac0
图12 平方根
2、自然对数
ln,自然对数指令。将一个双字长(32位)的实数in取自然对数,得到32位的实数结果。
应用实例:求以10为底的50(存于vd0)的常用对数,结果放到ac0。
图13 自然对数
3、指数
exp,指数指令。将一个双字长(32位)的实数in取以e为底的指数,得到32位的实数结果out。
在lad和fbd中,以指令盒形式编程,执行结果:exp(in)=out。
在stl中,执行结果:exp(in)=out。
指令格式: exp in, out
例: exp vd0, ac0
图14 指数
4、正弦、余弦、正切sin、cos、tan,即正弦、余弦、正切指令。将一个双字长(32位)的实数弧度值in分别取正弦、余弦、正切,各得到32位的实数结果。
如果已知输入值为角度,要先将角度值转化为弧度值,方法:使用(*r)mul_r指令用角度值乘以π/180°即可。
图15 正弦余弦正切
例: tan vd0, ac0
应用实例:求cos160°的值。
图16 应用实例
六、增减指令
1、字节增和字节减
incb,字节增指令。使能输入有效时,把一字节长的无符号输入数(in)加1,得到一字节的无符号输出结果out。
decb,字节减指令。使能输入有效时,把一字节长的无符号输入数(in)减1,得到一字节的无符号输出结果out。
图17 字节增和字节减
2、字增和字减
图18 字增和字减
3、双字增和双字减
incd,双字增指令。使能输入有效时,把双字长(32位)的有符号输入数(in)加1,得到双字长的有符号输出结果out。
decd,双字减指令。使能输入有效时,把双字长的有符号输入数(in)减1,得到双字长的有符号输出结果out。
图19 双字增和双字减
4、应用实例
控制要求:食品加工厂对饮料生产线上的盒装饮料进行计数,每24盒为一箱,要求能记录生产的箱数。
图20 应用实例
七、逻辑运算
1、字节逻辑运算
字节逻辑运算包括字节与、字节或、字节异或、字节取反。
图21 字节逻辑运算
2、字逻辑运算
字节逻辑运算包括字节与、字节或、字节异或、字节取反。
图22 字逻辑运算
3、双字逻辑运算
字逻辑运算包括双字与、双字或、双字异或、双字取反。
图23 双字逻辑运算
图24
图25
新余分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录