学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多种,后面老师会给大家一一介绍,你们想听哪一种写法的也可以后台私信留言喔!
PLC编程学会顺序功能图,编程一点就通!
功能表图又称做状态转移图,它是描述控制系统的控制过程、功能和特性的一种图形,也是设计plc的顺序控制程序的有力工具。功能表图并不涉及所描述的控制功能的具体技术,它是—种通用的技术语言,可以用于进一步设计和不同专业的人员之间进行技术交流。
各个PLC厂家都开发了相应的功能表图,各国家也都制定了功能表图的国家标准。我国于1986年颁布了功能表图的国家标准(GB6988.6-86)。
如图1所示为功能表图的一般形式,它主要由步、有向连线、转换、转换条件和动作(命令)组成。
图1 功能表图的一般形式
PART1.步与动作
(1)步
在功能表图中用矩形框表示步,方框内是该步的编号。如图1所示各步的编号为n-1、n、n+1。编程时一般用PLC内部编程元件来代表各步,因此经常直接用代表该步的编程元件的元件号作为步的编号,如M300等,这样在根据功能表图设计梯形图时较为方便。
(2)初始步
与系统的初始状态相对应的步称为初始步。初始状态一般是系统等待启动命令的相对静止的状态。初始步用双线方框表示,每一个功能表图至少应该有一个初始步。
(3)动作
一个控制系统可以划分为被控系统和施控系统,例如在数控车床系统中,数控装置是施控系统,而车床是被控系统。对于被控系统,在某一步中要完成某些“动作”,对于施控系统,在某一步中则要向被控系统发出某些“命令”,将动作或命令简称为动作,并用矩形框中的文字或符号表示,该矩形框应与相应的步的符号相连。如果某一步有几个动作,可以用如图2所示的两种画法来表示,但是图中并不隐含这些动作之间的任何顺序。
图2 多个动作的表示
(4)活动步
当系统正处于某一步时,该步处于活动状态,称该步为“活动步”。步处于活动状态时,相应的动作被执行。若为保持型动作则该步不活动时继续执行该动作,若为非保持型动作则指该步不活动时,动作也停止执行。一般在功能表图中保持型的动作应该用文字或助记符标注,而非保持型动作不要标注。
PART2.有向连线、转换与转换条件
(1)有向连线
在功能表图中,随着时间的推移和转换条件的实现,将会发生步的活动状态的顺序进展,这种进展按有向连线规定的路线和方向进行。在画功能表图时,将代表各步的方框按它们成为活动步的先后次序顺序排列,并用有向连线将它们连接起来。活动状态的进展方向习惯上是从上到下或从左至右,在这两个方向有向连线上的箭头可以省略。如果不是上述的方向,应在有向连线上用箭头注明进展方向。
(2)转换
转换是用有向连线上与有向连线垂直的短划线来表示,转换将相邻两步分隔开。步的活动状态的进展是由转换的实现来完成的,并与控制过程的发展相对应。
(3)转换条件
转换条件是与转换相关的逻辑条件,转换条件可以用文字语言、布尔代数表达式或图形符号标注在表示转换的短线的旁边。转换条件X和x分别表示在逻辑信号X为“1”状态和“0”状态时转换实现。符号X↑和X↓分别表示当X从状态0到1和1到0状态时转换实现。使用最多的转换条件表示方法是布尔代数表达式。
PART3.功能表图的基本结构
(1)单序列
单序列由一系列相继激活的步组成,每一步的后面仅接有一个转换,每一个转换的后面只有一个步,如图3a所示。
图3 单序列与选择序列 a)单序列 b)选择序列开始 c)选择序列结束
(2)选择序列
选择序列的开始称为分支,如图3b所示,转换符号只能标在水平连线之下。如果步2是活动的,并且转换条件e=1,则发生由步5步6的进展;如果步5是活动的,并且f=1,则发生由步5步9的进展。在某一时刻一般只允许选择一个序列。
选择序列的结束称为合并,如图5-22c所示。如果步5是活动步,并且转换条件m=1,则发生由步5步12的进展;如果步8是活动步,并且n=1,则发生由步8步12的进展。
(3)并行序列
并行序列的开始称为分支,如图4a所示,当转换条件的实现导致几个序列同时激活时,这些序列称为并行序列。当步4是活动步,并且转换条件a=1、3、7、9这三步同时变为活动步,同时步4变为不活动步。为了强调转换的同步实现,水平连线用双线表示。步3、7、9被同时激活后,每个序列中活动步的进展将是独立的。在表示同步的水平双线之上,只允许有一个转换符号。
图4 并行序列 a)并行序列开始 b)并行序列结束
并行序列的结束称为合并,如图4b所示,在表示同步的水平双线之下,只允许有一个转换符号。当直接连在双线上的所有前级步都处于活动状态,并且转换条件b=1时,才会发生步3、6、9到步10的进展,即步3、6、9同时变为不活动步,而步10变为活动步。并行序列表示系统的几个同时工作的独立部分的工作情况。
(4)子步
如见图5所示,某一步可以包含一系列子步和转换,通常这些序列表示整个系统的一个完整的子功能。子步的使用使系统的设计者在总体设计时容易抓住系统的主要矛盾,用更加简洁的方式表示系统的整体功能和概貌,而不是一开始就陷入某些细节之中。设计者可以从最简单的对整个系统的全面描述开始,然后画出更详细的功能表图,子步中还可以包含更详细的子步,这使设计方法的逻辑性很强,可以减少设计中的错误,缩短总体设计和查错所需要的时间。
图5 子步
PART4.转换实现的基本规则
(1)转换实现的条件
在功能表图中,步的活动状态的进展是由转换的实现来完成的。转换实现必须同时满足两个条件:
1)该转换所有的前级步都是活动步;
2)相应的转换条件得到满足。
如果转换的前级步或后续步不止一个,转换的实现称为同步实现,如图6所示。
图6 转换的同步实现
(2)转换实现应完成的操作
转换的实现应完成两个操作:
1)使所有由有向连线与相应转换符号相连的后续步都变为活动步;
2)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。
PART5.绘制功能表图应注意的问题
(1)两个步绝对不能直接相连,必须用一个转换将它们隔开。
(2)两个转换也不能直接相连,必须用一个步将它们隔开。
(3)功能表图中初始步是必不可少的,它一般对应于系统等待起动的初始状态,这一步可能没有什么动作执行,因此很容易遗漏这一步。如果没有该步,无法表示初始状态,系统也无法返回停止状态。
(4)只有当某一步所有的前级步都是活动步时,该步才有可能变成活动步。如果用无断电保持功能的编程元件代表各步,则PLC开始进入RUN方式时各步均处于“0”状态,因此必须要有初始化信号,将初始步预置为活动步,否则功能表图中永远不会出现活动步,系统将无法工作。
PART6.绘制功能表图举例
某组合机床液压滑台进给运动示意图如图7所示,其工作过程分成原位、快进、工进、快退四步,相应的转换条件为SB、SQ1、SQ2、SQ3。液压滑台系统各液压元件动作情况如表1所示。根据上述功能表图的绘制方法,液压滑台系统的功能表图如图7a所示。
表1 液压元件动作表
元件
工步
YV1
YV2
YV3
原位
―
―
―
快进
┼
―
―
工进
┼
―
┼
快退
―
┼
―
图7 液压滑台系统的功能表图
如果PLC已经确定,可直接用编程元件M300~M303(FX系列)来代表这四步,设输入/输出设备与PLC的I/O点对应关系如表2所示,则可直接画出如图7b所示的功能表图接线图,图中M8002为FX系列PLC的产生初始化脉冲的特殊辅助继电器。
表2 输入/输出设备与PLC I/O对应关系
PLC I/O
X0
X1
X2
X3
Y0
Y1
Y2
输入/输出设备
SB
SQ1
SQ2
SQ3
YV1
YV2
YV3
免责声明:本文转自网络,版权归原作者所有,如涉及作品版权问题,请及时与我们联系删除,谢谢!
相关问答
PLC如何写顺序启动指令?
1.按动一次按钮记一次数;如下程序,当按动按钮X1时,INCP会向D1里加1;D1初始值为0,按动一次按钮后则为1.再按一次时D1就会再加1,变为2了。2.第一次按下时第...1...
plc程序如何按原方向运行?
PLC程序的运行方向通常是由程序的逻辑控制语句所决定的。如果程序的逻辑控制语句是按照原方向编写的,则程序就会按照原方向运行。同时,在编写PLC程序时,还需要...
为什么每个PLC程序都会有初始位置?
每个PLC程序都会有初始位置,主要是因为PLC是一种用于控制工业自动化生产过程的电子设备,其控制逻辑需要从一个已知的起始状态开始。在PLC程序中,初始位置包括...
PLC编程为什么要先进行初始化?
初始化就是将程序中即将要用的寄存器设置一个初始值。包括输出、中间继电器、还有数据寄存器为什么要初始化,因为PLC很多数据都有断电保存功能。还有一些数据...
PLC原始时间如何设定?
法,都会...2、菜单命令设定系统时钟3、菜单命令设定系统时钟4、菜单命令设定系统时钟上述几种方法,都会弹出"设置时钟"的对话框,勾选"来自PG/PC"...
信捷XC系列PLC编程软件安装教程?
1.首先从信捷官网上下载XC系列的V3.3版本的软件压缩包解压,然后打开解压后的文件夹。2、双击如图所示的安装程序安装。3、选择下一步。4、选择安装路径,建议...
如何理解plc从上到下,从左到右的扫描顺序?
PLC的工作方式采用不断循环的顺序扫描工作方式。扫描顺序为从上到下,从左到右每一次扫描所用的时间称为扫描周期或工作周期。PLC从第一条指令执行开始,按顺序逐...
西门子plcs7-300db数据块怎么初始值?
在DB块数据表中输入你需要的初始值,下载到PLC中去,如果不变化。再在SIMATICMANAGER中打开该DB块,选择View-->DataView将DB切换到数据视图,选择Edit--&...
plc默认的扫描方式?
PLC对用户程序的执行是以循环扫描方式进行。PLC这种运行程序的方式与微型计算机相比有较大的不同,微型计算机运行程序时,一旦执行到END指令,程序运行结束。而...
西门子plc默认ip地址是多少?
西门子PLC默认IP地址为192.168.0.1。因为西门子PLC的网络通信是基于以太网协议,他们设备的默认子网掩码都是255.255.255.0,而默认的网关是192.168.0.254。在这...