西门子6ES7214-2BD23-0XB8原装库存
对于输出电路的处理应注意:Q0.0输出继电器在M0.1、M0.2步中都被接通,应将M0.1和M0.2的常开接点并联去驱动Q0.0;Q0.1输出继电器只在M0.2步为活动步时才接通,所以用M0.2的常开接点驱动Q0.1。
使用起保停电路模式编制的梯形图程序如图7-9所示。
2使用置位、复位指令的编程方法
S7-200系列PLC有置位和复位指令,且对同一个线圈置位和复位指令可分开编程,所以可以实现以转换条件为中心的编程。
当前步为活动步且转换条件成立时,用S将代表后续步的中间继电器置位(激活),同时用R将本步复位(关断)。
图7-8所示的功能流程图中,如用M0.0的常开接点和转换条件I0.0的常开接点串联作为M0.1置位的条件,同时作为M0.0复位的条件。这种编程方法很有规律,每一个转换都对应一个S/R的电路块,有多少个转换就有多少个这样的电路块。用置位、复位指令编制的梯形图程序如图7-10所示。
3使用移位寄存器指令编程的方法
单流程的功能流程图各步总是顺序通断,并且同时只有一步接通,因此很容易采用移位寄存器指令实现这种控制。对于图7-8所示的功能流程图,可以指定一个两位的移位寄存器,用M0.1、M0.2代表有输出的两步,移位脉冲由代表步状态的中间继电器的常开接点和对应的转换条件组成的串联支路并联提供,数据输入端(DATA)的数据由初始步提供。对应的梯形图程序如图7-11所示。在梯形图中将对应步的中间继电器的常闭接点串联连接,可以禁止流程执行的过程中移位寄存器DATA端置“1”,以免产生误操作信号,从而保证了流程的顺利执行。
4使用顺序控制指令的编程方法
使用顺序控制指令编程,必须使用S状态元件代表各步,如图7-12所示。
其对应的梯形图如图7-13所示。
(2)选择分支及编程方法
选择分支分为两种,如图7-14为选择分支开始,7-15为选择分支结束。
选择分支开始指:一个前级步后面紧接着若干个后续步可供选择,各分支都有各自的转换条件,在图中则表示为代表转换条件的短划线在各自分支中。
选择分支结束,又称选择分支合并,是指:几个选择分支在各自的转换条件成立时转换到一个公共步上。
在图7-14中,假设2为活动步,若转换条件a=1,则执行工步3;如果转换条件b=1,则执行工步4;转换条件c=1,则执行工步5。即哪个条件满足,则选择相应的分支,同时关断上一步2。一般只允许选择其中一个分支。在编程时,若图7-14中的工步2、3、4、5分别用M0.0、M0.1、M0.2、M0.3表示,则当M0.1、M0.2、M0.3之一为活动步时,都将导致M0.0=0,所以在梯形图中应将M0.1、M0.2和M0.3的常闭接点与M0.0的线圈串联,作为关断M0.0步的条件。
在图7-15中,如果步6为活动步,转换条件d=1,则,则工步6向工步9转换;如果步7为活动步,转换条件e=1,则工步7向工步9转换;如果步8为活动步,转换条件f=1,则工步8向工步9转换。若图7-15中的工步6、7、8、9分别用M0.4、M0.5、M0.6、M0.7表示,则M0.7(工步9)的起动条件为:M0.4・d+ M0.5・e+ M0.6・f,在梯形图中,则为M0.4的常开接点串联与d转换条件对应的触点、M0.5的常开接点串联与e转换条件对应的触点、M0.6的常开接点串联与f转换条件对应的触点,三条支路并联后作为M0.7线圈的起动条件。
【例7-4】根据图7-16所示的功能流程图,设计出梯形图程序。
1使用起保停电路模式的编程
对应的状态逻辑关系为:
对应的梯形图程序如图7-17所示。
2使用置位、复位指令的编程
对应的梯形图程序如图7-18所示。
3使用顺序控制指令的编程
对应的功能流程图如图7-19所示。对应的梯形图程序如图7-20所示。
(3)并行分支及编程方法
并行分支也分两种,图7-21a为并行分支的开始,图7-21b为并行分支的结束,也称为合并。并行分支的开始是指当转换条件实现后,同时使多个后续步激活。为了强调转换的同步实现,水平连线用双线表示。在图7-21a中,当工步2处于激活状态,若转换条件e=1,则工步3、4、5同时起动,工步2必须在工步3、4、5都开启后,才能关断。并行分支的合并是指:当前级步6、7、8都为活动步,且转换条件f成立时,开通步9,同时关断步6、7、8。
【例7-5】根据图7-22所示的功能流程图,设计出梯形图程序。
1使用起保停电路模式的编程,对应的梯形图程序如图7-23所示。
2使用置位、复位指令的编程,对应的梯形图程序如图7-24所示。
3使用顺序控制指令的编程
对应的功能流程图如图7-25所示。对应的梯形图程序如图7-26所示。
(4)循环、跳转流程及编程方法
在实际生产的工艺流程中,若要求在某些条件下执行预定的动作,则可用跳转程序。若需要重复执行某一过程,则可用循环程序。如图7-27所示。
跳转流程:当步2为活动步时,若条件f=1,则跳过步3和步4,直接激活步5。
循环流程:当步5为活动步时,若条件e=1,则激活步2,循环执行。
编程方法和选择流程类似,不再详细介绍。
需要注意的是:
² ² 转换是有方向的,若转换的顺序是从上到下,即为正常顺序,可以省略箭头。若转换的顺序从下到上,箭头不能省略。
² ² 只有两步的闭环的处理。
在顺序功能图中只有两步组成的小闭环如图7-28a所示,因为M0.3既是M0.4的前级步,又是它的后续步,所以对应的用起保停电路模式设计的梯形图程序如图7-28b所示。从梯形图中可以看出,M0.4线圈根本无法通电。解决的办法是:在小闭环中增设一步,这一步只起短延时(≤0.1s)作用,由于延时取得很短,对系统的运行不会有什么影响,如图7-28c所示。
可编程序控制器(PC)的应用中,我们常会碰到对继电器控制系统的改造问题,这时我们往往要参考原有的继电器控制电路来编制PC的应用程序。因此,在编程时,我们应注意PC控制系统与继电器控制系统工作方式上的一些不同。
下面我们看一个例子:一个继电器控制回路如图1 所示。
因继电器控制系统是以“并行”方式工作的,而且其触点的通断需要一定的动作时间。所以当该电路起动后,时间继电器KT延时时间到时,KT是否能继续保持通电状态,需要同时考虑“并行”的两个动作过程:KT的常闭延时触点断开,KA1失电,KA1常开触点断开;KT的常开延时触点闭合,KA2得电,KA2常开触点闭合。这两个过程作用的结果,来决定KT的状态。同时,触点动作时间的存在,使得电路出现时序竞争。因此该电路不能可靠工作。如果加入虚框中的回路,并如图1把KA2的常开触点换成KA3的常开触点(见图1中括号)。结果是KT动作后,KT自身失电,就不会继续保持通电状态。
同样是这个电路,我们用PC来实现,梯形图如图2 所示。
PC是以“串行”方式工作的,也就是以扫描的方式,循环地、连续地、顺序地,逐条执行程度的方式工作。同时,PC中,软触点的动作可认为是瞬时完成的,且其能把本次动作的结果记忆保持到下一次扫描运算时为止。即具有记忆保持功能。按这样一个顺序“串行”的工作方式,梯形图动作顺序如下:当在某一扫描周期中TIM00延时到后,则:
1. TIM00常闭触点断开(OFF),0000 OFF;
2. TIM00常开触点闭合(ON),0001 ON;
3. 0000常开触点OFF,0001常开触点ON,TIM00继续保持通电状态。而且不论我们在0001与TIM00之间再加多少级前面继电器电路所加的虚框中的回路,并把0001常开触点换成所加回路后一级继电器的常开触点,TIM00仍能继续保持通电状态。
同样的电路,由于继电器控制系统和PC控制系统工作方式上的差异,两者会有不同的动作结果。注意到这一点,我们在编程时,就会避免一些不应有的错误。同时利用PC的一些特点,编出功能
一、概述
如果一个控制系统可以分解成几个独立的控制动作,且这些动作必须严格按照一定的先后次序执行才能保证生产过程的正常运行,这样的控制系统称为顺序控制系统,也称为步进控制系统。其控制总是一步一步按顺序进行。在工业控制领域中,顺序控制系统的应用很广,尤其在机械行业,几乎无例外地利用顺序控制来实现加工的自动循环。
所谓顺序控制设计法就是针对顺序控制系统的一种专门的设计方法。这种设计方法很容易被初学者接受,对于有经验的工程师,也会提高设计的效率,程序的调试、修改和阅读也很方便。PLC的设计者们为顺序控制系统的程序编制提供了大量通用和专用的编程元件,开发了专门供编制顺序控制程序用的功能表图,使这种先进的设计方法成为当前PLC程序设计的主要方法。
二、顺序控制设计法的设计步骤
采用顺序控制设计法进行程序设计的基本步骤及内容如下:
1.步的划分
顺序控制设计法基本的思想是将系统的一个工作周期划分为若干个顺序相连的阶段,这些阶段称为步,并且用编程元件(辅助继电器M或状态器S)来代表各步。如图5-19a所示,步是根据PLC输出状态的变化来划分的,在任何一步之内,各输出状态不变,但是相邻步之间输出状态是不同的。步的这种划分方法使代表各步的编程元件与PLC各输出状态之间有着极为简单的逻辑关系。
图5-19 步的划分
a)划分方法一 b)划分方法二
步也可根据被控对象工作状态的变化来划分,但被控对象工作状态的变化应该是由PLC输出状态变化引起的。如图5-19b所示,某液压滑台的整个工作过程可划分为停止(原位)、快进、工进、快退四步。但这四步的状态改变都必须是由PLC输出状态的变化引起的,否则就不能这样划分,例如从快进转为工进与PLC输出无关,那么快进和工进只能算一步。
2.转换条件的确定
使系统由当前步转入下一步的信号称为转换条件。转换条件可能是外部输入信号,如按钮、指令开关、限位开关的接通/断开等,也可能是PLC内部产生的信号,如定时器、计数器触点的接通/断开等,转换条件也可能是若干个信号的与、或、非逻辑组合。如图5-19b所示的SB、SQ1、SQ2、SQ3均为转换条件。
顺序控制设计法用转换条件控制代表各步的编程元件,让它们的状态按一定的顺序变化,然后用代表各步的编程元件去控制各输出继电器。
3.功能表图的绘制
根据以上分析和被控对象工作内容、步骤、顺序和控制要求画出功能表图。绘制功能表图是顺序控制设计法中为关键的一个步骤。绘制功能表图的具体方法将后面详细介绍。
4.梯形图的编制
根据功能表图,按某种编程方式写出梯形图程序。有关编程方式将在本章节第五节中介绍。如果PLC支持功能表图语言,则可直接使用该功能表图作为终程序。
1 引言
可编程序控制器(plc)是以微处理器为基础,综合计算机、通信、联网以及自动控制技术而开发的新一代工业控制装置。可编程序控制器plc在我国的发展与应用已有30多年的历史,现在它已经广泛应用于国民经济的各个工业生产领域,成为提高传统工业装备水平和技术能力的重要设备和强大支柱。随着我国国民经济的全面发展和技术水平的不断提高,可编程序控制器应用领域不断扩大,了解熟悉和掌握plc程序设计语言以及应用软件编程技术,对plc的进一步推广应用和使用维护具有十分重要的作用。
2 plc程序设计语言
根据plc应用范围,程序设计语言可以组合使用,常用的程序设计语言有:梯形图程序设计语言;布尔助记符程序设计语言(语句表);功能表图程序设计语言;功能模块图程序设计语言;结构化语句描述程序设计语言;梯形图与结构化语句描述程序设计语言;布尔助记符与功能表图程序设计语言;布尔助记符与结构化语句描述程序设计语言。
2.1 梯形图(ladder diagram)
程序设计语言梯形图程序设计语言是用梯形图的图形符号来描述程序的一种程序设计语言。采用梯形图程序设计语言,程序采用梯形图的形式描述。这种程序设计语言采用因果关系来描述事件发生的条件和结果。每个梯级是一个因果关系。在梯级中,描述事件发生的条件表示在左面,事件发生的结果表示在后面。梯形图程序设计语言是常用的一种程序设计语言。它来源于继电器逻辑控制系统的描述。
在工业过程控制领域,电气技术人员对继电器逻辑控制技术较为熟悉,因此,由这种逻辑控制技术发展而来的梯形图受到了欢迎,并得到了广泛的应用。梯形图程序设计语言的特点是:
(1) 与电气操作原理图相对应,具有直观性和对应性。
(2) 与原有继电器逻辑控制技术相一致,对电气技术人员来说,易于撑握和学习。
(3) 与原有的继电器逻辑控制技术的不同点是,梯形图中的能流(power
flow)不是实际意义的电流,内部的继电器也不是实际存在的继电器,因此,应用时,需与原有继电器逻辑控制技术的有关概念区别对待。
(4) 与布尔助记符程序设计语言有一一对应关系,便于相互的转换和程序的检查。
2.2布尔助记符(boolean mnemonic)
程序设计语言布尔助记符程序设计语言是用布尔助记符来描述程序的一种程序设计语言。布尔助记符程序设计语言与计算机中的汇编语言非常相似,采用布尔助记符来表示操作功能。布尔助记符程序设计语言具有下列特点:
(1) 采用助记符来表示操作功能,具有容易记忆,便于撑握的特点。
(2) 在编程器的键盘上采用助记符表示,具有便于操作的特点,可在无计算机的场合进行编程设计。
(3) 与梯形图有一一对应关系。其特点与梯形图语言基本类同。
2.3功能表图(sepuential chart)
程序设计语言功能表图程序设计语言是用功能表图来描述程序的一种程序设计语言。它是近年来发展起来的一种程序设计语言。采用功能表图的描述,控制系统被分为若干个子系统,从功能入手,使系统的操作具有明确的含义,便于设计人员和操作人员设计思想的沟通,便于程序的分工设计和检查调试。功能表图程序设计语言的特点是:
(1) 以功能为主线,条理清楚,便于对程序操作的理解和沟通。
(2) 对大型的程序,可分工设计,采用较为灵活的程序结构,可节省程序设计时间和调试时间。
(3) 常用于系统的规模校大,程序关系较复杂的场合。
(4)只有在活动步的命令和操作被执行,对活动步后的转换进行扫描,因此,整个程序的扫描时间较其他程序编制的程序扫描时间要大大缩短。功能表图来源于佩特利(petri)网,由于它具有图形表达方式,能较简单和清楚地描述并发系统和复杂系统的所有现象,并能对系统中存有的象死锁、不安全等反常现象进行分析和建模,在模型的基础上能直接编程,所以,得到了文泛的应用。
近几年推出的plc和小型集散控制系统中也已提供了采用功能表图描述语言进行编程的软件。学习、了解和掌握佩特利(petri)网的一些基本概念,可以有助于对功能表图的进一步理解。
2.4结构化语句(structured text)
描述程序设计语言结构化语句描述程序设计语言是用结构化的描述语句来描述程序的一种程序设计语言。它是一种类似于语言的程序设计语言。在大中型的
plc系统中,常采用结构化语句描述程序设计语言来描述控制系统中各个变量的关系。它也被用于集散控制系统的编程和组态。结构化语句描述程序设计语言采用计算机的描述语句来描述系统中各种变量之间的各种运算关系,完成所需的功能或操作。大多数制造厂商采用的语句描述程序设计语言与basic语言、pascal语言或c语言等语言相类似,但为了应用方便,在语句的表达方法及语句的种类等方面都进行了简化。结构化程序设计语言具有下列特点:
(1) 采用语言进行编程,可以完成较复杂的控制运算;
(2) 需要有一定的计算机程序设计语言的知识和编程技巧,对编程人员的技能要求较高,普通电气人员无法完成;
(3)直观性和易操作性等性能较差;
(4) 常被用于采用功能模块等其他语言较难实现的一些控制功能的实施。
部分plc的制造厂商为用户提供了简单的结构化程序设计语言,它与助记符程序设计语言相似,对程序的步数有一定的限制,同时,提供了与plc间的接口或通信连接程序的编制方式,为用户的应用程序提供了扩展余地。
3 plc程序设计
3.1 plc控制系统的设计步骤
图1为plc控制系统设计步骤图。
图1 plc控制系统设计步骤图
3.2 编程编程语言的选择
在编制plc控制程序设计时,除i/o地址列表外,有时还要把在程序中用到的中间继电器(m)、定时器(t)、计数器(c)和存储单元(v)以及它们有作用或功能列写出来,以便编写程序和阅读程序。在编程语言的选择上,用梯形图编程还是用语句表或使用功能图编程,这主要取决于以下几点:
(1) 有些plc使用梯形图编程不是很方便(如书写不方便),则可用语句表编程,但梯形图总比语句表直观。
(2) 经验丰富的人员可用语句表直接编程,就像使用汇编语言一样。
(3) 如果是清晰的单顺序、选择顺序或并发顺序的控制任务,则好用功能图来编程设计程序。
3.3 编程注意事项
(1) 设计可编程控制器时,
安全性是重要的,即使在外部的电源发生异常时,可编程控制器出现故障时,整个系统也能在安全状态下工作,应在可编程控制器外部,设置如下几中安全电路:紧急停止电路,保护电路,正转逆转等相反操作的连锁电路,定位的上限/下线等防止损坏的连锁电路等,以防止误操作产生故障。
(2)编程要理论联系实践。从简单的做起,循序渐进。例如说学习西门子plc编程开始可以先编写些只包括数字量的,然后再考虑模拟量的,另外像计时器、计数器也经常使用等。
(3)在一段程序里不可有同样的两个输出存在。比如说前段程序有1个输出q0.0存在,后面就不要再有了,除非是做子函数,而且要保证主函数和子函数里的输出也不能重复,否则plc只考虑后者。
(4)数字量输出分为继电器输出和晶体管输出两种:前者电流大,后者速度快。要考虑电源容量问题,如果容量小了,那么plc在输出后电压不够,输出也就停了,然后,电压又够了plc又输出了,电压又不够输出又停,外表特征就是设备反复启动反复停止。这和程序无关。
(5)用步进指令设计梯形图时,要注意plc初始状态继电器的设置。一般plc的状态继电器分有初始状态继电器、回零状态继电器、一般状态继电器、保持状态继电器和报警状态继电器。状态继电器的使用不受限制,当状态继电器不用于步进顺序控制时,它也可作为辅助继电器使用。
(6)使用梯形图编程时,应把串联多的电路块尽量放在上边,把并联多的电路块尽量放在左边,这样即节省指令,又美观。在同一程序中,同一编号的线圈使用两次及两次以上称为双线圈,双圈非常容易引起误动作,应避免使用。触点应画在水平线上,不包含触点的分支线条应放在垂直方向,不要放在水平方向,以便于读图和图形的美观。线圈和指令盒一般不能直接连接在左边的母线上,如需要的话可通过特殊的继电器完成。
(7)采用什么品牌的plc完全依据个人喜好,不同的plc只是语法有些差异,只要会一种以后另一种也就会了。总之就是一句话,如果想编plc程序设计就要多学多练。
(8)编程完成后,要进行室内模拟调试,可借助模拟开关和plc输出端的输出指示灯进行。需要模拟信号i/o时,可用电位器和万用表配合进行。调试时,可利用外围设备模拟各种现场开关和传感器状态,然后观察plc输出逻辑是否正确。目前的plc产品都可在pc机上编程,并进行直接模拟调试。
(9)联机调试时,可把编好的程序下载到plc中。调试时一定要先将主电路断开,只对控制电路进行调试,若通过联调信号接入发现有软硬件中的问题,对问题进行整改,并反复测试系统无误后,才能投入交付使用。
4 结束语
plc程序设计工作,除了要熟悉和掌握plc程序设计语言及其控制电路的工作原理外,更重要的是要靠平时更多的编程实践和应用经验的不断积累,才能正真提高编程人员的技术水平,才能更好地掌握编程技巧和程序设计方法,满足生产实际工作的需要。