STEP7编程软件的使用.docx
《STEP7编程软件的使用.docx》由会员分享,可在线阅读,更多相关《STEP7编程软件的使用.docx(33页珍藏版)》请在冰豆网上搜索。
STEP7编程软件的使用
STEP7编程软件的使用
STEP7是SIEMENSSIMATIC工业软件中的一种,它是用于对SIMATICPLC进行组态和编程的软件包。
STEP7提供了几种不同版本以适应不同的应用和需求。
①STEP7Micro/DOS、STEP7Micro/WIN:
适用于S7-200系列PLC的编程、组态软件包;
②STEP7Lite:
适用于S7-300、C7系列PLC、ET200X和ET200S系列分布式I/O的编程、组态软件包;
③STEP7Basis:
适用于S7-300/S7-400、M7-300/M7-400和C7系列的编程、组态标准软件包;
④STEP7Professional:
除包含了STEP7Basis版本中的标准组件外,还包含了STEP7扩展软件包,如SCL、GRAPH和PLCSIM。
到目前为止,STEP7Basis的最新版本是2004年2月发布的STEP7BasisV5.3。
本书后面的介绍都基于这个版本。
提供LAD(梯形图)、STL(语句表)、FBD(功能块图)三种编程语言。
编程设备(可以是编程器PG或者PC)通过编程电缆与PLC的CPU模块相连,用户可以在STEP7中编写程序和对硬件进行组态,并将用户程序和硬件组态信息(详细内容见8.5节的实例)下载到CPU,或者从CPU上传到PG或PC,当程序下载、调试完成后,PLC系统就可以自动执行各种任务了。
6.2.1S7-300/400用户程序的模块化结构
在讲述STEP7编程软件的使用之前,先简要说明一下S7-300/400用户程序的模块化结构。
这是编写S7-300/400用户程序的基本知识,同时与STEP7软件密切相关。
西门子公司S5、S7系列PLC采用的是“块式程序结构”,用“块”的形式来管理用户编写的程序及程序运行所需要的数据,组成完整的PLC应用程序系统(软件系统)。
“块”分为数据块和逻辑块。
1数据块
在生产控制过程中常常会遇到很多过程数据、基准值、预置值,有些经常要进行修改,把它们分类放置在不同数据块中有利于进行数据管理;其次,数据块也是各逻辑块之间交换、传递和共享数据的重要途径;数据块有丰富的数据结构,有助于高效管理复杂的变量组合,提高程序设计的灵活性。
用户可以在存储器中建立一个或多个数据块,每个数据块可大可小,但CPU对数据块数量及数据总量有限制,如CPU314,其数据块数量上限为127个,数据总量上限为8KB(8192Byte)。
对数据块必须遵循先建立(定义)后使用的原则,否则将造成系统错误。
1)数据块的类型
数据块可分为共享数据块DB和背景数据块DI两类,它们有不同的用途。
共享数据块DB又称为全局数据块,在用户程序中任何FB、FC或OB均可读取存放在共享数据块中的数据。
在共享数据块中声明的变量是全局变量(在全局符号表中声明的变量也是全局变量),全局变量可以被所有的块使用。
背景数据块DI(InstanceDataBlock)是指定给某个功能块FB使用的数据块,它是FB运行时的工作存储区,存放FB的部分运行变量。
调用FB时必须指定一个相关的背景数据块。
作为规则,只有FB才能访问存放在背景数据块中的数据。
一般情况下,一个FB都有一个对应的背景数据块,但一个FB可以根据需要使用不同的背景数据块。
如果几个不同的控制设备,具有不同的预设参数,但控制任务相似,就可以只编写一个功能块,而将不同的预设参数分别存储在不同的背景数据块中,这样可以减少编程工作量。
如果几个FB需要的背景数据完全相同,可只定义一个背景数据块,供它们分别使用。
此外,通过多重数据块,可将几个FB需要的不同的背景数据定义在一个背景数据块中,以优化数据管理。
背景数据块与共享数据块在CPU的存储器中是没有区别的,只是因为打开方式不同,才在打开时有背景数据块和共享数据块之分。
一般来说,任何一个数据块都可以当作共享数据块或背景数据块来使用,但实际上一个数据块DB当作背景数据块使用时,必须与FB的要求格式相符。
2)定义数据块
在编程阶段和程序运行中都能定义(即生成、建立)数据块。
大多数数据块在编程阶段和其他块一样,在SIMATIC管理器或增量编辑器中生成。
用户可以选择创建共享数据块或背景数据块,创建一个新的背景数据块时必须指定它所属的功能块FB。
定义数据块的内容包括数据块号及块中的变量(如变量符号名、数据类型、初始值等)。
定义完成后,数据块中变量的顺序及类型决定了数据块的数据结构,变量的多少决定数据块的大小。
数据块在使用前,必须作为用户程序的一部分下载到CPU中。
背景数据块直接附属于功能块,它的数据结构等是自动生成的,例如当编好的FB存盘时,背景数据块中所含数据为功能块的变量声明表中所存数据。
功能块的变量决定了其背景数据块的结构。
背景数据块数据结构的修改只能在相关的功能块中进行,不能独自修改。
对于背景数据块来说,用户可以修改变量的实际值。
为修改变量的实际值,用户必须工作在数据块的数据浏览形式中。
共享数据块不附属于任何逻辑块,它可含有生产线或设备所需的各种数值。
定义时,用户按其栏目,可输入想存放在数据块中的各种变量。
定义共享数据块与背景数据块的步骤如图6.2.1所示。
图6.2.1生成两种数据块
3)访问数据块
在用户程序中可能定义了许多数据块,而每个数据块中又有许多不同类型的数据。
因此,访问(读/写)时需要明确打开的数据块号和数据块中的数据类型与位置。
只有打开的数据块才能被访问。
由于只有两个数据块寄存器(DB和DI寄存器),所以最多可以同时打开两个数据块:
一个作为共享数据块,共享数据块的块号存储在DB寄存器中;一个作为背景数据块,背景数据块的块号存储在DI寄存器中。
没有专门的数据块关闭指令,在打开一个数据块时,先打开的数据块自动关闭。
打开和访问数据块的方法有两种:
传统访问方法(即先打开后访问),合成指令法(即完整地址法)。
2逻辑块
设计者在编程时,将其程序用不同的逻辑块进行结构化处理,也就是将程序分解为自成体系的多个部分(逻辑块),每个逻辑块为不同设备的控制程序或不同功能的控制程序。
程序分块后有以下优点:
①规模大的程序更容易理解;
②可以对单个的程序进行标准化;
③程序组织简化;
④程序修改更容易;
⑤由于可以分别测试各个部分,查错更为简单;
⑥系统调试更容易。
逻辑块包括功能块FB、FC,组织块OB,系统功能块SFB、SFC。
下面分别介绍。
1)功能块
功能块中编写的程序是用户程序的一部分,这些程序可以被反复调用。
功能块由两部分组成。
在功能块显示窗口可见到,上半部分是每个功能块的“变量声明表”,下半部分是编写的该功能块的程序。
声明表中定义的局部数据分为“参数”和“局部变量”两类。
参数是在调用块和被调用块之间传递的数据,所以可定义一个参数为块的输入值或块的输出值,或块的输入/输出值,同时要声明参数类型为输入、输出和输入/输出。
局部变量包括静态变量和临时变量(暂态变量),是仅供功能块本身使用的数据。
一个用户程序可以由多部分(子程序)组成,这些部分即不同的块,而通过块调用可组成结构化程序。
进行调用时,调用块可以是任何逻辑块,被调用块只能是功能块(除OB外的逻辑块)。
①功能块(FB)
功能块FB属于用户自己编程的块,相当于“子程序”。
它带有一个附属的背景数据块DI。
传递给FB的参数和静态变量存在背景数据块中,临时变量存在L数据堆栈中。
DI随FB的调用而打开,随FB执行结束而关闭,所以存在DI中的数据不会丢失,但保存在L堆栈中的临时数据将丢失。
FB可以使用全局数据块DB。
②功能块(FC)
功能FC也是属于用户自己编程的块,但它是“无存储区”的逻辑块。
FC的临时变量存储在L堆栈中,在FC执行结束后,这些数据丢失。
要将有关数据存储,功能FC可以使用全局数据块DB。
由于FC没有它自己的存储区,所以必须为它内部的形式参数指定实际参数。
另外,不能为FC的局域数据分配初始值。
2)组织块
组织块OB是操作系统与用户程序在各种条件下的接口界面,用于控制程序的运行。
各型的S7CPU各有一套可编程的OB块,各有所不同。
例如S7CPU314共有13种组织块。
不同的OB块由不同的事件起动,执行不同的功能,且具有不同的优先级,可用于控制循环执行或中断执行(包括故障中断)及PLC起动方式等。
组织块的类型包括:
①起动特性组织块-OB100,OB101,OB102。
②主程序循环块-OB1。
③定期的时间中断组织块-OB10~OB17(日时钟中断);OB20~OB23(延时中断);OB30~OB37(循环中断)。
④事件驱动的中断组织块-OB40~OB47(硬件中断);OB80~OB87(异步错误中断);OB121~OB122(同步错误中断)。
OB1是主程序块,由操作系统不断循环调用,在编程时总是需要的。
可将所有程序放入OB1中,或部分放入OB1中,再在OB1中调用其他块来组织程序。
OB1在运行时,操作系统可能调用其他OB块以响应确定事件,其他OB块的调用实际上就是“中断”。
一个OB的执行可以被另一个OB的调用而中断。
一个OB是否可以中断另一个OB由它的优先级决定。
高优先级OB可以中断低优先级的OB,OB1的优先级最低。
组织块中包含一个变量声明表和一个常规的控制程序。
控制程序可以各不相同,但对变量声明表中“局部数据”的类型应先进行限定说明。
OB中局部数据的类型是有限定的。
任何OB都是由操作系统调用而不能由用户调用,所以OB没有输入、输出和I/O参数。
由于OB没有背景DB,所以也不能为OB声明任何静态变量。
因此OB的变量声明表中只能定义临时变量,OB的临时变量的数据类型可以是基本的或复合的数据类型以及数据类型ANY。
对OB变量声明表的这一限定,用户应当注意。
3)系统功能块
S7CPU为用户提供了一些已经编好、通过了测试的程序块,这些块称为系统功能(SFC)和系统功能块(SFB)。
它们属于操作系统的一部分,不需将其作为用户程序下载到PLC,用户可以直接调用它为自己的应用程序服务,不占用用户程序空间。
系统功能块SFB与功能块FB相似,必须为SFB生成背景数据块,并将其下载到CPU中作为用户程序的一部分。
图6.2.2为块的调用关系。
图6.2.2块的调用关系
不同的S7CPU提供不同的SFC、SFB功能,读者可参阅《STEP7系统和标准功能参考手册》。
6.2.2STEP7的安装与图标说明
安装STEP7软件的硬件要求是:
能够运行所需操作系统的编程器PG或PC。
PG是专门为在工业环境中使用而设计的PC机。
它已经预装了包括STEP7在内的,用于SIMATICPLC组态、编程所需的软件。
PC机的CPU的主频在600MHz以上;RAM在256MB以上(推荐512MB)。
剩余硬盘空间为300~600MB(视安装选项不同而定);显示设备:
XGA,支持1024×768分辨率,16bit以上彩色深度。
STEP7V5.3可以安装在下列操作系统平台上:
MicrosoftWindow2000(至少需SP3);MicrosoftWindowXP(至少需SP1)。
上述操作系统需要安装MicrosoftInternetExplorer6.0(或以上)版本。
在STEP7V5.3中,对MicrosoftWindow3.1/95/98/ME/NT都不再支持,也不支持WindowsXPHome版本。
1软件安装
将STEP7安装光盘插入CD/DVDROM后,打开光盘,双击Setup.exe图标,可执行STEP7的自动安装程序。
安装时可以根据弹出的引导信息,按规定的步骤进行。
STEP7软件可以选择三种安装方式:
①典型(Typical)安装:
可以安装STEP7的所有语言、应用程序、项目示例和文档;
②最小(Minimal)安装:
只安装一种语言和基本的STEP7程序;
③自定义(Custom)安装:
可选择STEP7安装的语言、程序、示例和文档。
STEP7安装过程中,安装程序将自动检查计算机硬盘上是否有SIEMENS的授权(LicenseKey)。
如果计算机没有安装授权,安装程序会自动提示用户进行“授权”的安装。
授权安装可以选择两种方式进行:
①在安装过程中直接安装授权;
②在使用时或稍后再安装授权。
STEP7的“授权”被存放在一张只读的授权软盘内,每安装一个授权,授权盘上的计数器将被减1,当计数值为0时,就不能再使用这张磁盘进行授权的安装。
使用AuthorsW程序可以把授权收回到授权盘,也可在硬盘的不同区之间移动、转移授权。
安装过程中,同样会出现PG/PC接口设置提示对话框,以定义PG/PC与PLC之间的通信接口。
PG/PC接口的设置与STEP7-Micro/WIN软件基本相同,可以参见第6.1节的相关内容。
也可单击提示对话框“Cancel”忽略该步骤,因为在安装软件完成后,仍可通过SIMATIC程序组或在计算机上通过“控制面板”中的“SettingPG/PCInterface”显示该对话框,并进行通信连接设置。
STEP7安装结束时,会出现“存储卡配置参数”(MemoryCardParameterAssignment)设置对话框,提示用户为存储卡配置参数。
可单击提示对话框“Cancel”忽略该步骤,因为在安装软件完成后,根据需要仍可通过SIMATIC程序组或在计算机上通过“控制面板”中的"MemoryCardParameterAssignment”对存储卡参数赋值。
软件安装完成后,通过点击计算机“开始”菜单中的“SIMATIC”→“SIMATICManager”选项,或双击桌面快捷万式图标,即可快速启动STEP7,如图6.2.3所示。
图6.2.3STEP7的启动
2应用窗口说明起动SIMATICManager后,即可进入STEP7的操作界面,如图6.2.4所示,操作界面主要由标题栏、菜单栏、工具栏、项目窗口栏等部分组成。
图6.2.4STEP7的操作界面
1)标题栏
显示区的第一行为标题栏,标题栏显示当前正在编辑程序(项目)的名称(如图6.2.4中的Pro1_16)。
2)菜单栏
显示区的第二行为菜单栏,菜单栏由文件(File)、编辑(Edit)、插入(Insert)、检视(View)、
PLC、选项(Options)、窗口(Window)、帮助(Help)等8组主菜单组成,每组主菜单都含有一组命令,进入菜单后点击相应的命令即可执行所选择的操作。
通过菜单栏中的对应命令,可以实现对文件的管理、对象的编辑、块的插入、显示区的设置、PLC联机、选项设置、视窗选择或打开帮助功能等。
3)工具栏
显示区的第三行为工具条,工具条由若干工具按钮组成,工具条的作用将常用操作以快捷按钮方式设定到主窗口。
当用光标选中某个快捷键时,在状态栏会有简单的信息提示,如果某些键不能操作,则呈灰色。
工具栏中除常规的文件打开、保存、打印、打印预览等标准工具按钮外,还有很多S7专用的快捷按钮。
可以通过主菜单检视(View)→工具条(Toolbar)选项来显示或隐藏工具条,快捷按钮图标的具体含义见后述。
4)项目窗口
“项目窗口”用来管理生成的数据和程序,这些对象在项目下按不同的项目层次,以树状结构分布。
在SIMATIIC管理器中可以同时打开多个项目,每个项目的视图由两部分组成。
左半部窗口称为"项目树显示区",可显示所选择项目的层次结构,点击"+"符号显示项目完整的树状结构;右半部窗口称为“对象显示区”,可显示当前选中的目录下所包含的对象。
3软件图标说明
在STEP7中使用了较多的S7专用图标与快捷按钮,图标的含义、作用汇总、归纳如表6.2.1所示,快捷按钮的含义、作用如表6.2.2所示。
表6.2.1STEP7图标的含义、作用
表6.2.1STEP7图标的含义、作用
6.2.2STEP7快捷按钮的含义、作用
6.2.3创建项目
STEP7安装成功后,将在Windows桌面上出现SIMATICManager(SIMATIC管理器)图标,双击该图标后,激活STEP7助手,出现如图6.2.5所示的界面。
图6.2.5STEP7助手界面
在创建项目的过程中,要完成对CPU型号的设定、组织块的选择、编程语言的选择和项目名称的确定。
1设定CPU型号
在图6.2.5中,单击Next按钮,出现CPU设定界面,如图6.2.6所示。
此时设定的CPU型号为CPU315-2DP.默认的MPI地址为2(可在2~31之间选择),默认的组织块只有OB1。
图6.2.6CPU型号的设定界
2组织块和编程语言的选择
为进一步选择其他组织块和编程语言,在图6.2.6中,单击Next按钮,出现如图6.2.7所示的界面。
此时供选择的其他组织块有:
OB10、OB35、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项目窗口,从这里可以启动所有的STEP7功能和窗口,并可通过按F1键调用在线帮助。
图6.2.9创建后的项目窗口
STEP7允许采用符号地址编程,以增加程序的可读性。
用符号编辑器编写符号表的方法是在S7-Pro3项目窗口中,选择S7Program
(1),再在随后出现的窗口中双击Symbols,显示出符号表,即可对此符号表进行编辑,图6.2.10为一个编辑好的符号表。
无论采用哪种编程语言,每个S7程序只生成一个符号表。
图6.2.10STEP7符号表编辑器
6.2.4在OB1中创建程序
1打开LAD/STL/FBD编辑窗口
在STEP7中,允许使用梯形图(LAD)、语句表(STL)或功能块图(FBD)编辑器,生成S7应用程序,但是在实际使用中,应预先设定使用哪种语言编辑器,一般从事PLC控制的电气技术人员常常选择梯形图编辑器;熟悉计算机编程的,常选择语句表编程器;熟悉数字电路的,常选择功能块图编辑器。
设定方法前面已经介绍,当然也可以在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后,按选择编程元件按钮,与编程工具条配合,再输入编程元件地址,如果是符号地址,可通过Options菜单,选择LAD/FBD标签中的“Widthofaddressfield”,设定每行符号地址的最大字符数(10~24个)。
6.2.5创建一个具有功能块和数据块的程序
1创建并打开功能块FB1
在图6.2.9的S7-Pro3项目窗口中,用鼠标右键单击Block按钮,在出现的下拉菜单中选择InsertNewObject,再选择FunctionBlock,如图6.2.12所示。
图6.2.12创建FB1
在随后出现的对话框中定义新创建的功能块为FB1,并确定编程语言,FB1创建成功。
重新返回到S7-Pro3项目窗口,会出现新创建的FB1图标,双击FB1图标,即可打开功能块FB1进行编辑。
与编辑组织块OB1一样,可以采用LAD/STL/FBD进行编辑。
例如,要求对一台汽油发动机和一台柴油发动机的速度进行监视和控制,用梯形图编辑器对功能块FB1进行编辑。
2输入局部变量声明表
所有从组织块传送到功能块的块参数,必须作为输入/输出参数在变量声明表列出(in或out)。
变量声明表的格式如图6.2.13所示。
在变量声明表中,变量名称(Name)只能使用字母、数字和下划线,不能使用汉字,但可以用汉字进行注释(Comment)。
只在当前块(如FB1)中使用的局部变量,用“#”标记,对于在整个程序中都可调用的全局变量,用双引号“”标记。
在变量声明表的参数声明栏中,in为输入参数,out为输出参数,in_out为输入/输出参数,stat为静态参数,temp为暂时参数。
图6.2.13变量声明表格式
3编制控制程序
用梯形图编写的控制程序如图6.2.14所示,对发动机的速度进行监控的程序如图6.2.15所示
图6.2.14控制程序梯形图
图6.2.15发动机速度监控程序
4生成背景数据块和修改实际值
在STEP7中,一个背景数据块总是被指定给一个功能块,一个功能块可以与多个背景数据块建立赋值关系。
如果几个不同的控制设备,具有不同的预设参数,但控制任务相似,就可以只编写一个功能块,而将不同的预设参数分别存储在不同的背景数据块中,这样可以减少编程工作量。
上述例题中,要对两台发动机的速度进行监控,汽油发动机(Petrol)的速度预设值为1500。
柴油发动机(Diesel)的速度预设值为1200,生成两个背景数据块DB1和DB2。
(1)生成数据块的方法与创建功能块的方法一样,在S7_Pro3项目窗口用鼠标右键单击Blocks按钮,在弹出的菜单中,选择InsertNewObject,再选DataBlock,单击“OK”按钮确认“Properties”对话框中的所有设置,则数据块DB1添加到S7-Pro3项目窗口。
(2)在步骤1的“Properties”对话框中,选择“instanceDB”单击“OK”按钮确认DB1与“FB1,Engine”的赋值关系。
(3)进入数据块DB1的LAD/STL/FBD编程窗口,打开并显示来自FB1变量声明表的数据。
(4)打开View菜单,选择DataView,在行为“Preset_Speed(预设值)”,列为“ActualValue(实际值)”的位置写入预设值1500。
(5)保存DB1,关闭编辑窗口。
按照上述方法生成数据块DB2,写入预设值1200。
如果控制系统中不只2台发动机,有多台发动机的速度需要监控,只需要生成其他的背景数据块即可。
5编辑组织块(主程序)OB1的控制程序
组织块OB1、功能块FB1和数据块DB1、DB2之间的关系如图6.2.16所示。
图6.2.16OB1、FB1与DB1、DB2之间的关系
(1)用梯形图编辑器编辑OB1
用梯形图编辑器编辑OB1的步骤如下:
①编写使用数据块DB1的功能块FB1的调用指令。
打开S7_Pro3项目窗口,找到Block文件夹,打开OB1;单击编程元件按钮,在FBBlocks文件夹中双击FB1Engine,将FB1插到梯形图中;在switch_on,switch_off,failure处各插入一个动合触点。
图6.2.17用梯形图编辑调用DB1的功能块FB1
然后用鼠标右键单击