plc从左往右编程 学PLC编程的第1个关卡:单按钮启停程序

小编 94 0

学PLC编程的第1个关卡:单按钮启停程序

原标题:单按钮启停程序,加深对程序扫描的理解,学习编程的第一个关卡

——技成陈育鑫

今天给大家介绍一些单按钮启停的控制程序(也叫一键启停程序),就是使用一个点动按钮,按一下启动一个灯泡点亮,再按一次,熄灭灯泡,再按一次,点亮再按一次,熄灭... ...

看是很简单的一个程序,仔细想想可能很多人还做不出来,这个题目也是我当年刚毕业时面试的时候,考官出的一个题目。

其实这个程序的写法有很多种,通过分析这些写法,可以加深我们对PLC的工作扫描方式的理解。

PLC的工作过程分为3步:

1、输入检测 ,检测各种按钮开关的状态

2、程序扫描 ,穿透到位扫描一遍程序,执行对应的运算

3、输出刷新 ,把程序的运行结果输出控制对应的负载,比如指示灯

下面我们来看看各种写法吧

写法1

通过一条交替输出指令,可以达到效果,这是最简单的控制方式,不需要分析也能看的懂。

写法2:使用计数器

按下第一次按钮后

第一个扫描周期,x0的上升沿会导通(上升沿只导通1个扫描周期),导通Y0的线圈,注意,这个周期的Y0常开触点并不会闭合,因为程序是从上往下,从左往右循环的,然后继续往下,C0的常开触点不闭合,继续下一行扫描,X0的上升沿会导通C0计数器,记1。

第二个扫描周期,由于上一个周期Y0的线圈导通了,所以Y0的常开触点会导通,这时形成自锁由于上升沿只能导通一个扫描周期,所以这一个周期里面的X0全部都不会导通,计数器保存的数据还是1,下一个周期执行的结果和第二个周期时一样的,这时Y0常亮

按下第二次按钮

第一个扫描周期,第一行,X0继续导通Y0的线圈,Y0继续自锁;第3行,计数器的常开触点依然断开;第4行,X0的上升沿又导通了一次,致使C0计数器有记了一个数,计数为2。最终输出结果Y0还是点亮的。

第二个扫描周期,,第一行程序,由于上个周期C0计数器记了2,使得我们的C0常闭触点断开,Y0的自锁解除,熄灭;第3行,C0的常开触点会闭合,把C0的计数器复位,由于上升沿只能导通一个扫描周期,这个周期里面的X0点全部时断开的,这是,结果是Y0断开,C0计数器复位,程序回复导初始状态。

以下还有好多的写法,同样能够实现这个功能,由于解说太长,我们就在后面再给大家解说

写法3

写法4

写法5

写法6

写法7

写法8

写法9

其实还有好多写法,真正写出来应该有30多种,后面老师会给大家一一介绍,你们想听哪一种写法的也可以后台私信留言喔!

S7 300PLC之旅——STEP7的三种基本编程语言:LAD、FBD、STL

在上一篇文章《复盘“运料小车程序”,聊一聊PLC编程》中,驼子假定了一个运料小车的控制程序,简单的聊了一下一下PLC控制项目的编程步骤。有小伙伴认为程序体理解起来稍微有点难度,为了使有需要的小伙伴能有一个更为清晰的认识,驼子将在本文介绍以下STEP7 的三种基本编程语言:LAD、FBD以及STL。

一、梯形图LAD

梯形图语言是从常用的继电器与接触器逻辑控制基础上简化了符号演变而来的,具有形象、直观、实用等特点,电气技术人员容易接受,是目前运用上最多的一种PLC的编程语言。

在PLC程序图中,左、右母线类似于继电器与接触器控制电源线,输出线圈类似于负载,输入触点类似于按钮。梯形图由若干阶级构成,自上而下排列,每个阶级起于左母线,经过触点与线圈,止于右母线。图1为一段典型的梯形图语言编写的程序。

图1 梯形图语言

上图中,“常开点”I0.3、I1.2、I1.1及“常闭点”I0.2串联后,与“常开点”M0.0并联,然后为“线圈”Q4.2供电。在“继电器与接触器“型电路中,用梯形图编程会显得一目了然,犹如看电气连接图一般。

二、功能块图FBD

FBD用方框图的形式来表示控制逻辑,类似于数字逻辑门电路的编程语言。驼子在大学时,对数字电路情有独钟,因而后来对FBD语言有了天然的好感,工作中倾向于用FBD进行编程。FBD语言对于有数字电路基础的人来说很容易掌握,该编程语言用类似与门、或门的方框来表示逻辑运算关系,方框的左侧为逻辑运算的输入变量,右侧为输出变量;信号也是由左向右流向的,各个功能方框之间可以串联,也可以插入中间信号。在每个最后输出的前面组合逻辑操作方框数是有限的,同一组逻辑运算的输出结果的数目也要根据操作系统的不同而不同;经过扩展,不但可以表示各种简单的逻辑操作,并且也可以表示复杂的运算、操作功能。图1的梯形图控制逻辑用FBD编程的话,如图2所示。

图2 FBD语言

图2中,方框”&“为“与”运算,“>="为或运算,其真值表如下:

图3 真值表

FBD语言的编程过程类似于数字电路中用集成模块搭建电路,每个模块都有其自己的功能,根据控制需要,选用合适的模块,用“线”连起来即可。

三、语句表STL

STL是一种与汇编语言类似的助记符编程语言,用一个或几个容易记忆的字符来代表PLC的某种操作功能,每个语句由地址(步序号)、操作码(指令)和操作数(数据)三部分组成。语句表可以实现某些不易用梯形图或功能块图来实现的功能。玩过单片机的小伙伴再学习STL,可能会有些优势。图4为用STL编写的同一控制逻辑的程序。

图4 STL语言

其中,“A”为与运算,“AN”为与非运算,“O”为或运算,“=”为赋值运算。

用STL编程,需要对PLC的微观逻辑结构有相当的了解,比如:需要了解各种存储模式,熟悉各种寻址方式,同时还要能熟练使用各种编程助记符。可以说,能够熟练运用STL编程的小伙伴,siemens的PLC一定玩的相当的溜。驼子我的STL编程仍处在初学者阶段,犹记得去年用STL编写过一段光电测距仪的接口程序,不知死了多少脑细胞,实在是不堪回首。

四、三种语言,该如何抉择?

1、三种语言互相转换

在STEP7中,可以通过菜单选择,在三种语言中相互切换显示。如图5所示。

图5 LAD、FBD、STL切换显示

当然,通常LAD和FBD直接可以互相切换,LAD、FBD也可以转换为STL语言,但STL却不一定可以转换为LAD或FBD语言。

2、三种语言的优劣比较

LAD是最常用的PLC编程语言,其形象、直观,稍懂电气的人就能很快上手,而且目前市面上几乎所有的PLC都支持LAD编程,一通百通。其在“继电器或接触器型”逻辑功能中应用比较好,但随着STEP7中集成的程序功能单元越来越多,LAD语言写出的程序多少有点“不伦不类”。如图6所示,程序单元“CMP>=D”在FBD程序中,以“块”的形式显示,与其他单元一样;但在LAD语言中,仍以“块”的形式显示,与其它“触点单元”放在一起显得有点格格不入,虽然不影响逻辑,但看起来不工整。

图6 FBD、LAD程序对比

FBD语言写出的程序,个人认为逻辑性较强,在编程过程中,可以根据被控对象的控制逻辑,“轻易”的捋清程序逻辑,编程就会轻松许多。同时,STEP7提供了大量的、功能各异的“程序逻辑单元”,仅需要简单的拖动,就能实现编程。

STL接近于汇编语言,起点较高,不容易掌握。但在一些需要对硬件操作的时候,比如:驼子曾经编写过的激光测距仪的接口程序,就不得不用到STL语言了。

相关问答

plc循环右移指令例子?

关于这个问题,假设PLC中DW0的初始值为0x12345678,执行循环右移指令后结果为0x91234567。循环右移指令的语法为:RORDn,#n其中,Dn表示要进行操作的数据...

plc如何控制车转弯?

PLC(可编程逻辑控制器)可以用来控制车辆转弯,通过掌握车轮转动的速度和方向,实现车辆转弯的控制。如果需要控制一个轮式车辆(例如小车或机器人)进行转弯,...

如何在三菱PLC编程软件中全部复制全部程序段?-ZOL问答

把光标放到第一行程序的前面(左母线右边)单击不放往右拖选择第一行,然后不要放...win8不支持现在国内使用的编程软件,也就是说不兼容;用xp吧。点击母线左侧,然...

如何在三菱PLC编程软件中全部复制所有程序段?

把光标放到第一行程序的前面(左母线右边)单击不放往右拖选择第一行,然后不要放开往下拖,下面的程序会自动滚上来,(注意不要把END那行选上)选好要复制的程...

plc母线是啥?

梯形图两侧的垂直公共线称为母线。在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想象左右两侧母线(左母线和右母线)之间有一个左正右负的直...

三菱FX-2NPLC的原点回归指令ZRN,电机怎么知道是向左还是向右回原地啊?

方向是相对的,用绝对或相对指令看马达朝那边转动,ZRN就是朝反方向转动;同时伺服电机驱动器可以设置转动方向。方向是相对的,用绝对或相对指令看马达朝那边转...

三菱进出栈指令?

MPP出栈指令进栈指令,当前的结果马上要参加运算,会被修改,但是此结果在下一个运算或输出中还需要用到,就用这个指令进行进栈,即存储或记忆此时的值。在PLC由...

关于三菱FX系列PLC有没有递减功能?C为递增,递减是什么呢?如果有递减功能,求教工序1为C递增时,如何使工序2使C反计数的梯形图?

展开全部在实际工程中有时会用到几个PLC通讯,FX系列PLC作为三菱基本的PLC,它们之间的通讯有几种常用的方式,分别如下:CC-LINK,N:N网络连接,并联连接。1....

西门子PLC的快捷键有哪些?

PAGEUP垂直向上移动一个屏幕PAGEDOWN垂直向下移动一个屏幕LEFTARROW将光标向左移动一个单元格RIGHTARROW将光标向右移动一个单元格UPARROW将光...

plc语句表和梯形图的区别?

梯形图(LAD-LAdderDiagram)这是使用使用最多的PLC编程语言。因与继电器电路很相似,具有直观易懂的特点,很容易被熟悉继电器控制的电气人员所掌握,特...梯形...