不懂PLC的字右移,字左移,位右移,这篇文章给你解释
本文主要是为了解释我们前面编写的循环小灯的程序,有很多朋友说看不懂指令的意思,在这里小编就为大家,解释一下这些指令的用法。
位右移指令:
该指令的助记符,指令代码,操作数,程序步如下表:
指令格式:
X010驱动SFTRP,X000,M0,K16,K4这条指令是什么意思呢?我们通过下面这个图来看看。
源操作数X000,K4表示的是以x0为首的,X1,X2,X3。M0,K16表示的是以M0为首的连续的16个位元件,指的是M0~M15的位元件。当该指令接通的时候把X0,X1,X2,X3为一组移到这4个目标元件中去。如果X0,XI,X2,X3进入了高位那么原先的M12,M13,M14,M15往右边移动4位,M4~M7移到M0~M3,然后M0~M3的数就被移出去了。一般我们使用这条指令一般用脉冲进行型。因为这样就可以确保我们的数据的准确。
位左移指令:
该指令的助记符,指令代码,操作数,程序步如下表:
原理与位右移基本一样,但是位左移是从低位开始,一步步往左移,M12~M15的数据被挤出去。其它的原理基本一致。
字右移指令:
该指令的助记符,指令代码,操作数,程序步如下表:
指令格式:
当X0接通的时候这条指令运行,D0,K4表示的是有4个源操作数,每次移动4位,因此在这里指的是D0,D1,D2,D3。
D10,K16指的是目标操作数,也就是以D10为首的D10~D25。当指令接通的时候D10~D13低四位的数据就移出,D14~D17代替D10~D13的位置,以此类推,D0~D3就进入了高位。所谓字右移就是源操作数从高位进入,把低位的数据移出去。
字左移指令:
该指令的助记符,指令代码,操作数,程序步如下表:
字左移与字右移基本一样,只不过源操作数从低位进去,把高位的数据给挤出去。
喜欢更多PLC知识,关注小编不迷路噢!
在PLC编程使用结构文本ST语言编程中使用CASE语句实现移位功能
在PLC进行编程中常常会用到移位指令,大家也都是很熟悉,今天要跟大家聊聊的就是如何使用case语句来实现移位指令的功能。
一、首先条件语句CASE的语法结构和功能
CASE语句 :用来选择几个分支程序部分之一。选择是基于选择表达式当前值的。
语法:
CASE语句按下列规则执行:
选择表达式必须返回一个整数类型的值。当CASE语句被处理时,程序检查是否选择表达式的值包含在指定的值表之中。如果找到匹配项,列表指定的语句部分将被执行。如果没有发现匹配项,程序选择ELSE后面的语句,或者如果ELSE分支不存在则无语句可执行。下表列出了case语句的参数:
值表 :包含允许的选择表达式的值。如下面的语句表达:
二、通过一个示例来看看如何通过CASE语句来实现移位的功能
功能要求,当按下启动按钮,六盏灯每隔2s,从左到右依次点亮;当按下停止按钮,灯全部熄灭。
看到本例,相信大家首先想到的就是移位指令,可以很容易实现此功能,今天我们主要要练习的就是CASE语句的使用,所以,看看如何通过CASE语句来实现本例的功能。
编程过程:
1、使用条件语句IF,当按下启动按钮来对灯赋值1(点亮第一盏灯),当按下停止按钮,则对灯赋值0(熄灭所有灯)
IF #START THEN
#LIGHT_TEMP := 1;
ELSIF #STOP THEN
#LIGHT_TEMP := 0;
END_IF;
2、设定时间,间隔2s
#TIME.TON(IN := (#LIGHT_TEMP = 1),
PT := T#2S);
#TIME_1.TON(IN := (#LIGHT_TEMP = 2),
PT := T#2S);
#TIME_2.TON(IN := (#LIGHT_TEMP =4),
PT := T#2S);
#TIME_3.TON(IN := (#LIGHT_TEMP = 8),
PT := T#2S);
#TIME_4.TON(IN := (#LIGHT_TEMP = 16),
PT := T#2S);
#TIME_5.TON(IN := (#LIGHT_TEMP = 32),
PT := T#2S);
3、使用CASE语句来进行选择赋值
CASE #LIGHT_TEMP OF
1:IF #TIME.Q AND #LIGHT_TEMP=1 THEN
#LIGHT_TEMP := 2;
END_IF;
2:IF #TIME_1.Q AND #LIGHT_TEMP=2 THEN
#LIGHT_TEMP := 4;
END_IF;
4:IF #TIME_2.Q AND #LIGHT_TEMP=4 THEN
#LIGHT_TEMP := 8;
END_IF;
8:IF #TIME_3.Q AND #LIGHT_TEMP=8 THEN
#LIGHT_TEMP := 16;
END_IF;
16:IF #TIME_4.Q AND #LIGHT_TEMP=16 THEN
#LIGHT_TEMP := 32;
END_IF;
32:IF #TIME_5.Q AND #LIGHT_TEMP = 32 THEN
#LIGHT_TEMP := 1;
END_IF;
END_CASE;
4、赋值输出
#LIGHT := #LIGHT_TEMP;
5、完整程序如下图所示:
6、仿真运行:
注:通过本示例,主要是跟大家看看case语句的使用,同时,也是通过本示例来看看使用结构文本ST编程的多种方法。
相关问答
plc怎么让移位寄存器回到起点?
将移位寄存器的值进行清零,然后重新赋值。将移位寄存器的值进行清零,然后重新赋值。
欧姆龙plc左移指令详解?
欧姆龙PLC中的算术左移指令(SLL)可以将一个位寄存器或字寄存器的二进制位向左移动指定的位数,同时在右侧补零。它的作用是将数据乘以2的N次方,其中N为指定的...
PLC如何单键控制启停-何以沉默的回答-懂得
用一个SR触发指令实现,其I0.0为启动按钮,Q0.0为控制输出端。Q0.0=1为启动运行。Q0.0=0为停止运行。扩展资料:PLC如何单键控制启停方式一、用SR触发...
三菱plc循环移位指令使用方法?
1、打开三菱PLC的主界面,在X000那里利用梯形图输入确定“MOVK5D0”这条位移指令。2、下一步,需要在M8013那里继续利用梯形图输入确定“OUTC0K3”这条位移...
三菱plc循环左移右移详细讲解?
三菱PLC中的循环左移(ROL)和循环右移(ROR)指令可以将一个字或一个字节的数据按位进行循环移位,移位后的数据可以被存储到原来的寄存器中或其他的寄存器中...
plc的位和节什么意思?
在PLC(可编程逻辑控制器)中,位(bit)和节(byte)是计量存储容量的单位。下面我将详细解释一下它们的含义和用途。1.位(bit):位是计算机中最小的存储单...通过...
三菱plc的移位指令怎么用?
三菱PLC有很多不同的移位指令,比如SL,SR,SLC,SRC,SLL,SRL等等。下面以SL指令为例,介绍一下移位指令的使用方法:SL指令的作用是将指定的字或位从左往右...
plc单按钮启停的十种方法?
plc单按钮启停十种方法1.设计PLC控制方案在设计PLC控制方案时,我们应考虑如何减少所需PLC的输入点数问题。为了减少所需PLC的输入点数,区别不同情况,其实实...
三菱plc位右移指令实例讲解?
三菱PLC中的位右移指令用于将一个位或位组向右移动指定的位数。例如,使用MOV命令将一个位组的值移动到另一个位组,然后使用ROR命令将位组向右移动3位。这将导...
三菱PLC的移位传送指令是怎样工作的?
三菱PLC[MOVK1X0K1M10]中:K1X0表示起始位置为X0的一个位元件组,共有4个位元件组成,即X0~X3.K1M10表示起始位置为M10的一个位元件组,共有4个位元件组...