回复:S7-200子程序内的内容如何复位

暗殇

  • 帖子

    292
  • 精华

    0
  • 被关注

    17

论坛等级:侠士

注册时间:2014-12-23

普通 普通 如何晋级?

发布于 2016-05-26 18:16:00

14楼

展开查看
以下是引用芳季在2016-05-25 16:12:37的发言 >10楼

我想先看看暗殇的程序结构才好讨论。完全在子程序里做,我觉得不可能。

带参数进去,不也是等于在程序外头做吗。

还有。这种结构并不高效。眼看好像进去子程序什么都不做就出来了。好像省了很多时间。可是,每调用一次子程序,先把in参数copy到L区,然后才执行子程序的第一条指令。退出之后要把L区的out参数copy到out口才结束子程序。这个过程是必然的不可或缺的。除非没有参数。

这里高效和易读之间会有分歧。

所以,我想先看看暗殇的程序结构才好讨论。

以下是引用迷失中原在2016-05-25 15:08:33的发言 >:   暗殇 做法还是...

引用详细内容:

   暗殇 做法还是比较可行的,也是高效的!可以借鉴程序块使能功能(EN)。一般子程序调用可以设置一个使能或者启动位,当该位为FALSE时,可以复位子程序中所有的中间变量以及输出变量,同时执行RET指令,这样不仅系统不容易出错,而且效率高,执行速度快很多!

   

   其实对于楼主的问题,带个参数进行首次执行判断进行选择性复位也未尝不可,毕竟有些数据不是周期都需要复位的,比如一些运算寄存器等。

是带参数的,外部做好了是否满足调用的一个标志位,然后将这个标志位作为参数传入到子程序用以判断是跳出子程序还是向下执行子程序

借鉴昨天!驾驭今天!成就明天!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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