移位指令可以可以将累加器1的低字或整个累加器的内容进行左移或右移一定的位数。二进制数左移一位相当于将原数值乘以2。右移一位相当于将原数值除以2。
移位指令是根据PLC的扫描周期工作的。如果I00前不加P,I00动作一次则PLC扫描几百次,位移指令就执行几百次(QB0的状态已经移动完毕,换成循环位移则可以看到状态持续的变化)。如果加P,I00动作一次则QB0的状态移动一次。
扩展资料:
注意事项:
1、如果位数N大于或等于最大允许值(对于字节 *** 作为8,对于字 *** 作为16,对于双字 *** 作为32),那么移位 *** 作的次数为最大允许值如果移位次数大于0,溢出标志位(SM11)上就是最近移出的位值。
2、如果移位 *** 作的结果为0,零存储器位(SM10)置位,字节 *** 作是无符号的。对于字和双字 *** 作,当使用有符号数据类型时,符号位也被移动。
3、移位寄存器指令把输入的DATA数值移入移位寄存器。其中S_BIT指定移位寄存器的最低位,N指定移位寄存器的长度和移位方向(正向移位=N,反向移位=-N)。
参考资料来源:百度百科-移位指令
参考资料来源:百度百科-西门子S7-200系列PLC
参考资料来源:百度百科-西门子
这些是V寄存器中不同数据类型du表示方法:VB byte型,zhiVW word型,VD doubleword型,使用时按需要选择。例如VB0,VB1……或者shuVW0,VW2……或者VD0,VD4,VD8……(不能重复,即不能用VD0,VD2等等)。
vd :4个字节,那么vd0这个地址包含vb0,vb1,vb2,vb3,vd2则包含vb2,vb3,vb4,vb5四个字节,显然重复,微机原理有讲。传送时与传送指令配合即可(传送指令有数据类型的分别)。
在VB中,注释有2种方式。
1、以Rem关键字开头,并且Rem关键字与注释内容之间要加一个空格。注释可以是单独的一行,也可以写在其他语句行的后面。如果在其他语句行后使用Rem关键字,则必须使用冒号(:)与语句隔开。
2、使用一个撇号(')来代替Rem关键字。若使用撇号,则在其他语句行使用时不必加冒号。
百度百科-Visual Basic
移位寄存器位指令将 DATA 的位值移入移位寄存器。S_BIT指定移位寄存器最低有效位的位置。N 指定移位寄存器的长度和移位方向(正向移位 = N,反向移位 = -N)。
将 SHRB 指令移出的每个位值复制到溢出存储器位 SM11 中。
移位寄存器位由最低有效位 S_BIT 位置和长度 N 指定的位数定义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)