浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
鹰潭西门子CPU代理商
观看鹰潭西门子CPU代理商视频:

鹰潭西门子CPU代理商鹰潭西门子CPU代理商鹰潭西门子CPU代理商

SIEMENS西门子电源代理商,湖北西门子PLC代理商,荆门西门子触摸屏代理商,上海西门子变频器代理商,北京西门子交换机供应商,江苏CPU模块代理商,浙江西门子S7-200,S7-300,S7-1500,S7-1200系列代理商,广州西门子电机代理商,

3VT8550-1AA03-0AA03VT630N500 TMF F/3P
3VT8563-1AA03-0AA03VT630N630 TMF F/3P
3VT8540-1AA04-0AA03VT630N400 TMF F/4P
3VT8550-1AA04-0AA03VT630N500 TMF F/4P
3VT8563-1AA04-0AA03VT630N630 TMF F/4P
3VT8540-2AA03-0AA03VT630H400 TMF F/3P
3VT8550-2AA03-0AA03VT630H500 TMF F/3P
3VT8563-2AA03-0AA03VT630H630 TMF F/3P
3VT8540-2AA04-0AA03VT630H400 TMF F/4P
3VT8550-2AA04-0AA03VT630H500 TMF F/4P
3VT8563-2AA04-0AA03VT630H630 TMF F/4P
3VT8540-3AA03-0AA03VT630L400 TMF F/3P
3VT8550-3AA03-0AA03VT630L500 TMF F/3P
3VT8563-3AA03-0AA03VT630L630 TMF F/3P
3VT8540-3AA04-0AA03VT630L400 TMF F/4P
3VT8550-3AA04-0AA03VT630L500 TMF F/4P
3VT8563-3AA04-0AA03VT630L630 TMF F/4P

湖北西门子电缆代理商,SIEMENS模块授权代理商。上海SIEMEN西门子触摸屏授权总代理商,上海西门子触摸屏授权一级代理商,金华西门子模块授权一级代理商,宁波西门子CPU模块一级代理商、移位指令有左移也有右移,移位指令也分有字节、字、双字类型的移位,同样的,循环指令也有左移右移,也有字节、字、双字类型的循环。除此之外,我们也可以在指令列表看到还有SHRB移位寄存器指令。这些指令我们都要灵活地掌握,掌握了这些指令,在以后编程的时候有时可以做到简化程序的效果,所以它还是比较有用的指令。


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

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

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

    就以下面这个程序来说明一下指令的使用,这条指令是I0.0接通执行移位操作,它是接通一次移位一次的,若VW200写入的是1110 0010 1010 1101,因为移位位数是3,那么移位的后结果是0001 0101 0110 1000的。因为移位位数是大于0的,后一位移出位的数值是1,那么就把SM1.1置为1。



    下面再学习一下循环移位指令,循环移位指令格式里面一样是有使能输入、输入、输出和移位位数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。



    下面就以小程序案例的形式讲一下这几个指令。

1、编写跑马灯程序,8个灯从左往右循环点亮,即每隔1秒点亮一个灯,周期循环。

Q图片20150416152824.jpg

src=http___cos.solepic.com_20190425_b_5234664_201904251250272495.jpg&refer=http___cos.solepic.webp.jpg

2、编写8个灯先全部亮,接着8个灯从左往右依次熄灭,即每隔1s熄灭一个灯。

鹰潭西门子CPU,代理商,电源模块,交换机,PLC供应

鹰潭西门子CPU,代理商,电源模块,交换机,PLC供应鹰潭西门子CPU,代理商,电源模块,交换机,PLC供应

鹰潭西门子CPU,代理商,电源模块,交换机,PLC供应

展开全文