技术论坛

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

作者 主题
新手

经验值: 17
发帖数: 2
精华帖: 0
主题:200smart 子程序带参数最多16个,如果参数超出怎么处理


只看楼主 楼主 2020-12-09 16:32:31

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


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1656606&b_id=3&s_id=0&num=3

至圣

经验值: 69061
发帖数: 12270
精华帖: 59
回复:200smart 子程序带参数最多16个,如果参数超出怎么处理


只看楼主 1楼 2020-12-09 21:57:23

每个子例程调用的输入/输出参数的最大限制是 16。如果尝试下载一个超出此项限制的程

序,STEP 7-Micro/WIN SMART 返回错误。 

手册上这么说的

我刚才还试了一下, 编译好像没出错


Q群:https://jq.qq.com/?k=9BDuEgf6
以下网友喜欢您的帖子:

  
版主

经验值: 25998
发帖数: 11809
精华帖: 43
回复:200smart 子程序带参数最多16个,如果参数超出怎么处理


只看楼主 2楼 2020-12-11 22:35:07
参数太多不见得是好事。
楼主可以换个思路写子程序。
 
以下网友喜欢您的帖子:

  
至圣

经验值: 67551
发帖数: 14784
精华帖: 100
回复:200smart 子程序带参数最多16个,如果参数超出怎么处理


只看楼主 3楼 2021-01-11 09:19:18

大于16个根本就输不进。

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

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

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


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
200smart 子程序带参数最多16个,如果参数超出怎么处理
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。