全集成自动化之使用功能块的结构化编程_第1页
全集成自动化之使用功能块的结构化编程_第2页
全集成自动化之使用功能块的结构化编程_第3页
全集成自动化之使用功能块的结构化编程_第4页
全集成自动化之使用功能块的结构化编程_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

n更多企业学院: 中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料全集成自动化(T I A)解决方案培训教材第二部分第五章 使用功能块的结构化编程 这个手册由西门子自动化与驱动集团教育合作部(automation and drive technology, Siemens A&D Cooperates with Education)以培训为目的编写。西门子对其内容不做任何形式的保证。手册的传播或者复制,包括其内容的使用与发表,仅作为公共教育及职业培训之用。其他情况需要西门子自动化与驱动集团教育合作部的书面许可(Knust先生,E-Mail:michael.knusthvr.siemens.de)。违者必究。西门子保留所有权力,包括翻译,以及专利权、实用新型或外观设计专有权。感谢Michael Dziallas Engineering公司、职业学校的教师们,和其他有关朋友为本手册的编写做出的贡献。 1.前言 这部分的内容属于STEP 7编程晋阶中的环节。基本STEP 7 编程2-3天第一部分STEP 7 编程晋级2-3天第二部分工业总线系统2-3天第四部分序列编程2-3天第三部分过程可视化2-3天第六部分SIMATIC S7 IT-通讯1-2天第五部分 学习目标:通过本章的学习,读者将学会怎样用含内部变量的功能块来进行结构化的编程。产生一个功能块定义内部变量在功能块中给内部变量编程在组织块中调用和参数化一个功能块基本要求:为了这部分内容的顺利进行,我们希望读者具备以下的基础知识:Windows 95/98/2000/ME/NET的基本操作知识 使用STEP 7 基本的PLC编程(比如,在A3部分讲的用STEP 7来启动一个PLC程序) 基本的结构化编程(比如,附录四在S7-300上的基本PLC编程) 需要的硬件和软件:1PC , Windows 95/98/2000/ME/NET的操作系统,以及最小:133MHz,64MB 的RAM ,65MB的空余磁盘空间。最佳: 500MHz,128MB 的 RAM,65MB 的空余磁盘空间。2STEP 7 5.x 软件。3一个PC用MPI接口。4 一个装有CPU 315-2DP的 PLC SIMATIC S7300组态举例:电源: PS 307 2A CPU : CPU 315-2DP数字式输入:DI 16x DC 24V数字式输出: DO 16x DC 24V/0.5A2.应用功能块和功能结构化编程的注意事项可执行程序是写在STEP 7的块中的。组织块OB1总是可以使用的。程序执行是和CPU操作系统的接口相关的,每次从相应的块中自动调用,并被循环执行。对于复杂的控制任务,我们总是把程序分成小的,易管理的,实现一定功能并按一定顺序执行的程序块。这些块被块调用指令(Call xx/UC xx/CC xx)调用。如果程序块执行完毕,程序将跳回先前调用它的位置继续执行。为了能实现结构化编程,STEP 7提供了以下途径:功能块(Function block)功能块分配有一定的存储区。如果一个功能块被调用,将会给它分配一个数据块。在这种情况下,该数据块可以被功能块调用。可以给一个功能块分配不同的数据块。在功能中可以嵌套调用功能和功能块。 功能(Function) 一个功能没有分配存储区。在功能执行结束时,功能的背景数据将会丢失。在功能中可以嵌套调用功能和功能块。 程序的结构可以如下: 注意:必须首先产生这些程序块,才可以使用它们。还有一种可能是使用局部变量以标准形式来编辑功能块和功能。所有的功能都可以随时被调用,但是调用功能块时必须先调用相应的数据块。3.生成功能块和变量声明表:当用STEP 7生成程序块时,所有程序块的编辑都应当按照定义好的变量表来进行。因此,在编程时不能使用输入,输出和存储位,定时器,计数器等的绝对地址。单个变量和常数的定义就在这里进行。在接下来的程序中,将编写一个带有变量声明表的功能块。功能块中包括一个控制面板和一个循环次数计数器。Band motor由S0键来启动,由S1键停止。程序循环执行的次数由一个双字来保存。程序中将用到下述地址:输入: - In-Button S0=I 0.0- Out-Button S1=I0.1输出:- Band motor =Q 4.0存储位:- 循环次数计数器=MD20为了完成这个例子,我们需要执行下述步骤,而且还须做好硬件组态: 1双击打开 SIMATIC Manger。( SIMATIC Manager)建立一个新的项目。(File New)生成一个新的项目,并命名为Testproject_FB。( Testproject_FB) 4插入一个新的S7程序。 ( Insert Program S7-Program) 5. 点亮Blocks图标。 ( Blocks) 6插入一个功能块。 ( Insert S7 Block Function block) 7. 输入功能块的名称FB1点击OK接受设置。( FB1 OK) 8双击打开功能块FB1。( FB1) 9. 使用LAD, STL, FBD等编程工具就可以开始编辑你的功能块了。另外,变量必须在FB1(功能块1)变量表中详细定义。这些变量的类型可以是:in,out,stat,temp。输入参数(IN)在功能块,功能,系统功能块,系统功能中使用。有了输入参数的帮助,可以对正在执行的块赋值输出参数(ON)在功能块,功能,系统功能块,系统功能中使用。有了输出参数的帮助,计算结果对调用的程序块赋值。输入/输出型参数(IN-OUT)在功能块,功能,系统功能块,系统功能中使用。有了输入/输出型参数,就可以对被调用模块赋值,执行程序然后将结果赋给被调用程序中的同一变量。静态数据(STAT)仅在功能块和系统功能块中使用。静态数据是一个功能块的背景数据,存放在相应的背景数据块中。因此,这些数据将保存到下一个功能块的执行。临时变量(TEMP)应用在所有的块中。临时变量是一个功能块的背景数据,在块处理过程中,数据被保存到相应的背景数据堆栈中,程序块处理过程结束后, 将不能使用。注意: 现在来说明功能块或系统功能块和功能或系统功能的不同。在功能中,没法控制静态变量(stat),因为在功能执行结束后,没有内存来存储变量的值。在功能块中,这些静态变量是一些存储在相应的背景数据块中的指针,它将保存到下一个功能块开始运行。由于以上原因,当程序块循环执行,内存中若干位需要连续保存某个变量时,只有功能块才适用。定义变量时要给出一些相应的限制。根据需要输入的初始值和注释选择相应的数据类型。例子如下: 声明列表中详细规定了变量的类型说明文档(可选)初值必须和变量的类型相匹配(可选)为您的数据选择数据类型符号名称和绝对地址联系在一起,通过绝对地址,就可以访问变量绝对地址是由STEP 7自动生成的,地址的格式是:字 . 节位注意:在变量声明表中,可以显示每一个选定的变量类型。同时在FC中,类型是从in,out,temp,in _out中选择的,在FB中,类型是从in,out,temp,in _out和stat中选择的。如果需要添加一个特定类型的变量,需将光标放到最后一列,在按enter键,就会出现新的一行。数据块中的数据必须通过数据类型来确定以下是STEP 7中的标准数据类型。类型和描述所占位数格式选项 范围及数值表示法(最低值及最高值)示例BOOL (位)1布尔文本TRUE/FALSETRUEBYTE (字节)8十六进制数B#16#0 to B#16#FFB#16#10WORD (字)16二进制数2#0 to 2#1111_1111_1111_11112#0001_0000_0000_0000十六进制数W#16#0 to W#16#FFFFW#16#1000BCDC#0 to C#999C#998无符号的十进制数B#(0,0) to B#(255,255)B#(10,20)DWORD (双字)32二进制数2#0 to 2#1111_1111_1111_1111_1111_1111_1111_11112#1000_0001_0001_1000_1011_1011_0111_1111十六进制数DW#16#0000_0000 to DW#16#FFFF_FFFFDW#16#00A2_1234无符号的十进制数B#(0,0,0,0) to B#(255,255,255,255)B#(1,14,100,120)INT (整数)16有符号的十进制数 -32768 to 327671DINT (整数,32位)32有符号的十进制数L#- to L#L#1REAL (浮点数)32IEEE 浮点数 上限: 3.e+38下限: 1.e-381.e+13S5TIME (SIMATIC时间)16S7时间,每步10ms (缺省值)S5T#0H_0M_0S_10MS to S5T#2H_46M_30S_0MS andS5T#0H_0M_0S_0MSS5T#0H_1M_0S_0MSS5TIME#1H_1M_0S_0MSTIME (IEC时间)32IEC时间,每步1ms,带符号整数-T#24D_20H_31M_23S_648MS toT#24D_20H_31M_23S_647MST#0D_1H_1M_0S_0MSTIME#0D_1H_1M_0S_0MSDATE (IEC日期)16IEC日期,每步1天D#1990-1-1 to D#2168-12-31DATE#1994-3-15TIME_OF_DAY (时间)32时间每步1msTOD#0:0:0.0 to TOD#23:59:59.999TIME_OF_DAY#1:10:3.3CHAR (字符)8ASCII 字符 A, B etc.B 10. 现在程序可以利用变量输入了(变量前面有标志#)。这些变量可以在下面用STL编写的程序中看到。CPU处在STOP模式,保存功能块FB1并下载到CPU中。11. 在SIMATIC Manager中,双击OB1,编程调用FB1。12 接收设置,点击OK.13. 利用LAD、STL或者FBD编写已经生成的组织块OB1。功能块FB1必须按照以下指示和背景数据块一起调用。CALL FB1,DB10 因此,点击“YES”后背景数据块会自动生成。14. 所有in、out和in_out类型的变量将被显示,从而可以给它们分配实际参数。15. 在这个例子中,所有变量的分配

温馨提示

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

评论

0/150

提交评论