您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 【西门子自动化课程】 (25)
西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第1页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程全集成自动化(TIA)解决方案培训教材第二部分第五章使用功能块的结构化编程西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第2页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程这个手册由西门子自动化与驱动集团教育合作部(automationanddrivetechnology,SiemensA&DCooperateswithEducation)以培训为目的编写。西门子对其内容不做任何形式的保证。手册的传播或者复制,包括其内容的使用与发表,仅作为公共教育及职业培训之用。其他情况需要西门子自动化与驱动集团教育合作部的书面许可(Knust先生,E-Mail:michael.knust@hvr.siemens.de)。违者必究。西门子保留所有权力,包括翻译,以及专利权、实用新型或外观设计专有权。感谢MichaelDziallasEngineering公司、职业学校的教师们,和其他有关朋友为本手册的编写做出的贡献。西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第3页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程1.前言这部分的内容属于STEP7编程晋阶中的环节。学习目标:通过本章的学习,读者将学会怎样用含内部变量的功能块来进行结构化的编程。产生一个功能块定义内部变量在功能块中给内部变量编程在组织块中调用和参数化一个功能块基本要求:为了这部分内容的顺利进行,我们希望读者具备以下的基础知识:Windows95/98/2000/ME/NET的基本操作知识使用STEP7基本的PLC编程(比如,在A3部分讲的用STEP7来启动一个PLC程序)基本STEP7编程2-3天第一部分STEP7编程晋级2-3天第二部分工业总线系统2-3天第四部分序列编程2-3天第三部分过程可视化2-3天第六部分SIMATICS7IT-通讯1-2天第五部分西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第4页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程基本的结构化编程(比如,附录四在S7-300上的基本PLC编程)需要的硬件和软件:1PC,Windows95/98/2000/ME/NET的操作系统,以及最小:133MHz,64MB的RAM,65MB的空余磁盘空间。最佳:500MHz,128MB的RAM,65MB的空余磁盘空间。2STEP75.x软件。3一个PC用MPI接口。4一个装有CPU315-2DP的PLCSIMATICS7—300组态举例:-电源:PS3072A-CPU:CPU315-2DP-数字式输入:DI16xDC24V-数字式输出:DO16xDC24V/0.5A2.应用功能块和功能结构化编程的注意事项西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第5页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程可执行程序是写在STEP7的块中的。组织块OB1总是可以使用的。程序执行是和CPU操作系统的接口相关的,每次从相应的块中自动调用,并被循环执行。对于复杂的控制任务,我们总是把程序分成小的,易管理的,实现一定功能并按一定顺序执行的程序块。这些块被块调用指令(Callxx/UCxx/CCxx)调用。如果程序块执行完毕,程序将跳回先前调用它的位置继续执行。为了能实现结构化编程,STEP7提供了以下途径:功能块(Functionblock)功能块分配有一定的存储区。如果一个功能块被调用,将会给它分配一个数据块。在这种情况下,该数据块可以被功能块调用。可以给一个功能块分配不同的数据块。在功能中可以嵌套调用功能和功能块。功能(Function)一个功能没有分配存储区。在功能执行结束时,功能的背景数据将会丢失。在功能中可以嵌套调用功能和功能块。程序的结构可以如下:西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第6页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程注意:必须首先产生这些程序块,才可以使用它们。还有一种可能是使用局部变量以标准形式来编辑功能块和功能。所有的功能都可以随时被调用,但是调用功能块时必须先调用相应的数据块。西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第7页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程3.生成功能块和变量声明表:当用STEP7生成程序块时,所有程序块的编辑都应当按照定义好的变量表来进行。因此,在编程时不能使用输入,输出和存储位,定时器,计数器等的绝对地址。单个变量和常数的定义就在这里进行。在接下来的程序中,将编写一个带有变量声明表的功能块。功能块中包括一个控制面板和一个循环次数计数器。Bandmotor由‘S0’键来启动,由‘S1’键停止。程序循环执行的次数由一个双字来保存。程序中将用到下述地址:输入:-In-ButtonS0=I0.0-Out-ButtonS1=I0.1输出:-Bandmotor=Q4.0存储位:-循环次数计数器=MD20为了完成这个例子,我们需要执行下述步骤,而且还须做好硬件组态:1.双击打开SIMATICManger。(SIMATICManager)西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第8页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程2.建立一个新的项目。(FileNew)3.生成一个新的项目,并命名为Testproject_FB。(Testproject_FB)西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第9页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程4.插入一个新的S7程序。(InsertProgramS7-Program)5.点亮Blocks图标。(Blocks)西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第10页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程6.插入一个功能块。(InsertS7BlockFunctionblock)7.输入功能块的名称‘FB1’点击OK接受设置。(FB1OK)西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第11页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程8.双击打开功能块FB1。(FB1)9.使用LAD,STL,FBD等编程工具就可以开始编辑你的功能块了。另外,变量必须在FB1(功能块1)变量表中详细定义。这些变量的类型可以是:‘in’,‘out’,‘stat’,‘temp’。输入参数(IN)在功能块,功能,系统功能块,系统功能中使用。有了输入参数的帮助,可以对正在执行的块赋值输出参数(ON)在功能块,功能,系统功能块,系统功能中使用。有了输出参数的帮助,计算结果对调用的程序块赋值。输入/输出型参数(IN-OUT)在功能块,功能,系统功能块,系统功能中使用。有了输入/输出型参数,就可以对被调用模块赋值,执行程序然后将结果赋给被调用程序中的同一变量。静态数据(STAT)仅在功能块和系统功能块中使用。静态数据是一个功能块的背景数据,存放在相应的背景数据块中。因此,这些数据将保存到下一个功能块的执行。临时变量(TEMP)应用在所有的块中。临时变量是一个功能块的背景数据,在块处理过程中,数据被保存到相应的背景数据堆栈中,程序块处理过程结束后,将不能使用。西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第12页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程注意:现在来说明功能块或系统功能块和功能或系统功能的不同。在功能中,没法控制静态变量(stat),因为在功能执行结束后,没有内存来存储变量的值。在功能块中,这些静态变量是一些存储在相应的背景数据块中的指针,它将保存到下一个功能块开始运行。由于以上原因,当程序块循环执行,内存中若干位需要连续保存某个变量时,只有功能块才适用。定义变量时要给出一些相应的限制。根据需要输入的初始值和注释选择相应的数据类型。例子如下:注意:在变量声明表中,可以显示每一个选定的变量类型。同时在FC中,类型是从‘in’,‘out’,‘temp’,‘in_out’中选择的,在FB中,类型是从‘in’,‘out’,‘temp’,‘in_out’和‘stat’中选择的。如果需要添加一个特定类型的变量,需将光标放到最后一列,在按‘enter’键,就会出现新的一行。说明文档(可选)初值必须和变量的类型相匹配(可选)为您的数据选择数据类型符号名称和绝对地址联系在一起,通过绝对地址,就可以访问变量绝对地址是由STEP7自动生成的,地址的格式是:字.节位声明列表中详细规定了变量的类型西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第13页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程数据块中的数据必须通过数据类型来确定以下是STEP7中的标准数据类型。类型和描述所占位数格式选项范围及数值表示法(最低值及最高值)示例BOOL(位)1布尔文本TRUE/FALSETRUEBYTE(字节)8十六进制数B#16#0toB#16#FFB#16#10WORD(字)16二进制数2#0to2#1111_1111_1111_11112#0001_0000_0000_0000十六进制数W#16#0toW#16#FFFFW#16#1000BCDC#0toC#999C#998无符号的十进制数B#(0,0)toB#(255,255)B#(10,20)DWORD(双字)32二进制数2#0to2#1111_1111_1111_1111_1111_1111_1111_11112#1000_0001_0001_1000_1011_1011_0111_1111十六进制数DW#16#0000_0000toDW#16#FFFF_FFFFDW#16#00A2_1234无符号的十进制数B#(0,0,0,0)toB#(255,255,255,255)B#(1,14,100,120)INT(整数)16有符号的十进制数-32768to327671DINT(整数,32位)32有符号的十进制数L#-2147483648toL#2147483647L#1REAL(浮点数)32IEEE浮点数上限:±3.402823e+38下限:±1.175495e-381.234567e+13S5TIME(SIMATIC时间)16S7时间,每步10ms(缺省值)S5T#0H_0M_0S_10MStoS5T#2H_46M_30S_0MSandS5T#0H_0M_0S_0MSS5T#0H_1M_0S_0MSS5TIME#1H_1M_0S_0MSTIME(IEC时间)32IEC时间,每步1ms,带符号整数-T#24D_20H_31M_23S_648MStoT#24D_20H_31M_23S_647MST#0D_1H_1M_0S_0MSTIME#0D_1H_1M_0S_0MSDATE(IEC日期)16IEC日期,每步1天D#1990-1-1toD#2168-12-31DATE#1994-3-15TIME_OF_DAY(时间)32时间每步1msTOD#0:0:0.0toTOD#23:59:59.999TIME_OF_DAY#1:10:3.3CHAR(字符)8ASCII字符´A´,´B´etc.´B´西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第14页共18页第二部分第五章最终修订:08/2004使用功能块的结构化编程10.现在程序可以利用变量输入了(变量前面有标志‘#’)。这些变量可以在下面用STL编写的程序中看到。CPU处在STOP模式,保存功能块FB1并下载到CPU中。西门子自动化与驱动技术—教育合作项目全集成自动化培训手册第15页共18页第二部分第五章最终修订:08/2004使用
本文标题:【西门子自动化课程】 (25)
链接地址:https://www.777doc.com/doc-13977 .html