德国触摸屏模块6AV2123-2JB03-0AX0德国触摸屏模块6AV2123-2JB03-0AX0
6AV6648-0DC11-3AX0一级代理商
6AV6648-0DE11-3AX0一级代理商
6AV2123-2MB03-0AX0一级代理商
6AV2123-2MA03-0AX0一级代理商
6AV2123-2GB03-0AX0一级代理商
6AV2123-2DB03-0AX0一级代理商
6AV2123-2JB03-0AX0一级代理商
6AV2123-2GA03-0AX0一级代理商
6AV2124-0UC02-0AX1一级代理商
6AV2124-0QC24-1AX0一级代理商
6AV2124-1MC01-0AX0一级代理商
6AV2124-1JC01-0AX0一级代理商
6AV2124-0GC01-0AX0一级代理商
6AV2124-0QC13-0AX0一级代理商
6AV2124-0XC02-0AX1一级代理商
6AV2124-0UC24-1AX0一级代理商
6AV2124-0JC01-0AX0一级代理商
传送指令是什么
区别于信息传递中的数据通信,我们今天讲的PLC中的数据传送指令是针对PLC内部软元件之间的数据传送。基于之前所学的各种软元件,确切地说,传送指令是应用于各种字元件之间的数据传送。
每个字元件都存有自己的数据,有的字元件非常霸道,想把自己的数据霸占别的字元件,在别的字元件上也存上自己的数据,这个霸占的过程就是通过传送指令实现的。传送指令就像是各个字元件之间数据战争的武器,你霸占我,我霸占你,枪林弹雨,烽火连天。
在三菱FX 2N中,传送指令有 MOV、SMOV、CML、BMOV、FMOV五种,它们传送数据的形式各不相同。那到底有哪些不同呢?我们接着往下看。
二、MOV传送指令
从编程手册中可以看到,MOV指令的操作数源址(S·)可以适用于所有的字元件,即S可以是任何的字元件,包括各种组合位元件、常数K、H等,而操作数终址(D·)除了不能是KnX、K、H外,可适用于其他字元件。且源址和终址都可进行变址寻址。
当驱动条件X0成立时,PLC将源址S中的数据传送到终址D中,此时S的内容不变,而D的内容变得和S一样。这就像我上文提到了,霸道S将自己的数据硬塞给D,并把D原来的数据给挤掉了,简直是欺元件太甚!
MOV指令比较简单,它是功能指令中应用多的基本功能指令。MOV指令可以通过组合位元件的形式对各种位元件进行清零和置位,或者对各种字元件进行读写操作。
如下图所示,执行MOV K15 K2Y0后,将K15用二进制数表示,并控制Y0~Y7的状态。此时Y0~Y3的状态变为1(ON),Y4~Y7的状态变为0(OFF)。
再如MOV D10 D20,将D10的内容传送到D20中,若D10的内容为(H98),则执行该指令后D20的内容也变为(H98)。
依次类推,MOV C0 D10 、MOV T0 D20、DMOV D0 D5等指令的理解相信难不倒大家,例如MOV T0 D20:将定时器T0的当前值传送到D20中……
MOV指令更多的应用,还是要结合实际的案例分析才能深刻体会,本身该该指令的理解也不难,所以,在这里我不再过多阐述。
三、SMOV数位传送指令
所谓数位(digit),就是以4个二进制数组成的数据量,类似于字节由8位二进制数组成,字由16为二进制数组成。显然,一个字节可以由两个数位组成,一个字可以由4个数位组成。
基于对数位的理解,SMOV数位传送指令就是将数据按数位为单位进行传送。从编程手册中可以看到,SMOV指令的动作为SMOV S· m1 m2 D· n,其中S、D是数据传送的源址和终址,这个和MOV指令类似。
上文提到,一个字可以由4个数位组成,依此将这4个数位从右到左排列,编号分别为K1、K2、K3、K4,如上图所示。
这样我们就可以很快地解读SMOV指令。如SMOV D0 K4 K2 D10 K2 : 将D0寄存器按数位划分,从K4开始的连续2个数位的内容传送到D10的K2、K1两个数位中,如下图所示。所以,在传送数据的时候,连续数位是按从左到右排的,当m1=K4时,多可以传送4个连续数位K4、K3、K2、K1的内容;当m1=K3时,多可以传送3个连续数位K3、K2、K1的内容,依次类推。
显然,m1、m2、n之间有着一定的约束关系,即只有当m1≥m2,n≥m2,SMOV指令才有意义。例如SMOV S· m1 m2 D· n 中,若m1=K2,对S而言,只有K2、K1的内容可以传送,K4、K3的内容无法传送。
另外,SMOV指令执行有两种模式:BCD码执行模式和十六进制数执行模式。当特殊继电器M8168=OFF时,SMOV指令执行BCD码模式;当特殊继电器M8168=ON时,SMOV指令执十六进制数模式。
所谓BCD码其实就是十进制数,如上图所示,当M8168=OFF时,将D0的内容(K9864)中的“986”传送到D10中。显然,此时D0的内容只能为K0000~K9999。只有当SMOV指令执行十六进制数执行模式时,D0中的内容可以为H0000~HFFFF。
SMOV数位传送指令的理解也不难,在应用的过程中注意m1、m2、n的大小就行了。
四、CML取反传送指令
CML取反传送指令,顾名思义,就是将数据取反后再传送。所谓取反,就是将“1”变为“0”,将“0”变为“1”,如下图所示,执行指令CML D0 D10,若D0的内容为(K13),将K13转换为二进制数后取反,再传送到D10中。
CML
反传送指令更为简单,在这里我也不再过多讲解。
五、BMOV成批传送指令
BMOV成批传送指令,和上文的几种传送指令有比较大的区别,因为它所传送的数据比较多,是用于多个字元件之间数据传送。简单理解就是将首地址为S的n个字元件的数据传送到以D为首地址的字元件中,其中n是传送字元件的个数,n≤512。
例如BMOV D0 D10 K10:将D9~D0的数据分别传送到D19~D10中。
在应用BMOV指令时要注意的两点,一是字元件的编号重复问题。如下图所示,执行指令BMOV D10 D11 K5,若按编号小的元件开始传送,先是D10的内容传送到D11中,然后D11的内容传送到D12中,D12的内容传送到D13中……显然,传送完毕后D15~D10的内容相同,均为D10的内容。
根据以上字元件编号重复的问题,在三菱FX 2N中,作出以下规定:
(1)当源址编号大于终址编号时,其传送顺序从编号小的到编号大的;
(2)当源址编号小于终址编号时,其传送顺序从编号大的到编号小的;
所以上图的指令BMOV D10 D11 K5中,源址D10小于终址D11,其传送顺序从编号大的开始,也就是先把D14的内容传送到D15中,然后把D13的内容传送到D14中……这样就不会造成D11~D14的内容无法传送的问题。
在应用BMOV指令时要注意的另外一点是数据传送方向的问题。BMOV指令不仅可以将源址的数据传送给终址,也可以调转方向,将终址的数据传送给源址,也就是说BMOV指令可以双向传送数据。
BMOV指令的数据传送方向是由特殊继电器M8024的状态决定的,当M8024=OFF时,传送方向是从源址传向终址;当M8024=ON时,传送方向是从终址传向源址。
六、FMOV多点传送指令
知道了BMOV成批传送指令后,再来看FMOV多点传送指令会简单很多,如果说MOV指令是一对一、BMOV指令是多对多,那么FMOV指令就是一对多。
如上图的编程手册所示,当驱动条件X0成立时,将字元件S的内容传送到起始地址为D的n个字元件中。像上文所说的,数据的传送就像是字元件之间的相互霸占,而各种指令就是数据传送的武器。MOV指令就像是手枪,霸道S通过MOV指令只能将自己的数据传送给一个D,把D原来的数据给挤掉;FMOV指令就像是M416步枪,霸道S通过FMOV指令将自己的数据传送给一批D,把n个D原来的数据都给挤掉。可见FMOV指令的威力有多大。
不管是什么传送指令,其归根结底也就是数据的传送,我们只有在理解了这些指令的含义之后,才能理解它们在梯形图中的作用。另外,我所分享的内容也只不是皮毛,想要熟练掌握这些传送指令,还是要结合实际程序案例分析。
- 西门子S7-200模块CPU224XPCN 2023-11-04
- 玉林西门子内存卡一级代理商 2023-11-04
- 西门子S7-400模块供应CPU416F-2 2023-11-04
- 西门子全国代理6AV2123-2DB03-0AX0 2023-11-04
- 西门子CPU200416F-2代理商 2023-11-04
- 西门子CPU224XPCN紧凑型单元 2023-11-04
- 贵港西门子CPU一级代理商 2023-11-04
- 西门子CPU模块416F-2模块控制器 2023-11-04
- 雅安西门子S7-1200代理商 2023-11-04
- 西门子CPU224XPCN模块控制器 2023-11-04