技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 函数的形参实参问题

函数的形参实参问题

郑志武 发布于2012-11-27 22:38 1 0 标签:

https://support.automation.siemens.com/cn/llisapi.dll?func=cslib.csinfo&objid=22303713&ehbid=24520368&load=treecontent&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=cn
有几个问题想请教下:
1.刚开始的一段
linput
tlw"1"变量初始化
linout
tlw"3"变量初始化
callfc
llw"2"
//变量初始化不在这里执行!
//用户必须保证output变量
//在每个fc周期中描述:
toutput
llw"3"
tinout
当fc调用完成,编辑器将块参数以越域指针保存在块代码中。每个块参数需要一个双字内存空间:

p#lw"1"input(e,a,m)
p#lw"2"output(e,a.m)
p#lw"3"in_output(e,a,m)

编辑器在块参数传送过程中使用临时本地数据。指针根据数据类型和声明类型指示当前参数:

llw"2"
toutput
llw"3"
tinout

这一段看着比较费解,应该如何理解的?

2.还有后面有一句:
块所使用的输入、输出和in_out参数是作为指针被保存到调用代码块的实际参数中。这些指针对用户来说是不可见的。
是不是可以这样理解,比如在ob1中调用fc1,fc1的in,out,in-out会作为指针被保存在ob1的实际参数中?

问题补充:
第2个明白了,个还是有的模糊,还是以ob1调用fc1为例,这个lw"2",lw"3",lw"1"是否可以理解为一个全局变量,还是不是可以把引号拿掉理解为临时堆栈

佳答案

1、编辑器在块参数传送过程中使用临时本地数据。指针根据数据类型和声明类型指示当前参数:

llw"2"
toutput
llw"3"
tinout
这一段看着比较费解,应该如何理解的?
编辑器在块参数传送过程中使用临时本地数据,指针根据数据类型和声明类型指示当前参数:
lw"2",就是传递的output
lw"3"传递的是inout参数
lw"1"传递的是input参数
2、是不是可以这样理解,比如在ob1中调用fc1,fc1的in,out,in-out会作为指针被保存在ob1的实际参数中?
不是,是块所使用的输入、输出和in_out参数是作为指针被保存到调用代码块的实际参数中。
就是说你在ob1调用了fc这个功能,定义的输入、输出和in_out,的参数都是以指针形式保存在这个功能,管脚上填写的实际参数中。不是ob1里的实际参数中。

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签