怎么才能做到在调用FB块时定时器才计时,停止调用块时暂停计时啊?

已锁定

萌新二号

  • 帖子

    51
  • 精华

    0
  • 被关注

    3

论坛等级:游侠

注册时间:2019-09-24

普通 普通 如何晋级?

怎么才能做到在调用FB块时定时器才计时,停止调用块时暂停计时啊?

3357

12

2019-11-07 20:05:32

现在我写了个这样的程序,发现定时器一个很奇怪的地方,我有点理解不了,求各位大哥看看:


首先我在OB1中用M0.2调用FB1



在FB中用M0.0激活定时器DB2 ET的值存在FB1的背景数据块DB3的time里



然后我打开仿真,先激活 m0.2,调用FB1,再激活m0.0 计时器开始计数



然后我断开m0.2,结束FB1块调用  计时器时间停止在58s



一段时间后我在激活m0.2打开块调用,奇怪的事情来了 定时器的计时直接跳到2m37s 刚好多了我停止块调用的时间,就像块停止了计时器还在计时一样。 


如果计时器还在计时,为什么停止了块调用就监视不到时间增长了呢?


于是我加了一条指令:

激活M0.3 把计时器当前时间存入数据块1的T中



然后跟奇怪的事情就来了:

居然停止块调用后也看的到ET在计时了,但我存在FB1的背景数据块DB3里的time依然还是不动的



然后我把计时器的ET改成了FB1的背景数据块DB3里的time



再看监视,ET和time都不动了(我边做边截图的,刚刚计时满了 我重新开了一下,所以图上是2s)



于是我激活M0.3 将time里的时间存到书记块的T里,然后再断开M0.3,再激活m0.2调用FB1

可以看到数据块1的T里保存的停止调用时的计时时间,而ET和time都发生了变化



如果我能把T的时间写到ET里,那我就可以继续FB1停止时的计时时间继续计时,于是我用move指令将T写入ET

但是很可惜,被提示ET为只读。



那有没有什么放法可以再停止调用FB块时定时器停止计时,重新调用时FB时,定时器从之前停止的时间继续计时的办法呢?




怎么才能做到在调用FB块时定时器才计时,停止调用块时暂停计时啊? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15101条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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