1、7.1 STEP 7的程序结构7.2 程序块和数据块7.3 S7-300系列PLC的应用系统设计7.4 应用实例设计思考题与习题第7章S7系列PLC程序结构与程序设计主要内容:主要内容:(1)熟悉S7系列PLC程序结构。(2)掌握PLC程序设计。(3)掌握PLC的选用和硬件设计。(4)能够进行控制任务的初步设计。程序结构设计是程序设计的重要内容。与其他计算机编程语言类似,选择合理的程序结构、使用合理的PLC的内存资源,决定了应用程序的质量,它对程序的调试、维护和编程周期等都有很大的影响。STEP 7采用结构化编程体系。与计算机语言相同,STEP 7有三种编程方法,即线性编程、分布式编程和结构化
2、编程。线性编程方法是将所有的用户程序编写在一个块中,如第6章讲到的一些例题都是将程序写在OB1程序块中的。用这种方法编写的程序,CPU线性地扫描每一条指令,并按照指令运行。线性编程方法适合于比较简单的控制系统。分布式编程方法是将用户程序按照一定的方式或者功能分为若干个独立的指令块,每个指令块控制系统的某一部分,然后由组织块来决定这些指令块的执行顺序。结构化编程方法在计算机语言中多次讲过。用这种方法编写的程序将很多的通用指令作为一个指令块,通过修改参数来调用,可用在许多相似或者相同部件的控制中。该方法适合于复杂程序的编写,可实现复杂系统的控制任务,并且适合于工作组的协同工作,给编程带来了极大的方
3、便,且程序结构层次清晰,指令块通用化、标准化,程序的可读性、维护性和调试都很方便。可编程控制器除了硬件系统外,还需要软件系统的支持,二者缺一不可。S7系列PLC的CPU中运行着操作系统程序和用户程序两种程序。系统程序由PLC制造商编制,固化在EPROM或PROM中。它提供了一套系统运行和调度的机制,包括系统管理程序、用户指令解释程序和供系统调用的标准程序模块三大部分。其主要完成以下任务:7.1 STEP 7的程序结构的程序结构(1)处理PLC的启动(冷启动和热启动);(2)刷新输入过程映像表和输出过程映像表;(3)调用用户程序;(4)检测中断并调用中断处理程序;(5)检测并处理错误;(6)管理
4、存储区域;(7)与编程设备和其他通信设备之间通信。用户程序即应用程序,是可编程控制器用户针对具体的控制对象编制的程序。PLC中有大量的编程“软元件”,这些“软元件”按其功能可以分为输入继电器、输出继电器、定时器、计数器等。用户根据不同的控制任务编制程序,相当于对“软元件”的硬件接线进行重新设计和接线,这就是所谓的“可编程”。由于“软继电器”实质上是PLC中的存储单元,取用它们的常开、常闭触点实际上是读取存储单元的状态,因此可以认为一个继电器带有无数多个常开、常闭触点。通常用户程序完成以下任务:(1)启动时的初始化工作;(2)处理控制过程中的各种数据(各种输入、输出信号);(3)响应中断;(4)
5、对异常和错误的处理。PLC的操作系统是处理底层的系统级任务,它为PLC的应用搭建了一个平台,提供了一套用户程序的调用机制。在操作系统的基础上,用户设计自己的程序,完成自己的控制任务。操作系统在系统启动后开始循环执行,在每一个循环中执行着用户程序的主程序。通常,用户程序是由启动程序(初始化)、主程序和各种中断程序所组成的,S7系列PLC的操作系统已经为这些不同的模块搭建好了结构框架。所以,用户只要在相应的模块中编写相应的程序即可,如对于一些中断处理过程,用户只要在操作系统所搭建好的中断模块中编写中断程序即可。STEP 7中的用户程序通常是以结构化的块的形式实现的,系统已经提供了各种块,用户只需在
6、不同的块中编写相应的程序即可,这是和计算机编程语言有所区别的地方。块是一些独立的程序或者数据单元,STEP 7的块总体可分为逻辑块和数据块(DB)两种,有组织块(Organization Block,OB)、功能块(Function Block,FB)、功能(Function)、背景数据块(Instance Data Block,背景DB)、共享数据块(Share Data Block,共享DB)、系统功能(System Function,SFC)、系统功能块(System Function Block,SFB)。STEP 7中打开的块(Blocks)如图7-1所示。7.2 程序块和数据块程序
7、块和数据块图7-1 STEP 7中的各种块7.2.1 组织块组织块在STEP 7中,组织块(OB)就是用户程序中的启动程序、主程序和各种中断响应程序等不同程序模块的实现形式。OB是系统程序和用户程序的接口界面,即直接被操作系统所调用的用户程序块。它根据操作系统的调用条件(如时间中断等)分成了几种类型,不同类型的OB有着不同的优先级。对于不同类型的CPU,各包含一套不同的可编程的组织块(OB),如在CPU315-2DP中可以使用OB35和OB40,而不能使用OB36和OB41。不同的OB块执行着各自特定的功能。其中OB1是循环执行的主程序块,为STEP7程序的主干部分,在每一个控制程序中是必需的
8、。整个程序由OB1来调用各种不同的逻辑块,同时这些逻辑块之间也可以相互调用。对于较为简单的控制程序,可以将所有程序放在OB1中,无需功能块(FB)和功能(FC),这种编程方法称为线性编程方法。对于较为复杂的程序,可根据逻辑功能将不同的功能置于功能块(FB)或者功能(FC)中,然后使用OB1来调用这些功能块,形成结构化编程。对于其他类型的程序,如中断处理程序和非中断类型程序(子程序等),在STEP 7中对应着不同的OB。每一个OB均有其类型和优先级。其中:类型代表了该OB的功能,如计数中断、硬件中断等;优先级表明了一个OB是否可以被另一个OB所中断,同计算机中断相同,高优先级OB可以中断低优先级
9、OB。在S7系列PLC中,背景循环OB90的优先级是最低的,优先级为0.29,其次是OB1,优先级为1。所以通常情况下,OB1可以被其他OB中断。S7-300系列PLC的中断优先级别是由系统设定的,用户只能使用而无法修改。7.2.2 功能块、功能及系统功能块功能块、功能及系统功能块功能块(FB)和功能(FC)是用户编写的程序模块,可以被其他程序块(包括OB、FC和FB)所调用,类似程序中的“函数”。同“函数”一样,FB、FC也有自己的参数(形参或者实参),在调用时使用实参进行调用,在编写程序时用形参。功能块(FB)有一个数据结构与该功能块的参数表完全相同的数据块DB附属于该功能块,并随着该功能
10、块的调用而打开,随着功能块的结束而结束,同时存放在数据块中的数据在FB块结束时继续保持。这种数据块称为背景数据块。而FC没有背景数据块,当FC完成操作后,数据不能保持。数据块(DB)是用户定义的用于存取数据的存储区,可以被打开或者关闭。DB可以是属于某个FB的背景数据块,也可以是用于FB的通用的全局数据块。FB有自己的存储区,FC则没有。另外,S7系列CPU还提供了标准的系统功能块(SFB和SFC)。这些功能块的程序是预先编好的,并存于S7的CPU中的功能程序库中。用户可以直接调用SFB和SFC,并且可以高效地编制自己的程序。由于它们是操作系统的一部分,因此用户不能也不需要将其作为用户程序下载
11、到PLC中。与FB块相似,SFB也需要背景数据块,并需将此DB块作为程序的一部分安装到CPU中。不同的CPU提供不同的SFB和SFC功能。系统数据块(SDB)是为了存放PLC参数所建立的系统数据存储区。用STEP7的S7组态软件可以将PLC 组态数据和其他操作参数存放于SDB中。7.2.3 功能块编程及调用功能块编程及调用功能块由两部分组成,一部分是功能块变量声明表,另一部分是由指令组成的程序。变量声明表声明该功能块的局部数据,而程序会用到这些变量。当调用功能块时,需要提供块执行时要用到的数据或者变量,也就是将外部数据传递给功能块,称为参数传递。参数传递的方式使得功能块具有通用性,它可以被其他
12、块调用以完成多个类似的控制任务。1.变量声明表变量声明表(局部数据局部数据)每个逻辑块的前部都有一个变量声明表,在变量声明表中定义逻辑块用到的局部数据。局部数据分为参数和局部变量两大类。参数是在调用块和被调用块之间传递的数据。局部变量又包括静态变量和临时变量(暂态变量)两种。而静态变量和临时变量仅是供逻辑块本身使用的数据。表7-1给出了局部数据声明的类型,表中内容的排列顺序是在变量声明表中声明变量的顺序和变量在内存中的存储顺序。在逻辑块中不需要使用的局部数据类型不必在变量声明表中声明。表表7-1 局部数据声明类型局部数据声明类型 对于功能块(FB),操作系统为参数和静态变量分配的存储空间是背景
13、数据块。这样,参数变量在背景数据块中留有运行结果备份。在调用FB时,若没有提供实参,则功能块使用背景数据块中的数值。操作系统在L堆栈中给FB的临时变量分配存储空间。对于功能(FC),操作系统在L堆栈中给FC的临时变量分配空间,由于没有背景数据块,因而FC不能使用静态变量。输入/输出(I/O)参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。对于组织块(OB),其调用是由操作系统管理的,用户不能参与。因此,OB只有定义在L堆栈中的临时变量。1)形参为了保证功能块对同一类设备控制的通用性,用户在编程时不能使用具体设备对应的存储区地址参数(如I0.0等),而只能使用这类设备的抽象地
14、址参数。这些抽象地址参数称为形式参数,简称形参。将该类设备的相应实际存储区地址参数(实参)传递给功能块,功能块在运行时以实参替代形参,可实现对具体设备的控制。当对另一设备控制时,同样也可通过调用实参将其传递给功能块。形参需要在功能块的变量声明表中定义,实参需要在调用功能块时给出。在不同的功能块调用处,通过给变量赋值可以为形参提供不同的实参,但实参的数据类型必须与形参保持一致。用户程序可定义功能块的输入值参数或者输出值参数,也可定义一参数作为输入/输出值。参数传递可将调用块的信息传递给被调用块,也可将被调用块的运行结果返回给调用块。2)静态变量静态变量在PLC运行期间始终被存储。S7系列PLC将
15、静态变量定义在背景数据块中,当被调用块运行时,能读出或者修改静态变量;被调用块运行结束后,静态变量保留在数据块中。由于只有与功能块(FB)有关联的背景数据块,因此只能为FB定义静态变量。功能(FC)没有静态变量。3)临时变量临时变量仅在逻辑块运行时有效。逻辑块结束时,存储临时变量的内存被操作系统另行分配。S7将临时变量定义在L堆栈中。L堆栈是为存储逻辑块的临时变量而专设的。当块程序运行时,在L堆栈中建立该块的临时变量,一旦块运行结束,堆栈就被重新分配,因而信息丢失。2.逻辑块局部数据的数据类型逻辑块局部数据的数据类型在变量声明表中,要明确局部数据的数据类型,这样操作系统才能给变量分配确定的存储
16、空间。局部数据可以是基本数据类型或者复合式数据类型,也可以是专门用于参数传递的所谓“参数类型”。参数类型包括定时器、计数器、块的地址或者指针等,如表7-2所示。表表7-2 参数类型变量参数类型变量1)定时器或计数器参数类型在功能块中定义一个定时器或计数器类型的形参,功能块就能使用一个定时器或计数器,而不需明确具体的定时器或计数器,等到调用该功能块时再确定定时器或计数器号。这使得用户程序能够灵活地分配和使用定时器或计数器。当为给定的定时器或计数器参数类型分配实参时,在“T”或“C”后跟一个有效整数,如T10或C10即可。2)块参数类型当定义一个作为输入/输出的块时,参数声明决定了该块的类型(FB
17、、FC、DB等)。当为块参数类型形参分配实参时,可以使用物理地址,如FC10。3)指针参数类型一个指针给出的是变量的地址,而不是变量的数值。在有些功能块中,可能使用指针编程更为方便。用定义指针类型的形参,就能在功能块中先使用一个虚设的指针,等到调用功能块时再为其赋予确定的地址。当为指针参数类型形参分配实参时,需要指明内存地址。4)ANY参数类型当实参的数据类型不能确定时,可以把形参定义为ANY参数类型,这样就可以将任何类型的实参赋给ANY类型形参,而不必像其他类型那样保证实参、形参类型一致。STEP 7自动为ANY类型分配80 bit的内存,STEP 7用这80 bit的内存存储实参的起始地址
18、、数据类型和长度编码。例如,功能块FC01有三个参数。3.块调用过程及内存分配块调用过程及内存分配CPU提供块堆栈(B堆栈)来存储与处理被中断块的有关信息。当发生块调用或有来自更高优先级的中断时,就有相关的块信息存储在B堆栈中,并影响部分内存和寄存器。1)B堆栈和L堆栈B堆栈是CPU系统内存中的一部分,它存储以下被中断块的数据:(1)块号、块类型、优先级、被中断块的返回地址;(2)块寄存器DB、DI被中断前的内容;(3)临时变量的指针(被中断块的L堆栈地址)。2)调用功能(FC)当调用功能(FC)时,会发生以下事件:(1)功能(FC)实参的指针存于调用块的L堆栈;(2)调用块的地址和返回位置存
19、储于B堆栈,调用块的局部数据压入L堆栈;(3)功能块存储临时变量的L堆栈区被推入L堆栈上部;(4)当被调用功能(FC)结束时,先前块的信息存储于块堆栈中,临时变量弹出L堆栈。调用功能块(FB)的过程与调用功能块(FC)的过程相同。7.2.4 背景数据块和共享数据块背景数据块和共享数据块背景数据块和共享数据块有不同的用途。任何FB、FC或OB均可读写存放在共享数据块中的数据。背景数据块是FB运行时的工作存储区,它存放FB的部分运行变量。调用FB时,必须指定一个相关的背景数据块。作为规则,只有FB块才能访问存放在背景数据块中的数据。一般情况下,每个FB都有一个对应的背景数据块,一个FB也可以使用不
20、同的背景数据块。如果几个FB需要的背景数据块完全相同,为了节省空间,则可以定义一个背景数据块,供多个FB使用。通过多重背景数据,可将几个FB需要的不同的背景数据定义在一个背景数据块中,以优化数据管理。各个数据块在CPU的存储器中是没有区别的,只是由于打开方式不同,在打开时才有背景数据块和共享数据块之分。原则上,任何一个数据块都可以当作共享数据块或背景数据块使用;实际上,一个数据块由FB当作背景数据块使用时,必须与FB的要求格式相符。用户可以在S7的CPU的存储器中建立一个或者多个数据块。数据块的大小无限制,但是CPU对数据块的数量及数据总量有限制,如对于CPU314,用作数据块的存储器最多为8
21、 KB。用户所定义的数据总量不能超出这个限制。对数据块必须遵循先定义后使用的原则,否则将造成系统错误。数据块分为背景数据块和共享数据块两种类型。其中背景数据块附属于FB,所以创建背景数据块时须先指定其对应的FB,并且该FB必须存在。同时在调用FB时,也必须指明与之对应的背景数据块。一个FB可以有多个背景数据块,也就是采用的过程相同,数据不同。如当控制设备的类型相同,而设备参数不同时,可以更换数据,采用同一个过程。背景数据块和共享数据块并无本质区别,其数据可以被任何一个OB、FB或者FC读写。只不过,背景数据块是为某一个FB提供数据的,所以其数据格式必须和相应的FB变量声明一致。而共享数据块是为
22、程序提供一个可保存的数据区,其数据结构并不依赖于特定的程序块。1.定义数据块定义数据块数据块在编程阶段或者运行程序时都可以定义。大多数数据块是在编程阶段用STEP7开发软件包定义的,定义内容包括数据块号及块中的变量(即变量的符号名、数据类型和初始值等)。定义完成后,数据块中变量的顺序及类型决定了数据块的数据结构,变量的数量决定了数据块的大小。数据块在使用前,必须作为用户程序的一部分下载到CPU中。当然,也可以在程序运行中动态地定义一个数据块。动态定义时,数据块号是自动产生的。数据块在存储器中的位置是动态分配的。当定义的数据块大于存储器剩余空间时,动态定义失败。2.访问数据块访问数据块在用户程序
23、中可以定义许多数据块,而每个数据块中又有许多不同类型的数据,因此,访问时需要明确数据块号和数据块中的数据类型与位置。根据所明确的数据块,可以选用不同的方法访问数据块中的数据。1)直接访问 如:LDB5.DBW10TDB10.DBW20LMotor_S /符号地址2)打开后访问如:OPNDB5LDBW10OPNDB10TDBW20当打开一个数据块时,先打开的数据块会自动关闭。由于有两个数据块寄存器(DB和DI寄存器),因此最多可同时打开两个数据块。其中一个作为背景数据块,数据块的起始地址存储在DI寄存器中,另一个作为共享数据块,数据块的起始地址存储在DB寄存器中。对于背景数据块,当调用FB时可以
24、自动打开背景数据块。由于调用FB时使用DI寄存器,因此一般不在FB程序中用OPN Din指令来打开数据块。随着控制系统的发展,在工业控制中,PLC被广泛使用。目前,有多种PLC控制系统及其配套的各种模块和元器件。下面我们以S7-300系列中小型可编程控制器为例,介绍PLC控制系统的设计。7.3 S7-300系列系列PLC的应用系统设计的应用系统设计7.3.1 PLC应用系统设计的内容和步骤系统地学习了PLC的硬件系统、指令系统和编程方法以后,设计较小的控制系统就显得比较简单。但是当设计一个较大的PLC控制系统时,要全面考虑许多因素,不管所设计的控制系统是大还是小,一般都要按图7-2所示的设计步
25、骤进行系统设计,以养成一种良好的设计习惯。图7-2 PLC应用系统设计的一般步骤PLC应用系统设计的核心内容是用来解决实际的问题,所以其设计方法比较灵活。但是无论系统的复杂程度如何,作为一名设计人员,必须养成遵守设计规范和原则的好习惯,这对系统的调试和维护等会带来很大的方便。在设计PLC控制系统中要围绕基本问题进行设计,首先要了解受控对象的功能和工艺要求,其次要明确PLC系统所要做的工作和系统所需的功能,从而给PLC的选择和软、硬件的设计提供良好的基础。1.系统设计的原则和内容系统设计的原则和内容PLC系统的设计必须要满足被控设备或者工业生产过程的控制要求,在此基础之上要求控制系统简单、经济并
26、且操作方便,同时要求系统工作可靠安全,并有一定的扩展和改进的余地等。在系统的设计中,首先要根据实际条件制定技术路线,将其作为设计的依据;接着需要选定电器元件,如执行器件(电动机、电磁阀等),选择电器输入/输出器件;选择PLC型号并分配地址,绘制接线图;进行软件的编写规范和软件的编写;同时设计控制柜等;最后进行系统地调试和文档的编写工作。2.系统设计和调试的主要步骤系统设计和调试的主要步骤PLC的工作方式和通用微机不完全一样,因此用PLC设计自动控制系统与微机的自动控制系统的开发过程也不完全一样。需要根据PLC的特点,以程序形式来体现其控制功能。在PLC应用系统的设计中,必须明确设计和调试的步骤
27、。其设计步骤如下:(1)分析被控对象,确定控制对象及控制范围。随着PLC功能的不断提高和完善,PLC几乎可以完成工业控制领域的所有任务。当然,PLC还是有它最适合的应用场合,所以在接到一个控制任务后,要分析被控对象的控制过程和要求,看看用什么控制设备(PLC、单片机、工业控制计算机)来完成该任务最合适。比如仪器及仪表装置、家电的控制器就要用单片机来做,大型的过程控制系统大部分要用工业控制计算机或DCS来完成。PLC适合的控制对象是:工业环境较差,但对安全件、可靠性要求较高,系统工艺复杂,输入/输出以开关量为主的工业自控系统或装置。可编程控制器不仅处理开关量,而且对模拟量的处理能力也很强,所以在
28、很多情况下,可取代工业控制计算机(IPC)而作为主控制器,来完成复杂的工业自动控制任务。控制对象及控制装置(选定为PLC)确定后,还要进一步确定PLC的控制范围。一般来说,可以用传感器直接测量参数,并且控制逻辑复杂的控制过程部分由PLC完成。另外,对主要控制对象还要加上手动控制功能,如需加紧急停车等环节,这就需要在设计电气系统原理图与编程时统一考虑。在进行PLC控制系统的设计时,首先要了解控制对象及其控制内容、要求等。如:要了解被控对象需要完成的动作和精度、这些动作和其他部分的动作之间的关系等内容,进而确定控制的方式,控制动作的分解与合成等。对于较为复杂的动作,我们可以将其分为若干个简单的动作
29、。对于复杂的控制,梢将其分解为若干个控制块分别控制。被控对象的分析是控制系统设计的关键一步,我们必须正确地分析对象的属性和控制方法,及其实现的步骤,详细了解被控对象的控制要求,确定必须完成的动作及完成的顺序,归纳出工作循环和状态流程图。(2)确定I/O设备。经过对被控对象的分析,我们明确了控制任务,接着需要选择输入和输出设备,如使用按钮来控制某一种动作或者使用接触器来控制电动机的运行等。也就是选择一些常用电器的过程。我们知道,PLC输出的电流无法直接驱动负载,有些现场信号需要经过中间转换才能输入给PLC,所有这些介于PLC和现场之间的设备就是控制系统中的I/O 设备。(3)选择PLC。接着需要
30、根据生产工艺要求、输入/输出的点数、输入/输出的数据类型和对控制任务复杂程度的统计,列出清单,适当进行内存容量的估计,确定适当的留有余量而不浪费资源的机型(小、中、大型机器)等来选择PLC。PLC类型很多,有不同公司生产的PLC,如三菱、西门子、松下等。每一家公司的PLC又有不同的系列和型号。对于PLC的选择,在必须满足控制任务的前提下,还需要考虑成本、设计人员对某种类型PLC的熟悉程度和以后的扩展及维护等内容。(4)硬件设计。根据所选用的PLC产品,了解其使用的性能。按随机提供的资料结合实际需求,对系统的输入/输出分配I/O点,绘制出输入/输出信号地址分配表和接线图,同时考虑软件的编程情况,
31、最后进行外围电路的设计,绘制电气控制系统总装配图和接线图。硬件设计为PLC的软件设计做好了准备,同时硬件设计已经设计好了地址分配表和接线图,这样就可以在软件设计的过程中同时进行控制柜或者操作台的设计及现场施工。(5)软件设计。在进行硬件设计的同时可以着手软件的设计工作。软件设计的主要任务是根据控制要求将工艺流程图转换为梯形图,这是PLC应用的最关键的问题。程序的编写是软件设计的具体表现。在程序设计的时候,建议对使用的软继电器(内部继电器、定时器、计数器等)进行列表,标明用途,便于程序设计、调试和系统运行维护,以备检修时查阅。根据具体的功能,确定程序功能块及其之间的相互联系,并进一步绘制出程序流
32、程图。根据流程图进行编程设计工作。因为梯形图具有形象、直观等优点,所以在大多数情况下,都是使用梯形图进行编程的。在设计梯形图之前,需要熟悉控制要求,并且熟悉电气控制图和电气控制设计中的实践经验等。该步骤是控制任务设计中的核心部分,具有一定的难度。程序初调也称为模拟调试。它是将设计好的程序通过程序编辑工具下载到PLC控制单元中,由外接信号源加入测试信号,通过各种状态指示灯了解程序运行的情况,观察输入/输出之间的变化关系及逻辑状态是否符合设计要求,并及时修改和调整程序,消除缺陷,直到满足设计的要求为止。(6)软件测试。程序设计好后,可以通过编程器或者计算机等将程序下载到PLC中。由于程序设计工作中
33、难免有错误和疏漏的地方,因此在系统运行之前必须进行软件测试工作,以排除程序中的错误,缩短系统调试周期。软件测试中可以使用一些仿真模块或者假负载等进行调试工作。(7)系统调试。当系统的硬件设计、软件设计完成后,就可以进行系统的调试工作了。在此步骤中,首先对局部系统进行调试,然后进行联机调试。在调试过程中,必须严格按照从小系统到大系统、从单步到连续的规则。若发现问题,必须解决后才能进行下一步的调试工作。系统调试分为模拟调试和联机调试。硬件部分的模拟调试可在断开主电路的情况下,主要试一试手动控制部分是否正确。软件部分的模拟调试可借助于模拟开关和PLC输出端的输出指示灯进行。需要模拟量信号I/O时,可
34、用电位器和万用表配合进行。调试时,可利用上述外围设备模拟各种现场开关和传感器状态,然后观察各部分的输出逻辑是否正确。如果有错误,则修改,然后反复调试。现在大部分的PLC主流产品都可在计算机上编程,并可直接进行模拟调试。联机调试时,可把编制好的程序下载到现场的PLC中。有时,PLC也许只有一台,这时就要把PLC安装到控制柜相应的位置上。调试时一定要先将主电路断电,只对控制电路进行联调。通过现场联调信号的接入,常常还会发现软、硬件中的问题,有时厂家还要对某些控制功能进行改进。这种情况下,都要反复测试系统,才能最后交付使用。系统完成后,一定要及时整理技术材料并存档。这也是工程技术人员良好的习惯之一。
35、在初调合格的情况下,将PLC与现场设备连接。在正式调试前,全面检查整个PLC控制系统,包括电源、接地线、设备连接线、I/O连线等。在保证整个硬件连接正确无误的情况下才可送电。把PLC控制单元的工作方式布置为“RUN”,开始运行。反复调试消除可能出现的各种问题。在调试过程中,也可以根据实际需求对硬件做适当修改,以配合软件的调试。应保持足够长的运行时间使问题充分暴露并加以纠正。试运行无问题后,可将程序固化在具有长久记忆功能的存储器中,并做备份(至少应该做2份)。由此可见,调试对系统的运行具有重要的意义,在调试中可以发现局部的问题,并加以解决。3.文档编制文档编制PLC的编程语言与一般计算机语言相比
36、,具有明显的特点,它既不同于高级语言,也不同于一般的汇编语言,它既要满足易于编写,又要满足易于调试的要求。目前,还没有一种对各厂家产品都能兼容的编程语言。如三菱公司的产品有它自己的编程语言,欧姆龙(OMRON)公司的产品也有它自己的语言。但不管什么型号的PLC,其编程语言都具有以下特点:(1)图形式指令结构。程序由图形方式表达,指令由不同的图形符号组成,易于理解和记忆。系统的软件开发者已把工业控制中所需的独立运算功能编制成象征性图形,用户根据自己的需要把这些图形进行组合,并填入适当的参数。在逻辑运算部分,几乎所有的厂家都采用类似于继电器控制电路的梯形图。如西门子公司采用控制系统流程图来表示,它
37、沿用二进制逻辑元件图形符号来表达控制关系,直观、易懂。较复杂的算术运算、定时计数等,一般也参照梯形图或逻辑元件图来表示,虽然象征性不如逻辑运算部分,但也颇受用户欢迎。(2)明确的变量常数。图形符相当于操作码,规定了运算功能,操作数由用户填入,如K400、T120等。PLC中的变量和常数及其取值范围有明确规定,由产品型号决定,用户可查阅产品目录手册。(3)简化的程序结构。PLC的程序结构通常很简单,典型的为块式结构,不同块完成不同的功能,使程序的调试者对整个程序的控制功能和控制顺序有清晰的概念。(4)简化应用软件生成过程。使用汇编语言和高级语言编写程序,要完成编辑、编译和连接三个过程,而使用编程
38、语言,只需要编辑一个过程,其余由系统软件自动完成,整个编辑过程都在人机对话下进行,不要求用户有高深的软件设计能力。(5)强化调试手段。无论是汇编程序,还是高级语言程序调试,都是令编辑人员头疼的事,而PLC的程序调试提供了完备的条件。使用编程器,利用PLC和编程器上的按键、显示与内部编辑、调试、监控等,并在软件支持下,诊断和调试操作都很简单。总之,PLC的编程语言是面向用户的,对使用者来说,不要求具备高深的知识、不需要长时间的专门的训练。7.3.2 PLC应用系统的硬件设计应用系统的硬件设计硬件系统设计的主要工作有:PLC的选型、PLC容量估算、I/O模块选择、分配输入/输出点和安全回路的设计等
39、。1.PLC选型及容量估算选型及容量估算PLC类型很多,目前,世界上有200多个厂家生产可编程控制器产品,比较著名的厂家有美国的AB、通用(GE),日本的三菱(MITSBISHI)、欧姆龙(OMRON)、富士电机(Fuji)、松下电工,德国的西门子(SIEMENS),法国的TE、施耐德,韩国的三星(SUMSUNG)、LG等。而每一家公司又有一系列的PLC产品,所以选择PLC是很重要的。当某一个控制任务决定由PLC来完成时,选择PLC就成为最重要的事情。一方面是选择多大容量的PLC,另一方面是选择什么公司的PLC及其外设。对于第一个问题,首先要对控制任务进行详细分析,把所有的I/O点找出来,包括
40、开关量的I/O和模拟量的I/O以及这些I/O点的性质。I/O点的性质主要指它们是直流信号还是交流信号,它们的电源电压,以及输出是用继电器型还是晶体管或是可控硅型。控制系统输出点的类型非常关键,如果它们之中既有交流220 V的接触器、电磁阀,又有直流24V的指示灯,则最后选用的PLC的输出点数有可能大于实际点数。因为PLC的输出点一般是几个一组共用一个公共端,所以这一组输出只能有一种电源。例如,一旦使用交流220V的负载,则直流24V的负载只能使用其他组的输出端了。这样有可能造成输出点数的浪费,增加成本。所以要尽可能选择相同等级和种类的负载,比如使用交流220V的指示灯等。一般情况下,继电器输出
41、的PLC使用最多,但对于要求高速输出的情况,如运动控制时的高速脉冲输出,就要使用无触点的晶体管输出的PLC。知道这些以后,就可以确定选用多少点和I/O点是什么类型的PLC了。对于第二个问题,则有以下几个方面要考虑:(1)功能方面。所有PLC一般都具有常规的功能,但对某些特殊要求,就要知道所选用的PLC是否有能力完成控制任务。这就要求用户对市场上流行的PLC品种有一个详细的了解,以便做出正确的选择。(2)价格方面。不同厂家的PLC产品价格相差很大,有些功能类似、质量相当、I/O点数相当的PLC的价格相差40%以上。在使用PLC较多的情况下,这样的差价当然是必须考虑的因素。(3)个人喜好方面。有些
42、工程技术人员对某种品牌的PLC熟悉,所以一般比较喜欢使用该种产品。另外,有些国家政治或个人情感有时也会成为选择的理由。2.I/O模块选择、分配及安全回路的设计模块选择、分配及安全回路的设计输入/输出信号在PLC接线端子上的地址分配是PLC控制系统设计的基础。对软件设计来说,I/O地址分配以后才能进行编程;对控制柜及PLC的外接线来说,只有I/O地址确定以后,才可以绘制电气接线图、装配图,以利于装配人员根据线路图和安装图安装控制柜。分配输出点地址时要注意负载类型的问题,如负载是感性、容性或者阻性等,是交流负载还是直流负载,以便选择输出为晶体管输出、可控硅输出或者继电器输出。在进行I/O地址分配时
43、,最好将I/O点的名称、代码和地址以表格的形式表示出来。系统设计包括硬件系统设计和软件系统设计。硬件系统设计主要包括PLC及外围线路的设计、电气线路的设计和抗干扰措施的设计等。软件系统设计主要指编制PLC的控制程序。选定PLC及其扩展模块(如需要的话)和分配完I/O地址后,硬件设计的主要内容就是电气控制系统原理图的设计、电气控制元器件的选择和控制柜的设计。电气控制系统原理图包括主电路和控制电路。控制电路中包括PLC的I/O接线和自动部分、手动部分的详细连接等,有时还要在电气原理图中标出器件代号或另外配上安装图、端子接线图等,以方便控制柜的安装。电气元器件的选择主要是根据控制要求选择按钮、开关、
44、传感器、保护电器、接触器、指示灯和电磁阀等。控制系统软件设计的难易程度因控制任务而异,也因人而异。对经验丰富的工程技术人员来说,在长时间的专业工作中,受到过各种各样的磨练,积累了许多经验,除了一般的编程方法外,更有自己的编程技巧和方法。但不管怎么说,平时多注意积累和总结是很重要的。在程序设计时,除I/O地址列表外,有时还要把在程序中用到的中间继电器(M)、定时器(T)、计数器(C)和存储单元以及它们的作用或功能列写出来,以便编写程序和阅读程序。7.3.3 PLC应用系统的软件设计应用系统的软件设计 在PLC系统设计过程中,首先进行的是控制对象的分析和控制动作的分解等工作,此后进行PLC的类型选
45、择,从此开始了软件设计的过程。软件设计是一项复杂的工作,它要求设计人员不仅具有PLC和计算机方面的知识,同时要求设计人员熟悉控制技术,并且具有现场实践经验。1.PLC应用软件设计的内容应用软件设计的内容首先必须分析控制对象的各种要求和动作,将复杂的动作进行分解简化,并根据要求提出任务要求和软件的技术指标,在此基础之上编写软件需求说明书。根据软件的需求进行软件功能的分析和设计工作;并分析I/O信号及数据结构;进行程序结构的分析与设计;在此基础上进行软件设计规格说明书的编写工作,然后进行软件的编写工作;软件编写结束后进行软件测试,测试合格后编写软件使用说明书。2.PLC编程语言的选择编程语言的选择
46、在编程语言的选择上,用梯形图编程还是用语句表编程或使用功能图编程,这主要取决于以下几点:(1)有些PLC使用梯形图编程不是很方便(例如书写不便),则可用语句表编程,但梯形图总比语句表直观。(2)经验丰富的人员可用语句表直接编程,就像使用汇编语言一样。(3)如果是清晰的单顺序、选择顺序或并发顺序的控制任务,则最好是用功能图来设计程序。3.PLC应用系统软件的设计步骤应用系统软件的设计步骤(1)制定设备运行方案。(2)绘制控制流程图。(3)制定软件防干扰措施和算法分析。(4)编写程序。(5)软件测试。(6)编写程序使用说明书。7.4.1 双门通道控制实例双门通道控制实例1.任务描述任务描述(1)某
47、化工厂的无菌室要求尽可能地保持无尘、无菌,在通道上设置了两道电动门,即门1和门2,可通过光电传感器自动完成门的打开和关闭。门1和门2不能同时打开。双门通道控制的示意图如图7-3所示。7.4 应用实例设计应用实例设计图7-3 双门通道控制的示意图(2)第1道门(根据出入方向不同,可能是门1或门2)是由在通道外的开门者通过按开门按钮S1或S2打开的,而第2道门(根据出入方向不同,可能是门1或门2)则是在打开的第1道门关闭后自动地打开的(也可以由通道内的人按开门按钮S3或S4来打开第2道门)。这两道门都是在门开后,经过3 s的延时而自动关闭的。(3)在门关闭期间,如果对应的光电传感器的信号被遮断,则
48、门立即自动打开。如果在门外或者在门内的开门者按对应的开门按钮S1、S2、S3或S4,则门立即打开。(4)出于安全方面的考虑,如果在通道内的某个人经过光电传感器,对应的门已经打开,则通道外的开门者可以不按开门按钮。(5)每道门都安装了两个行程开关S5、S6、S7、S8,用于确定门的打开和关闭是否到位。在通道外的开门按钮S1、S2旁,安装了相应的LED指示灯。当按下开门按钮时,LED指示灯亮;当门开时,LED指示灯熄灭。2.任务分析任务分析根据任务描述分析系统,用PLC控制系统完成上述任务需要做到以下几个方面:(1)根据选择任务,描述选择相应的PLC类型及所选PLC的CPU的型号。(2)列出编程元
49、件的地址分配。(3)设计控制程序结构图。(4)设计控制程序。(5)连接PLC、编程装置(编程器或装有相应PLC编程软件的PC机)及模拟器。(6)输入控制程序。(7)用模拟器进行控制功能调试。(8)将调试好的程序存储在存储器中。(9)将调试好的程序存档。3.任务设计任务设计1)选择PLC的类型、型号及编程元件地址分配表经分析任务我们选择西门子公司S7-300系列PLC。(1)输入/输出继电器地址分配表如表7-3所示。(2)其他编程元件的地址分配表如表7-4所示。表表7-3 输入输入/输出继电器地址分配表输出继电器地址分配表表表7-4 其他编程元件的地址分配表其他编程元件的地址分配表2)设计系统结
50、构图系统的结构框图如图7-4所示。图7-4 系统的结构框图3)设计控制程序 系统控制程序如图7-5所示。其他各步见具体联机操作。图7-5 系统控制程序(1)图7-5 系统控制程序(2)图7-5 系统控制程序(3)7.4.2 传送带控制实例传送带控制实例1.任务描述任务描述皮带传输的系统图如图7-6所示。图7-6 皮带传输的系统图(1)皮带机1和皮带机2的启动与停止分别由按钮S1S4控制。(2)皮带机1和皮带机2的运行状态由指示灯指示。(3)皮带机1和皮带机2不能同时运行。(4)当皮带机1或皮带机2运行时,皮带机3自动投入运行。(5)为监测皮带机的运行及皮带机上的皮带是否断裂,在皮带机1、皮带机