《STEP7编程软件的使用.doc》由会员分享,可在线阅读,更多相关《STEP7编程软件的使用.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 编程软件STEP7编程软件的使用STEP 7是SIEMENS SIMATIC工业软件中的一种,它是用于对SIMATIC PLC进行组态和编程的软件包。STEP 7提供了几种不同版本以适应不同的应用和需求。 STEP 7 Micro/DOS、STEP 7 Micro/WIN: 适用于S7-200系列PLC的编程、组态软件包; STEP 7 Lite: 适用于S7-300、C7系列PLC、ET200X和ET200S系列分布式I/O的编程、组态软件包; STEP 7 Basis:适用于S7-300/S7-400、M7-300/M7-400和C7系列的编程、组态标准软件包; STEP 7 Pr
2、ofessional:除包含了STEP 7 Basis版本中的标准组件外,还包含了STEP 7扩展软件包,如SCL、GRAPH和PLCSIM。到目前为止,STEP 7 Basis 的最新版本是2004年2月发布的STEP 7 Basis V5.3。本书后面的介绍都基于这个版本。提供LAD(梯形图)、STL(语句表)、FBD(功能块图)三种编程语言。编程设备(可以是编程器PG或者PC)通过编程电缆与PLC的CPU模块相连,用户可以在STEP 7中编写程序和对硬件进行组态,并将用户程序和硬件组态信息(详细内容见8.5节的实例)下载到CPU,或者从CPU上传到PG或PC,当程序下载、调试完成后,PL
3、C系统就可以自动执行各种任务了。6.2.1 S7-300/400用户程序的模块化结构在讲述STEP 7编程软件的使用之前,先简要说明一下S7-300/400 用户程序的模块化结构。这是编写S7-300/400用户程序的基本知识,同时与STEP 7软件密切相关。西门子公司S5、S7系列PLC采用的是“块式程序结构”,用“块”的形式来管理用户编写的程序及程序运行所需要的数据,组成完整的PLC应用程序系统(软件系统)。“块”分为数据块和逻辑块。1 数据块在生产控制过程中常常会遇到很多过程数据、基准值、预置值,有些经常要进行修改,把它们分类放置在不同数据块中有利于进行数据管理;其次,数据块也是各逻辑块
4、之间交换、传递和共享数据的重要途径;数据块有丰富的数据结构,有助于高效管理复杂的变量组合,提高程序设计的灵活性。用户可以在存储器中建立一个或多个数据块,每个数据块可大可小,但CPU对数据块数量及数据总量有限制,如CPU314,其数据块数量上限为127个,数据总量上限为8KB(8192Byte)。对数据块必须遵循先建立(定义)后使用的原则,否则将造成系统错误。1)数据块的类型数据块可分为共享数据块DB和背景数据块DI两类,它们有不同的用途。共享数据块DB又称为全局数据块,在用户程序中任何FB、FC或OB均可读取存放在共享数据块中的数据。在共享数据块中声明的变量是全局变量(在全局符号表中声明的变量
5、也是全局变量),全局变量可以被所有的块使用。背景数据块DI(Instance Data Block)是指定给某个功能块FB使用的数据块,它是FB运行时的工作存储区,存放FB的部分运行变量。调用FB时必须指定一个相关的背景数据块。作为规则,只有FB才能访问存放在背景数据块中的数据。一般情况下,一个FB都有一个对应的背景数据块,但一个FB可以根据需要使用不同的背景数据块。如果几个不同的控制设备,具有不同的预设参数,但控制任务相似,就可以只编写一个功能块,而将不同的预设参数分别存储在不同的背景数据块中,这样可以减少编程工作量。如果几个FB需要的背景数据完全相同,可只定义一个背景数据块,供它们分别使用
6、。此外,通过多重数据块,可将几个FB需要的不同的背景数据定义在一个背景数据块中,以优化数据管理。背景数据块与共享数据块在CPU的存储器中是没有区别的,只是因为打开方式不同,才在打开时有背景数据块和共享数据块之分。一般来说,任何一个数据块都可以当作共享数据块或背景数据块来使用,但实际上一个数据块DB当作背景数据块使用时,必须与FB的要求格式相符。2)定义数据块在编程阶段和程序运行中都能定义(即生成、建立)数据块。大多数数据块在编程阶段和其他块一样,在SIMATIC管理器或增量编辑器中生成。用户可以选择创建共享数据块或背景数据块,创建一个新的背景数据块时必须指定它所属的功能块FB。定义数据块的内容
7、包括数据块号及块中的变量(如变量符号名、数据类型、初始值等)。定义完成后,数据块中变量的顺序及类型决定了数据块的数据结构,变量的多少决定数据块的大小。数据块在使用前,必须作为用户程序的一部分下载到CPU中。背景数据块直接附属于功能块,它的数据结构等是自动生成的,例如当编好的FB存盘时,背景数据块中所含数据为功能块的变量声明表中所存数据。功能块的变量决定了其背景数据块的结构。背景数据块数据结构的修改只能在相关的功能块中进行,不能独自修改。对于背景数据块来说,用户可以修改变量的实际值。为修改变量的实际值,用户必须工作在数据块的数据浏览形式中。共享数据块不附属于任何逻辑块,它可含有生产线或设备所需的
8、各种数值。定义时,用户按其栏目,可输入想存放在数据块中的各种变量。定义共享数据块与背景数据块的步骤如图6.2.1所示。 图6.2.1 生成两种数据块3)访问数据块 在用户程序中可能定义了许多数据块,而每个数据块中又有许多不同类型的数据。因此,访问(读/写)时需要明确打开的数据块号和数据块中的数据类型与位置。 只有打开的数据块才能被访问。由于只有两个数据块寄存器(DB和DI寄存器),所以最多可以同时打开两个数据块:一个作为共享数据块,共享数据块的块号存储在DB寄存器中;一个作为背景数据块,背景数据块的块号存储在DI寄存器中。没有专门的数据块关闭指令,在打开一个数据块时,先打开的数据块自动关闭。
9、打开和访问数据块的方法有两种:传统访问方法(即先打开后访问),合成指令法(即完整地址法)。2 逻辑块设计者在编程时,将其程序用不同的逻辑块进行结构化处理,也就是将程序分解为自成体系的多个部分(逻辑块),每个逻辑块为不同设备的控制程序或不同功能的控制程序。程序分块后有以下优点: 规模大的程序更容易理解; 可以对单个的程序进行标准化; 程序组织简化; 程序修改更容易; 由于可以分别测试各个部分,查错更为简单; 系统调试更容易。逻辑块包括功能块FB、FC,组织块OB,系统功能块SFB、SFC。下面分别介绍。 1) 功能块功能块中编写的程序是用户程序的一部分,这些程序可以被反复调用。 功能块由两部分组
10、成。在功能块显示窗口可见到,上半部分是每个功能块的“变量声明表”,下半部分是编写的该功能块的程序。声明表中定义的局部数据分为“参数”和“局部变量”两类。参数是在调用块和被调用块之间传递的数据,所以可定义一个参数为块的输入值或块的输出值,或块的输入/输出值,同时要声明参数类型为输入、输出和输入/输出。局部变量包括静态变量和临时变量(暂态变量),是仅供功能块本身使用的数据。 一个用户程序可以由多部分(子程序)组成,这些部分即不同的块,而通过块调用可组成结构化程序。进行调用时,调用块可以是任何逻辑块,被调用块只能是功能块(除OB外的逻辑块)。 功能块(FB)功能块FB属于用户自己编程的块,相当于“子
11、程序”。它带有一个附属的 背景数据块DI。传递给FB的参数和静态变量存在背景数据块中,临时变量存在L数据堆栈中。DI随FB的调用而打开,随FB执行结束而关闭,所以存在DI中的数据不会丢失,但保存在L堆栈中的临时数据将丢失。FB可以使用全局数据块DB。 功能块(FC)功能FC也是属于用户自己编程的块,但它是“无存储区”的逻辑块。FC的临时变量存储在L堆栈中,在FC执行结束后,这些数据丢失。要将有关数据存储,功能FC可以使用全局数据块DB。由于FC没有它自己的存储区,所以必须为它内部的形式参数指定实际参数。另外,不能为FC的局域数据分配初始值。2)组织块 组织块OB是操作系统与用户程序在各种条件下
12、的接口界面,用于控制程序的运行。各型的S7 CPU各有一套可编程的OB块,各有所不同。例如S7 CPU314共有13种组织块。不同的OB块由不同的事件起动,执行不同的功能,且具有不同的优先级,可用于控制循环执行或中断执行(包括故障中断)及PLC起动方式等。组织块的类型包括: 起动特性组织块OB100,OB101,OB102。 主程序循环块OB1。 定期的时间中断组织块OB10OB17(日时钟中断);OB20OB23(延时中断);OB30OB37(循环中断)。 事件驱动的中断组织块OB40OB47(硬件中断);OB80OB87(异步错误中断);OB121OB122(同步错误中断)。OB1是主程序
13、块,由操作系统不断循环调用,在编程时总是需要的。可将所有程序放入OB1中,或部分放入OB1中,再在OB1中调用其他块来组织程序。OB1在运行时,操作系统可能调用其他OB块以响应确定事件,其他OB块的调用实际上就是“中断”。一个OB的执行可以被另一个OB的调用而中断。一个OB是否可以中断另一个OB由它的优先级决定。高优先级OB可以中断低优先级的OB,OB1的优先级最低。组织块中包含一个变量声明表和一个常规的控制程序。控制程序可以各不相同,但对变量声明表中“局部数据”的类型应先进行限定说明。OB中局部数据的类型是有限定的。任何OB都是由操作系统调用而不能由用户调用,所以OB没有输入、输出和I/O参
14、数。由于OB没有背景DB,所以也不能为OB声明任何静态变量。因此OB的变量声明表中只能定义临时变量,OB的临时变量的数据类型可以是基本的或复合的数据类型以及数据类型ANY。对OB变量声明表的这一限定,用户应当注意。 3) 系统功能块 S7 CPU 为用户提供了一些已经编好、通过了测试的程序块,这些块称为系统功能(SFC)和系统功能块(SFB)。它们属于操作系统的一部分,不需将其作为用户程序下载到PLC,用户可以直接调用它为自己的应用程序服务,不占用用户程序空间。系统功能块SFB与功能块FB相似,必须为SFB生成背景数据块,并将其下载到CPU中作为用户程序的一部分。图6.2.2为块的调用关系。
15、图6.2.2 块的调用关系 不同的S7 CPU提供不同的SFC、SFB功能,读者可参阅STEP 7系统和标准功能参考手册。6.2.2 STEP 7的安装与图标说明安装STEP 7软件的硬件要求是:能够运行所需操作系统的编程器PG或PC。PG是专门为在工业环境中使用而设计的PC机。它已经预装了包括STEP 7在内的,用于SIMATIC PLC组态、编程所需的软件。PC机的CPU的主频在600MHz以上;RAM在256MB以上(推荐512MB)。剩余硬盘空间为300600MB(视安装选项不同而定);显示设备:XGA,支持1024768分辨率,16bit以上彩色深度。STEP 7 V5.3可以安装在
16、下列操作系统平台上:Microsoft Window 2000 (至少需SP3);Microsoft Window XP (至少需SP1)。上述操作系统需要安装Microsoft Internet Explorer 6.0(或以上)版本。在STEP 7 V5.3中,对Microsoft Window3.1/95/98/ME/NT都不再支持,也不支持Windows XP Home版本。1软件安装 将STEP7安装光盘插入CD/DVD ROM后,打开光盘,双击Setup.exe图标,可执行STEP7的自动安装程序。安装时可以根据弹出的引导信息,按规定的步骤进行。 STEP7软件可以选择三种安装方式
17、: 典型 (Typical)安装:可以安装STEP7的所有语言、应用程序、项目示例和文档; 最小(Minimal)安装:只安装一种语言和基本的STEP7程序; 自定义 (Custom)安装:可选择STEP7安装的语言、程序、示例和文档。 STEP7安装过程中,安装程序将自动检查计算机硬盘上是否有SIEMENS的授权(License Key)。如果计算机没有安装授权,安装程序会自动提示用户进行“授权”的安装。 授权安装可以选择两种方式进行: 在安装过程中直接安装授权; 在使用时或稍后再安装授权。 STEP7的“授权”被存放在一张只读的授权软盘内,每安装一个授权,授权盘上的计数器将被减1,当计数值
18、为0时,就不能再使用这张磁盘进行授权的安装。 使用Authors W程序可以把授权收回到授权盘,也可在硬盘的不同区之间移动、转移授权。 安装过程中,同样会出现PG/PC接口设置提示对话框,以定义PG/PC与PLC之间的通信接口。PG/PC接口的设置与STEP7-Micro/WIN软件基本相同,可以参见第6.1节的相关内容。也可单击提示对话框“Cancel”忽略该步骤,因为在安装软件完成后,仍可通过 SIMATIC程序组或在计算机上通过“控制面板”中的“Setting PG/PC Interface”显示该对话框,并进行通信连接设置。 STEP7安装结束时,会出现“存储卡配置参数”(Memory
19、 Card Parameter Assignment)设置对话框,提示用户为存储卡配置参数。可单击提示对话框“Cancel”忽略该步骤,因为在安装软件完成后,根据需要仍可通过SIMATIC程序组或在计算机上通过“控制面板”中的Memory Card Parameter Assignment”对存储卡参数赋值。软件安装完成后,通过点击计算机“开始”菜单中的“SIMATIC”“SIMATIC Manager”选项,或双击桌面快捷万式图标,即可快速启动STEP7,如图6.2.3所示。图6.2.3 STEP7的启动2 应用窗口说明起动SIMATIC Manager后,即可进入STEP7的操作界面,如图
20、6.2.4所示,操作界面主要由标题栏、菜单栏、工具栏、项目窗口栏等部分组成。 图6.2.4 STEP7的操作界面1)标题栏 显示区的第一行为标题栏,标题栏显示当前正在编辑程序 (项目)的名称 (如图6.2.4中的Pro1_16)。2) 菜单栏 显示区的第二行为菜单栏,菜单栏由文件(File)、编辑(Edit)、插入(Insert)、检视(View)、PLC、选项(Options)、窗口(Window)、帮助(Help)等8组主菜单组成,每组主菜单都含有一组命令,进入菜单后点击相应的命令即可执行所选择的操作。 通过菜单栏中的对应命令,可以实现对文件的管理、对象的编辑、块的插入、显示区的设置、PL
21、C联机、选项设置、视窗选择或打开帮助功能等。3)工具栏 显示区的第三行为工具条,工具条由若干工具按钮组成,工具条的作用将常用操作以快捷按钮方式设定到主窗口。当用光标选中某个快捷键时,在状态栏会有简单的信息提示,如果某些键不能操作,则呈灰色。 工具栏中除常规的文件打开、保存、打印、打印预览等标准工具按钮外,还有很多S7专用的快捷按钮。 可以通过主菜单检视(View)工具条(Toolbar)选项来显示或隐藏工具条,快捷按钮图标的具体含义见后述。4)项目窗口 “项目窗口”用来管理生成的数据和程序,这些对象在项目下按不同的项目层次,以树状结构分布。 在SIMATIIC管理器中可以同时打开多个项目,每个
22、项目的视图由两部分组成。左半部窗口称为项目树显示区,可显示所选择项目的层次结构,点击+符号显示项目完整的树状结构;右半部窗口称为“对象显示区”,可显示当前选中的目录下所包含的对象。3 软件图标说明 在STEP7中使用了较多的S7专用图标与快捷按钮,图标的含义、作用汇总、归纳如表6.2.1所示,快捷按钮的含义、作用如表6.2.2所示。表6.2.1 STEP7图标的含义、作用表6.2.1 STEP7图标的含义、作用6.2.2 STEP7快捷按钮的含义、作用6.2.3 创建项目 STEP 7安装成功后,将在Windows桌面上出现SIMATIC Manager(SIMATIC管理器)图标,双击该图标
23、后,激活STEP 7助手,出现如图6.2.5所示的界面。图6.2.5 STEP 7助手界面 在创建项目的过程中,要完成对CPU型号的设定、组织块的选择、编程语言的选择和项目名称的确定。 1 设定CPU型号 在图6.2.5中,单击Next按钮,出现CPU设定界面,如图6.2.6所示。此时设定的CPU型号为CPU315-2DP.默认的MPI地址为2(可在231之间选择),默认的组织块只有OB1。图6.2.6 CPU型号的设定界2 组织块和编程语言的选择 为进一步选择其他组织块和编程语言,在图6.2.6中,单击Next按钮,出现如图6.2.7所示的界面。此时供选择的其他组织块有:OB10、OB35、
24、OB40、OB100.选择的编程语言是LAD(梯形图)。图6.2.7 组织块的选择3 项目名称的确定 在图6.2.7中单击Next按钮,出现确定项目名称界面,如图6.2.8所示,此时确定的项目名称为S7-Pro3,读者也可定义为其他名称。图6.2.8 确定项目名称单击Finish,就完成了创建一个项目的设定工作。单击Make按钮,打开如图6.2.9所示的S7-Pro3项目窗口,从这里可以启动所有的STEP 7功能和窗口,并可通过按F1键调用在线帮助。图6.2.9 创建后的项目窗口 STEP 7允许采用符号地址编程,以增加程序的可读性。用符号编辑器编写符号表的方法是在S7-Pro3项目窗口中,选
25、择S7 Program(1),再在随后出现的窗口中双击Symbols,显示出符号表,即可对此符号表进行编辑,图6.2.10为一个编辑好的符号表。无论采用哪种编程语言,每个S7程序只生成一个符号表。图6.2.10 STEP 7符号表编辑器6.2.4 在OB1中创建程序 1 打开LAD/STL/FBD编辑窗口 在STEP 7 中,允许使用梯形图(LAD)、语句表(STL)或功能块图(FBD)编辑器,生成S7应用程序,但是在实际使用中,应预先设定使用哪种语言编辑器,一般从事PLC控制的电气技术人员常常选择梯形图编辑器;熟悉计算机编程的,常选择语句表编程器;熟悉数字电路的,常选择功能块图编辑器。设定方
26、法前面已经介绍,当然也可以在LAD/STL/FBD编辑窗口中的View菜单中进行设定。 2 用梯形图(LAD)编辑器编辑组织块OB1 编程工具上的按钮功能如图6.2.11所示,利用这些功能可以很快地绘制出梯形图程序。图6.2.11 编程工具条上的按钮功能 3 用语句表(STL)编辑器编辑组织块OB1在LAD/STL/FBD窗口中,打开View菜单,设定编程语言为STL后,根据语句表逐条输入和编辑程序,如果使用符号表中不存在的符号地址或出现语法错误,则会显示为红色。4 用功能块图(FBD)编辑器编辑组织块OB1在LAD/STL/FBD窗口中,打开View菜单,设定编程语言为FBD后,按选择编程元
27、件按钮,与编程工具条配合,再输入编程元件地址,如果是符号地址,可通过Options菜单,选择LAD/FBD标签中的“Width of address field”,设定每行符号地址的最大字符数(1024个)。6.2.5 创建一个具有功能块和数据块的程序 1 创建并打开功能块FB1 在图6.2.9的S7-Pro3项目窗口中,用鼠标右键单击Block按钮,在出现的下拉菜单中选择Insert New Object,再选择Function Block,如图6.2.12所示。图6.2.12 创建FB1在随后出现的对话框中定义新创建的功能块为FB1,并确定编程语言,FB1创建成功。重新返回到S7-Pro3
28、项目窗口,会出现新创建的FB1图标,双击FB1图标,即可打开功能块FB1进行编辑。与编辑组织块OB1一样,可以采用LAD/STL/FBD进行编辑。 例如,要求对一台汽油发动机和一台柴油发动机的速度进行监视和控制,用梯形图编辑器对功能块FB1进行编辑。 2 输入局部变量声明表 所有从组织块传送到功能块的块参数,必须作为输入/输出参数在变量声明表列出(in或out)。变量声明表的格式如图6.2.13所示。在变量声明表中,变量名称(Name)只能使用字母、数字和下划线,不能使用汉字,但可以用汉字进行注释(Comment)。只在当前块(如FB1)中使用的局部变量,用“”标记,对于在整个程序中都可调用的
29、全局变量,用双引号“”标记。在变量声明表的参数声明栏中,in为输入参数,out为输出参数,in_out为输入/输出参数,stat为静态参数,temp为暂时参数。图6.2.13 变量声明表格式3 编制控制程序用梯形图编写的控制程序如图6.2.14所示,对发动机的速度进行监控的程序如图6.2.15所示图6.2.14 控制程序梯形图图6.2.15 发动机速度监控程序 4 生成背景数据块和修改实际值 在STEP 7中,一个背景数据块总是被指定给一个功能块,一个功能块可以与多个背景数据块建立赋值关系。如果几个不同的控制设备,具有不同的预设参数,但控制任务相似,就可以只编写一个功能块,而将不同的预设参数分
30、别存储在不同的背景数据块中,这样可以减少编程工作量。 上述例题中,要对两台发动机的速度进行监控,汽油发动机(Petrol)的速度预设值为1500。柴油发动机(Diesel)的速度预设值为1200,生成两个背景数据块DB1和DB2。 (1)生成数据块的方法与创建功能块的方法一样,在S7_Pro3项目窗口用鼠标右键单击Blocks按钮,在弹出的菜单中,选择Insert New Object,再选Data Block,单击“OK”按钮确认“Properties”对话框中的所有设置,则数据块DB1添加到S7-Pro3项目窗口。 (2)在步骤1的“Properties”对话框中,选择“instanceD
31、B”单击“OK”按钮确认DB1与“FB1,Engine”的赋值关系。 (3)进入数据块DB1的LAD/STL/FBD编程窗口,打开并显示来自FB1变量声明表的数据。 (4)打开View菜单,选择Data View,在行为“Preset_Speed(预设值)”,列为“Actual Value(实际值)”的位置写入预设值1500。 (5)保存DB1,关闭编辑窗口。按照上述方法生成数据块DB2,写入预设值1200。 如果控制系统中不只2台发动机,有多台发动机的速度需要监控,只需要生成其他的背景数据块即可。 5 编辑组织块(主程序)OB1的控制程序 组织块OB1、功能块FB1和数据块DB1、DB2之间
32、的关系如图6.2.16所示。 图6.2.16 OB1、FB1与DB1、DB2之间的关系 (1)用梯形图编辑器编辑OB1用梯形图编辑器编辑OB1的步骤如下: 编写使用数据块DB1的功能块FB1的调用指令。打开S7_Pro3项目窗口,找到Block文件夹,打开OB1;单击编程元件按钮,在FB Blocks文件夹中双击FB1 Engine,将FB1插到梯形图中;在switch_on, switch_off,failure处各插入一个动合触点。图6.2.17 用梯形图编辑调用DB1的功能块FB1 然后用鼠标右键单击engine上的“?”,在弹出的对话框中选择Insert Symbol;在Symbol中
33、选择数据块Petrol,调用DB1(Petrol)的功能块便被插入到程序结构中;此后,再为功能块的所有输入/输出填上符号地址,存盘后关闭编程窗口。 编写使用数据块DB2的功能块FB1的调用指令,开始一个新的程序段,按照步骤所述进行。 (2)用语句表编辑器编辑OB1 编写使用数据块DB1的功能块FB1的调用指令,具体步骤为:打开项目窗口S7_Pro3,打开OB1,选择语句表编辑器,在语句表编辑器的指令区键入: “CALL Engine,Petrol”后按下回车键,完成调用指令,此时功能块“Petrol”的所有参数都显示出来,如图6.2.18所示。 图6.2.18 用语句表显示调用DB1的功能块F
34、B1的参数 编写使用数据块DB2的功能块FB1的调用指令,仍按照步骤所述进行。 (3)用功能块图编辑器编辑OB1 用功能块图编辑器编辑OB1的方法和过程与用梯形图编辑器编辑OB1相似。6.2.6 对功能块FC的编程 功能块FC(Function)与功能块FB(Function Block)都可以接受组织块的调用,但FC不需要数据块DB。在本例中,将创建一个功能块,其内容是对定时器的应用。定时器是控制系统中常用的器件,本例要求,在发动机接通的同时接通一个风扇,而发动机断开后,风扇继续运行5秒再关闭。 1 创建并打开功能块FC 创建FC的方法与创建FB的方法完全相同,在项目窗口中,用鼠标右键单击B
35、locks文件夹,从弹出的快捷菜单中插入FC,在Properties-Function(功能特性)对话框中接受名称FC1,并选择所需要的编程语言;单击“OK”按钮确认,在Blocks文件夹中出现FC1图标,双击FC1,可对其进行编辑。 2编辑FC1和前面一样,可以采用梯形图、语句表、功能图3种办法来编程。下面先介绍梯形图方法。 先打开LAD/STL/FBD编程窗口,设计出变量声明表(与功能框不同的是无静态参数Stat),此时的界面如图6.2.19所示。 图6.2.19 定时器变量声明表 接着在编程元素目录中找到断开延时定时器S_OFFDT,插入到当前程序中。在功能框的S端插入一个动合触点,标记
36、符号地址Engine_On。然后在Q输出端插入一个线圈并标记符号地址Fan_On。在TV端设置延时时间S5T#5S。在功能框上方的问号处输入Timer_Function。此时定时器的梯形图编程如图6.2.20所示,存盘后关闭编程窗口。 图6.2.20 定时器的梯形图编程如果用语句表编写同样功能的程序,程序如下。A Engine_OnL S5T#5SSF #Timer_FunctionA Timer_Function= #Fan_On 如果用功能块图方法编程,程序如图6.2.21所示,它与梯形图编程是相似的。 图6.2.21 定时器的功能块图编程 3 在OB1中用梯形图编辑器调用FC 对功能块F
37、C1的调用与对功能块FB的调用方式相同,为在OB1中用汽油发动机或柴油发动机的相应地址给功能块FC1的所有参数赋值,要对这些地址在符号表中进行定义。 首先打开OB1的LAD/STL/FBD编程窗口,用菜单命令Options打开符号表Symbol Table,在符号表的底部添加如图6.2.22所示的符号地址。图6.2.22 在符号表中添加符号地址 然后在LAD编程窗口,从编程元件目录中查找到FC1,插到一个新程序段中;在Engine_On之前插入一个动合触点,标记符号地址PE_On;在Fan_On端标记符号地址PE_Fan_On,在功能框中的问号处插入符号名Fan。OB1对FC1的调用和使用发动
38、机地址的梯形图如图6.2.23所示。图6.2.23 OB1对FC1的调用和使用汽油发动机地址的梯形图 用同样的方法,可完成OB1对FC1的调用和使用柴油发动机地址的梯形图,存盘后关闭编程窗口。6.2.7 对共享数据块的编程 在STEP 7中,除了背景数据块外,还可设置共享数据块。背景数据块是被指定给一个特定的功能块,而存储在共享数据块中的数据可以被其他的任意一个块使用。 打开共享数据块的步骤如下: 打开S7_Pro3项目窗口,用鼠标右键单击Blocks文件夹,在弹出的快捷菜单中,插入一个Data Block (DB)。 随后弹出Properties-Data Block对话框,接受所有默认的设
39、定, DB3自动进入Blocks的文件夹中; 双击打开DB3,在出现的New Data Block对话框中,激活Data Block后单击“OK”按钮,关闭对话框。 打开DB3,编辑变量声明表如图6.2.24所示。图6.2.24 DB3的变量声明表 使用菜单命令Options,打开Symbol Table(符号表),为DB3定义符号地址S_Data, 存盘后关闭符号表,关闭共享数据块DB3的变量声明表。 6.2.8 使用多重背景编程 如前所述,当功能块FB1在组织块中被调用时,使用了数据块Petrol (DB1)和Diesel (DB2),如果还有一些其他的设备的速度需要用功能块FB1进行监控
40、,还要为这些设备的数据分配新的数据块,使数据块的数量增加很多。 1 创建和打开较高级别的功能块 使用多重背景编程可以有效地减少数据块的数量,具体做法是创建一个比FB1级别高的功能块(不能是功能块FC),如FB10,将未做任何修改的FB1作为一个“局域背景”,在FB10中调用。对FB1的每一次调用,都是先调用FB10,进而通过参数在FB10中调用FB1,不必给FB1分配任何数据块,如DB1、DB2等,而是把Petrol Engine的数据和Diesel Engine的数据集成在DB10中。多重背景编程的调用关系如图6.2.25所示图6.2.25 多重背景编程的调用关系创建FB10的步骤如下:首先
41、在S7_Pro3的项目窗口中,用鼠标右键单击Blocks文件夹;接着在弹出的菜单中插入一个功能块,定义功能块名称为FB10,选择所需要的编程语言;然后激活多重背景(Multiple instance FB);单击“OK”按钮,确认其余的默认设置,当FB10被添加到Blocks文件夹后,双击FB10即可打开。 2 对FB10的编程 首先填写变量声明表,要将FB1作为FB10的一个“局域背景(Local instance)”调用,需要在FB10的变量声明表中为FB1的调用声明不同名字的静态变量,数据类型为FB1(“Engine”)。. 打开FB10的LAD/STL/FBD编程窗口,填写FB10的变
42、量声明表,如图6.2.26所示。 图6.2.26 FB10的变量声明表 在变量声明后,用梯形图对FB10编程。所声明的局域背景将出现在编程元件窗口的Mutiple Instance下。接着按下述步骤操作: (1)在第一个程序段中插入多种背景块“Petrol_Engine”,插入动合触点并标记符号地址,即可完成FB10对Petrol的调用,如图6.2.27所示。 图6.2.27 FB10对Petrol的调用 发动机的“Actual Speed(实际速度)”来自一个共享数据块,通用的地址赋值关系为:“Data_Block”.Addres,例如:“S_Data”.PE_Actual_Speed。 (
43、2)用同样方法完成FB10对Diesel的调用,如图6.2.28所示。 图6.2.28 FB10对Diesel的调用 (3)插入一个新的程序段,完成对发动机的速度监控,监控程序(片断)如图6.2.29所示图6.2.29 监控发动机的速度 暂时变量PE_Preset_Speed_Reached和DE_Preset_Speed_Reached被提供给输出参数Preset_Speed_Reached,它在OB1中将被进一步处理。 (4)存盘后关闭FB10。3 生成DB10并调整实际值 将前述数据块DB1(用于汽油发动机)和DB2(用于柴油发动机)用数据块DB10代替,并指定其与功能块FB10建立联系
44、。联系步骤如下: (1)在S7_Pro3项目窗口的Blocks文件夹中创建数据块DB,并定义为DB10; (2)在弹出的对话框中选择“instance DB”,并选择FB10,然后点击“OK”确定。(3)使用菜单命令View,选择Data View, 出现DB10的变量声明表,如图6.2.30所示。在变量声明表中,所有的静态参数的名称由两部分组成,例如,Petrol_Engine.Switch_On,前面的Petrol_Engine是局域背景的名字,后面的Switch_On是内部变量名称,中间用圆点隔开。 图6.2.30 DB10的变量声明表 (4)存盘后关闭数据块DB104 在OB1中调用F
45、B10在OB1中调用FB10的操作步骤如下:(1)打开OB1,同时打开LAD/STL/FBD编程窗口;(2)用菜单命令OptionSymbol Table打开符号表,在符号表的末尾添加功能块FB10和数据块DB10的符号名,如图6.2.31所示。图6.2.31 为FB10和DB10定义符号名 (3)存盘后关闭符号表; (4)在OB1中删除对FB1的调用(因为现在是通过FB10来调用FB1) (5)在OB1中插入如图6.2.32所示的程序段,完成对FB10及DB10的调用 图6.2.32 OB1对FB10及DB10的调用 (6)存盘后关闭 在STEP 7进行网络硬件组态的方法将在第8章第4节“PROFIBUS的组态及实例”中详细介绍。6.3 S7-PLCSIM仿真软件6.3.1 S7-PLCSIM的主要功能 STEP7专业版包含S7-PLCSIM,安装STEP7的同时也安装了S7-PLCSIM。对于标准版的STEP7,在安装好STEP7后再安装S7-PLCSIM,S7-PLCSIM将自动嵌入STEP7。 S7-PLCSIM可以在计算机上对S7-300/400PLC的用户程序进行离线仿真与调试,因为S7-PLCSIM与STEP7
限制150内