登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:求助:s7-300里SFB4的使用问题(吐血跪求高手指点)

点击:5227 回复:4

请问各位高手:
    在使用S7300里的SFB4的时候,如果设定时间PT未到,而触发端IN已经有下降沿。则停止计时,同时时间输出端ET也置0,小弟想把ET当前所计的时间保存下来(就是在它自动轻零之前,将ET里面的数据保存下来)不知道各位能否指点一下?
    在梯形图里,同一个输出信号,不能有2 个以上的通路给它赋值:但是如果这2 个通路在不同的FB 里,会不会发生冲突呢?
    先在这里谢谢了
06-06-06 17:28
个人认为,将ET的值取出给数据块地址即可。
在数据块中设定一个TIME格式的变量,然后使用MOVE指令将ET的值传到该变量中,即同步保存,不过要注意的是,需要检测你IN端的状态以防止ET被清零后同步也将该变量清0。
06-06-06 19:35
谢谢您的意见,可是关键就是在如何“防止ET被清零后同步也将该变量清0”。。。。。
呵呵 就这一块不知道怎么解决?
06-06-06 22:28
CALL  SFB4
      IN:=I0.0
      PT:=T#300S
      Q :=
      ET:=DB100.DBD0
   
    AN    I0.0             // Input Signal
     FN    M100.0           // Negative Edge Detection
     JC    _00
     L     DB100.DBD0     // ET expired time in format of time data
     T     DB100.DBD4    // Save "ET" Value in format of time data
_00:  NOP   0
以上的程序仅供参考!
触发端Input已经有下降沿。则停止计时,同时时间输出端ET当前所计的时间保存到数据块里,当然时间输出端ET也被清零!
06-06-07 10:01
又是前辈 robertjml,谢谢您啊,虽然我看不懂 STL语言,但是还是要表示感谢,我用今天利用了一个它SFB4的ET端清0的这个指令的时间差把ET的计时值保存下来,呵呵
06-06-07 13:39

工控新闻

更多新闻资讯