第四章程序设计_第1页
第四章程序设计_第2页
第四章程序设计_第3页
第四章程序设计_第4页
第四章程序设计_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PLC的程序设计PLC

原理与实践ProgrammableLogicController自动化、电气工程专业引言PLC

的软件可分为系统软件和应用软件两大类。

系统软件

PLC

的系统软件一般可分为编程器的系统软件和

PLC

操作系统这两部分。把各种编程语言编写的程序转变为

PLC

中央处理单元能接受的机器语言,需要通过编译才能完成。这种编译程序构成了编程器

的系统软件,它存放在编程器的

ROM

存储器中。

PLC的操作系统一般存储在

PLC

系统的

ROM

存储器中,其主要任务是解读用户程序,管理整个

PLC

系统。

应用软件

PLC

的应用软件是指用户根据自己的控制要求编写的处理程序,用于完成特定的控制任务。分时多任务操作系统

由于现代各种控制任务的需求,PLC

通常用于完成比较复杂的项目,例如将PLC

用于计算机集散控制系统(DCS),不同的

PLC

模块分别完成管理、控制、现场的数据采集与处理以及各控制站之间的通信等功能。一个系统在完成之后,常常需要扩容,在不改动原有硬件的基础上,系统硬件以模块方式加以扩展。同时系统的原有软件也不能改动,新的软件也以模块方式添入。这些都需要分时多任务操作系统的支持。

有些公司PLC

的操作系统是一个可自定义的,具有确定性的实时多任务操作系统。在编程时,一个完整的复杂项目通常可以分成多个独立的任务来完成。每个任务都是独立的程序部分,它可以完成许多不同的功能(数字量和模拟量的相互的关联、控制、定位……)。合理的分配一个项目,可以使应用项目结构化;每个任务可以用最合适的编程语言来建立;单个的功能容易编写,并且使功能模块化;单个任务的故障处理也简单。另外,用户可以按需要设定每个应用任务的循环扫描时间;而对于特殊任务的响应时间可不受完整程序循环时间的限制。PLC

的编程语言PLC一般不直接采用微机的编程语言,而采用梯形图语言、指令助记符语言、控制系统流程图语言、布尔代数语言等。其中梯形图语言、指令助记符语言最为常用。

PLC

的设计和生产至今尚无国际统一标准,不同厂家所用语言和符号也不尽相同。但梯形图语言的基本结构和功能是大同小异的。第四章

PLC

的程序设计§4-3其他编程语言§4-4应用程序设计方法§4-2

SCL结构化编程语言本章小结§4-1梯形图编程语言梯形图梯形图概述

(1)

梯形图(

LAD)是一种图形语言,比较形象直观,容易掌握,是目前

PLC

使用最广、最受电气技术人员欢迎的一种编程语言。因为,梯形图不但与传统继电器控制电路图相似,设计思路也与继电器控制图基本一致,还很容易由电气控制线路转化而来。

梯形图逻辑关系清晰直观,编程容易,可读性强,容易掌握,通过丰富的指令系统可实现许多接触器-继电器电路难以实现的功能,充分体现了微机控制的特点。

梯形图概述

(2)梯形图是在原继电器—接触器控制系统的继电器梯形图基础上演变而来的一种图形语言。它是目前用得最多的PLC

编程语言。注意:梯形图表示的并不是一个实际电路而只是一个控制程序,其间的连线表示的是它们之间的逻辑关系,即所谓“软接线”。常开触点:常闭触点:线圈:注意:它们并非是物理实体,而是“软继电器”。每个“软继电器”仅对应PLC存储单元中的一位。该位状态为“1”时,对应的继电器线圈接通,其常开触点闭合、常闭触点断开;状态为“0”时,对应的继电器线圈不通,其常开、常闭触点保持原态。

(a)继电器控制电路图

(b)梯形图梯形图概述(3)

PLC可看成是由普通继电器、定时器、计数器等组合而成的电气控制系统。不过,PLC内部的继电器实际上是指存储器中的存储单元,所以也称为软继电器。当输入到存储单元的逻辑状态为1时,则表示相应继电器的线圈通电,其常开触点闭合,常闭触点断开;而当输入到存储单元的逻辑状态为0时,则表示相应继电器的线圈断电,其常开触点断开,常闭触点闭合。所以,形象地说,这些软继电器体积小、功耗低、无触点、速度快、寿命长,并且具有无限多的常开、常闭触点供程序使用。梯形图概述(4)梯形图编程语言是用梯形图的图形符号来描述程序的一种程序设计语言。左右两条垂直线称作左母线和右母线。在左、右两母线之间,触点在水平线上相串联,相邻的线也可以用一条垂直线连接起来,作为逻辑的并联。触点的水平方向串联相当于“与”(AND),而垂直方向的触点并联,相当于“或”(OR)。典型的梯形图例如:直接起动电机的控制电路采用PLC控制,其外部接线及内部等效电路如图所示。可将PLC分成3部分:输入部分、内部控制电路和输出部分。梯形图概述(5)梯形图概述(6)输入部分:由输入接线端与等效输入继电器组成。输入继电器由接入输入端点的外部信号来驱动,其作用是收集被控制设备的各种信息或操作命令。内部控制电路:由大规模集成电路构成的微处理器和存储器组成的,经过制造厂家的开发,为用户提供部件。内部控制电路的部件包括输出继电器、定时器、计数器、移位寄存器等,这些部件也有许多对常开触点和常闭触点供PLC

内部使用。PLC

内部控制电路的作用是处理由输入部分所取得的现场信息,并根据用户程序的要求,使输出达到预定的控制要求。输出部分:作用是驱动被控制的设备按程序的要求动作。对应每一条输出电路,相当有一个输出继电器,此输出继电器有一个对外常开触点与输出端相连,其余均为供PLC内部使用的常开触点和常闭触点。当输出继电器接通时,对外常开触点闭合,外部执行元件可以通电动作。梯形图:实际上就是用户所编写的应用程序,等效于PLC内部的接线图。当用编程工具将梯形图程序送入PLC内,PLC就可以按照预先制定的方案工作。电路工作过程:当起动按钮SB1

闭合,输入继电器X400接通,其常开触点X400闭合,输出继电器Y430接通,Y430

的常开触点闭合自锁,同时外部常开触点闭合,使接触器线圈

KM通电,电动机连续运行。停机时按停机按钮SB2,输入继电器

X401

接通,其常闭触点断开,线圈Y430

断开,电动机停止运行。这里要注意,因与停机按钮相连的输入继电器X401

采用的是常闭触点,所以实际的停机按钮必须采用常开触点,这与继电接触器控制电路不同。梯形图概述(7)梯形图LAD设计初步

梯形图

LAD是使用的最多的一种图形编程语言,由触点、线圈和用方框表示的功能块组成。梯形图表达式是在原电器控制系统中常用的接触器继电器梯形图基础上演变而来的,它与电气操作原理图相呼应,它形象、直观和实用,为电气技术人员所熟悉,是PLC的主要编程语言。图a是继电器控制系统中典型的起动、停止控制电路,也可理解为电气控制梯形图。图b是将图a的继电器控制梯形图转化为PLC控制的梯形图,从图a和图b可以看出两者是如何转变的。由这两个图可以看出两种梯形图基本表示思想是一致的,当然具体表达方式有一定区别。

梯形图元件与网络由于梯形图编程方法是从继电器控制系统继承而来的,因而它最大限度地保持了继电器系统的特征。梯形图中的符号:各种型号的PLC

基本指令基本相同或相似,主要有输入、输出指令,定时、计数指令,逻辑运算指令。一般梯形图中有四类符号:(1)触点符号:外部输入元件的触点,如继电器、按钮、行程开关、接近开关等元件的常开触点与常闭触点,及PLC内部继电器、输出继电器、定时器、计数器的常开触点与常闭触点等,都可用下图所示的符号表示。通常可用字母或I/O地址标注。一般情况下,用字母表示时,常用触点用字母本身表示,如X0

表示常开触点;常闭触点则采用“非”表示。I/O地址标注时如用Ix.y表示。用数字来表示常开与常闭触点的地址时,则常开与常闭触点的表示方式相同。(2)输出符号:所有输出器件的线圈,如辅助继电器的线圈、输出继电器的线圈及电磁阀的线圈等都可用如图所示的符号表示。定时器、计数器也可用类似的符号表示。输出元件的输出符号也可用字母及地址表示。有的PLC中,还有对输出取反指令,这时的输出符号只是在其圆圈上加一斜杠即可。(3)数据处理指令符号:PLC之所以不同于继电器控制,除了PLC可编程外,还在于它采用了微处理器的数据指令,从而成为具有很强生命力的控制器。那么,怎样才能使数据处理指令与梯形图结合起来呢?人们常把数据处理指令作为一种特殊的输出器件用方框或方括号表示,在方框或方括号前有若干个触点构成的逻辑关系,当结果寄存器的内容“1”,则执行此指令,符号如图所示。(4)梯形图的网络

:是表示具有某种完整的功能的程序模块,它包括元件、分支和模块。一个完整的梯形图程序通常由多个网络组成。网络从左边的母线开始,如果两个或多个分支电路连到同一母线上,那么,它们属于同一个网络。一般地,在一个网络中最多可以有50

行和50列(不同产品各不相同)。一个完整的网络大小只受PLC

存储器大小的限制。梯形图的基本元件输入输出条件命令触点类型符号常开触点常闭触点上升沿下降沿边沿信号上升沿下降沿边沿信号重置线圈设线圈非线圈线圈符号线圈梯形图的逻辑操作输入输出条件命令逻辑与或异或梯形图LAD

设计的一般规则梯形图:是由表示PLC内部编程元件的图形符号所组成的阶梯状图形。绘制梯形图时应遵循以下几条规则:规则1:梯形图按从左到右,自上而下的顺序绘制(指令编程亦应从左到右,自上而下)。每个编程元件线圈为一逻辑行。元件线圈与右母线直接相联。两线圈不能串联,也不能在线圈与右母线之间接其他元件,线圈一般也不允许直接与左母线相联。规则2:除有跳转指令外,一般某编号的线圈在梯形图中只能出现一次规则3:梯形图中的触点应画在水平线上,不应画在垂直线上,这是因为这种形式的梯形图无法用指令语句编程,应改画成能够编程的形式。规则4:绘制梯形图时,应按照“上重下轻、左重右轻”的原则进行。即当几条支路并联时,串联触点多的应画在上面;几个电路块串联时,并联触点多的电路块应画在左边。按照这个原则绘制的梯形图符合“从左到右、自上而下”的程序执行顺序,并易于用指令语句编程。规则5:输入继电器的线圈由输入端子上的外部信号驱动,因而输入继电器的线圈不应出现在梯形图中。梯形图中输入继电器触点的通断取决于外部信号。规则6:两个或两个以上线圈可以并联,但不能串联。规则7:梯形图左端母线不能和输出线圈直接相连,必须通过继电器触点相连。变量的数据类型(1)

基本数据类型变量的数据类型(2)

复杂数据类型

数组(ARRAY)

结构(STRUCT)

字符串(STRING)

日期和时间(DATE_AND_TIME)用户定义的数据类型(UDT)功能块类型(FB、SFB)变量的数据类型(3)

复杂数据类型——数组

数组是由一组同一类型的数据组合在一起而形成的复杂数据类型。数组的维数最大可以到6维;数组中的元素可以是基本数据类型或者复杂数据类型中的任一数据类型(Array类型除外,即数组类型不可以嵌套);数组中每一维的下标取值范围是-32768~32767,要求下标的下限必须小于下标的上限。变量的数据类型(4)

复杂数据类型——结构结构是由一组不同类型(结构的元素可以是基本的或复杂的数据类型)的数据组合在一起而形成的复杂数据类型。结构通常用来定义一组相关的数据,例如电机的一组数据可以按如下方式定义:变量的数据类型(5)

复杂数据类型——字符串字符串是最多有254个字符(CHAR)的一维数组,最大长度为256个字节(其中前两个字节用来存储字符串的长度信息)。字符串常量用单引号括起来,例如:变量的数据类型(6)

复杂数据类型——时间和日期用于存储年、月、日、时、分、秒、毫秒和星期,占用8个字节,用BCD格式保存。星期天的代码为1,1~6的代码为2~7。例如:变量的数据类型(7)

复杂数据类型——用户定义的数据类型用户定义数据类型表示自定义的结构,存放在UDT块中(UDT1~UDT65535),在另一个数据类型中作为一个数据类型“模板”。当输入数据块时,如果需要输入几个相同的结构,利用UDT可以节省输入时间。变量的数据类型(8)

复杂数据类型——功能块类型这种数据类型仅可以在FB

的静态变量区定义,用于实现多背景DB。参数的数据类型

参数类型是一种用于逻辑块(FB、FC)之间传递参数的数据类型,主要有以下几种:(1)TIMER(定时器)和COUNTER(计数器)。(2)BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。(3)POINTER(指针):6字节指针类型,用来传递DB的块号和数据地址。(4)ANY:10字节指针类型,用来传递DB块号、数据地址、数据数量以及数据类型。PLC

用户存储区梯形图指令的功能与时序

常开触点:

功能

:对于常开触点(动合触点),则对“1”扫描相应操作数。在PLC中规定:若操作数是“1”则常开触点“动作”,即认为是“闭合”的;若操作数是“0”,则常开触点“复位”,即触点仍处于断开的状态。

常开触点所使用的操作数是:I、Q、M、L、D、T、C。梯形图指令的功能与时序常闭触点:

功能

常闭触点(动断触点)则对“0”扫描相应操作数。在

PLC中规定:若操作数是“1”则常闭触点“动作”,即触点“断开”;若操作数是“0”,则常闭触点“复位”,即触点仍保持闭合。常闭触点所使用的操作数是:I、Q、M、L、D、T、C。梯形图指令的功能与时序功能

:若信号流输入值是“1”,则取反“动作”后结果为“断开”(0);若信号流输入值是“0”,则取反后为“置位”(1),即结果为“闭合”。“取反”操作无操作数,只是对其信号流输入值的取反而已。取反:

梯形图指令的功能与时序功能

:将ACC中的值赋给操作数,覆盖原过程变量中的值,ACC

中的值保持不变,线圈的时序图如右图所示。输出线圈:

输出线圈与继电器控制电路中的线圈一样,如果有电流(信号流)流过线圈,则被驱动的操作数置“1”;如果没有电流流过线圈,则被驱动的操作数复位(置“0”)。输出线圈只能出现在梯形图逻辑串的最右边。

输出线圈等同于STL程序中的赋值指令(用等于号“=”表示),所使用的操作数可以是:Q、M、L、D。梯形图指令的功能与时序功能

:置位线圈与输出线圈一样,如果有电流(信号流)流过置位线圈,则被驱动的操作数置“1”;与输出线圈不一样的是,一旦该置位线圈被置“1”,则将一直保持该值,直至由复位指令将其清“0”才会改变

。置位线圈只能出现在梯形图逻辑串的最右边。置位线圈所使用的操作数可以是:Q、M、L、D。置位线圈

梯形图指令的功能与时序功能

:复位线圈与输出线圈一样,如果有电流(信号流)流过复位线圈,则被驱动的操作数清“0”置“1”;与输出线圈不一样的是,一旦该复位线圈被清“0”,则将一直保持该值,直至由置位指令将其置“1”才会改变

。复位线圈只能出现在梯形图逻辑串的最右边。复位线圈所使用的操作数可以是:Q、M、L、D。复位线圈

梯形图指令的功能与时序功能

:是数字量类型的过程变量的输入触点。当变量从0变到1时,此触点发出一个脉冲信号,正脉冲输入时序图如右图所示。正脉冲输入用来形成一个数字信号的上升沿,可以用来置位/复位状态或者对上升沿进行计数,如报警器的触发次数。

正脉冲输入:

梯形图指令的功能与时序

功能

:是数字量类型的过程变量的输入触点。当变量从1变到0时,此触点发出一个脉冲信号,负脉冲输入的时序图如右图所示,它用于形成一个数字信号的下降沿,主要用来置位/复位输出或用在事件记录中,如报警器的关闭次数。负脉冲输入:

梯形图指令的功能与时序

功能

:执行相应的功能,根据功能的不同,可以在相应的输入输出端设置相应的控制变量,如定时器TON功能块见右图所示。

功能框:

功能

:有条件的跳转到标签处。如果连接Jump的信号为逻辑1,执行跳转命令。梯形图指令的功能与时序跳转

梯形图指令的功能与时序功能

:为“置位优先”型触发器(当R和S驱动信号同时为“1”时,触发器最终为置位状态)

。该操作所使用的操作数可以是:I、Q、M、L、D。RS触发器:

梯形图指令的功能与时序功能

:为“复位优先”型触发器(当R和S驱动信号同时为“1”时,触发器最终为复位状态)

。该操作所使用的操作数可以是:I、Q、M、L、D。SR触发器:

RS触发器和SR触发器的工作时序示例梯形图程序工作时序

梯形图指令的功能与时序功能

:对跳转的目标加标签。

标签:

梯形图指令的功能与时序

功能

:有条件退出,跳转到程序尾。可以退出一个任务或一个功能块,因此可以在梯形图中使用功能块。返回:

梯形图指令的功能与时序功能

:用于在程序段中添加多个分支,可通过拖放操作将元素移动到程序段中的所需位置。打开分支:

梯形图指令的功能与时序功能

:用于结束在程序段中添加的分支,可通过拖放操作将元素移动到程序段中的所需位置。关闭分支:

程序流程的控制(1)

条件跳转:

是指利用一个条件跳转到以某个符号命名的网络中去。如果条件为TRUE就跳转,跳转标志必须是唯一的,并且必须每个跳转都有一个跳转标志。条件跳转用来跳过程序中的某些网络,这样可以有效的控制程序流程。因为跳过了不需要的网络,所以程序的运行时间也减少了。条件跳转梯形图如图所示。

程序流程的控制(2)返回指令:

用来终止某个点的梯形图程序,系统不再执行之后的网络。返回操作的梯形图如下图所示。梯形图的基本逻辑功能(1)逻辑与:功能:将当前ACC

中的值与BOOL类型的操作数求逻辑与运算,然后将结果存入ACC中。逻辑“与”指令使用的操作数可以是:I、Q、M、L、D、T、C。梯形图的基本逻辑功能(2)逻辑与非:功能:将BOOL

类型的操作数求逻辑非运算后再与当前ACC中的值求逻辑与运算,然后将结果存入ACC中。该指令使用的操作数也可以是:I、Q、M、L、D、T、C。梯形图的基本逻辑功能(3)逻辑或:功能:将当前ACC

中的值与BOOL

类型的操作数求逻辑或运算,再将结果存入ACC

中。逻辑“或”指令使用的操作数可以是:I、Q、M、L、D、T、C。梯形图的基本逻辑功能(4)逻辑或非:功能:将BOOL类型的操作数求逻辑非运算的结果与当前ACC中的值求逻辑或运算,然后将结果存入ACC中。逻辑“或非”指令使用的操作数可以是:I、Q、M、L、D、T、C。梯形图的基本逻辑功能(5)逻辑异或:功能:将当前

ACC中的值与BOOL

类型的操作数求逻辑异或运算,然后将结果存入ACC

中。逻辑“异或”指令使用的操作数可以是:I、Q、M、L、D、T、C。梯形图的基本逻辑功能(6)逻辑异或非:功能:将BOOL类型的操作数求逻辑非运算的结果与当前ACC

中的值求逻辑异或运算,然后将结果存入ACC中。逻辑“异或非”指令使用的操作数可以是:I、Q、M、L、D、T、C。梯形图的基本逻辑功能(7)逻辑块的操作:功能块的调用

梯形图中的定时器(1)TON:接通延时定时器指令。用于单一间隔的定时。上电周期或首次扫描,定时器为OFF,当前值为0。使能输入接通(即为1)时,定时器为OFF,当前值从0开始计时,当前值达到预设值时,定时器输出为ON,只要使能端一直为1,则定时器输出保持为ON。使能输入断开,定时器自动复位,即定时器输出为OFF,当前值为0。梯形图中的定时器(2)梯形图中的定时器(3)梯形图中的计数器计数器:

用来累计输入脉冲的次数。计数器也是由集成电路构成,是应用非常广泛的编程元件,经常用来对产品进行计数。计数器指令有3种:增计数CTU、增减计数CTUD和减计数CTD。指令操作数有4部分:编号、预设值、脉冲输入和复位(装载)输入。梯形图的设计举例(1)设计一个电机控制系统应用程序

简单的电机启停控制:按下启动按钮Start时,电机运行。按下停止按钮Stop时,电机停运。StartStopKHI0.0I0.1Q4.1Q4.1Q4.1梯形图的设计举例(2)StartT1_INLamp1Lamp2T2_IN梯形图的设计举例(3)设计一个液位控制系统应用程序控制过程说明:液位控制系统总体结构如左图所示,进料液体经过进料泵加压进入加热储罐,液体在罐中经过加热变成蒸汽后,蒸汽从储罐顶部排出。控制要求说明:要求液位在

L1至L2之间变化,以防止进料液体全部蒸发或进料液体过多而进入蒸汽排除管。液位控制系统分析:液位控制系统有两个液位开关检测输入信号。当罐内液位高于液位开关检测位置L2

时,接点断开;当液位低于液位开关检测位置

L1时,接点闭合。液位开关接点用于控制进料泵的启停。控制步骤如下:但罐内实际液位低于低液位开关

L1的检测位置时,如果按下进料系统自动运行启动按钮

Start,则进料泵电机启动。当实际液位高于低液位开关的检测位置L1,但仍低于高液位开关的检测位置L2时,进料泵应保持运转。当实际液位高于高液位开关的检测位置

L2

时,进料泵自动停止运转。当按下自动运行停止按钮Stop时,不管液位实际位置在何处,进料泵停运。自动运行状态输出信号为Auto。液位控制系统总体结构梯形图的设计举例(4)如图所示为一搅拌控制系统,3

个开关量液位传感器,分别检测液位的高、中和低。要求对A、B两种液体原料按等比例混合。

系统运行:按起动按钮后系统自动运行,先打开进料泵1,开始加入液料A→中液位传感器动作后,关闭进料泵1,打开进料泵2,开始加入液料B→高液位传感器动作后,关闭进料泵2,起动搅拌器→搅拌10s后,关闭搅拌器,开启放料泵→当低液位传感器动作后,延时5s后关闭放料泵。按停止按钮,系统应立即停止运行。设计一个搅拌控制系统应用程序梯形图的设计举例(5)设计说明:主持人按下“开始”按钮S后,参赛者开始抢答。参赛者要抢答主持人所提问题时,需抢先按下桌上的按钮;指示灯亮后需待主持人按下“复位”键R

后才熄灯;对初中班学生照顾,只要按下

SB11

和SB12中任一个按钮灯HL1都亮;对高三班学生限制,只有

SB31

SB32都按下时灯

HL3

才亮;若在主持人按下“开始”按钮S

10s内有抢答按钮压下,则电磁铁

YC

得电,使彩球摇动,以示竞赛者得到一次幸运的机会;如果定时到仍未有抢答,则禁止继续抢答。设计一个优先抢答器应用程序梯形图的设计举例(5)电气原理图输入输出地址及符号定义梯形图的设计举例(6)设计说明:右图所示为双干道交通信号灯设置示意图。信号灯的动作受开关总体控制,按一下起动按钮,信号灯系统开始工作,并周而复始地循环动作;按一下停止按钮,所有信号灯都熄灭。信号灯控制的具体要求见下表。设计一个交通信号灯控制系统应用程序梯形图编程注意事项(a)不正确;(b)正确Y1354321245(b)Y1(a)2453OUTLDANDOR(a)OUTLDANDLDORB串联多的电路尽量放上部OUTLDANDOR(b)并联多的电路尽量靠近母线OUTLDORLDANB

不能将接点画在线圈右边,只能在接点的右边接线圈,如图所示。X1Y3输入处理X1=ON,X2=OFF第一次第二次输出处理Y3=OFF,Y4=ON双线圈输出不可用Y4X3X2Y3梯形图LAD

的经验设计法

经验设计法是沿用设计继电接触器控制电路的方法来设计梯形图,即在一些典型的继电接触器控制电路的基础上,根据被控对象对控制系统的具体要求,不断修改和完善梯形图。

经验设计法在设计时无普遍规律可循,设计的质量与设计者的经验有很大的关系。经验设计法可用于较简单的梯形图设计,如一些继电接触器基本控制电路的设计。梯形图LAD

的逻辑设计法在采用梯形图设计控制程序时大致有两种思路:逻辑设计法基本思想是,先根据控制功能,将输入与输出信号之间建立起逻辑函数关系(可先列出逻辑状态表);对所得的逻辑函数进行化简或变换;对化简后的函数,利用PLC

的逻辑指令实现其函数关系(先作出I/O

分配,再画出PLC

梯形图);再添加特殊要求的程序,最后完善系统所需的所有功能。

逻辑设计法的基本步骤①根据控制功能,将输入与输出信号之间建立起逻辑函数关系(可先列出逻辑状态表);②对上述所得的逻辑函数进行化简或变换;③对化简后的函数,利用PLC

的逻辑指令实现其函数关系(先作出I/O分配,再画出PLC

梯形图);④添加特殊要求的程序。⑤上机调试程序,进行修改和完善。梯形图LAD

的顺控设计法顺序控制设计法基本思想,就是按照生产工艺预先规定的顺序,在各个输入信号的作用下,根据内部状态和时间的顺序,在生产过程中各个执行机构自动地按顺序进行操作。使用这一方法进行设计时,首先根据工艺过程,画出状态流程图,然后根据状态流程图画出梯形图,也可以利用顺序功能图语言或步进指令完成编程工作。

顺序控制设计法是一种先进的设计方法,很容易被初学者接受,对于有经验的工程师,也会提高设计的效率,程序的调试、修改和阅读也很方便。顺序控制法就是用转换条件控制代表各步的编程元件,让他们的状态按照工艺要求的顺序变化,然后用代表各步的编程元件去控制PLC的各个输出继电器。梯形图LAD

的顺控设计法举例:送料小车的工作SQ4SQ2SQ1SQ3装料YC1T1KM4KM3T2卸料YC2左行右行KM51.循环过程:

小车处于最左端,装料电磁阀YC1得电,延时20秒;

装料结束,接触器KM3、KM5得电,向右快行;

碰到限位开关SQ2,KM5失电,小车慢行;

碰到SQ4,KM3失电小车停,电磁阀YC2得电卸料开始,延时15秒;

卸料结束后,接触器KM4、KM5得电

,小车向左快行;

碰到限位开关SQ1,KM5失电,小车慢行;

碰到SQ3,KM4失电,小车停,装料开始……如此周而复始。整个过程分为装料右快行右慢行卸料左快行左慢行共六个状态梯形图LAD

的顺控设计法2.确定相邻状态的转换条件

SQ4SQ3T2SQ1T1装料左慢行右快行右慢行左快行卸料SQ23.对输入、输出设备按PLC的输入/输出点进行分配

入输

出设

备输入点设

备输出点左快行限位开关SQ1SQ1装料电磁阀YC1YC1右快行限位开关SQ2SQ2卸料电磁阀YC2YC2左行限位开关SQ3SQ3右行接触器KM3KM3右行限位开关SQ4SQ4左行接触器KM4KM4起动按钮SB1Start快行接触器KM5KM5梯形图LAD

的顺控设计法4.画出状态表或顺序功能图00003++SM5左慢行00001+++SM4左快行T2+++SM3卸

料00004++SM2右慢行00002+++SM1右快行T1+++SM0装

料T2qT1qKM5KM4KM3YC2YC1状态转出条

件输

出状态标志状

态名

称状态表T1+装料SM0YC1T100002+右快行SM1KM3KM500004+右慢行SM2KM3T2+卸料SM3KM2T200001+左快行SM4KM4KM500003+左慢行SM5KM4SQ3+•Start+顺序功能图梯形图LAD

的顺控设计法5.编写梯形图(使用基本指令编写的梯形图)状态转换第四章

PLC

的程序设计§4-3其他编程语言§4-4应用程序设计方法§4-2SCL结构化编程语言本章小结§4-1梯形图编程语言SCL语言SCL

结构化语言概述

AutomationBasic(简称

SCL

语言)编程语言是一种以文本为基础的高级编程语言SCL

编程语言具有如下特点:高级文本语言;结构化编程;易于采用标准化结构;快速、高效编程;使用灵活、易读易懂;与PASCAL编程语言类似;对具有计算机编程经验的人员很容易。SCL

编程语言支持如下功能:开关量、模拟量的输入与输出;逻辑操作;逻辑比较;算术运算;

IF条件满足时的判别;步序;循环;使用动态变量;调用功能块;诊断工具。SCL的指令SCL编程的指令系列包括: 逻辑指令 数学指令 比较指令 “IFTHEN”指令 “CASE”指令 “WHILEDO”指令 “GOTO”指令数学指令

在SCL编程语言中,各种数学指令应用时应放在两个操作数之间,与通常的Pascal语言使用一样。使用高级语言编程的重要原因之一是算术操作编程将变得非常简单。SCL编程语言提供基本算术操作指令如右表所示。操作符数学指令举例:=赋值a:=b+加法a:=b+c-减法a:=b-c*乘法a:=sin(b)*cos(c)/除法a:=(b-c+d)/cos(e)MOD取模(除法取余数)a:=bmodc比较指令

比较指令不能用在计算公式中,它们只用来作为判断条件。=

等于

例如:ifa=bthen<>

不等于

例如:ifa<>bthen>

大于

例如:ifa>b

then>=

大于等于

例如:ifa>=bthen<

小于

例如:ifa<b

then<=

小于等于

例如:ifa<=bthen逻辑指令

编程时,逻辑指令面向BOOL类型的数据,它们一般和比较指令一起应用于状态描述中,逻辑指令如下表所示。

操作符逻辑指令举例NOT逻辑非a:=NOTbAND逻辑与a:=bANDcOR逻辑或a:=bORcXOR异或a:=bXORc条件判别指令(1)(1)简单IF

指令基本结构:

IF条件描述

THEN

条件满足时执行的操作

END_IF;TRUEFALSEEndif操

作If条件then条件判别指令(2)(2)IFELSE语句基本结构:

IF条件表示式

THEN

条件满足时执行操作A

ELSE

条件不满足时执行操作B

END_IF;TRUEFALSEEndif操

作AIf条件thenelse操

作B条件判别指令(3)(3)嵌套IFELSE语句基本结构:

IF条件表示式ATHEN

条件满足时执行的操作A

ELSE

IF条件表示式BTHEN

条件满足时执行的操作B1

ELSE

条件不满足时执行的操作B2

END_IF;

END_IF;条件判别指令(4)(4)ELSEIF

语句

基本结构:

IF

条件表示式A

THEN

条件A满足时执行的操作

ELSEIF

条件表示式B

THEN

条件B满足时执行的操作

ELSEIF条件表示式CTHEN

条件C满足时执行的操作

……

ELSE

以上条件均不满足时执行的操作

END_IF;CASE指令

如果表达式的值等于第一个常量(<常量1>)的值,则将执行紧跟在该常量后编写的指令(<指令1>)。程序将从END_CASE

后继续执行。基本结构:CASE<表达式>OF<常量1>:<指令1><常量2>:<指令2><常量x>:<指令x>;//x>=3ELSE<指令0>;END_CASE;如果表达式的值不等于第一个常量(<常量1>)的值,则会将该值与下一个设定的常量值进行比较。以这种方式执行CASE

指令直至比较的值相等为止。如果表达式的值与所有设定的常量值均不相等,则将执行ELSE

后编写的指令(<指令0>)。ELSE是一个可选的语法部分,可以省略。此外,CASE

指令也可通过使用CASE

替换一个指令块来进行嵌套。END_CASE表示CASE

指令结束。循环指令循环语句使得一个或多个状态可以根据用户要求多次地被执行。SCL

提供的循环语句形式如下:FOR:

FOR_counter_:=_start_count_

TO

_end_count_

DO

//StatementsectionFOR

;END_FOR;WHILE

WHILE_condition_DO //StatementsectionWHILE ;

END_WHILE;GOTO指令

GOTO语句是无条件转换语句,它的一般形式为: GOTO语句标号;

结构化程序设计方法主张限制使用GOTO语句,因为滥用GOTO语句将使程序流程无规律,可读性差,但也不是绝对禁止使用GOTO语句。一般来说,GOTO语句可以有两种用途。(1)从循环体中跳到循环体外;(2)用在检测程序中。功能块调用

在SCL

编程中调用功能块的步骤如左下图所示。数组

数组是一个具有相同数据类型的多个变量的集合,通过名称和索引来寻址,数组元素寻址的最小索引号为1,最大的索引号是数组元素的总个数减1,这就意味着变量的索引号按次序从1到数组元素总个数。数组也可以看做是很多个存放物品的盒子的集合(每一个盒子都是相同的,但是“内容”却不同),数组通过一个简单的名字来读取这个集合,这正说明了数组的优点,即简化编程且容易组织管理大量数据。

在PLC

编程中,可在变量声明表中通过长度来定义数组。关键字与函数

①关键字

关键字是SCL

编程语言中的指令语句,在TIAPORTAL

编辑器中,用蓝色字来显示,它们不能作为变量名。②函数

在SCL

编程语言中使用某些函数时不需插入库函数,它们在TIAPORTAL

编辑器中,用棕色字显示。SCL

语言的设计举例(1)设计一个电加热器系统的控制程序设计要求:当系统运行按钮按下后,系统开始加热,但容器中的溶液不能超过一定的温度。当温度过高时,系统停止加热并且报警器报警。SCL

语言的设计举例(2)设计一个自动售咖啡机器的控制程序设计要求:系统可以供应两种咖啡:白咖啡和黑咖啡。每一杯咖啡的价格是25美分,该机器可接受5和10美分的硬币。当有多余的钱投入时,会有零钱找出。(注:白咖啡即牛奶加咖啡,黑咖啡为纯咖啡)。SCL

语言的设计举例(2)第四章

PLC

的程序设计§4-3其他编程语言§4-4应用程序设计方法§4-2SCL结构化编程语言本章小结§4-1梯形图编程语言其他语言指令助记符语言(STL)

指令助记符语言(STatementList,STL),或称语句表,类似于计算机汇编语言,用一些简洁易记的文字符号表达PLC

的各种指令。同一厂家的PLC

产品,其助记符语言与梯形图语言是相互对应的,一般可互相转换。

指令助记符语言常用于手持编程器中,梯形图语言则多用于计算机编程环境中。

顺序功能图语言(

SFC

)顺序功能图语言(SFC)。对于工艺控制要求按一定步骤,依次执行的场合,一般可采用顺序功能图方法设计用户程序。它将一个完整的控制过程分为若干功能步,各功能步具有不同动作,各功能步之间有一定的转换条件,转换条件满足就实现功能转移,上一功能动作结束,下一功能动作开始。西门子的该语言称为GRAPH。连续功能图语言(CFC

)连续功能图语言(

ContinuousFunctionChart,CFC

)是用图形生成PLC

控制程序的一种编程语言。连续功能图语言具有的特点:这是一种图形化编程语言,具有多种预编程功能模块和自建的功能模块,以库的形式体现,功能模块之间的连接可在CFC

页面间进行,以实现复杂的大型控制要求。功能块图语言(FBD)

功能块图语言的特点是:功能模块是用类似于布尔代数的图形化方法描述功能,它的直观性大大方便了设计人员的编程和组态,有较好的易操作性;对控制规模较大、控制关系较复杂的系统,由于控制功能的关系可以较清楚地表达出来,编程和组态时间可以缩短,调试时间也随之减少;由于每种功能模块需要占用一定的程序内存,故这种设计语言在大中型可编程控制器中才被采用。ANSIC

编程语言

ANSIC

是美国国家标准协会(ANSI)对C语言发布的标准。使用C的软件开发者被鼓励遵循ANSIC

文档的要求,因为它鼓励使用跨平台的代码。

ANSIC

现在被几乎所有广泛使用的编译器支持,现在多数C代码是在ANSIC基础上写的。任何仅仅使用标准C并且没有任何硬件依赖假设的代码实际上能保证在任何平台上用遵循C标准的编译器编译成功。如果没有这种预防措施,多数程序只能在一种特定的平台或特定的编译器上编译,例如,使用非标准库,例如图形用户界面库,或者有关编译器或平台特定的特性例如数据类型的确切大小和字节序。

在西门子的PLC

产品中,只有M7系列才支持ANSIC

语言,其开发包是选件,需另行购买,且该系列不在大陆销售。第四章

PLC

的程序设计§4-3其他编程语言§4-4应用程序设计方法§4-2SCL结构化编程语言本章小结§4-1梯形图编程语言设计方法程序设计的基本内容

PLC

程序设计是指根据被控系统的硬件结构和工艺要求,在软件系统规格说明书的基础上,使用相应编程语言指令,对实际应用程序的编制和相应文件的形成过程。

PLC程序设计是硬件知识和软件知识的综合体现,需要计算机技术、控制技术和现场经验等多方面的知识。

PLC

程序设计的基本内容一般包括:参数的定义及地址分配、程序框图的编制、程序代码的编制、程序的调试、软件说明书的编制。程序设计的一般步骤1.了解系统概况2.熟悉被控对象3.熟悉编程器、编程软件和编程语言4.定义输入/输出

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论