王阿喵
我刚开始学1200,在FB块中做了一个下降沿触发MOV的指令,m2和m20都是用的TEMP类型,后来发现下限位1从1转到0时,m2没有输出,
以为是指令用的不对,但把指令转到main当中,用m作为存储都正常
我想到三种可能:1.沿触发不能在FB中使用
2.沿指令存储位不能用 FB块中的TEMP来存储
3.沿指令只能用M来存储
请问如果用一个地址,比如m0.0来存储沿,那多次调用FB块,下限位1采用不同的输入,但是存储沿是一个存储器,会不会导致下降沿一起触发,相互干涉呢?
友情提示:打赏的积分将从您的工控网积分账号扣除
楼主最近还看过
yuanle
因为边沿检测需要存储标志位。
TEMP变量随着FB调用结束而成为未分配地址变量,因此会被其他TEMP占用而导致数据混乱。
如果使用M区域,那么在FB中使用全局变量,FB将变得毫无意义。
你应该使用静态变量或者将存储位作为IN_OUT变量。
一般来说,由于FB调用完成后将返回主程序,所以在FB中使用边沿检测没有太大的实际意义。
网监会
我来补充几句,需要多次调用的FB中,编程不要用M点,定时器(T1-Tn)、计数器(C1-Cn),这样执行时会发生无法预料的错误。
琉璃河
m2临时变量不行的
愤怒的番茄
这属于DB块没有调用,生成DB块后下载进PLC就好了
yanglei27
个人建议,m2的输出直接就用正常的线圈,在m2的常开点处,用下降沿,可以试一下
ww2222w2008
调用一下试试
希之蓝
在块里面定义TEMP改成全局变量百分之百稳定
Smile-lyc
感谢每一位热心答疑解惑的盆友,同时也希望在您得到满意答案以后,能够及时反馈分享一下解决问题经验。更不要忘记对悬赏积分及时结贴处理!
哲一
使用静态变量或者将存储位作为IN_OUT变量
WY112233
学习了,好多不错的经验
635715193
引用 WY112233 的回复内容: 学习了,好多不错的经验
-------------------------
你握不住的沙
M2干嘛要同临时变量啊,用静态变量啊就可以了
喜羊羊的邻居
谢谢楼主的分享啊,一直都在找这个