收藏 分享(赏)

西门子S7-300高级编程培训教材_内部教材__附录2:间接访问FC和FB参数.ppt

上传人:myk79025 文档编号:4232326 上传时间:2018-12-17 格式:PPT 页数:18 大小:302.50KB
下载 相关 举报
西门子S7-300高级编程培训教材_内部教材__附录2:间接访问FC和FB参数.ppt_第1页
第1页 / 共18页
西门子S7-300高级编程培训教材_内部教材__附录2:间接访问FC和FB参数.ppt_第2页
第2页 / 共18页
西门子S7-300高级编程培训教材_内部教材__附录2:间接访问FC和FB参数.ppt_第3页
第3页 / 共18页
西门子S7-300高级编程培训教材_内部教材__附录2:间接访问FC和FB参数.ppt_第4页
第4页 / 共18页
西门子S7-300高级编程培训教材_内部教材__附录2:间接访问FC和FB参数.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、附录2:间接访问FC和FB参数,DB5 “Temperature“,FC21,参数的赋值只能通过符号地址,程序段 1:在 FC21中,声明Meas_Val 为一个数组。CALL FC 21Meas_Val:=“Temperature“.sequence,使用复杂数据类型的功能调用,实例:向功能传递数组,复杂数据类型的参数传递,OB1,功能FC10,执行程序,CALL FC10 On := “Value“.Field Off := Q8.0,in On ARRAY110 INT out Off BOOL .,. L #On8 . = #Off .,OB1,BLD 1 = L 20.0 L 5 T

2、 LW 21 L P#DBX0.0 T LD23 UC FC 10P#L 21.0P#Q 8.0 BLD 2,L 堆栈 (OB1),Field ARRAY110 INT,LW 21,.,1,2,复杂的实参: L堆栈 数据块,DB-No: 5 区域交叉 指针,DB5: “Value“,在L堆栈中 建立指针,间接访问复杂数据类型,地址 声明 名称 类型 起始值 注释0.0 in Meas_Val ARRAY18*4.0 REAL32.0 out Sum REAL36.0 out Mean_Val REALin_out0.0 temp DB_Num WORD,网络1: 确定DB-No.和起始地址L

3、P# Meas_Val / ACCU1读入指针地址LAR1 / 再加载到AR1;L W AR1,P#0.0 / 决定DB号T #DB_Num / 并加载到温度变量;OPN DBDB_Num / 打开DBL D AR1,P#2.0 / 决定区域指针LAR1 / 并加载到AR1;网络2: 计算和L 0.000000e+000 / ACCU1清零(sum=0.0)L 8 / ACCU1读入计数值; ACCU2读入sum=0 BEGN: TAK / ACCU1读入sum,ACCU2读入计数值ENT / ACCU3读入计数值 L DAR1,P#0.0 / ACCU1读入场分量+R / ACCU1读入su

4、m,ACCU2读入计数值+AR1 P#4.0; / AR1增加4字节TAK / ACCU1读入循环计数,ACCU2读入sumLOOP BEGN; / 循环计数减少,必要时跳转T #Sum / 将sum传到#Sum,指针的参数传递,OB1,功能FC10,执行程序,CALL FC10 On := P#I 0.0 INT 10 Off := Q8.0,in On ANY out Off BOOL .,. L P#On . = #Off .,OB1,BLD 1 = L 20.0 L W#16#1005 T LW 21 L 10 T LW 23 L 0 T LW25 L P#I 0.0 T LD27 A

5、C FC 10P#L 21P#Q 8.0 BLD 2,L 堆栈 (OB1),LW 21,.,1,2,POINTER和 ANY参数,10H 数据类型:05 重复:10 DB号:0 区域交叉 指针: P#I0.0,.,在L堆栈中 建立ANY指针,参数类型的参数传递,OB1,功能FC10,程序执行,CALL FC10 On := DB35 Off := Q8.0,in On BLOCK_DB out Off BOOL .,. OPN #ON . = #Off .,BLD 1 = L 20.0 AC FC 10P#4.3P#Q 8.0 BLD 2,块参数: 定时器,计数器 BLOCK_xx,OB1,D

6、B中的基本实参和常量的特点,OB1,功能FC10,程序执行,CALL FC10 On_1 := I 0.1 On_2 := DB5.DBX2.2 Off := DB5.DBX2.4,in On_1 BOOL in On_2 BOOL out Off BOOl .,. A #On_1 A #On_2 = #Off .,OB1,BLD 1 = L 20.0 OPN DB 5 A DBX 2.2 = L 20.1 AC FC 10P#I 0.1P#L 20.1P#L 20.2 A L 20.2 OPN DB 5 = DBX 2.4 BLD 2,L 堆栈 (OB1),DB5,LB 20,0,1,0,0

7、,0,1,0,1,0,0,.,.,1,2,3,DBB2,基本实参: 常量 在数据块中,0,A2.1练习:在FC中计算Date-and-Time参数,FC51,EN,ENO,IN_DT,Sec,QB13,Min,QB12,OB1_DATE_TIME,Hour,QB8,使用复杂数据类型的FB调用,实例:传递数组到功能块,FB17,复杂参数的赋值仅通过符号地址,程序段 1: CALL FB 17, DB 30Meas_1 :=“Temperature“.Cylinder Sum_1 :=MD20Sum_2 :=MD30Meas_2 :=“Temperature“.Shaft,DB2 “Tempera

8、ture“,间接访问输入/输出参数,Address Declaration Name Type Start value Comment0.0 in Meas_1 ARRAY110*4.0 REAL40.0 out Sum_1 REAL 0.000000e+00044.0 out Sum_2 REAL 0.000000e+00048.0 in_out Meas_2 ARRAY115*4.0 in_out REAL54.0 stat DB_Num INT 0,程序段 1:决定Meas_1的起始地址LAR1 P#Meas_1 / 区域交叉指针加载到参数, / 在AR1中无地址偏移(多重执行个体) T

9、AR2 / 载入ACCU1中的地址偏移量+AR1 / 把地址偏移量加到AR1;/ AR1现在指向背景DB中的参数/ 背景DB已经打开 程序段 2:访问Meas_1L 0.000000e+000 / ACCU1清零(Summe =0.0)L 10 / ACCU1读入计数值;ACCU2读入Sum=0 BEGN: TAK / Sum在ACCU1,计数值在ACCU2ENT / ACCU3读入计数值 L DAR1,P#0.0 / ACCU1中的域分量+R / Sum在ACCU1,ACCU2读入计数值+AR1 P#4.0; / AR1增加4字节TAK /在ACCU1中循环计数, sum在ACCU2LOOP

10、 BEGN; /减循环计数,必要时跳转T #Sum_1 / 将sum传递到#Sum_1,间接访问输入/输出参数,Address Declaration Name Type Start value Comment0.0 in Meas_1 ARRAY110*4.0 REAL40.0 out Sum_1 REAL 0.000000e+00044.0 out Sum_2 REAL 0.000000e+00048.0 in_out Meas_2 ARRAY115*4.0 in_out REAL54.0 stat DB_Num INT 0,网络3:决定Meas_2的起始地址LAR1 P#Messung_

11、2 / POINTER读入区域交叉指针,不TAR2 / 读入ACCU1中地址偏移量, 加到AR1;+AR1 / AR1现在指向背景DB中的POINTERL W AR1,P#0.0 / ACCU1从POINTER读取DB号T #DB_Num / 把DB号(或者0)设为静态变量 OPN DB #DB_Num / 打开DBL D AR1,P#2.0 / 区域交叉指针加载到参数LAR1 / AR1读入指针,AR1指向参数网络4:访问Meas_2L 0.000000e+000 / ACCU1请零(Sum =0.0)L 15 / ACCU1读入计数值;ACCU2读入Sum=0 BEGN: TAK / Su

12、m在ACCU1中,计数值在ACCU2中ENT / ACCU3读入计数值 L DAR1,P#0.0 / 域分量在ACCU1+R / Sum在ACCU1中,ACCU2读入计数值. / .,“嵌套传递”参数,嵌套深度: S7-300: 最多8 S7-400: 最多16 . . . 嵌套传递决定于块、数据和参数类型:,调用 FC调用FC FB调用FC FC调用FB FB调用FB 数据类型 E C P E C P E C P E C P 输入 -输入 x - - x x - x - x x x x 输出-输出 x - - x x - x - - x x - 输入/输出 -输入 x - - x - - x

13、 - - 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.0 in IN_DT DATE_AND_TIME DT#90-1-1-0:0:0.0 out in_out 8.0 sta

14、t DUMMY ARRAY1100*2.0 stat INT208.0 stat FB63_DT FB63,A2.3练习:在FB中计算In/Out参数,FB64,EN,ENO,IO_DT,Sec,QB13,Min,QB12,OB1_DATE_TIME,Hour,QB8,FB84,IN_DT,0.0 in IN_DT DATE_AND_TIME DT#90-1-1-0:0:0.0 out in_out 8.0 stat DUMMY ARRAY1100*2.0 stat INT208.0 stat FB64_DT FB64 .,A2.1习题解答:在FC中访问DT参数,A2.2习题解答:在FB中访问DT参数,A2.3习题解答:在FB中访问I/O参数(第1部分),A2.3习题解答:在FB中访问I/O参数(第2部分),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报