第七章STEP7编程软件的使用方法•7.1用户程序的基本结构•7.2STEP7编程软件简介•7.3硬件组态•7.4使用LAD编程•一般来说,PLC有线性化编程、模块化编程和结构化编程等3种程序设计方法。•1、线性化编程•线性化编程类似硬件继电器控制电路,整个系统的控制程序放在主循环控制组织块OB1(主程序)中,每一次循环扫描都要不断地顺序执行OB1中的全部指令。这种方法程序结构简单,不涉及功能、功能块、数据块、局部变量和中断等比较复杂的概念,容易入门,一般在编写简单的控制系统程序时使用。本书S7-200部分主要讨论的就是这种编程方法。2、模块化编程程序被分为不同的逻辑块,每个块包含了完成部分控制任务的逻辑指令。组织块OB1(主程序)中的指令决定在什么情况下调用哪一个块,功能和功能快(子程序)用来完成不同的过程任务。被调用的块执行完后,返回到OB的调用点,继续执行OB1。模块化编程的程序被分为若干块,易于实现多人同时对一个项目编程。由于只在需要时执行相关的指令,因此提高了CPU的执行效率。3、结构化编程结构化编程将复杂的自动化任务分解成能够反映过程的工艺、功能或可以反复使用的小任务,这些任务由相应的程序块来表示,程序运行时所需的大量数据和变量存储在数据块中。某些程序块可以用来实现相同或相近的功能。这些程序块是相对独立的,它们被OB1或别的程序块调用。7.1用户程序的基本结构S7-300编程方式简介S7-300系列PLC的编程语言是STEP7。用文件块的形式管理用户编写的程序及程序运行所需的数据,组成结构化的用户程序。这样,PLC的程序组织明确,结构清晰,易于修改。为支持结构化程序设计,STEP7用户程序通常由组织块(OB)、功能块(FB)或功能块(FC)等三种类型的逻辑块和数据块(DB)组成。OB1是主程序循环块,在任何情况下,它都是需要的。表7-1用户程序中的块块简要描述组织块(OB)操作系统与用户程序的接口,决定用户程序的结构系统功能块(SFB)CPU提供的重要系统功能,有存储区系统功能(SFC)CPU提供的重要系统功能,无存储区功能块(FB)用户编写的包含常用功能的子程序,有存储区功能(FC)用户编写的包含常用功能的子程序,无存储区背景数据块(DI)调用FB和SFB时用于传递参数的数据块,编译时自动生成数据共享数据块(DB)存储用户数据的数据区域,供所有块共享功能块(FB、FC)实际上是用户子程序,分为带“记忆”的功能块FB和不带“记忆”的功能块FC。FB带有背景数据块(InstanceDataBlock),在FB块结束时继续保持,即被“记忆”。功能块FC没有背景数据块。数据块(DB)是用户定义的用于存取数据的存储区,可以被打开或关闭。DB可以是属于某个FB的情景数据块,也可以是通用的全局数据块,用于FB或FC。S7CPU还提供标准系统功能块(SFB、SFC),集成在S7CPU中的功能程序库。用户可以直接调用它们,由于它们是操作系统的一部分,因此不需将其作为用户程序下载到PLC。IDB1操作系统OB1FB1FC1IDB2FB2FC2图7-1块调用的分层结构7.2STEP7编程软件简介•STEP7概述•STEP7编程软件用于SIMATICS7、C7和M7和基于PC的WinAC,是供它们编程、监控和参数设置的标准工具。•为了在PC机上使用STEP7,必须配置MPI通信卡或PC/MPI通信适配器,将计算机接入MPI或PROFIBUS网络,以便下载和上载用户程序及组态数据。STEP7允许多个用户同时处理一个工程项目,但不允许多个用户同时对一个项目进行写操作(如程序及组态数据的下载)。STEP7的授权授权是使用STEP7软件的“钥匙”,只有在硬盘上找到相应的授权,STEP7才可以正常使用,否则会提示用户安装授权。图7-2授权管理器STEP7的项目结构在STEP7中,一个自动化系统的所有数据以项目(Project)的形式来进行组织和管理。一个项目包含了以下的三类数据。1、硬件结构的组态数据及模块参数2、通信网络的组态数据3、可编程模块的程序上述数据都以对象的形式存储,STEP7采用目录式的层次结构管理项目中的所有对象。对象从上到下有三个层次:第一层:项目;第二层:通讯子网、PLC站或S7程序;第三层:第二层下面的具体对象,视第二层定。图7-3浏览项目结构1、语言环境设置STEP7中提供了多种可选语言,如果在安装STEP7时用户选择了多语言,则可以在使用过程中改变语言环境。打开【SIMATICManager】,通过【选项】|【自定义】打开自定义选项菜单,选择【语言】2、常规选项设置通过【选项】|【自定义】打开自定义选项菜单,选择【常规】选项卡。常规选项的设置界面和各选项的含义如图7-5所示。3、PG/PC接口设置PG/PC接口(PG/PCInterface)是PG/PC和PLC之间进行通讯连接的接口。PG/PC支持多种类型的接口,每种接口都需要进行相应的参数设置(如通讯的波特率等)。因此,要实现PG/PC和PLC之间的通讯连接,必须正确地设置PG/PC接口。SETP7的安装过程中,会提示用户设置PG/PC接口参数。在安装完成之后,可以通过以下几种方法打开PG/PC设置对话框:(1)Windows的【开始】|【SIMATIC】|【STEP7】|【设置PG-PC接口】(2)Windows的【控制面板】|【设置PG-PC接口】(3)在【SIMATICManager】中,通过菜单【选项】|【设置PG/PC接口】设置步骤如下:(1)将【应用程序访问点】设置为【S7ONLINE(SETP7)】(2)在【以使用的接口参数分配】中,选择需要的接口类型。如果列表中没有需要的类型,可以通过单击【选择】按钮安装相应的模块或协议(3)选中一个接口类型,单击【属性】按钮,在弹出的对话框中进行参数设置,如图7-7所示图7-7接口属性设置7.3硬件组态1创建项目打开【SIMATICManager】,系统会自动弹出“新建项目”向导(图7-8),同时,也可以通过选择菜单【文件】|【新建项目”向导】打开。这里,我们不使用“新建项目”向导。通过单击按钮【取消】关闭该向导。在工具栏中单击按钮或在【文件】菜单下单击【新建】,可以直接创建一个新项目。在弹出的对话框中输入项目名称及路径,单击确定完成(如图7-9)。这里建立了一个名为example7-1的项目。直接建立的项目只包含一个MPI子网对象,用户需要通过【插入】菜单来手动添家对象.用户可以插入一个PLC站,先进行硬件组态,完成硬件组态后,再在相应CPU的S7程序目录下编辑用户程序;也可以先插入一个独立的S7程序,编写用户程序,再进行硬件组态,等组态完成后将程序复制到相应的CPU中。2硬件组态程序打开前面建立的项目example7-1,在项目的根接点下插入一个“SIMATIC300站点”,将站点命名为S7300PLC,选中左边窗口的“S7300PLC”,在右边窗口可以看到“硬件”的图标双击“硬件”图标,就可以打开硬件组态界面3配置主机架在STEP7中,可以通过简单的拖放操作来完成主机架的配置。在配置过程中,添加到主机架中的模块的定货号(在硬件目录中选中一个模块,目录下方的窗口会显示模块的定货号和对模块的描述)应该与实际的硬件一致。插入主机架后,分别向机架中的1号插槽添加电源、2号插槽添加CPU。硬件目录中的某些CPU型号有多种操作系统(Firmware)版本,在添加CPU时,CPU的型号和操作系统版本都要与实际的硬件一致4—11号槽中可以添加信号模块、功能模块、通讯处理器等,上述模块分别在硬件目录的SM-300、FM-300和CP-300中。例如图7-15在主机架中添加了一个数字量输入模块和一个数字量输出模块。在配置过程中,STEP7可以自动检查配置的正确性。当硬件目录中的一个模块被选中时,机架中允许插入该模块的槽会变成绿色,而不允许该模块插入的槽颜色无变化。将选中的模块拖到不能插入该模块的槽时,会提示不能插入的原因。4CPU参数配置:双击机架中的CPU,打开CPU属性对话框,在这里可以配置CPU的各类参数,不同型号的CPU参数不尽相同,在应用时应注意。常规设置在常规页面中(图7-17),包括了CPU的基本信息和MPI的接口设置。单击“属性”按钮会弹出MPI通讯的属性设置界面,在这里可以设置MPI通讯的速率等参数。启动如图7-18所示为启动属性页,各参数描述如下:S7系列PLC有三种启动方式(其中大多数300系列CPU只有暖启动):A、暖启动:启动时过程映像和不保持定时器、计数器及标志存储器被清除,CPU会自动调用OB100一次,然后开始循环执行OB1。B、冷启动:启动时所有存储器被清除,CPU会自动调用OB100一次,然后开始循环执行OB1。C、热启动:启动时所有存储器保持,CPU会自动调用OB100一次,然后开始循环执行OB1。周期/时钟存储器周期/时钟存储器(图7-19)页面主要包含以下参数设置。保持存储器保持存储器页面(图7-21)包含了下面的项目:诊断/时钟诊断/时钟页(图7-22)包括以下设置:保护保护页面(图7-23)包括以下参数:7.4使用LAD编程•任务描述在本例中,我们模拟一个饮料灌装线的控制系统。系统中有两条饮料灌装线和一个操作员面板。(1)每一条灌装线上,有一个电机驱动传送带;两个瓶子传感器能够检测到瓶子经过,并产生电平信号;传送带中部上方有一个可控制的灌装漏斗,打开时及开始灌装。当传送带中部的传感器检测到瓶子经过时,传送带停止,灌装漏斗打开,开始灌装。1号线灌装时间为3s(小瓶),2号线灌装时间为5s(大瓶),灌装完毕后,传送带继续运。位于传送带末端的传感器对灌装完毕的瓶子计数。(2)在控制面板部分,有四个点动式按钮分别控制每条灌装线的启动和停止;一个总控制按钮,可以停止所有生产线;两个状态指示灯分别表示生产线的运行状态;两个数码管显示器显示每条线灌装的数目。根据任务描述,可以将上述系统功能划分为两个子功能:(1)启停操作控制:负责将用户操作面板的输入信号逻辑转换为灌装线的启停信号。(2)灌装线控制:负责处理灌装定时和满瓶计数,为灌装线传送带电机和灌装漏斗提供控制信号,向数码管提供BCD码计数值。第一个子功能由一个功能FC1实现,第二个子功能由一个功能快FB1实现,两条灌装线的定时时间分别保存在两个背景数据块DB1和DB2中。2创建项目在STEP7中建立一个名为example7-2的项目,通过插入菜单加入一个S7程序3编辑符号表符号表可以为绝对地址(如I0.0、Q4.0等)提供一个符号名(如“启动”、“输出”等),以方便编程及程序阅读。在【S7程序(1)】目录下,双击【符号】图标,打开符号表,对其进行编辑并保存4编辑FC1在【S7程序(1)】下的【块】中单击右键,插入功能并命名为FC1FC1的参数表及程序如图5编辑FB1用同样的方法插入FB1并编辑,如图图7-29IN参数图7-30OUT参数图7-31STAT参数FB1程序6编辑DB1、DB2在【S7程序(1)】下的【块】中单击右键,插入FB1的背景数据块并命名为DB1,如图7-33所示。用同样的方法插入DB2。双击DB1就可以打开并对DB1进行编辑,DB编辑器分为了“数据视图”和“说明视图”,在“说明视图”下,只能看到DB的数据定义,在“数据视图”下,还可以对值进行修改。通过【查看】菜单在两种视图间切换。DB1和DB2的设置如图7-34所示。7编辑OB1双击OB1,选择LAD(梯形图)编程方式,打开OB1,对OB1进行编辑OB1的程序