plc梯形图讲解_plc编程入门梯形图

plc梯形图讲解_plc编程入门梯形图导读:初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。有一点需要说明的是,本文虽以三菱PLC为例,但这些规则在其它PLC编程时也可同样遵守。OFweek工控网讯:初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,简单介绍一下PLC梯

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

导读: 初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,简单介绍一下 PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。有一点需要说明的是,本文虽以三菱PLC为例,但这些规则在其它PLC编程时也可同样遵守。

OFweek工控网讯:初学PLC梯形图编程,应要遵循一定的规则,并养成良好的习惯。下面以三菱FX系列PLC为例,简单介绍一下PLC梯形图编程时需要遵循的规则,希望对大家有所帮助。有一点需要说明的是,本文虽以三菱PLC为例,但这些规则在其它PLC编程时也可同样遵守。

  一,梯形阶梯都是始于左母线,终于右母线(通常可以省掉不画,仅画左母线)。每行的左边是接点组合,表示驱动逻辑线圈的条件,而表示结果的逻辑线圈只能接在右边的母线上。接点不能出现在线圈右边。如下图(a)应改为(b):

plc梯形图讲解_plc编程入门梯形图

  二,接点应画在水平线上,不应画在垂直线上,如下图(a)中的接点X005与其它接点间的关系不能识别。对此类桥式电路,应按从左到右,从上到下的单向性原则,单独画出所有的去路。如图(b)所示:

plc梯形图讲解_plc编程入门梯形图

  三,并联块串联时,应将接点多的去路放在梯形图左方(左重右轻原则);串联块并联时,应将接点多的并联去路放在梯形图的上方(上重下轻的原则)。这样做,程序简洁,从而减少指令的扫描时间,这对于一些大型的程序尤为重要。如下图所示:

plc梯形图讲解_plc编程入门梯形图

  四,不宜使用双线圈输出。若在同一梯形图中,同一组件的线圈使用两次或两次以上,则称为双线圈输出或线圈的重复利用。双线圈输出一般梯形图初学者容易犯的毛病之一。在双线圈输出时,只有最后一次的线圈才有效,而前面的线圈是无效的。这是由PLC的扫描特性所决定的。

  PLC的CPU采用循环扫描的工作方式。一般包括五个阶段(如图所示):内部诊断与处理,与外设进行通讯,输入采样,用户程序执行和输出刷新。当方式开关处于STOP时,只执行前两个阶段:内部诊断与处理,与外设进行通讯。

plc梯形图讲解_plc编程入门梯形图

         1,输入采样阶段

  PLC顺序读取每个输入端的状态,并将其存入到我们称之为输入映像寄存器的内在单元中。当进入程序执行阶段,如输入端状态发生改变.输入映象区相应的单元信息并不会跟着改变,只有在下一个扫描周期的输入采样阶段,输入映象区相应的单元信息才会改变。因此,PLC会忽视掉小于扫描周期的输入端的开关量的脉冲变化。

  2,程序执行阶段

  PLC从程序0步开始,按先上后下,先左后右的顺序扫描用户程序并进行逻辑运算。PLC按输入映象区的内容进行逻辑运算,并把运算结果写入到输出映象区,而不是直接输出到端子。

  3,输出刷新阶段

  PLC根据输出映象区的内容改变输出端子的状态。这才是PLC的实际输出。

  以上简单说明了PLC的工作原理,下面我们再以实例说明为什么编写梯形图程序,不宜重复使用线圈。如下图所示,设输入采样时,输入映象区中X001=ON,X002=OFF,Y003-ON,Y004=ON被实际写入到输出映象区。但继续往下执行时,因X002=OFF,使Y003=OFF,这个后入为的结果又被写入输出映象区,改变原Y003的状态。所以在输出刷新阶段,实际外部输出Y003=OFF,Y004=ON。许多新手就碰到过这样的问题,为什么X001已经闭合了,而Y003没有输出呢?逻辑关系不对。其实就是因为双线圈使用造成的。

plc梯形图讲解_plc编程入门梯形图

  注意:我们所说的是不宜(最好不要)使用双线圈,双线圈使用并不是绝对禁止的,在一些特殊的场合也可以使用双线圈,这时就需要你有较丰富的编程经验和技巧了。下面我们会谈到这一点。但对于初学者还是不要冒这个险。其实,从以上的例子可以看出,重复利用线圈之所以会造成Y003的输出混乱,是由于程序是从上到下顺序执行的缘故造成的。但如果我们可以改变程序执行的顺序,保证在任何时刻两个线圈只有一个驱动逻辑发生,就可以使用双线圈。其中,最常用的方法就是使用跳转指令。如下图所示:

plc梯形图讲解_plc编程入门梯形图

  程序分析:M0闭合,程序跳至P0处(不执行X001语句),M0常闭断开,CJP1不会发生,执行下一语句。此时,Y003将X002状态进行驱动。M0断开时,程序顺序执行并按X001的状态对T003进行驱动,M0常闭闭合,跳至P1按X003状态对Y004进行驱动,即跳过了X002驱动Y003的语句。可见,在同一时刻,Y003驱动只有一个可以发生。此时,双线圈利用是可以的。

但在梯形图编程时,我们还是要尽量避免使用双线圈,而引入辅助继电器是一个常用的方法。如下图所示:

plc梯形图讲解_plc编程入门梯形图

  图(b)中,X001和X002接点控制辅助继电器M000,X003~X005接点控制辅助继电器M001,再由两个继电器M000,M001接点的并联组合去控制线圈Y000。这样逻辑关系没变,却把双线圈变成单线圈。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/195182.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【NLP】之 结巴分词

    【NLP】之 结巴分词1.结巴分词简介结巴分词是当前效果较好的一种中文分词器,支持中文简体、中文繁体分词,同时还支持自定义词库。结巴分词支持三种分词模式:精确模式、全模式和搜索引擎模式。精确模式是试图将句子最精确的进行切分,适合用于文本分析; 全模式的原理是把句子中全部可以成词的词语全部扫描出来,它的分词速度快,缺点是无法识别歧义词句; 搜索引擎模式是在精确模式的基础上进一步处理的,它对较长的词语再进…

    2022年6月17日
    22
  • Web安全-一句话木马

    Web安全-一句话木马概述在很多的渗透过程中,渗透人员会上传一句话木马(简称Webshell)到目前web服务目录继而提权获取系统权限,不论asp、php、jsp、aspx都是如此,那么一句话木马到底是什么呢?先来看看最简单的一句话木马:<?php@eval($_POST[‘attack’])?>【基本原理】利用文件上传漏洞,往目标网站中上传一句话木马,然后你就

    2022年5月11日
    35
  • c++字符串转int_python中lower的用法

    c++字符串转int_python中lower的用法在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long和int范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展了。不同的编

    2022年10月22日
    0
  • FastClick源码分析

    FastClick源码分析玩过移动端web开发的同学应该都了解过,移动端上的click事件都会有300毫秒的延迟,这300毫秒主要是浏览器为了判断你当前的点击时单击还是双击,但有时候为了更快的对用户的操作做出更快的响应,越过这个300毫秒的延迟是有点必要的,faskclick做的就是这件事,这篇文章会理清faskclick的整体思路,分析主要的代码,但不会贴出所有的代码,仅分析主干,由于历史原因,faskclick对旧版本…

    2022年6月19日
    29
  • 关于FIONREAD命令的作用[通俗易懂]

    关于FIONREAD命令的作用[通俗易懂]当在ioctl里使用FIONREAD时,除了获得所指定的读缓存大小以外,还有清除设备准备就绪状态的作用.代码CodehighlightingproducedbyActiproCodeHig

    2022年7月3日
    53
  • java中数组转成list_java数组转json

    java中数组转成list_java数组转jsonJava数组转List的几种方法一、Arrays.asList二、Collections.addAll三、Arrays.stream(arr).collect(Collectors.toList())本文提供了几种Java中常用的数组转List的方法一、Arrays.asList//Array转ListString[]arr={“a”,”b”,”c”};List<String>list=Arrays.asList(arr);System.out.println

    2022年8月23日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号