用沿指令触发INC-B寄存器,IN:MB0,OUT:MB0;为什么会是M0.0置1呢?不应该是OUT输出:MB1吗?
图片说明:
最佳答案
INC_B 指令是字节加指令。字节值的有效范围是 0-255。
该指令的 IN:MB0,OUT:MB0,表示每当使能该指令时 MB0+1 再赋值给 MB0。
结合你的程序:
当 MB0=0 时,它的 8 位二进制码是 2#0000 0000,即 M0.7-M0.0 这 8 个位都为0
当第一次按下 I0.0,其上升沿接通一个扫描周期,使得 MB0 自加 1,此时:
MB0=1,此时其 8 位二进制码是 2#0000 0001,即 M0.0=1
当第二次按下 I0.0,其上升沿接通一个扫描周期,使得 MB0 自加 1,此时:
MB0=2,此时其 8 位二进制码是 2#0000 0010,即 M0.0=0
当第三次按下 I0.0,其上升沿接通一个扫描周期,使得 MB0 自加 1,此时:
MB0=3,此时其 8 位二进制码是 2#0000 0011,即 M0.0=1
当第四次按下 I0.0,其上升沿接通一个扫描周期,使得 MB0 自加 1,此时:
MB0=4,此时其 8 位二进制码是 2#0000 0100,即 M0.0=0
依次类推
当第254次按下 I0.0,其上升沿接通一个扫描周期,使得 MB0 自加 1,此时:
MB0=254,此时其 8 位二进制码是 2#1111 1110,即 M0.0=0
当第255次按下 I0.0,其上升沿接通一个扫描周期,使得 MB0 自加 1,此时:
MB0=255,此时其 8 位二进制码是 2#1111 1111,即 M0.0=1
当第256次按下 I0.0,其上升沿接通一个扫描周期,使得 MB0 自加 1,此时:
MB0=0, 此时其 8 位二进制码是 2#0000 0000,即 M0.0=0
MB0 回到了初始状态。可以发现当 I0.0 奇数次接通时,M0.0=1,当其偶数次接通时 M0.0 总是为0。
参考《S7-200 SMART V2.5系统手册》 7.8.4 递增和递减中的说明及实例
https://support.industry.siemens.com/cs/document/109745610
提问者对于答案的评价:
非常感谢,将讲解的非常详细,受教了。另外请教大神,沿指令说明里面,有一条:“只能连接使能输入端”,这个怎么理解呢?我用沿指令接常闭点再接线圈,能流并不能导通,但是沿指令接常闭点再接置位优先功能块就可以导通。
最佳答案作者回复:
后面这段,最关键的是沿生产的能流只导通一个扫描周期,很短,驱动线圈,你监视是监视不到的,其实是有输出的。
想测试,可以这样做,新增一个网络,就用你用沿驱动的线圈的开点,使能一个变量自加指令,你观察其值变化。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc360561.html