首页 > 其他分享 >Mitsubishi 三菱FXPLC学习之数据处理指令(下)

Mitsubishi 三菱FXPLC学习之数据处理指令(下)

时间:2023-08-04 16:24:07浏览次数:315  
标签:D5 D10 ZRST 32 指令 FXPLC 数据处理 Mitsubishi 元件

本来打算花一篇文章的篇幅来写数据处理指令的,但写着写着发现,一篇文章根本写不完QAQ。

上篇文章结束得有点突兀,那这里也再不啰嗦,我们直奔主题吧。

01、字交换指令XCH

  字交换指令,顾名思义,就是将两个字软元件的数据相互交换。从编程手册的截图可以看到,XCH指令可以用于16位和32位,有脉冲执行型和连续执行型。显然,XCH指令在使用时应采用脉冲执行型,不然采用连续执行型,PLC每一个扫描周期都执行一次,交换来交换去的这是交换了个寂寞。

  XCH指令的梯形图形式也很简单,有两个操作数D1.、D2.,当驱动条件成立时,将终址D1和D2的数据相互交换。不知道为什么,这个指令让我想起了一些狗血小说中的灵魂交换情节,emm……

  XCH指令理解起来很简单,但有一点要注意,那就是当两个操作数同一个地址时,例如执行XCHP D5 D5 后,D5的数据又是怎样变化的呢?这其实是XCH指令的扩展功能:当终址D1和D2为同一终址且特殊继电器M8160置ON时,XCH指令将对该终址软元件的字节进行交换。

  如下图所示就是一段程序的示例,D5、D10、D11的初始值分别为(D5)=H1234,(D11,D10)=H12345678。若M8160=OFF,执行指令XCHP D5 D5和XDXCHP D10 D10,显然D5、D10、D11的数据均没变。

  当M8160=ON,再次执行指令XCHP D5 D5和XDXCHP D10 D10,此时D5、D10、D11的数据均发生变化,可以看到,D5的高8位和低8位相互交换,变为H3412,而32位的(D11,D10)也变成H34127856。

  从32位的指令DXCHP的执行情况可以看到,此时D10、D11中交换的依然是各自的高低字节,而不是D10和D11的数据相互交换。

  如想用XCH指令进行软元件的字节交换,就得先把M8160置1,比较麻烦。而SWAP指令却可以直接对字元件进行字节交换。

02、高低字节交换指令SWAP

  高低字节交换指令的功能和XCH的字节交换功能是一样的,包括用于32位时也是对各自的高低字节交换。只不过SWAP指令不需要同时将M8160置1。基于SWAP指令比较简单,再此我就不再啰嗦,直接给段梯形图大家看看就行了。

  关于数据交换指令的应用,我能直接想到的就是数值的比较与筛选,例如将D0~D100中存有最大数的寄存器编号找出来,就可以通过XCH指令实现,具体程序我也不再举例了,大家自行尝试吧!接下来我们看一个新的指令ZRST。

  高低字节交换指令的功能和XCH的字节交换功能是一样的,包括用于32位时也是对各自的高低字节交换。只不过SWAP指令不需要同时将M8160置1。基于SWAP指令比较简单,再此我就不再啰嗦,直接给段梯形图大家看看就行了。

  关于数据交换指令的应用,我能直接想到的就是数值的比较与筛选,例如将D0~D100中存有最大数的寄存器编号找出来,就可以通过XCH指令实现,具体程序我也不再举例了,大家自行尝试吧!接下来我们看一个新的指令ZRST。

03、批次(区间)复位指令ZRST

  区间复位指令ZRST显然是复位指令RST的升级版,从编程手册截图可以看到,ZRST指令有脉冲执行型和连续执行型,只能用于16位,这是显然的,既然是批次复位,那32位和16位就没有区别了。

  其梯形图形式如上图所示,当驱动条件成立时,将D1~D2之间的所有软元件进行复位,包括将位软元件置零(=OFF),字软元件清零(=K0)。这里的复位,包括了触点状态、线圈状态和字元件所存的数据,所以那些继电器如Y、M,带有触点的字元件如C、T,经ZRST指令复位后,其相应的触点也全部复位。

  另外,从适用软元件中可以看到,ZRST指令不能用于组合位元件,这用脚指头想都知道是当然的,因为对批次的位元件复位,和对组合位元件复位没有任何区别。

在使用区间复位指令时,必须要注意以下几点:

  1、如截图所示,D1、D2要为同一类型的软元件,不能用不同的软元件,如ZRST D0C1、ZRST M0 D1、ZRST Y0 M10等都是不行的,指令不执行且将M8067置ON,如下图所示。

 

   2、终址D1、D2编号必须为D1≤D2,若D1≥D2,指令ZRSR指令只对D1的数值复位,如下图所示,在执行指令FMOV K10 D0 K8后,D0~D7的所存的数据均为K10,但执行指令ZRST D7 D0后,只有D7被清零,D0~D5的值保持不变。

  另外,虽然ZRST指令不能用于32位,但它可以对32位计数器C200~C234进行批量复位,但用于32位计数器时,两个终址D1、D2就必须都是32位计数器,不允许D1是32位计数器,而D2是16位计数器,例如ZRST C200 C0 是不行的。

04、“ON”位数求和指令SUM

  众所周知,SUM这个单词本身就是求和的意思,所以SUM指令,显然也是一种求和指令。如编程手册截图所示,其适用软元件为字元件,因为只要字元件才有多个二进制位。结合该指令的梯形图形式,当驱动条件成立时,对源址S中状态为1的二进制位进行统计求和,并将求和结果传送到终址D中。

  如上图所示,(D0)=0000 1111 1111 1111,指令指令SUM D0 D10后,计算D0中的“1”共有12位,所以此时D10的值为K12。

  SUM指令会影响到零标志位M8020,即当源址S的数据为K0时,执行SUM指令后,M8020会被置ON,如下图所示。

  SUM指令还可以用于32位,此时统计的就是源址S、S+1两个软元件中的“1”的总数了,然后将结果传送到终址D中,而D+1的数据保持为K0,所以使用DSUM指令时,注意终址D+1也被占用,即使它不保存结果。知道了ON位数求和指令SUM后,我们继续看一个类似的指令BON。

05、ON位判断指令BON

  BON指令的作用是判断软元件的某一个二进制位是否为“1”。从编程手册截图可以看到,BON指令的源址S为字软元件,终址D为位软元件,可用于16位和32位,而n的取值范围根据位数(16位或32位)会有所不同。当源址S为组合位元件时,此时n就为对应编号的位元件,当源址为字软元件时,n就为字元件中对应的二进制位。

  结合该指令的梯形图形式,当驱动条件成立时,对源址S的第n位状态进行判断,若该位状态为1,终址D=ON,若该位状态为0时,终址D=OFF。例如执行指令BON D0 D10 K15,如下图所示,若(D0)=H8000,其二进制位b15的值恰好为“1”,此时M0=ON。

  显然,BON指令可用于判断一个数的正负,即判断数值的最高位(符号位)是1还是0,若为1,该数就为负数,若为0,则该数为负数。

  综上,这次所分享的指令基本比较简单,为了熟练运用这些指令,大家可以试着用它们编写一下有趣的程序哟。

标签:D5,D10,ZRST,32,指令,FXPLC,数据处理,Mitsubishi,元件
From: https://www.cnblogs.com/ybqjymy/p/17606276.html

相关文章

  • Mitsubishi 三菱FXPLC学习之通信指令(上)
    通信指令本身不难,难的是对通信的理解。在学习PLC通信指令之前,我曾尝试去看通信相关的课程,然后告诉自己:算了,不必勉强自己,学不会的始终学不会。 数据的传输方式有并行和串行两种,其中并行是指同一时刻可以传输多个bit位的信号,有多少个信号位就需要多少根信号线;而串是指同一......
  • Mitsubishi 三菱FXPLC学习之通信指令(下)
    继上篇文章所分享的RS数据传送指令和CCD校验码指令,这次我们接着分享同样受数据处理模式标志继电器M8161控制的ASCI指令和HEX指令。ASCI指令和HEX指令是一对互逆的指令,基于十六进制字符与ASCII码之间的转换。ASCII码,我在之前的文章就有简单的介绍过,在这里再简单提一下。......
  • 数据分析之Pandas缺失数据处理
     Datawhale干货 作者:耿远昊,Datawhale成员,华东师范大学Pandas是一个强大的分析结构化数据的工具集,它的使用基础是Numpy(提供高性能的矩阵运算),用于数据挖掘和数据分析,同时也提供数据清洗功能。在往期文章中,已经详细讲解了Pandas做分析数据的四种基本操作:索引、分组、变形及合并。现......
  • Mitsubishi 三菱FXPLC扫描周期讲解
    一、程序显示奇怪现象二、PLC的工作过程内部处理:系统初始化、软元件复位、进行自诊断以及内部工作任务,检查有没有错误以确保系统可靠运行;通信服务:和外部通信联系,比如电脑软件监控更新显示内容,又如PLC和触摸屏通信,触摸屏上一直刷新显示;输入处理:依次读入所有输入状态和数据,并......
  • Mitsubishi 三菱FX3U的232通信板,与PC串口调试助手通信测试
    在某个项目中,需要用到上位机来控制PLC中的气缸,采用的通信方式是无协议通信,硬件使用FX3U的PLC以及一块FX3U-232C-BD扩展板。具体测试如下所示。01使用硬件 如图所示: 02测试软件03具体步骤1、编写PLC控制程序,如图所示:程序解释:D8120是通信格式设置地址,设置成H0C81(二进制......
  • Mitsubishi FX5U与三菱ROBOT CC‐LINK IEF Basic通讯
    步骤一:新建工程登录配置文件(配置文件可以根据机械手型号跟厂家获取,这里以CR-800机器人为例); 步骤二:CC‐LINKIEFBasic设置 步骤三:远程IO刷新设置 链接侧为机器人;CPU侧为FX5UCPU;1.位元件RX:机器人的输出作为PLC的远程输人即PLCM6000-M6063的状态是随着M_out(6......
  • Mitsubishi 手把手教你FX5U与三菱触摸屏以太网连接
    步骤一:新建工程,进入工程的新建向导,选择机种;步骤二:在工程新建向导的“连接机器设置”中“I/F”选择以太网;步骤三:设置“GOTIP地址”与PLC同一网段;步骤四:结束触摸屏设置如下;步骤五:点击连接器设置“CH1:MELSECiQ-F”;步骤六:设置PLC“IP地址”;注意:触摸屏连接的第......
  • Mitsubishi 三菱GX Works2梯形图程序分段显示设置
    一、适用情况用GXWorks2进行梯形图程序编辑时,默认是一整段在一起,程序步数较多时查看起来不是那么方便,本文教大家如何设置可以将程序分段显示。二、启用方法如下第01步,在新建工程时的设置如下图 第02步,编辑的整段示例程序如下第03步,先选择声明编辑第04步,然后双击左母线......
  • 三菱FXPLC 中断服务
    一、中断是什么所谓中断,是指PLC按顺序执行程序扫描的过程中,当有需要立即反应的请求发出时,立即中断当前执行的扫描工作,优先地去执行请求所指定的服务工作。服务工作完成后,再回到刚才被中断的地方继续往下执行程序扫描工作。换句话说,中断服务就像是个磨人的小妖精,时不时......
  • 秒杀99%的海量数据处理面试题
    前言  一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。  毕竟受文章......