戳上方蓝字 "技成电工课堂” 关注我们哦!

PLC的各种功能指令中,传送指令的使用非常频繁,且相对简单。一说到简单,我猜已经有很多人蠢蠢欲动,迫不及待地想征服这个传送指令了。那么,废话不多说,我们开始这次的学习分享吧!

在学习各种传送指令之前,我们得先了解什么是传送指令!

一、传送指令是什么

区别于信息传递中的数据通信,我们今天讲的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指令的威力有多大。

不管是什么传送指令,其归根结底也就是数据的传送,我们只有在理解了这些指令的含义之后,才能理解它们在梯形图中的作用。另外,我所分享的内容也只不是皮毛,想要熟练掌握这些传送指令,还是要结合实际程序案例分析。

那么,这次的学习分享就到这里啦,共勉!

注:本文章内容都是基于三菱FX PLC所写

选自《三菱FX系列PLC功能指令详解》第二章第12~16课时

(技成培训原创,作者:杨思慧,未经授权不得转载,违者必究!)


如何0基础学习PLC?

关注回复 “ 工控全套  

获取更多工控案例与电气软件大全!

你的分享、点赞、在看我都喜欢

movs 数据传送指令_PLC中简单好用的传送指令功能,你学会了吗?相关推荐

  1. 深入理解计算机系统(3.3)------操作数指示符和数据传送指令

    在上一篇博客 程序编码以及数据格式 中我们给出了一个简单的C程序,然后编译成了汇编代码.大家看不懂没关系,后面的博客我们将逐渐揭开一些汇编指令的神秘面纱.本篇博客我们将对操作数指示符和数据传送指令进行 ...

  2. 【汇编语言与计算机系统结构笔记05】汇编的系统结构,从C代码生产汇编代码,一个具体的、经典的数据传送指令(mov)实例与分析

    本次笔记内容: 06.寻址模式与数据传输指令等 文章目录 汇编程序员眼中的系统结构 如何从C代码生产汇编代码 如何装gcc? 汇编语言数据格式 第一条汇编指令实例 数据传送指令(mov) 语法与操作数 ...

  3. MCS-51单片机指令系统--数据传送指令

    按指令的功能,MCS-51单片机可以分为以下五类: 1,数据传送 2,算术运算 3,逻辑运算 4,控制转移 5,位操作 在分类介绍指令之前,先把描述指令的以一些符号的意义作简单的介绍. Rn----当 ...

  4. 指令系统(一)数据传送指令

    指令系统概述 指令-控制计算机完成指定操作的命令 机器指令-指令的二进制代码的形式 汇编指令-助记符性形式的指令 指令系统:CPU所有指令及其使用规则的集合 指令系统分类 指令按功能分为7大类 数据传 ...

  5. 汇编语言 实现1.将数据区buf1中的10个数,传送到数据区buf2 2.计算buf1数据的累加和

    1. 将数据区buf1中的10个数,传送到数据区buf2 ; multi-segment executable file template.data segmentbuf1 dw 1,2,3,4,5, ...

  6. ART世界探险(4) - 数据传送指令和桶型移位器

    ART世界探险(4) - 数据传送指令和桶型移位器 数据传送指令 将数在寄存器之间传递,或者将立即数传给寄存器.所谓的立即数,就是直接写在指令里的数,比如MOV X0,100,这个100就是立即数.立 ...

  7. 数据传送指令----mov(笔记)ATT

    数据传送指令--mov 基本概念 将数据从一个位置复制到另一个位置:mov类有四条指令组成:movb.movw.movl和movq:主要区别是传送数据的大小不同,分别是1. 2. 4和8字节. mov ...

  8. 数据类型与数据传送指令

    数据类型与数据传送指令 数据类型.数据传送指令.间接寻址 一.数据类型 数据类型的基本特征是以数据为的数目度量的大小,其他特征主要是为了方便程序员记忆变量中存储的数据类型,默认情况下大小写不敏感. 类 ...

  9. 汇编语言随笔(5)-and、or指令,串传送指令movsb、访问内存单元的方式及实验4,5(向内存传送数据)

    and.or指令 and指令,逻辑与指令,按位进行与运算:or指令,逻辑或指令,按位进行或运算.       如:mov al,01100011B               and al,00111 ...

最新文章

  1. 面试官最想要的synchronized,你值得拥有
  2. XLNet 发明者杨植麟:从学习的角度看NLP现状与未来(附PPT下载)
  3. laravel5.7的redis配置,一直报错Class 'Predis\Client' not found
  4. rmmod: can't change directory to '/lib/modules': No such file or directory问题解决
  5. linux里查看所有用户和用户组
  6. grunt之filerev、usemin
  7. LNK1000: Internal error during IncrBuildImage 链接错误解决方法
  8. srtvlet filter
  9. 操作系统ppt_华为车BU王军:华为三大汽车操作系统,及跨域集成软件框架(内含PPT)...
  10. 无线路由器网络安全设置的九种方法
  11. c语言中复合语句不用花括号,【单选题】C语言中,可将一系列语句置于( )从而构成复合语句。 A. 一对尖括号\ \之间 B. 一对圆括号\( )\之间 C. 一对花括号 { } 之间 D....
  12. moment.js时间操作后24小时制变成了12小时制
  13. Python06——String04字符串切片
  14. Hadoop:大数据的特征4V
  15. 六:Grafana-Boom Theme用法
  16. 自动驾驶感知——视觉感知经典算法
  17. Java复习五:抽象类+模板设计方法+接口+三种工厂模式
  18. Windows Server 2008 R2 活动目录的安装和配置
  19. java抓取七麦app排行榜单数据 导出excel-20211201
  20. 美团秋招笔试——算法岗

热门文章

  1. 1.httpClient和ScrollView
  2. 实例3:按部门统计工资人数
  3. 书籍折页是什么效果_Word的书籍折页是什么 如何设置Word的书籍折页
  4. ResNet 残差、退化等细节解读
  5. caffe中的batchNorm层(caffe 中为什么bn层要和scale层一起使用)
  6. 目标检测带标签样本增广工具
  7. bzoj3122 [SDOI2013]随机数生成器
  8. 聊聊阿里面试的三个层次!
  9. 针对不同的系统的宏定义
  10. 绿盟科技发布OpenSSL高危漏洞技术分析与防护方案 G20成员国美国、中国、德国受影响较大...