《【西门子自动化课程】 (25)1764.docx》由会员分享,可在线阅读,更多相关《【西门子自动化课程】 (25)1764.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、西门子自动化与驱动技术教育合作项目 全集成自动化(T I AA)解决方案培训教教材第二部分第五章章 使用功能块的结结构化编程 这个手册由西门门子自动化与与驱动集团教教育合作部(autommationn and drivee techhnologgy, Siiemenss A&D Coopeeratess withh Educcationn)以培训为为目的编写。西西门子对其内内容不做任何何形式的保证证。手册的传播或者者复制,包括括其内容的使使用与发表,仅仅作为公共教教育及职业培培训之用。其他情况需要西西门子自动化化与驱动集团团教育合作部部的书面许可可(Knusst先生,E-MMail:mmich
2、aeel.knuusthvvr.sieemens.de)。违违者必究。西西门子保留所所有权力,包包括翻译,以以及专利权、实实用新型或外外观设计专有有权。感谢Michaael Dzziallaas Enggineerring公司司、职业学校校的教师们,和和其他有关朋朋友为本手册册的编写做出出的贡献。 1.前言 这部分的内内容属于STTEP 7编编程晋阶中的的环节。基本STEP 7 编程2-3天第一部分STEP 7 编程晋级2-3天第二部分工业总线系统2-3天第四部分序列编程2-3天第三部分过程可视化2-3天第六部分SIMATIC S7 IT-通讯1-2天第五部分 学习目标:通过本章的学习习,读者
3、将学学会怎样用含含内部变量的的功能块来进进行结构化的的编程。产生一个功能能块定义内部变量量在功能块中给给内部变量编编程在组织块中调调用和参数化化一个功能块块基本要求:为了这部分内容容的顺利进行行,我们希望望读者具备以以下的基础知知识:Windowws 95/98/20000/MEE/NET的的基本操作知知识 使用SSTEP 77 基本的PPLC编程(比比如,在A33部分讲的用用STEP 7来启动一一个PLC程程序) 基本的的结构化编程程(比如,附附录四在S77-300上上的基本PLLC编程) 需要的硬件和软软件:1PC , Windoows 955/98/22000/MME/NETT的操作系统
4、统,以及最小:133MMHz,644MB 的RRAM ,665MB的空空余磁盘空间间。最佳: 5000MHz,1128MB 的 RAMM,65MBB 的空余磁磁盘空间。2STEP 7 5.xx 软件。3一个PC用用MPI接口口。4 一个装有CPUU 315-2DP的 PLC SSIMATIIC S7300组态举例:电源: PPS 3007 2AA CPU : CPU 315-22DP数字式输入入:DI 16x DC 24V数字式输出出: DO 16x DC 24V/00.5A2.应用功能能块和功能结结构化编程的的注意事项可执行程序是写写在STEPP 7的块中中的。组织块块OB1总是是可以使用的
5、的。程序执行行是和CPUU操作系统的的接口相关的的,每次从相相应的块中自自动调用,并并被循环执行行。对于复杂杂的控制任务务,我们总是是把程序分成成小的,易管管理的,实现现一定功能并并按一定顺序序执行的程序序块。这些块块被块调用指指令(Calll xxx/UC xxx/CC xx)调用用。如果程序序块执行完毕毕,程序将跳跳回先前调用用它的位置继继续执行。为了能实现结构构化编程,SSTEP 77提供了以下下途径:功能块(Fuunctioon bloock)功能块分配有一一定的存储区区。如果一个个功能块被调调用,将会给给它分配一个个数据块。在在这种情况下下,该数据块块可以被功能能块调用。可可以给一个
6、功功能块分配不不同的数据块块。在功能中中可以嵌套调调用功能和功功能块。 功能(Funnctionn) 一个功能没有分分配存储区。在在功能执行结结束时,功能能的背景数据据将会丢失。在在功能中可以以嵌套调用功功能和功能块块。 程序的结构可可以如下: 注意:必须首先先产生这些程程序块,才可可以使用它们们。还有一种种可能是使用用局部变量以以标准形式来来编辑功能块块和功能。所所有的功能都都可以随时被被调用,但是是调用功能块块时必须先调调用相应的数数据块。3.生成功能能块和变量声声明表:当用STEP 7生成程序序块时,所有有程序块的编编辑都应当按按照定义好的的变量表来进进行。因此,在在编程时不能能使用输入
7、,输输出和存储位位,定时器,计计数器等的绝绝对地址。单单个变量和常常数的定义就就在这里进行行。在接下来的程序序中,将编写写一个带有变变量声明表的的功能块。功功能块中包括括一个控制面面板和一个循循环次数计数数器。Band mootor由S0键来启动,由由S1键停止。程程序循环执行行的次数由一一个双字来保保存。程序中中将用到下述述地址:输入: - In-Buttton SS0=I 00.0- Out-Buttton S1=I00.1输出:- Band mootor =Q 4.00存储位:- 循环次数计数器器=MD200为了完成这个个例子,我们们需要执行下下述步骤,而而且还须做好好硬件组态: 1双击
8、打开 SIMATTIC MMangerr。( SIMAATIC MManageer)建立一个个新的项目。(File New)生成一个新新的项目,并并命名为Teestprooject_FB。( Testtprojeect_FBB) 4插入一个新新的S7程序序。 ( Inseert Proggram S7-PPrograam) 5. 点亮BBlockss图标。 ( Bloccks) 6插入一个功功能块。 ( Inseert S7 BBlock Funcction blockk) 7. 输入功功能块的名称称FB1点击OK接接受设置。( FB1 OK) 8双击打开开功能块FBB1。( FB1) 9.
9、使用LLAD, SSTL, FFBD等编程程工具就可以以开始编辑你你的功能块了了。另外,变变量必须在FFB1(功能能块1)变量量表中详细定定义。这些变变量的类型可可以是:in,out,stat,temp。输入参数(INN)在功能块块,功能,系系统功能块,系系统功能中使使用。有了输入参数的的帮助,可以以对正在执行行的块赋值输出参数(ONN)在功能块块,功能,系系统功能块,系系统功能中使使用。有了输出参数的的帮助,计算算结果对调用用的程序块赋赋值。输入/输出型参参数(IN-OUT)在在功能块,功功能,系统功功能块,系统统功能中使用用。有了输入/输出出型参数,就就可以对被调调用模块赋值值,执行程序序
10、然后将结果果赋给被调用用程序中的同同一变量。静态数据(STTAT)仅在在功能块和系系统功能块中中使用。静态数据是一个个功能块的背背景数据,存存放在相应的的背景数据块块中。因此,这这些数据将保保存到下一个个功能块的执执行。临时变量(TEEMP)应用用在所有的块块中。临时变量是一个个功能块的背背景数据,在在块处理过程程中,数据被被保存到相应应的背景数据据堆栈中,程程序块处理过过程结束后, 将不能使用用。注意: 现在在来说明功能能块或系统功功能块和功能能或系统功能能的不同。在在功能中,没没法控制静态态变量(sttat),因因为在功能执执行结束后,没没有内存来存存储变量的值值。在功能块块中,这些静静态
11、变量是一一些存储在相相应的背景数数据块中的指指针,它将保保存到下一个个功能块开始始运行。由于于以上原因,当当程序块循环环执行,内存存中若干位需需要连续保存存某个变量时时,只有功能能块才适用。定义变量时要给给出一些相应应的限制。根据需要输入入的初始值和注注释选择相应应的数据类型型。例子如下下: 声明列表中详细规定了变量的类型说明文档(可选)初值必须和变量的类型相匹配(可选)为您的数据选择数据类型符号名称和绝对地址联系在一起,通过绝对地址,就可以访问变量绝对地址是由STEP 7自动生成的,地址的格式是:字 . 节位注意:在变量声声明表中,可可以显示每一一个选定的变变量类型。同同时在FC中中,类型是
12、从从in,out,temp,in _oout中选择的,在在FB中,类类型是从in,out,temp,in _oout和stat中选择的。如如果需要添加加一个特定类类型的变量,需需将光标放到到最后一列,在在按enterr键,就会出出现新的一行行。数据块中的数据据必须通过数数据类型来确确定以下是STEPP 7中的标标准数据类型型。类型和描述所占位数格式选项 范围及数值表示示法(最低值值及最高值)示例BOOL (位位)1布尔文本TRUE/FAALSETRUEBYTE (字字节)8十六进制数B#16#0 to B#16#FFFB#16#100WORD (字字)16二进制数2#0 to 2#11111_
13、11111_11111_111112#0001_0000_0000_0000十六进制数W#16#0 to W#16#FFFFFW#16#10000BCDC#0 to C#9999C#998无符号的十进制制数B#(0,0) to BB#(2555,255)B#(10,220)DWORD (双双字)32二进制数2#0 to 2#11111_11111_11111_11111_11111_11111_11111_111112#1000_0001_0001_1000_1011_1011_0111_1111十六进制数DW#16#00000_00000 tto DW#16#FFFFF_FFFFFDW#16
14、#000A2_11234无符号的十进制制数B#(0,0,0,0) to B#(255,255,2255,2555)B#(1,144,100,120)INT (整数数)16有符号的十进制制数 -32768 to 3227671DINT (整整数,32位位)32有符号的十进制制数L#-214774836448 to L#214474836647L#1REAL (浮浮点数)32IEEE 浮点点数 上限: 3.4028223e+388下限: 1.1755495e-381.2345667e+133S5TIME (SIMATTIC时间)16S7时间,每步步10ms (缺省值)S5T#0H_0M_0S_10
15、MS to S55T#2H_46M_300S_0MSS andSS5T#0HH_0M_0S_0MSS5T#0H_1M_0S_0MSS55TIME#1H_1MM_0S_00MSTIME (IIEC时间)32IEC时间,每每步1ms,带带符号整数-T#24D_20H_331M_233S_6488MS tooT#24DD_20H_31M_233S_6477MST#0D_1HH_1M_0S_0MSTIIME#0DD_1H_11M_0S_0MSDATE (IIEC日期)16IEC日期,每每步1天D#1990-1-1 tto D#22168-112-31DATE#19994-3-15TIME_OFF_DA
16、Y (时间)32时间每步1mssTOD#0:00:0.0 to TOOD#23:59:599.999TIME_OFF_DAY#1:10:3.3CHAR (字字符)8ASCII 字字符 A, B ettc.B 10. 现在程序可以利利用变量输入入了(变量前前面有标志#)。这些变变量可以在下下面用STLL编写的程序序中看到。CCPU处在SSTOP模式式,保存功能能块FB1并并下载到CPPU中。11. 在SIMATIIC Mannager中中,双击OBB1,编程调调用FB1。12 接收设设置,点击OOK.13. 利用LAD、SSTL或者FBD编写已已经生成的组组织块OB11。功能块FBB1必须按照照
17、以下指示和背背景数据块一一起调用。CALL FFB1,DBB10 因此,点击“YYES”后背景数据据块会自动生成。14. 所有in、out和in_ouut类型的变量量将被显示,从从而可以给它它们分配实际际参数。15. 在这这个例子中,所所有变量的分分配如下,然然后将CPUU置于STOPP模式,保存存OB1并下载载。注意:在这个例例子中,FBB1可以被不同的数据据块和输入输输出地址反复复调用。因此此它是这一类类特殊任务的的标准块。16. 先将将CPU置于停停止模式,然后在SIAMAATIC MManageer中选择背景景数据块DB10并下载到CCPU中。17将开关置置于RUN状态,程序序运行。当II0.0闭合合,电动机开开动。开关II0.1闭合合,电动机停停止转动。在在内存位MDD20记录了了OB1调用FB1的频率率,从而可以以知道OB11执行的周期期。因为OB1程序很很短所以这个个频率很高。全集成自动化培训手册第 26 页 共 26 页第二部分第五章 最终修订: 08/2004使用功能块的结构化编程