在FB中使用S5定时器的坑

已锁定

YiMoon

  • 帖子

    1221
  • 精华

    35
  • 被关注

    81

论坛等级:至圣

注册时间:2005-04-14

钻石 钻石 如何晋级?

在FB中使用S5定时器的坑

8078

30

2019-03-29 12:21:17

star star star

 在STEP7编程环境中,一直是使用FC,很少用FB。这次在编写与S120通讯的公用块时,使用了FB编写。大家都知道,FC块在调用时,每一个形参都要赋实参,要不然STEP7会报错,编译不过去。而FB因为有背景数据块,所以,形参可以不用都赋实参,有需要使用时才赋实参。

因为是程序开发阶段,编写好FB通讯公用块后,下载测试,一切正常(因为只下载了一个调用FC)。接下来,下载了4个调用块,问题来了,定义为T0定时器的形参工作不正常了,其它定时器正常工作,见下图:

  1. 第一个调用块,定时器形参赋了实参

     

2. 下载了4个调用块

 

3. 其它3个调用块没有给定时器形参赋实参

 

 

发现问题后,第一反应是T0被重复使用了,但程序是自己编写的,用过哪些定时器都知道的,指针方式就更不用说了,一定会有记录。折腾了很久,想来想去,肯定还是T0被重复使用了,把T0改为别的定时器,就没有问题,但就是找不到是哪里。偶然在监视FB背景数据块时,发现定义为定时器的形参,默认初始值都是T0,这下找到原因了。

  1. FB背景数据块


2.FB参数接口

 


为了避免今后再次发生这种问题,于是把定时器形参去掉,在块中使用了IEC定时器(SFB4)

  1. 原S5定时器

 

2.修改为IEC定时器

 

 

定时器有类似问题,计数器应该也是有这样的问题,因此,建议以后FB用定时器时,还是尽量用IEC定时器,不要使用S5定时器,FC因为每个管脚都要赋值,所以,不存在这种问题。

 

在FB中使用S5定时器的坑 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54028条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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