回复:西门子S7-200子程序的多次调用的“怪”现象

yanxiao

版主

  • 帖子

    12173
  • 精华

    47
  • 被关注

    188

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2013-12-29 23:21:27

3楼

楼主说得有道理。但语气上不必这么绝对。
一、“除了子程序在同一周期内被多次调用时,不能使用上升沿、下降沿、定时器和计数器”
中的“不能”认为不妥。但就指令本身来讲,并不会产生语法错误,也就是完全可以使用,只是对这些指令的作用/行为,掌控起来有点难度。因为这些指令使用是都是全局资源,相当于全局变量在子程中的行为,不能为不同的调用保留各自的值。举一个简单的计数器的例子,如果一个子程序里有一个计数器,每调用一个计数值+1,也就是这个计数器是用来记录该子程序调用次数的,意义明确,动作正确。因此,上述的“不能”,改为“不宜”较好;
二、我们写的程序,其实是运行在系统程序的调度之下,对系统程序来说,我们的“主”程序也是一个“子”程序,姑且叫它0级子程序,它也有局部变量区,变量的使用规则同常规的子程序没有两样,唯一不同的是,这个0级子程序,每个扫描周期仅调用一次。所以说,在子程序中范的变量使用错误,一般拿到主程序上,也是会出错的。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33267条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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