回复:用S7-200怎么实现找出数据堆中的最小值和最大值

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2012-07-25 20:46:36

34楼

呵呵,我是这样考虑的:
1、因为200里面目前还没有指针类型形参,导致一个完整的指针无法通过一个指针形参来传递进子程序。如果在子程序内部用&XXXX来定义指针的话,区域地址标识就定死了,那就更不自由了!我是这样来处理这个问题的:因为指针的高字存放的是区域地址标识,底字存放的是地址;这样就可以把指针分成两个INT类型的形参传递到子程序内部,然后在子程序内部再合并起来组成完整的指针(可能麻烦些)。这样是为了方便判断地址标识和地址输入是否正确。
2、200的M区、L区、·······这几个区也就几十个字节,碗口大的地方存放不了较多的数据啊;编程者一般会将较多的数据存储在V区,所以我把其它区域地址标示给屏蔽了。考虑到,万一地址标识输入弄错了,寻址超出,这种问题查起来还特别头疼。
3、指令MOVW *LD0, LW11 中的*LD0其实已经自动完成了地址区域标识和地址的合并,生成了真正的指针。后面的代码思想和我21楼思想一致,在子程序内部,确实可以省去2个临时变量,可以省去两条语句。
4、在子程序内部直接使用&XXXX来生成指针,个人感觉在子程序内部间接寻址还不够灵活。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33263条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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