自动化论坛

 找回密码
 立即注册
搜索
热搜: 变频器 PLC 伺服
查看: 4545|回复: 3
打印 上一主题 下一主题

西门子PLC s7-300子程序是如何实现参数传递?

[复制链接]

21

主题

0

好友

90

积分

注册会员

Rank: 2

跳转到指定楼层
楼主
发表于 2013-8-7 10:54:33 |只看该作者 |倒序浏览
西门子的一个资料里找到的有关FC的基本数据类型的参数传送机理的图:

下面是有关的文字说明:
传递机理
随着调用指令CALL,STL/LAD/FBD编辑器首先根据参数列表中给出的实际参数,计算交叉区域指针,并在FC调用指令之后立即存贮这些指针。
此时,如果在该FC内部访问形式参数(比如:A On_1),CPU就根据存储在B堆栈中的返回地址确定该FC调用指令。然后根据相关的参数列表,FC就可确定与形式参数对应的实际参数的交叉区域指针。于是,通过这个指针就实现了对实际参数的访问。
这种传递机理与”按引用调用”相一致,如果在某一FC中访问了形式参数,那么,结果也访问了相应的实际参数。 .
这种通过指针的访问机理要求:
在FC调用中,所有的块参数都必须赋值。
在参数声明里,不能对块参数进行初始化。
注意事项
如果是用DB中的实际参数来对块参数进行赋值,或者传递的是复杂类型参数,那么,参数传递将变得更加复杂。
下面的文字来源于STEP7的FC的在线帮助:
将实际参数分配给形式参数:
FC所使用的输入、输出以及输入/输出参数作为指针保存到调用FC的逻辑块的实际参数中。
通过地址(指针跨过区域边界指向目标)访问FC参数。当数据区(数据块)地址或调用块的局部变量用作实际参数时,实际参数的副本将临时保存到用于传送参数的调用块的本地数据区中。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

1

主题

0

好友

11

积分

新手上路

Rank: 1

沙发
发表于 2013-10-5 12:25:57 |只看该作者
这非常有用!
环球传感网:http://www.sensor-global.com/
回复

使用道具 举报

20

主题

0

好友

192

积分

注册会员

Rank: 2

板凳
发表于 2013-11-1 21:53:55 |只看该作者
这个非常不错
回复

使用道具 举报

1

主题

0

好友

15

积分

新手上路

Rank: 1

社区QQ达人

地板
发表于 2014-3-29 17:06:48 |只看该作者
长期高价回收全新西门子PLC及模块产品(6ES7 200/300/400)6GK/6EP/6DD/6AV 模块及cpu等各类产品及二手拆机成色新功能好均可全面高价回收,回收广,价格高诚信好,如有工程余货个人闲置的朋友们请联系本QQ、2896746509手机 13777276345李
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

社区首页| 家园首页| 群组首页|我的微博|手机版|Archiver|caisg Inc.

GMT+8, 2024-11-22 07:59 , Processed in 0.053435 second(s), 20 queries .

Powered by Discuz! Templates yeei! © 2001-2011 Comsenz Inc.

回顶部