图一, 程序段6,为什么一加上一个上升沿P我的程序就报错。?? 图二,程序段1, 在OB1中调用FC105, 报错指示:Status PIW 还是0, 显示正常没有报错, 一运行到程序6我加上上升沿,程序的结尾(图三)就报错, MW2 就变成16#0100, 这也能检测出来吗??? 为什么程序段6加上升沿不对?? 求解释,请赐教
问题补充:
是的,在FC105的输入口,我输入的范围一直没有超过量程,是0-27648范围内。 我仿真器上改变数值0-27648来运行, 我认为讲解者视频编写的程序段6那里加个(P)会更好些,当然是个人看法。 后来我就加了。我看见大家回答的我这软件里也没有| P | 啊, 只有线圈的P , 补充提问图1的那两个红圈。它们有什么区别吗?我读了软件上的帮助我也没有读懂。尴尬
补充提问的图2,我加了(P),之后,T1一接通, 程序段最后故障检测就变成不是0了,正常的话应该是0000, 现在变成图3的样子。 如果把(P)删除了就可以了。 就正常了。 我很纳闷, 程序最开始的FC105输出的是正常的MW0, 就是0嘛。就是正常嘛。 我只是加了 (P)再T1接通后,我也没有动MW0, 到程序最后故障检测它的值就变了。神奇。。。。。当然一定是我加个P引起的,但我不知道什么原因啊。。。。。
钻牛角尖了,但我还是想向大家学习学习请教请教,非常感谢!
图片说明:
最佳答案
你上升沿地址用错了啊
输入用的MW2包括M2.0-M3.7的地址,M2.3包含在里面了,所以当你上升沿使用M2.3的时候,把MW2里面的值也就改了
另外如果你这个程序是多次调用的,上升沿指令的地址如果是FB的建议使用静态类型的变量,如果是FC,那就使用INOUT类型从外部输入一个地址,要不然,多次调用,里面上升沿使用一个地址的话,子程序的逻辑结果会是错误的
提问者对于答案的评价:
尴尬流汗,我说的呢,来回试了好几次不行。 非常感谢大家的回答。谢谢
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc284725.html