边沿脉冲

我编了一个程序。里面有共享数据块DB背景数据块DB,FC和FB,为何在放在FC里能用,放在FB里面就不能用了
FC里面的程序
A Q4.2
A M0.2
AN I0.2
FN  M10.0
S M1.3
FB里面的程序
A  #IN1
A  #IN2
AN #IN3
FN M10.0
S  IN4
我是FC调用FB,别的都可以,就这条指令不执行

最佳答案

1、楼主的FC和FB不能在一起运行。
2、在FB块里沿检测使用静态变量,不能用临时变量。即M10.0应定义为静态变量。
STAT(静态变量)是功能块(FB)特有的,是为配合使用背景数据块而保留的空间,其变量的使用根据需要编程人员需要,将边沿触发寄存器作为静态变量保存原因:因为边沿检测指令均指定有一个“位”存储器,用来保存前一周期RLO(逻辑操作结果)的信号状态,以便进行比较;在OB1的每一个扫描周期,RLO位的信号状态都将与前一周期中获得的结果进行比较,看信号状态是否有变化。
2、同类问题答案:
http://www.ad.siemens.com.cn/Service/answer/solution.aspx?Q_id=59021&cid=1029
http://blog.gkong.com/more.asp?name=liaochangchu&id=139813
http://www.dqjsw.com.cn/dianqi/zhuanti/ximenziPLC/87527.html

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc242498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐