15_附录2:间接访问FC和FB参数.ppt_第1页
15_附录2:间接访问FC和FB参数.ppt_第2页
15_附录2:间接访问FC和FB参数.ppt_第3页
15_附录2:间接访问FC和FB参数.ppt_第4页
15_附录2:间接访问FC和FB参数.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、附录2:间接访问FC和FB参数,DB5 Temperature,FC21,参数的赋值只能通过符号地址,程序段 1:在 FC21中,声明Meas_Val 为一个数组。 CALL FC 21 Meas_Val:=Temperature.sequence,使用复杂数据类型的功能调用,实例:向功能传递数组,复杂数据类型的参数传递,OB1,功能FC10,执行程序,CALL FC10 On:= Value.FieldOff:= Q8.0,inOnARRAY1.10INToutOffBOOL .,. L #On8 . = #Off.,OB1,BLD1= L20.0 L5 TLW21 LP#DBX0.0 TL

2、D23 UCFC10 P#L 21.0 P#Q8.0 BLD2,L 堆栈 (OB1),FieldARRAY1.10INT,LW 21,.,1,2,复杂的实参: L堆栈 数据块,DB-No: 5 区域交叉指针,DB5: Value,在L堆栈中 建立指针,间接访问复杂数据类型,地址声明名称类型起始值注释 0.0inMeas_ValARRAY1.8 *4.0REAL 32.0outSumREAL 36.0outMean_ValREAL in_out 0.0tempDB_NumWORD,网络1: 确定DB-No.和起始地址 LP# Meas_Val/ ACCU1读入指针地址 LAR1/ 再加载到AR1

3、; LW AR1,P#0.0/ 决定DB号 T#DB_Num/ 并加载到温度变量; OPNDBDB_Num/ 打开DB LD AR1,P#2.0/ 决定区域指针 LAR1/ 并加载到AR1; 网络2: 计算和 L0.000000e+000 / ACCU1清零(sum=0.0) L8 / ACCU1读入计数值; ACCU2读入sum=0 BEGN:TAK / ACCU1读入sum,ACCU2读入计数值 ENT/ ACCU3读入计数值 L DAR1,P#0.0 / ACCU1读入场分量 +R / ACCU1读入sum,ACCU2读入计数值 +AR1P#4.0; / AR1增加4字节 TAK/ AC

4、CU1读入循环计数,ACCU2读入sum LOOPBEGN; / 循环计数减少,必要时跳转 T#Sum/ 将sum传到#Sum,指针的参数传递,OB1,功能FC10,执行程序,CALL FC10 On:= P#I 0.0 INT 10Off:= Q8.0,inOnANYoutOffBOOL .,. L P#On . = #Off.,OB1,BLD1= L20.0 LW#16#1005 TLW21 L10 TLW23 L 0 TLW25 LP#I 0.0 TLD27 ACFC10 P#L21 P#Q8.0 BLD2,L 堆栈 (OB1),LW 21,.,1,2,POINTER和 ANY参数,10

5、H 数据类型:05 重复:10 DB号:0 区域交叉指针: P#I0.0,.,在L堆栈中建立ANY指针,参数类型的参数传递,OB1,功能FC10,程序执行,CALL FC10 On:= DB35Off:= Q8.0,in OnBLOCK_DBout OffBOOL .,. OPN #ON . = #Off.,BLD1= L20.0 ACFC10 P#4.3 P#Q8.0 BLD2,块参数: 定时器,计数器 BLOCK_xx,OB1,DB中的基本实参和常量的特点,OB1,功能FC10,程序执行,CALL FC10 On_1:= I 0.1On_2:= DB5.DBX2.2Off:= DB5.DB

6、X2.4,inOn_1BOOLinOn_2BOOLoutOffBOOl .,. A #On_1 A #On_2 = #Off.,OB1,BLD1= L20.0 OPNDB5 ADBX2.2 =L20.1 ACFC10 P#I 0.1 P#L 20.1 P#L 20.2 AL20.2 OPNDB5 =DBX2.4 BLD2,L 堆栈 (OB1),DB5,LB 20,.,.,.,.,.,0,1,.,0,0,0,1,0,1,0,0,.,.,1,2,3,DBB2,基本实参: 常量 在数据块中,0,A2.1练习:在FC中计算Date-and-Time参数,FC51,EN,ENO,IN_DT,Sec,QB

7、13,Min,QB12,OB1_DATE_TIME,Hour,QB8,使用复杂数据类型的FB调用,实例:传递数组到功能块,FB17,复杂参数的赋值仅通过符号地址,程序段 1: CALL FB 17, DB 30 Meas_1:=Temperature.Cylinder Sum_1:=MD20 Sum_2:=MD30 Meas_2:=Temperature.Shaft,DB2 Temperature,间接访问输入/输出参数,AddressDeclarationNameTypeStart valueComment 0.0inMeas_1ARRAY1.10 *4.0REAL 40.0outSum_1

8、REAL0.000000e+000 44.0outSum_2REAL0.000000e+000 48.0in_outMeas_2ARRAY1.15 *4.0in_outREAL 54.0statDB_NumINT0,程序段 1:决定Meas_1的起始地址 LAR1P#Meas_1/ 区域交叉指针加载到参数, / 在AR1中无地址偏移(多重执行个体) TAR2/ 载入ACCU1中的地址偏移量 +AR1/ 把地址偏移量加到AR1; / AR1现在指向背景DB中的参数 / 背景DB已经打开 程序段 2:访问Meas_1 L0.000000e+000 / ACCU1清零(Summe =0.0) L10

9、 / ACCU1读入计数值;ACCU2读入Sum=0 BEGN:TAK / Sum在ACCU1,计数值在ACCU2 ENT/ ACCU3读入计数值 L DAR1,P#0.0 / ACCU1中的域分量 +R / Sum在ACCU1,ACCU2读入计数值 +AR1P#4.0; / AR1增加4字节 TAK/在ACCU1中循环计数, sum在ACCU2 LOOPBEGN; /减循环计数,必要时跳转 T#Sum_1/ 将sum传递到#Sum_1,间接访问输入/输出参数,AddressDeclarationNameTypeStart valueComment 0.0inMeas_1ARRAY1.10 *

10、4.0REAL 40.0outSum_1REAL0.000000e+000 44.0outSum_2REAL0.000000e+000 48.0in_outMeas_2ARRAY1.15 *4.0in_outREAL 54.0statDB_NumINT0,网络3:决定Meas_2的起始地址 LAR1P#Messung_2/ POINTER读入区域交叉指针,不 TAR2/ 读入ACCU1中地址偏移量, 加到AR1; +AR1/ AR1现在指向背景DB中的POINTER L W AR1,P#0.0 / ACCU1从POINTER读取DB号 T #DB_Num / 把DB号(或者0)设为静态变量 O

11、PN DB #DB_Num / 打开DB L D AR1,P#2.0 / 区域交叉指针加载到参数 LAR1 / AR1读入指针,AR1指向参数 网络4:访问Meas_2 L0.000000e+000 / ACCU1请零(Sum =0.0) L15 / ACCU1读入计数值;ACCU2读入Sum=0 BEGN:TAK / Sum在ACCU1中,计数值在ACCU2中 ENT/ ACCU3读入计数值 L DAR1,P#0.0 / 域分量在ACCU1 +R / Sum在ACCU1中,ACCU2读入计数值 ./ .,“嵌套传递”参数,嵌套深度: S7-300: 最多8 S7-400: 最多16 . .

12、. 嵌套传递决定于块、数据和参数类型:,调用FC调用FCFB调用FCFC调用FBFB调用FB 数据类型ECPECPECPECP 输入 -输入 x-xx-x-xxxx 输出-输出 x-xx-x-xx- 输入/输出 -输入 x-x-x-x- 输入/输出 - 输出 x-x-x-x- 输入/输出 -输入/输出x-x-x-x-,E:基本数据类型 C:复杂数据类型 P:参数类型(定时器,计数器,块_x),FBs,FBs,FCs,OB,A2.2练习:在FB中计算Date-and-Time参数,FB63,EN,ENO,IN_DT,Sec,QB13,Min,QB12,OB1_DATE_TIME,Hour,QB8,FB83,IN_DT,0.0inIN_DT DATE_AND_TIMEDT#90-1-1-0:0:0.0out in_out 8.0statDUMMYARRAY1.100 *2.0statINT 208.0statFB63_DTFB63,A2.3练习:在FB中计算In/Out参数,FB64,EN,ENO,IO_DT,Sec,QB13,Min,QB12,OB1_DATE_TIME,Hour,QB8,FB84,IN_DT,0.0i

温馨提示

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

评论

0/150

提交评论