计数器_S7-1200 计数器常见问题

本文解答了S7-1200计数器不计数的原因,并通过具体示例介绍了如何编程实现自复位计数器及产生脉冲的方法。涉及计数器工作原理及编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

S7-1200 计数器常见问题

1. 为什么计数器不计数?

答:可能原因如下:

(1)计数器的输入位(CU、CD)需要有电平信号的跳变,计数器才会计数。如果保持不变的信号作为输入位是不会开始计数的。

(2)计数器的背景数据块重复使用。

2. 如何编程自复位计数器并产生脉冲?

答:正确答案见图1,错误答案见图2、3。

93585ca457514970fd2192cab85fdd29.png

图1 正确程序

d1fbd8d5f075f60e4c00956bfcb7eeb3.png

图2 错误程序1

aa9b59e73ecac97159ad609c666853e2.png

图3 错误程序2

正确原因:当计数值达到10,"DB77".Static_15(False)作为计数器R的输入,并没有复位,Q输出"DB77".Static_15为True,在下一周期时执行复位指令,使得计数值清零,之后Q输出"DB77".Static_15为False,实现自复位计数器并产生脉冲。

错误1原因:当计数值达到10,首先置位"数据块_2".QU,紧接着"数据块_2".QU作为计数器R的输入,使得计数值清零,同时复位"数据块_2".QU,在下一网络段"DB77".Static_15依然是False,无法实现脉冲。

错误2原因:当计数值达到10,"数据块_2".CV=10,紧接着"数据块_2".CV与"数据块_2".PV的比较结果(True)作为计数器R的输入,使得计数值清零,同时复位"数据块_2".QU,在下一网络段"DB77".Static_15依然是False,无法实现脉冲。

从例子可知,计数器的执行是先处理输入,再处理输出,在指令块执行过程中,内部变量(例如QU、CV)可能出现多次变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值