解毒:FC块参数的数据存储

已锁定

'Razor

西门子1847工业学习平台

  • 帖子

    2773
  • 精华

    24
  • 被关注

    181

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

解毒:FC块参数的数据存储

915

8

2019-11-20 21:13:33

别问我图和文字是哪里来的,从网络上找的,文字是机翻+人翻的,来源不知道了,浏览器的浏览历史没了。

正文:

程序编辑器将函数的块参数作为跨区域指针存储在实际调用语句之后的块代码中,因此每个块参数在内存中都需要一个双字。指针根据数据和声明的类型,指向实际参数本身/指向调用块的临时本地数据中的实际参数的副本(程序编辑器创建此数据)/或者指向调用块的临时本地数据中的指针,该指针反过来指向实际参数(表1.FC的参数存储)。

例外情况:如果参数类型为TIMER、COUNTER、BLOCK_FC、BLOCK_FB和DB_ANY,指针是位于块参数左字中的16位数字。

对于基本数据类型,块参数直接指向实际操作数(图1.FC的参数传送)。但是,如果使用区域指针作为块参数,则无法访问数据块中的任何常量或操作数。因此,在编译块时,程序编辑器将数据块中存在的常量或实际操作数的值(并且完全寻址)复制到调用块的临时本地数据中,并指向指向该值的区域指针。这个操作区域被命名为V(前级调用块的临时本地数据,V区域)。

就INPUT和IN_OUT参数来说,在实际的FC调用之前,复制到V区域,就IN_OUT和OUTPUT参数来说,在FC调用之后执行,从而也具有函数值。因此,原则也适用于只能扫描INPUT参数和只写入OUTPUT参数。例如,如果将值传递给具有完全寻址数据操作数的INPUT参数,则该值将存储在前级调用块(上级块)的临时本地数据中,并被遗忘,因为复制到数据块中的“实际的”标签不再发生。




解毒:FC块参数的数据存储 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有13049条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。