S7-1200 PLC的移动操作指令介绍
前面给大家介绍了数学函数指令,接下来就接着介绍一下移动操作指令吧!
S7-1200 PLC的移动操作指令也包括有多个(如下图),不过这里我们不会所有的指令都介绍一遍,这里就介绍一些常用的移动操作指令,比如移动值指令MOVE,可以说是相当于我们说的传送指令,还有块移动指令MOVE_BLK、填充块指令FILL_BLK、交换指令SWAP、读取域指令FieldRead与写入域指令FieldWrit。
下面我们就开始讲解咯~
1、移动值指令MOVE
移动值指令MOVE,就相当于是我们S7-200/200 SMART PLC中的MOV传送指令,是用于对存储器进行赋值,或者把一个存储器的数据复制到另外一个存储器中,还可以用于清零功能。对于这个指令进行移动复制之后,源操作数的数据是不变的。
我们可以通过点击指令下方的增加管脚的按钮,增加一些输出管脚,这样就可以实现将源操作数的数据复制到多个目标操作数里面去。
对于移动值指令的操作数可以支持基本的数据类型、复杂的数据类型也是可以支持的,但是我们需要注意的是,如果使用复杂的数据类型时,我们需要保证源操作数和目标操作数具有相同的格式才行。
如果要把一个数组的数据复制到另外一个数组,我们需要保证两个数组的元素个数相同,元素的数据类型相同。
2、块移动指令MOVE_BLK
块移动指令是将源存储区的数据移动到目标存储区,注意是有多个存储器的移动,IN是源存储器的首个元素,COUNT是指定需要复制的元素个数,OUT是目标存储器的首个元素。
注意,这个指令只适合于数据块中的数组进行移动,如果需要对非数据块的存储器进行块移动是不能使用这个指令的,比如说将MB0~MB5的数据移动到QB0~QB5,这时不能使用MOVE_BLK指令。
上图的程序首先是创建DB块,再分别创建DATA和数据的数组,元素数为5个,即0~4,所以我们可以看到有以上这些数据,这个指令的功能是将函数DB块中的数组元素DATA[2]、DATA[3]、DATA[4]的数据分别移动到数组元素数据[0]、数据[1]、数据[2]中。
3、填充块指令FILL_BLK
填充块指令可以对数组中连续的元素写入相同的数值,比如对一个数组中的连续N个元素进行赋值或清零时可以利用这个指令去实现。IN是需要填充进入的数据,COUNT是存储器个个数,OUT是需要填入的第一个元素的地址。这个指令跟块移动指令一样,也是只适合于数据块中的数组中连续元素进行填充数据。
上图的程序是将20这个数组填充到函数DB的DATA[0]开始的数组元素的一共5个元素中取,监控的结果是DATA[0]、DATA[1]、DATA[2]、DATA[3]、DATA[4]里面的数值都是20。
4、交换指令SWAP
交换指令可以将输入操作数的数据的字节的顺序进行调换,也就是实现高低字节的交换,交换指令支持WORD和DWORD这两种数据类型。
我们可以监控指令的执行情况,可以以十六进制的数值显示,这样也方便我们去查看。比如16#1234,交换之后是16#3412,而对于16#12345678,交换之后是16#78563412,注意不是16#56781234哦。
5、读取域指令FieldRead和写入域指令FieldWrit
读取域指令和写入域指令主要是用于间接寻址的功能,可以用该指令对一个数组中的任意元素的值进行读取或写入的操作。
读取域指令用于根据指定的元素下标值,读取除对应元素的值,指令中的INDEX管脚是元素的下表值,为DINT的类型,MEMBER管脚是指定数组中的第一个元素地址,VALUE管脚用于存放读取出来的数据。
写入域指令用于根据指定的元素下标值,把VALUE的值写入到对应下表值的元素中,指令中的INDEX管脚是元素的下表值,为DINT的类型,VALUE管脚表示需要写入的值,MEMBER管脚是指定数组中的第一个元素地址。
不过过于博途V14以上的版本软件,对于数组的下标值可以通过变量进行表示,所以读取域指令和写入域指令使用得也比较少,大家了解一下有这样的指令就可以了。
以上这些就是移动操作指令的介绍,对于西门子S7-200/200 SMART中我们叫传送指令,包括有MOV、BLKMOV、SWAP指令,还有表指令FILL_N,其实跟我们S7-1200 PLC的这些指令的功能是差不多的,只是有一些小区别,不同的地方注意一下就可以咯。
移动操作指令部分我们就介绍完了,下一篇文章给大家介绍一下转换操作指令的使用,欢迎关注更新~
(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)
西门子S7-200系列PLC实操(34 移位指令)
大家好,这节课我们开始学习“移位指令 ”.先来看一下指令说明:
左移位和右移位 指令说明:
1、移位指令有左移也有右移,移位指令也分为有字节、字、双字类型的移位;
2、移位指令格式里面有使能输入、输入、输出和移位位数N。字节右移SHR_B和字节左移SHL_B指令是将输入字节(或字、或双字)数值根据移位位数向左或向右移动,并将结果输出到字节(或字或双字)。我们要注意的是,对一个数左移一位相当于乘以2,右移移位相当于除以2.
3、移位指令是对每个移出的位进行自动补0的。如果移位位数大于或等于8(或字操作16或双字操作32),那么数值最多被移位8(或字操作16或双字操作32)次的。当移位位数大于或等于最大允许值时,其实就相当于进行清零的操作。
这里我们以字节为例,解释说明:
数据位自右向左,分别排布.从最右端位置开始,"1"的数值,每次向左移动一个位,而原来的位置,则用0来弥补代替.就形成了下面这个图示:
可以看到,当1从最低位移到最高位后,如果移出本组数列的话,则是不循环方式.如果从最高位跳转到最低位的话,则构成循环.
大家可以尝试解读一下,下面这段程序的意思么?
解读一下:首先是I0.0为Q0.0置位,然后会在触发I0.1的情况下,每按1次,使得左移指令执行步进1位的方式,将QB0进行输出,直至1的值被移除8位之外为止。
而下面这个图,是实现什么功能呢?
大家可以在程序里编辑完之后,下载到PLC里看下效果。
下节课,我们学习“转换指令 ”
相关问答
plc移动指令什么意思?
移动值指令MOVE,就相当于是我们S7-200/200SMARTPLC中的MOV传送指令,是用于对存储器进行赋值,或者把一个存储器的数据复制到另外一个存储器中,还可以用于清...
西门子plc移动指令详解?
西门子PLC移动指令主要用于控制执行器的移动,例如控制电机、阀门或执行器的位置、速度和方向。这些指令包括单个轴移动指令、坐标轴移动指令和速度控制指令等...
plcmove指令讲解?
移动值指令MOVE,是用于对存储器进行赋值,或者把一个存储器的数据复制到另外一个存储器中,还可以用于清零功能。对于这个指令进行移动复制之后,源操作数的数...
plc步进指令详细讲解?
PLC步进指令是一种用于控制步骤执行的指令,通过改变当前状态,使程序进入下一步操作。步进指令有以下几个:-STEP:当前状态为ON,执行当前步骤后状态为OFF...
plc主控开始指令是什么?
plc的主控指令一般用于母线嵌套,以三菱为例,主控指令为MC与MCR.MC指令实现母线右移,MCR指令实现母线左移,每次移动一层最多只能嵌套8层,可以节省大量的AND、...
西门子200循环左移指令解释?
西门子200循环左移指令是一种控制指令,它可以将一个字节的数据从右边移动到左边,并将最左边的位移出的数据放到最右边。西门子200循环左移指令是一种控制指令...
plc主控指令的使用方法和概念?
plc的主控指令一般用于母线嵌套,以三菱为例,主控指令为MC与MCR.MC指令实现母线右移,MCR指令实现母线左移,每次移动一层最多只能嵌套8层,可以节省大量的AND、...
西门子PLC中STLMOVE指令具体有什么作用?
MOVE:移动字节指令,将输入字节(IN)移动至输出字节(OUT),不改变原来的值。MOVE:移动字节指令,将输入字节(IN)移动至输出字节(OUT),不改变原来的值。
西门子PLCBMW指令?
你说的应该是BLKMOV_W吧,它的定义如下:成块移动字(BMW)指令将字数目(N)从输入地址(IN)移至输出地址(OUT)。N的范围是1至255。设置ENO=0的错误条件:0...你说...
在松下plc位置控制指令中?
看控制代码即可,梯形控制的有一个目标值,拿伺服来说,目标值是指目标移动量(即需要发出多少个脉冲),使电机移动到指定位置,下一行K0则达到目标值后停止发出...