回复:200smart 子程序带参数最多16个,如果参数超出怎么处理

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15525
  • 精华

    101
  • 被关注

    963

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2021-01-11 09:19:18

3楼

大于16个根本就输不进。

大于16个就要用库内存。库内存只受空间限制。库内存中任何一个地址都可以被全局修改,也就是全部都可以看做in/out参数。

也可以用间接寻址。把所有参数按顺序安排在一片连续的空间。在子程序里面自己计算排第几个参数是什么用的参数,一条一条指针算出来,自己往里面找参数。比如,第一个参数是上升时间*VB50是字参数占用16位,第二个参数是下降时间*VB52占用16位,第三个是次数*VB54占用8位。……。想多少个参数都行。在vb50的基础上数下去就是了。

然后这个参数的接口定义成in参数。并命名为“字节5”意思为这里要填写一个数值,上例中是50。并且占用5个字节。方便以后使用这个子程序的时候知道这个子程序的占用内存量。下一个其他子程序就从50+5的地方开始使用内存。这样内存既可以灵活分配也可以容易计算。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33265条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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