版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
附录2:间接访问FC和FB参数Closed-loop
controllerOB1Motor1FB1Motor2FB1ValveislandFB2FB5Meas_Value ARRAY[1..20] REALSum REALMean_value REALL P##Meas_Value LAR1 L W[AR1,P#0.0] T #DB_Num OPN DB[DB_Num] L D[AR1,P#2.0] LAR1
....FC10.........DB5"Temperature"FC21参数的赋值只能通过符号地址程序段1:在FC21中,声明Meas_Val为一个数组。
CALLFC21 Meas_Val:="Temperature".sequence使用复杂数据类型的功能调用实例:向功能传递数组复杂数据类型的参数传递OB1功能FC10执行程序CALLFC10On :="Value".Field
Off :=Q8.0in On ARRAY[1..10]
INT
out Off BOOL......L#On[8]...=#Off
...OB1BLD 1
= L 20.0L 5T LW 21L P#DBX0.0T LD23UC FC 10 P#L21.0 P#Q 8.0BLD 2L堆栈(OB1)Field ARRAY[1..10]
INTLW21...12 复杂的实参:L堆栈数据块DB-No:5区域交叉
指针DB5:"Value"在L堆栈中建立指针间接访问复杂数据类型地址 声明 名称 类型 起始值
注释
0.0 in Meas_Val ARRAY[1..8] *4.0 REAL 32.0 out Sum REAL 36.0 out Mean_Val REAL in_out 0.0 temp DB_Num WORD网络1:确定DB-No.和起始地址 L P##Meas_Val //ACCU1读入指针地址 LAR1 //再加载到AR1; L W[AR1,P#0.0] //决定DB号 T #DB_Num //并加载到温度变量; OPN DB[DB_Num] //打开DB L D[AR1,P#2.0] //决定区域指针 LAR1 //并加载到AR1;网络2:计算和 L 0.000000e+000 //ACCU1清零(sum=0.0) L 8 //ACCU1读入计数值;ACCU2读入sum=0BEGN: TAK //ACCU1读入sum,ACCU2读入计数值 ENT //ACCU3读入计数值 L D[AR1,P#0.0] //ACCU1读入场分量 +R //ACCU1读入sum,ACCU2读入计数值 +AR1 P#4.0; //AR1增加4字节 TAK //ACCU1读入循环计数,ACCU2读入sum LOOP BEGN; //循环计数减少,必要时跳转 T #Sum //将sum传到#Sum指针的参数传递OB1功能FC10执行程序CALLFC10On :=P#I0.0INT10
Off :=Q8.0in On ANY
out Off BOOL......LP##On...=#Off
...OB1BLD 1
= L 20.0L W#16#1005T LW 21L 10T LW 23L 0T LW25L P#I0.0T LD27AC FC 10 P#L 21 P#Q 8.0BLD 2L堆栈(OB1)LW21...12
POINTER和
ANY参数10H数据类型:05重复:10DB号:0区域交叉
指针:P#I0.0...在L堆栈中
建立ANY指针
参数类型的参数传递OB1功能FC10程序执行CALLFC10On :=DB35
Off :=Q8.0in On BLOCK_DB
outOff BOOL......OPN#ON...=#Off
...BLD 1
= L 20.0AC FC 10 P#4.3 P#Q 8.0BLD 2 块参数:定时器,计数器BLOCK_xxOB1DB中的基本实参和常量的特点
OB1功能FC10程序执行CALLFC10On_1 :=I0.1
On_2 :=DB5.DBX2.2
Off :=DB5.DBX2.4in On_1 BOOL
in On_2 BOOL
out Off BOOl......A#On_1A#On_2=#Off
...OB1BLD 1
= L 20.0OPN DB 5A DBX 2.2= L 20.1AC FC 10 P#I 0.1 P#L 20.1 P#L 20.2A L 20.2OPN DB 5= DBX 2.4BLD 2L堆栈(OB1)DB5LB20..........01..00010100......123DBB2 基本实参:常量在数据块中0A2.1练习:在FC中计算Date-and-Time参数FC51ENENOIN_DTSecQB13MinQB12OB1_DATE_TIMEHourQB8使用复杂数据类型的FB调用实例:传递数组到功能块FB17复杂参数的赋值仅通过符号地址程序段
1:
CALLFB17,DB30 Meas_1 :="Temperature".Cylinder
Sum_1 :=MD20Sum_2 :=MD30 Meas_2 :="Temperature".ShaftDB2"Temperature"间接访问输入/输出参数Address Declaration Name Type Startvalue Comment
0.0 in Meas_1 ARRAY[1..10] *4.0 REAL 40.0 out Sum_1 REAL 0.000000e+000 44.0 out Sum_2 REAL 0.000000e+000 48.0 in_out Meas_2 ARRAY[1..15] *4.0 in_out REAL 54.0 stat DB_Num INT 0程序段1:决定Meas_1的起始地址 LAR1 P##Meas_1 //区域交叉指针加载到参数, //在AR1中无地址偏移(多重执行个体) TAR2 //载入ACCU1中的地址偏移量 +AR1 //把地址偏移量加到AR1; //AR1现在指向背景DB中的参数 //背景DB已经打开程序段2:访问Meas_1 L 0.000000e+000 //ACCU1清零(Summe=0.0) L 10 //ACCU1读入计数值;ACCU2读入Sum=0BEGN: TAK //Sum在ACCU1,计数值在ACCU2 ENT //ACCU3读入计数值 L D[AR1,P#0.0] //ACCU1中的域分量 +R //Sum在ACCU1,ACCU2读入计数值 +AR1 P#4.0; //AR1增加4字节 TAK //在ACCU1中循环计数,sum在ACCU2 LOOP BEGN; //减循环计数,必要时跳转 T #Sum_1 //将sum传递到#Sum_1间接访问输入/输出参数Address Declaration Name Type Startvalue Comment0.0 in Meas_1 ARRAY[1..10] *4.0 REAL 40.0 out Sum_1 REAL 0.000000e+000 44.0 out Sum_2 REAL 0.000000e+000 48.0 in_out Meas_2 ARRAY[1..15] *4.0 in_out REAL 54.0 stat DB_Num INT 0网络3:决定Meas_2的起始地址
LAR1 P##Messung_2 //POINTER读入区域交叉指针,不 TAR2 //读入ACCU1中地址偏移量,加到AR1; +AR1 //AR1现在指向背景DB中的POINTER LW[AR1,P#0.0] //ACCU1从POINTER读取DB号T#DB_Num //把DB号(或者0)设为静态变量
OPNDB[#DB_Num] //打开DBLD[AR1,P#2.0] //区域交叉指针加载到参数 LAR1 //AR1读入指针,AR1指向参数网络4:访问Meas_2 L 0.000000e+000 //ACCU1请零(Sum=0.0) L 15 //ACCU1读入计数值;ACCU2读入Sum=0BEGN: TAK //Sum在ACCU1中,计数值在ACCU2中 ENT //ACCU3读入计数值 L D[AR1,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 - - x - -输入/输出->输出 x - - x - - x - - x - -输入/输出->输入/输出 x - - x - - x - - x - -E:基本数据类型C: 复杂数据类型P: 参数类型(定时器,计数器,块_x)FBsFBsFCsOBA2央.2练习剩:在FB中计役算Da牵te当-a骆nd逗-T村im萄e参数FB社63ENEN娘OIN顺_D狠TSe纲cQB齿13Mi秋nQB忌12OB问1_仓DA个TE夸_T稼IM滴EHo猴urQB得8FB厦83IN贝_D昌T0.菊0in寸I益N_李DTDA眉TE爬_A鸽ND鲁_T逝IM恩E俩DT在#9缸0-倦1-俊1-骄0:旁0:般0.搅0热ou粉tin还_o疼ut8.游0寸st展at权D研UM大MY输A慕RR敞AY畏[1楚..湿10尽0]*2熄.0钟s塌ta跳t待I瓶NT20歌8.惧0爱st雁at论F济B6劳3_胡DT恼F偷B6闻3A2探.3练习纽奉:在FB中计蜂算In步/O变ut参数FB雾64ENEN宽OIO羞_D间TSe诉cQB缺13Mi山nQB枪12OB私1_迅DA贫TE蹲_T净IM倒EHo验urQB脸8FB固84IN锯_D壶T0.者0in凉I幅N_果DTDA旧TE惧_A浇ND告_T核IM揭E加DT滨#9府0-帜1-亩1-诸0:虎0:澡0.仗0待ou润tin丽_o喊ut8.出0巡寿st竹at关D兽UM挠MY只A蔑RR墙AY
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合作满意度调查反馈函8篇范本
- 社交媒体粉丝增长策略指南
- 建筑部门工程进度绩效考评表
- 智能客服机器人响应质量监控评价表
- 环保科技公司研发团队成员创新力与研发成果绩效考评表
- 建筑规划战略与空间布局优化研究
- 2026年汉中市中心医院备案制招聘(25人)考试参考题库及答案详解
- 业务流程优化再造指导书
- 二硫化碳生产工班组安全能力考核试卷含答案
- 桥梁巡视养护工安全素养知识考核试卷含答案
- 员工用电安全指导培训课件
- 一中分班考试题目大全及答案
- 医院终末消毒课件
- 医院检验科试剂耗材管理
- 2024年广东省阳西县人民医院公开招聘医务工作人员试题带答案详解
- 大学版画教学课件下载
- 《无人机搭载红外热像设备检测建筑外墙及屋面作业》
- 玩偶之家-完整版
- 协商一致解除劳动合同协议书
- IATF16949-质量手册(过程方法无删减版)
- 企业级IPv6网络改造及升级服务合同
评论
0/150
提交评论