您现在所在的是:

西门子SIEMENS

回帖:4个,阅读:2334 [上一页] [1] [下一页]
1053
技成小蔡老师
文章数:93
年度积分:50
历史总积分:1053
注册时间:2014/8/21
发站内信
发表于:2014/11/6 15:28:08
#0楼
 之前有说要学习一下移位循环指令的,那么今天就开始学习一下移位循环指令的使用吧。移位指令有左移也有右移,移位指令也分有字节、字、双字类型的移位,同样的,循环指令也有左移右移,也有字节、字、双字类型的循环。除此之外,我们也可以在指令列表看到还有SHRB移位寄存器指令。这些指令我们都要灵活地掌握,掌握了这些指令,在以后编程的时候有时可以做到简化程序的效果,所以它还是比较有用的指令。
附件 1.jpg

   下面先学习一下移位指令,移位指令格式里面有使能输入、输入、输出和移位位数N。下面就以字节移位指令为例看一下,字节左移SHR_B和字节左移SHL_B指令是将输入字节(或字或双字)数值根据移位位数向左或向右移动,并将结果送输出字节(或字或双字)。我们要注意的是对一个数左移一位相当于乘以2,右移一位相当于除以2。

   对于移位指令,我们要注意的是移位指令是对每个移出的位进行自动补0的。如果移位位数大于或等于8(或字操作16或双字操作32),那么数值最多是被移位8(或字操作16或双字操作32)次的。当移位位数大于或等于最大允许值时,其实就相当于进行清零的操作。

   除此之外,我们还要注意特殊内存位的使用,对于SM1.0,如果移位结果是零,则SM1.0被置位;对于SM1.1,就是把最后一次移出位的数值被复制到SM1.1,要注意这个前提是移位位数大于0。我们要注意的是SM1.0和SM1.1是会自动复位的。

   就以下面这个程序来说明一下指令的使用,这条指令是I0.0接通执行移位操作,它是接通一次移位一次的,若VW200写入的是1110 0010 1010 1101,因为移位位数是3,那么移位的最后结果是0001 0101 0110 1000的。因为移位位数是大于0的,最后一位移出位的数值是1,那么就把SM1.1置为1。
附件 2.jpg
附件 3.jpg
   下面再学习一下循环移位指令,循环移位指令格式里面一样是有使能输入、输入、输出和移位位数N的。下面就以字节循环移位指令为例看一下,字节循环左移ROR_B和字节循环左移ROL_B指令是将输入字节(或字或双字)数值根据移位位数向左或向右旋转N位,并将结果送输出字节(或字或双字)。

   对于循环移位指令,我们要注意的是如果移位位数大于或等于8(或字操作16或双字操作32),那么执行循环移位之前要先对移位位数N进行模数8(或字操作16或双字操作32)操作,使得移位位数在0~7(或字操作0~15或双字操作0~31)之间,得到一个有效的移位位数。这里说的模数8操作是什么呢?它其实也就是对移位位数N除于8再求余数,举个例子,如果移位位数是20,那么20除于8等于2余4,那么4就是实际移位数目。

   我们要知道如果移位位数为0,这指令也就没有什么意义了,它是不执行循环操作的。如果执行循环操作,也就是移位位数大于0,那么旋转的最后一位数值被复制到SM1.1。对于SM1.1,还有如果移位位数不是8(或16或32)的整数倍,那么旋转出的最后一位数值也被复制到SM1.1;对于SM1.0,当需要循环的数值是零时,SM1.0被置位。
   就以下面这个程序来说明一下指令的使用,这条指令是I0.0接通执行循环操作,若AC0写入的是0100 0000 0000 0001,因为移位位数是2,那么移位的最后结果是0101 0000 0000 0000的。因为移位位数是大于0的,最后一位移出位的数值是0,那么SM1.1就为0。
附件 4.jpg
附件 5.jpg

   下面就以小程序案例的形式讲一下这几个指令。
1、编写跑马灯程序,8个灯从左往右循环点亮,即Q0.0---Q0.7每隔1秒点亮一个灯,周期循环。
附件 6.jpg
2、编写8个灯先全部亮,接着8个灯从左往右依次熄灭,即Q0.0-Q0.7每隔1s熄灭一个灯。
附件 7.jpg
   那么这就是移位指令和循环指令了,今天主要是学习指令的基本使用,这里还有移位寄存器指令没有学习,那么明天就学习一下移位寄存器,并且后面再来学一下对这些指令的应用。


有关于西门子s7-200和三菱方面的问题都可以和我一起交流学习!
这是我的个人微信号:

附件 100339kr1enry9f2qfxfsy.jpg
技成微信号:jcpeixun 工控资料天天有!
6594
eyujiedianqi
文章数:2622
年度积分:50
历史总积分:6594
注册时间:2009/6/5
发站内信
发表于:2014/11/6 20:30:51
#1楼
我在继续学习,谢谢老师的讲解。
964
工控屌丝
文章数:105
年度积分:50
历史总积分:964
注册时间:2014/8/21
发站内信
发表于:2014/11/7 9:43:05
#2楼
表情太久没来看了
长得很帅的屌丝,还是很少见的!特别是这么这么这么欠扁的帅。
1053
技成小蔡老师
文章数:93
年度积分:50
历史总积分:1053
注册时间:2014/8/21
发站内信
发表于:2014/11/13 13:58:45
#3楼
欢迎大家关注我哦!表情
技成微信号:jcpeixun 工控资料天天有!
17578
ahljj
文章数:3386
年度积分:50
历史总积分:17578
注册时间:2002/3/23
发站内信
发表于:2014/11/29 19:01:43
#4楼
跟着我一起来学习s7-200

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004