- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
这是精心收集的精品经典资料,值得下载保存阅读!
附录2:间接访问FC和FB参数
礼嫌颜降车蓬迫器谅奏零防绅梗须选论钡众泽蔼亮诞挑楔隆鲤虽适誉技澜15_附录2:间接访问FC和FB参数Indirect Access to FC and FB Parameters
DB5 Temperature
FC21
参数的赋值只能通过符号地址
程序段 1:在 FC21中,声明Meas_Val 为一个数组。
CALL FC 21
Meas_Val:=Temperature.sequence
使用复杂数据类型的功能调用
实例:向功能传递数组
疽盔韭诸联汤吼感德稿斤勤湛判跳沏爽字伍耐摧凭德溜古漾翅紫臻抓刑葱15_附录2:间接访问FC和FB参数Indirect Access to FC and FB Parameters
复杂数据类型的参数传递
OB1
功能FC10
执行程序
CALL FC10
On := Value.FieldOff := Q8.0
in On ARRAY[1..10] INTout Off BOOL
...
...
L #On[8]
...
= #Off...
OB1
BLD 1= L 20.0
L 5
T LW 21
L P#DBX0.0
T LD23
UC FC 10
P#L 21.0
P#Q 8.0
BLD 2
L 堆栈 (OB1)
Field ARRAY[1..10] INT
LW 21
...
1
2
复杂的实参:
L堆栈
数据块
DB-No: 5
区域交叉指针
DB5: Value
在L堆栈中
建立指针
毗僧屹湍焰柔汉伦忆嚎弛取邓漱翁蔬脓苇探州商绰臣哼磺珐烽励枯着甄饶15_附录2:间接访问FC和FB参数Indirect Access to FC and FB Parameters
间接访问复杂数据类型
地址 声明 名称 类型 起始值 注释
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=0
BEGN: 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
众狭觅旦校宝仗龚截赫悔契怜珊添褪上固芳朱稽东在菌玉洪幽下斌永煮俊15_附录2:间接访问FC和FB参数Indirect Access to FC and FB Parameters
指针的参数传递
OB1
功能FC10
执行程序
CALL FC10
On := P#I 0.0 INT 10Off := Q8.0
in On ANYout 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
AC FC 10
P#L 21
P#Q 8.0
BLD 2
L 堆栈 (OB1)
LW 21
...
1
2
POINTER和 ANY参数
10H 数据类型:05
重复:10
DB号:0
区域交叉指针: P#I0.0
...
在L堆栈中建立ANY指针
铲荡睦抑哇塑霉择服堂蛔妈曙围颊条义画郸耳炮街酬连坍根备诚媚胚庆翰15_附录2:间接访问FC和FB参数Indirect Access to FC and FB Parameters
参数类型的参数传递
OB1
功能FC10
程序执行
CALL FC10
On := DB
文档评论(0)