间接寻址的指针要传进子程序,是传什么进去好?

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15510
  • 精华

    101
  • 被关注

    961

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

间接寻址的指针要传进子程序,是传什么进去好?

1125

6

2023-02-03 13:30:08

带参数子程序,需要通过输入参数传入一个指针,然后在里面用指针做指定的工作。初定指针是指向V区的。(指向其他区域的暂时不讨论)

好比下面的子程序和调用。子程序是把指针所指的字节传到输出参数。而主程序调用这个子程序就是给一个指针值,给一个输出装载的字节地址。


从状态表里面写入一些值,通过修改vw12的值就可以输出对应地址的数值。

图中可以看到,VW12输入了数值9,就会输出VB9中的值到MB0。

大家可以看到第一个图为何状态表中有VD10这项?而且数值是16#08000009?这是因为我开始的时候需要先向VD10输入一个指针格式的数据(16#08000000我必须用16进制书写),然后再从指针的低16位改写成我需要的地址(我用十进制书写比较直观)。所以我要分开两次输入。


而在第二幅图中,我就在程序中加了一些东西,代替了我动手输入这个指针。而我就只需要直接输入我要的数值就可以了。

综合来说,输入指针这个步骤不是程序做就是人工做。

再看,如果VW12这个数不是状态表输入,而是从触摸屏上过来的,是不是很简单?要是第一个图VD10这个情况,屏上也只能输入个VW12过来(VW12=9),然后还是要程序加上高16位的指针格式(16#0800)再给到VD10 。该做的还是要做。

那么现在问题是,这样传指针到子程序,是完整的指针传送比较好还是只传偏移量进去好?


间接寻址的指针要传进子程序,是传什么进去好? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8944条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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