西门子300创建fb_第1页
西门子300创建fb_第2页
西门子300创建fb_第3页
西门子300创建fb_第4页
西门子300创建fb_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、西门子S7-300中FB功能块的使用方法:1创建功能块FB1准备完成如下功能:将整型”变量转换成 实型”变量 STUTK i E 3Mgff 1jjJ flJtf52. 打开功能块FBI口百二卄*IAD咗H即的 IfQ! - 5SJISIAIK Wdl!)CFRJ 1T»|口玄阿匚»U曲/*Tl 4Mcl)段服野iJf(2 £; *ft妲,n u; > q 呂nHz 'P坦朋丁te iUtiW* _y rtA'U* n计卜即-* jj 科 f*-m墾R*丹*券再百祕甦 ii Hm"i *霸电侮阳-抚觸3?11(好* jj旷寰港回辆甘

2、* 列 T>r* u F*+ 1.1 PC B1*+ Qi AC 单 察晝之世*耳挥Elt.OVTTEVu>m_ouisinw出口参数=OUT1->实型 (REAL) 整型 (INT) 长整型(DINT)3. 在功能块FB1中添加入口参数、出口参数、静态变量入口参数=IN0 -> 整型 (INT)静态变量=STAT2 -> 局部变量=TEMP3 ->'Fn 虞si ,;Arr切庄E* 4!诬-d” ija苗虽輕i* qW*且r 55 r?* 轉召槿竝4 £:时"世詡,g肆0啊-曲 RSQ血切腸*胡芋隱石 卜4刊* q Ft E卜.

3、硼験* 口*块 «xn «x测-1>期d OOTI tr tn out -» STAT0 STAT2-a TEWq :UPIFT ; TKEEI岀丫'Twitr > * hr*f? /biuf<l #s4-' t pril ml 斤pr*wi 矗空 Pf科 I*-1託為& Fi那討血叫:悖律曲入口钳二痒十珂 r kr*f-宙b* *1曙打fi x! F I ; i "(; *3" n . l T iF *f iflfr £? 1b. ih yFIT?口tr JKrW4.创建背景数据块DB2De

4、£ r比 *% : 7 11 W 孟*走那*巷曰H円-3 muTIi XjO'I 1 -CTVJHiTWFTu口祎1phn:qKIpKllK口 miu犹空声 a慢5.打开DB2背景数据块,可以看到系统默认建立了三个数据INO -> 入口参数(整型)0UT1 -> 出口参数(实型) STAT2-> 静态变量(整型)0 N带X电中 *% : : H? 11i Xi -加 nn*n iifid i -.脚沖口 niljpEloiciph:ii»O»llE ST fSH-.L6.打开FBI功能块,编写如下代码,实现将“整型”变量转换成“实型”变量

5、 同时再编写一段静态变量自加1代码KG去 也IPLHC 0 FLOC®8一CJCJ£Jii3£xuh.ILI6JG36JgitilEMU ajcc ijm K&.W DIJCD 心 INMJ3UJ MJLJ DWJ ADDEp. 3UBJM mm DIVJJI Ml:C-直ADC-J-tfr WT H OUT I 0 I OUT- STAT 0 5TiT2» a w9 TEIP S咖FlniQ iCTAT2-ill佃-JrfAT!7.打开0B1主程序,添加FBI功能块传递给变量“ Time 1 ”。如图01所示程序代码中数值5表示“T5(ei -

6、 44;hutic idui 1'. crnj iin口構口:«社呻D*E ”耐FBIO W|&Ll-> I'D d'Ji" 口竹; :加 Jif?'; "l- td: - - ; riO -Mi'Ll虹上叫l再询U既0tt:0盘汝;丄音口七帯览®如何确定程序参数类型的块编号并传送给FC ?介绍使用以下程序代码可确定参数类型(BLOCK_FC, BLOCK_FB, TIMER or COUNTER )的编号。例1 : FB块FB1变量声明中定义了“ Timer ”类型的变量“ Time 1 "

7、;,在FB2中调用FB1,将定时器“T5 ”Contents OF: 'EnvironmentVnterFaceVN':TInterfaceNameDet自 TypeAddress白匚bSD口Time 1Timer0 0旦 Time LziO- OUT寸STANDARDFBI : Title:RLC 5TAConment;etttork 】:Title:The FBI is called in the FB2 and the variable frTime_lr, is pananeterized with T5+1 j DB1LAKI L TTine 1:=T5P#Tiiae

8、_lW AR1,F#O.OW 0例2 FCFC1变量声明中定义了“ Timer ”类型的变量“ Time_1 ”,在FC2中调用FC1 ,将定时器“T8 ”传递给变量“ Time_1 ”。如图02所示程序代码中数值8表示T8”。INNameData Type| CommentTime-1Timer匚ontents Oh 'Environme nt Interl'aceIN,口RLOSTASTANDARDFC1 ; Title:一 InterFace日tsJ Timea- outComent:Hetnork 1:: Title:The FC1 is called in the F

9、C2 and the variable rfTime_lrr is paEameterized with T6.CALL FC 1Tine 1:=T8LPsS#Time_l01eoooo16018TMW001B|在使用多重实例时,需要在图01所示程序中增加以下代码:TAR2/多重实例偏移地址LAR1 P#Time_1+AR1/多重实例偏移地址与当前地址相加L WAR1,P#0.0T MW00BLOCK_DB ”类型参数在调用FC时不可以直接传送给FC。如果在调用功能时试图使用此参数类型,将产生如下的错误消息:“非法的参数传输 参数名”BLOCK_DB ”类型参数仅在FB被调用(从一个 FB或F

10、C中)时可被传送。BLOCK_DB ”类型参数不可以在 FC被调用(从一个 FB或FC中)时可被传送。相关详细 信息可参考 STEP7在线帮助中“合法的传输参数类型”。然而,如果希望将 BLOCK_DB 参数类型传送给 FC, DB块的编号可以通过基本数据类型(例如WORD )传送。-! x| -Ifll x|在下面的例子中,FB1OO拥有一个“BLOCK_DB ”的输入参数类型。为了在调用 FC1O1时将 参数传送给它,BLOCK_DB ”中的DB块编号被传送给 WORD 临时变量(DB_No)。当FC被 调用,数据块序号以一个 WORD参数类型替代 BLOCK_DB 参数类型。IAD/5T

11、L/FBD -FBIDO - S7_zebra5IMATIt 40叭匚PU 417-4口 File Edit Insert PLC Debug View Options Window HelpD13詁旧| S幻电|皂|刚釧冋Pre55 Fl to get Help.背I沁卜!I DlEll氏|仆|世|心|団制如果FB的接口参数能被定义成WORD 参数类型来传送 DB块编号,当 FC 被调用时,-! x| -Ifllxl此参数可以被直接传送给FC。IAD/5TL/FBD -FBI00 - monitor_3Z_bit_fieldSIMATI匚 400口 File Edit Insert PLC

12、Debug View Options Window Help |o»|g-|H| S对电|良|门|“|的釧目 II鈿|広卜!氐|回卷I仆|世心|団囲Contents Of: 'EnvironMentInterfxeIN'F InterfaceB O- INth out& IN.OUT 署 STAT脣 TEMP| Name口DtTyP® | AddressWord0.02d曰 offlineSaves the current block/source.说明:如果在结构化编程时经常使用功能块,那么在每次调用FB时都要为其指定一个单独的背景数据块。对于非常

13、小的FB,它的背景数据块经常由很少的几个字组成。当频繁调用和指定背景数据块给这些小的 FB时,程序会变得非常不清晰,或者DB块的数量会达到 CPU所支持的最大数量。由于一个背景数据块可以长于FB实际需要的长度,因此多个背景数据块可以合并成一个多重背景。但是,这种合并必须在一个FB中通过编程完成。1. 表1 :编程多重背景和更新修改过的背景2. 表2 :对已经存在的 FB多重背景能力的后续声明表1 :编程多重背景和更新修改过的背景步骤过程:1在SIMATIC Manager中,打开你希望生成多重背景的FB。在静态变量定义部分,输入多重背景的名字,数据类型为FB或SFB。2在程序中调用多重背景,可

14、以在多重背景中的目录中选择托拽它到NETWORK 中,也可昨Bl时1>1T以用CALL指令调用它。在STEP 7 V5.4 SP2 中请注意:如果在LAD/FBD编辑器的目录视图中多重背景未被列岀,推荐在静态变量声明中先插入 一个功能块,然后再删除它。这样多重背景就再次可以被选择。3现在设置程序块的输入和输岀并保存。就可以在程序(例如0B1)中使用多重背景来调用FB。创建一个背景数据块以供监控。当生成多重背景时,如其在FB中作为一个多重背景被调用,注意要首先生成它,然后再指定一个多重背景调用。如果不遵从这个顺序,程序中将会出现不一致的情况,这种不 一致的情况也有可能在修改多重背景后岀现。

15、一旦修改过了多重背景,并打开调用它的功能块。当功能块被打开时,会岀现一个消息显 示在FB接口声明中有一个UDT或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。确认此信息,修改过的背景调用在LAD/STL/FBD 编辑器中将会以Update Block Call.亮红色显示。为了更新功能块调用,右击功能块,然后在弹岀菜单中选择“*3Cai*cwc!lW-T *在后续的对话框中,点击0K来执行接口更新在STEP 7 V5.3 中的注意事项:当尝试通过“File > Check and Update Accesses”来更新程序块调用时, STEP7 V5.3 不能发现变量间的

16、唯一分配,调用还是保持红颜色,也无法通过“调用错误。更新调用的唯一办法是删除调用,在声明中更新接口,调用功能块。如果已经删除了FB接口中的变量,应该通过“Edit > Call > Update ”改正然后再以多重背景方式Edit > Call > Update ” 来改正所有的多重背景调用,而不需使用前面的“Check and Update Accesses”功能。一旦已经更新了这些多重背景,就又可以与平时一样使用“Check and Update Accesses ”功能了。推荐在更新功能块调用后进行一致性检查。在 SIMATIC Manager中,右击 S7 pr

17、ogram文件夹,选择“ Check block consistency.”功能,系统会显示S7程序的结构。通过工具栏中的第二个按钮或者“ Program > Compile All ”功能编译程序。在编译后,STEP7程序一致性将统一。图56)。也可以改变此当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图设置:图6一旦已经生成了功能块,多重背景功能就不可以被重新设置,是否具有多重背景的属性只可以显示,除非按照一个冗长的过程来修改它。表2描述了如何声明一个已经生成的FB是否具有多重背景的能力:步过程:骤1为了声明一个已经生成的FB是否具有多重背景的能力,打开LAD/STD

18、/FBD 编辑器,通过File > Gen erate source. ”在对话框中生成一个 FB的源文件。在后续的对话框中选 择项目并存储源文件到S7程序的源文件目录。2 在Gen erate source <n ame_block>”对话框中(图7),在左边列表中选择你希望使能或取消多重背景能力的功能块,然后点击箭头将其添加到右边的列表中。点击“0K”关闭对话框。I Ik3在使能或取消了多重背景能力之后4我们推荐执行一致性检查(见表图7图81,步骤6)性。现在不得不重新编译所有的在FB,为了这个工作多重背景的能 如果希望* 如果希望保存并编译源文件,生成的源文件。关闭 L

19、AD/FBD/STL编辑器,打开在 SIMATIC Manager现在功能块即被使能或取消了多重背景的能力。FB具备多重背景的能力,删除“ C0DE_VERSI0N1 ”属性。力依赖于在"Version : 0.1 "后面输入的代码。FB不具备多重背景的能力,按照图 8中添加“CODE_VERSION1 ”属rin« TIM-lfl». 4.*IfTliniia tins -aiIfQFlhMrvJ«£<I|iV1i4e«ALliin HBeii'Pi*描述在数据块的变量声明表中可以定义变量的名称、数据类型、注

20、释和变量初始值。初始值为纯粹的组态值,当由UDT生成数据块或在全局数据块中生成新变量时,组态的初始值被用作为实际值。可以通过菜单命令View > Data view ”来查看实际值。初始值对于数据块或新声明的变量数据块来说,组态的有效次数仅为一次。如果变量已经存在,实际值将不会随着初始值的变化而发生改变。对于CPU来说,操作的数值为实际值,初始值虽也可以下载到 CPU中并可在线监控,但不会被CPU采用。有以下两种方法可以将初始值传送给CPU作为实际值:1. 切换到数据浏览状态 View > Data view ",在Actual value ”栏输入新的初始值。2. 进入

21、声明浏览状态 View > Declaration view ",在Actual value ”栏输入新的初始值;然后,切换到"Data view ”状态,执行菜单命令Edit > Initialize Data Block ”将所有Intial value ”栏的数值传送至"Actual value ”栏。然后将数据块下载至 CPU中由于初始值仅使用一次,因而没有必要将实际值装载至初始值,如装载Actual value "栏到initial value ”栏。STEP 7中没有与之相关的菜单命令。但是一些特殊应用需要将实际值保存为初始值。这

22、一过程可通过STL源文件或 Excel来实现,以下将分别介绍其操作步骤。在STL源文件中,将数据块的实际值直接保存为初始值当生成STL源文件后,实际值可以逐行拷贝至STL源程序中的声明语句中。No.步骤1在SIMATIC Manager 选择菜单指令 "View > Online",在线打开要执行操作的数据块。选择采单命令File > Save或点击软盘图标保存该数据块。2通过菜单命令File > Gen erate Source.”生成此数据块的源文件。3打开生成的源文件,该文件位于SIMATIC Manager的Source 文件夹。4在STL源文件中

23、,将位于BEGIN ”和END_DATA_BLOCK ”语句之间的实际值逐行复制到相应的声明行(初始值)及相应的数据类型之中。LAD/STL/FBD - DB2_Quelle_- Test_Pr<*jelctSIMATI图01以下是声明行定如图01所示,通配符“=”也必须和实际值一起复制到初始值的声明行。义的一个示例: Data_1 : BYTE := B#16#AA;保存编译STL源程序File > SaveFile > Compile此时,实际值被用作初始值使用Excel将数据块的实际值保存为初始值(便利方法)数据块的实际值也能在Excel中被存为初始值。当数据量较大时,

24、推荐使用 Excel进行操作,这是因为此时数据是逐块而不是逐行被复制到声明区域的。下述表格介绍了如何导入/导岀STL源文件及将其保存在Excel中。No步骤1在SIMATIC Manager 选择菜单指令 "View > Online",在线打开要执行操作的数据块。选择采单命令File > Save或点击软盘图标保存该数据块。2通过菜单命令File > Gen erate Source.”生成此数据块的源文件。3Mark the gen erated source in the source in the SIMATIC Man ager and righ

25、t-click it.Then select the "Export Source." comma nd in the pop-up menu.4l在 Export source对话框中确疋源文件导岀文件加后,选择STL source (*awl)作为文件类型且文件名中必须包含扩展名“.AWL ”例如 Source DB2 .AWL”然后点击“Save ”按钮。Eh port source;. .: Fixed wrdthStart import at rowt1File origin:M5-DO5 (PC-8)VText Import Wizard - Step 1 of

26、 3The Text Wizard has determined that your data is Delimited.If this is correct choose or choose the data type that best describes your data. Origin別 data typeChoose the file type that best des匚扫总壬 your data:-匚haracters such as commas or tabs separate each Field-Fields are aligned In columns with sp

27、aces between each Field.2-生s_CancelFinishPreview of file H:QueHe_DB2.AWL.>ATA_EL 口啊 DE 2riTLE =7EHSI0H : 0.1图03然后单击 Next ”按钮。在下一个文本倒入向导的对话框中,选择"tab"或"space"作为分隔符Text Import Wizard - Step 2 of 3f?lfxTh谆 screen lets you set the detmiters your dat contains. You can see how your t

28、ext is effected in the preview below,一0 Treat 匚onse亡utlve delimiters as one Senikolon Comma Other:Text qualifier;Delimiters)ATA_BL0CK2TITLE=VERSIOND. 1ICancel<BackFinishData Qreview图04然后单击Next ”按钮。8 在第三步文本倒入向导中,选择"standard "作为;栏数据格式Text Import Wizard - Step 3 of 3This screen lets you se

29、lect each column and set the Data Format.Column cht已 fcirEGt'General' converts numeric values to niimbsrs, date values to dates, and all remaining values to text;.< GeneralO TextO Date:DMYDo not import column (skip)Advanced,Data previewCncElCncEl< Back< BackDene ralDene rD&n&

30、;ralDATA_BLOCK-TITLE=7ERSI0WD.l图05然后单击“Finish ”按钮。转化的STL源在Excel中打开。9选中所有属于 STL source的单兀格后点击右键。在弹出菜单中选择“设置单元格格式.”。10File Edit View血死 rtFormat Tai J 二*3 A 2Ai”荒 DATMABCr rDATA_BL( DB22 'TITI 匚 Microsoft Excel - DB2.AWLCutCopy3_±E7亘910111213141516PastePaste Specials.InsertDeleteClear Contents

31、Format匚已11$Bow Height.HideUnhideLJdLerF o图06“对齐”页签中将水平对齐设置为“靠右”或“靠右(缩进)”点击确定。图0711选择位于“BEGIN ”和END_DATA_BLOCK ”之间的实际值以及通配符“:=”,将数据复制到STRUCT ”和END_STRUCT ”之间声明区域的相应数据类型之后,如图08所示。C Microsoft Excel - Quelle_DB2,AWLQJ File Edt View Insert Format Tools Data Window Help12复制完成后检查语法格式是否正确,例如:A DATA BLOCKABC

32、二F1DATA BLflDB22TITLE二3VERSION-oj:456STRUCT7Dateri_1BYTEhBDaten_2BYTEli9Daten_3BYTEli10DaterMBYTEh11Daten 5BTEli12ENDSTRl!A13BEGI 忖14Daten_116#AA.15Daten_2日#16#旳;16Daten_3B#16#CC;17Daten 4B#16#DD;18Dateri_6B#16#0;19END DATA卫LOCK/20Adual VaFues /图08STRUCTData_1 : BYTE := B#16#AA;END_STRUCT;13EH Mic r

33、osoft Excel Quelle_DB2.AWLDie Edit View Insert Formal: lools Data JJiindow tlelpi£ id4 A丨竽越晶77” 7包迟头欠G26ABCDE二1DATA BL(DB22TITLE二3VERSIONOJ456STRUCT7Daten_1BYTE-二8Daten_2BYTE:二9Daten 3BYTE二B#16#CC;10Daten_4BYTE:二B#16#DDh11Daten 5BYTE:=B#16#0;12end3tf?113BEGIN14Daten_1:=15Daten 21BOaten 3B#1B#CC

34、;17Daten_4B#16#DD;18Daten_5B#16#0p19END DATA BLOCK20n 1图09在Excel中保存文件,“文件 > 另存为”并选择* 带格式文本文件(空格分隔)(*prn)作为文件类型。、:I . v*.汪意执行上述操作后,文件保存为“ Source_DB2.AWL "。但是,如果文件以另一文件名保存,如 Source DB20.AWL”,系统会将其保存为“Source_DB20.AWL.PRN ”文件。此文件需通过删除扩展文件名PRN 将 Source DB20.AWL.PRN ” 转换为 Source DB20.AWL ”。AWL结PRN

35、扩展名是系统自动添加的,这种情况发生在保存文件时已输入过一次以尾的文件名14 在 SIMATIC Manager中选择菜单命令fmport > External Source. ”将Excel 中处理完成的STL源文件导入至 STEP 7项目下的source文件夹。15选择导入的源文件后点击右键,在弹出菜单中选择 Compile. ”命令进行编译。编译完成后,实际值便保存为初始值。ILAD/STL/FDD - DBZ 一 Test_ProjektsrMATIC 300(1)CPU 315-2 DP口 File Edit Insert PLC Debug View Options Wind

36、ow Help1涎|z|Lj陶| &加副豐AlIH门雨&nH叵 BHTUUltesstTaneTypeInitial valueActual value0.0D aten lBYTEB#16#AAB#16m1.0Daten 2BYTE2,0BYTEB«16#CCB#16#CC3.0Daten 4BYTEBflfifDD4.0Dacen 5BYTEB#16#0B#16#0|图10如果数据块中有 UDT类型的数据,使用时有限制:不能将实际值附着在变量后作为初始值。虽然UDT可以被导岀,但其初始值的改变将会影响到所有使用该UDT的数据块,因此无法做到在不同数据块中的差别化应

37、用。关键词: 编成帮助,初始化,初始值,系统行为全局数据块和背景数据块的区别在使用全局数据块的情况下,所有的程序块 (FB , FC和0B)可以读写数据块中的数据。背景数据块被分配到特定的功能块,包含所分配的FB的本地数据* 全局数据块o 可以增加变量,改变初始值和当前值。o 在数据块中添加,删除,改变变量。背景数据块o 不能添加或删除变量,不能改变变量的初始值和当前值。o 在相关连的功能块中添加,删除,改变变量。DB1DB图01不同FB的数据可以存储在单个背景数据块中(多重背景)。图02给岀了一个例子,说明了在FB1中FB5和FB6如何作为多重背景的。两个FB将它们的背景数据保存在调用它们的

38、FB1的背景数据块 DB1中。在FB1的声明中,多重背景块保存为静态变量。0B1FB-1IDB1F01 Declaration PartI F0-Cal|I CALL #lnstsnce_1Static variable "Instance" with type of FB5 Static variable "Instance _2" with type df FB6FB-CallCALL #hsiance 2Call ot FB10in the OB1Call of function blocksin FB10 as multi InstanceDat

39、a for FB5for FeeInstsnce-DQof FB10图02更多信息可以参考STEP 7在线帮助以下部分* “背景数据块”* “创建数据块(DB) ”* “数据块(DB)的结构”* “使用多重背景”从STEP 7 V4.02 升级到 V5.X需要注意当升级STEP 7 V4.02至U V5.X版本时,在LAD/STL/FBD 编辑器中可能会在调用CALL功能时岀现红色。这种现象的原因是块中调用的一个背景数据块已经在符号表里被声明为全局数据块。在STEP7编程规则中这是不允许的,并且在 STEP7 V5.X 版本中也是不能被接受的。补救措施 可以按照下列步骤来修改发生错误的数据块1

40、.在符号表中删除声明错误的DB所在行。2. 然后删除错误的 DB块。3. 打开调用的块然后重新生成背景数据块。调用CALL功能如何影响 DB寄存器当程序块在 STEP 5或STEP 7中被调用时,DB1和DB2寄存器的初始内容被保存。打开 数据块的指令保持有效, 直到另一个打开数据块的指令。 DB寄存器的内容反映了当前打开的数 据块(DB / DI)。然后,必须明确,不是所有的 S7编辑器/编译器对DB寄存器的改变对用户来说都是明显的。 例如,当使用 CALL指令调用 FC时,如果给 FC形参分配的是完整的数据块变量地址,编译器会打开指定的数据块。当FC调用完成时,DB号仍然保存在 DB1寄存

41、器中。在 FC中改变DB寄存器不会影响调用完成后DB寄存器的值。举例:DB1寄存器AUF DB11L DBB 0CALL FC1In put1:= DB2.DBB0Input2:= DB 3.DBB0L DBB 03表01如果调用功能块和相关的背景数据块,调用CALL指令后,背景数据块号保存在 DB1寄存器中。传输完整的数据块变量地址给FB,在FB中更改DB寄存器不会影响 DB1寄存器的内容。举例:DB1寄存器AUF DB11L DBB 0CALL FB1, DB10In put1:= MW0In put2:= DB3.DBB0L DBB 010表02调用系统功能块后 (SFB),相应的背景数

42、据块号保存在DB1寄存器中。然而,使用UC或CC指令后,数据寄存器始终保持不变,这是由于这些调用没有指定参数和背景数据块。、:I . 7.汪意 为了避免在 STEP编程过程中处理数据块时岀现区域长度错误和访问错误,尽量只使用完整的地址访问 DB中变量。(如DBx.DBBy 或符号名 "DBName".Variable_name) 如何为用户创建的块添加访问保护?说明:STEP 7为程序提供 KNOW_HOW_PROTECT保护功能。如果打开使用此保护功能的块时,仅块接口参数 (IN, OUT和IN/OUT 参数)和块注释可见,而无法显示程序代码、临时/静态变量和网段注释。以

43、下介绍如何为程序块(FBs, FCs and DBs) 设置 KNOW_HOW_PROTECT 保护功能:No.步骤1打开要编辑的块,在LAD/STL/FBD编辑器中选择 "File > Gen erate source.",生成源文件。2在打开的对话框中输入项目名称,如"Protect_FB"。3弹出"Generate source <名称"对话框。选中需要转换的块,点击箭头按钮将其移至右侧"Blocks Selected"窗口中。点击 OK键进行确认后,生成STL源文件。关闭LAD/STL/FBD编

44、辑器。图014在S7 program 的Sources ”文件夹中打开最近生成的源文件。5声明部分的 "TITLE" 语句下插入 "KNOW_HOW_PROTECT"命令。IjglLAD/STL/FBD - Protect_FB Test_ProjelctP'| File Edit Insert PLC Debug View Options药品訓創对庭滬I g&tFUNCTI0N_EL0CK FB 51THTLE工吃RAPH卩4 严 KJOT_HIWROTECT / /B aust e ink onuaent arVEASIOK : a.

45、iCODE VEIISION1VARIMPUTOFF_SQ : BOOL ; INIT_SQ : BOOL ; ACK_EF : BOOL ; SPREV : BOOL ; SMHXT : BOOL ; S¥ AUTO : BOOL ;图026 通过菜单"File > Save"和"File > Compile"保存编译 STL源文件,完成块的保护。只有通过 STL源文件才能去除块的保护。如果经“ KNOW_HOW_PROTECT ”命令的程序或者 项目中的STL源文件不再可用,则不能再去除对块的保护。下表介绍如何去除块(FBs,

46、FCs and DBs) 的KNOW_HOW_PROTECT保护功能:编号步骤1打开源文件2删除"KNOW_HOW_PROTECT"语句行或用双斜杠将其标记为注释3使用菜单命令 "File > Save" 和"File > Compile" 保存编译该 STL源文件。4至此去除对该块的保护。如何参数化FB的IN_OUT区域的结构化数据类型并使用ARRAY变量调用?问题描述如果FB的传递参数(IN_OUT )是一个复杂数据类型的变量,则它实际上是作为一个6字节的指针(48位)保存在背景数据块中的。这意味着它不再是一个变量,而

47、是一个6字节的指针。由于指针指向了实参,因此它是必须被参数化。STEP 7可以识别下面的复杂数据类型:Date_and_Time ”、String ”、 Array ”、Struct ”和UDT ”。图01中提供了如何间接访问复杂数据类型的第一个字节的例程。在例子中介绍的程序可用作数据备份。1 FUWCTIOK_BLOCK K0 22 TITLE =3 VERSION : 0.1454 VAR_Ili_OUT5 Symboldea InOut : ARRAY 1 4- 8 OF /Compound Data Type6 BYTE ;S ENI>_VAR10VAE_TEMP11DB Mm

48、:WORD ;12END_VAR131BEGIM14UETUORK15TITLE =1617LARIInOut; /Load Cbyte-PointeEieTAR21*/it access to multi instance occurs19+AR1i*/if access in multi instance occurs2C1U AJUP料*0,/Load DB-nuiJjeii from Pointet:*217肋吕-Num;/Save DB-numiier22AUFDB #DB Hun:/cpen DB23LD ARI/load the actual address24LARI*/load this address into the addressregister25LE AR1,P#0,0;/load the Eirst value of the actualparametr&E2627 /*if the actual parametei: is not a DB28 /these ccxuuands have no effect29 ENDFWCTIDIiLBhMlC30图01通过IN_OUT变量 Symbol_des_lnOut ”装载6字节指针。数据块的块号由这个 6字节指针传送到临时变量“ DB_Num ”中。通过语句A

温馨提示

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

最新文档

评论

0/150

提交评论