回复:关于ANY指针的一点疑问

20151013

  • 帖子

    69
  • 精华

    0
  • 被关注

    14

论坛等级:侠客

注册时间:2016-06-10

普通 普通 如何晋级?

发布于 2017-02-18 14:51:05

18楼

展开查看
以下是引用RENHQ在2017-02-18 14:18:40的发言 >17楼

在IN里面也对

你看看下面的文档

FC中如何传递ANY指针

https://support.industry.siemens.com/cs/cn/zh/view/76779257



以下是引用20151013在2017-02-18 14:14:35的发言 >16楼:再看了看整个程序,...

引用16楼详细内容:

再看了看整个程序,明白了。。

关键在于

FUNCTION FC10: VOID

VAR_TEMP

 Source :ANY;

 Target :ANY;

END_VAR

原来不管是 Source还是 Target都是TEMP,而我前面固化了自己的思维,把这两个变量假设认为是IN变量


那么:在示例程序中,因为Source或 Target为TEMP,那么LB[AR1,P#0.0]这个L有或者没有没有任何区别。

但如果Source或 Target是IN变量,那么多了这个L反而就不对了


你们觉得呢?@RENHQ  @威师爷

以下是引用RENHQ在2017-02-18 13:46:37的发言 >12楼:又弄蒙了这个指针刚...

引用12楼详细内容:

又弄蒙了

这个指针刚开始指的是V区域....

以下是引用20151013在2017-02-18 12:43:47的发言 >:那按你这样说的话...

引用详细内容:

那按你这样说的话T LB[AR1,P#0.0]这条指令CPU操作系统是如何识别这个“L”到底是被调用块(例如FC)中的临时局部变量(TEMP)还是调用块(例如OB1)里的局部临时变量?

即AR1里地址指向的是OB1中的TEMP,而如果按你说的如果系统将“L”识别为FC的TEMP,那岂不是错了吗?

想问一下为什么需要用TEMP中转一下?是西门子规定的不能这样还是说有其他什么原因?因为我看引脚RECOND的数据类型也是为ANY啊。。。


go ahead
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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