s7-200高速计数器脉冲模式为什么触发不止一次并且当前值重置但没有复位的效果?

s7-200 高速计数器HC0 输入端I0.0 高电平有效,模式脉冲
SBR_0
TITLE=子程序注释//执行子程序进行自由口和高速计数器的初始化
Network 1 // 网络标题
// 自由口的初始化
LD     SM0.0
MOVB   16#09, SMB30

Network 2 
// 数据块初始化
LD     SM0.0
MOVB   16#1, VB100                 //发送的内容字符"1"
MOVB   16#31, VB101

Network 3 
// 高速计数器初始化
LD     SM0.0
MOVB   16#F8, SMB37                //针对0计数器的控制字节
HDEF   0, 1                        //第0个计数器, 模式1脉冲方式
MOVD   0, SMD38                    //高速计数器的当前值和设定值
MOVD   1, SMD42
ATCH   INT0, 12                    //申请中断指令 12事件为HSC0 CV=PV(当前值=预设值)
ENI                                //允许中断指令
HSC    0

INT_0
LD     SM0.0
A      SM4.5                       //通讯端口闲置时为1
XMT    VB100, 0
MOVD   0, SMD38                    //高速计数器的当前值和设定值
MOVD   1, SMD42
HSC    0                           //使高速计数器0有效
=      Q0.4

我发现用手去闭合输入端,一次输出不止一个"1",脉冲不是从低到高的一瞬间吗?还有闭合几次程序就无输出了,我在中断程序里边重新赋值当前值和设定值的,请高手解答下,谢谢!

最佳答案

你的高速计数器预设值怎么设置为1(SMD42),和当前值怎么是0。
一次人工触发高速输入口,实际上在连接过程中高速计数器已经接受到几个脉冲了。
参考高速计数器初始化程序:
LD     SM0.1
MOVB   16#FC, SMB37
HDEF   0, 9
MOVD   VD100, SMD38
MOVD   16#FFFFFFFF, SMD42
ATCH   长度到达:INT1, 12
ENI
HSC    0

提问者对于答案的评价:
首先谢谢您的回复!我的实际需求是测自行车的速度,有一个干簧管,导通时高电平发送字符"1"代表1圈,所以计数从0到1就可以了,最主要的问题是我在中断12事件里将SMD38重新置为0,为什么实际的效果是运行几次后没有置位呢?

最佳答案作者回复:
换一种思路试试,如自行车旋转一周产生若干个脉冲,你检测一个脉冲可能会出现类似计数器计数不准的问题。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月6日 下午6:36
下一篇 2017年11月6日 下午6:36

相关推荐

  • 一个224能不能进行12路PID控制

    问题补充:自己做PID如何做呢?有没有自己做好的子程序共享一下?  鼠老爹:你有范例让我参考一下吗?gehongjun2008@163.com 最佳答案 用向导…

    SIMATIC S7-200 2021年7月5日
  • S7-200和PC现场通讯咨询

    目前S7-200 PLC与上位机(pc)进行通讯的设备,对于通讯距离不超过5米的,我一般采用PC/PPI电缆连接,超过5米的,想通过Profibus电缆和总线连接器的方式…

    SIMATIC S7-200 2021年7月5日
  • EM253参数设置

    在STEP 7-MicroWIN“工具里面“设置“EM253控制面板”时总是出现错误提示“从V存储区读取模块配置错误。检查此模块的V存储指针”始终进不去设置窗口。此问题不…

    SIMATIC S7-200 2021年7月5日
  • 传感器故障分析

    现在有一个温湿度传感器,接入到EM 231中,那么如果传感器出现故障比如传感器损坏没有电压或者电流,或者测得的数据不准确虽然有电压或电流信号,或者传感器突然故障,即上一个…

    SIMATIC S7-200 2020年10月31日
  • 定时器+S7-200+功能块

    如何编写200的定时器,在所写的功能块里调用。由于每各站控制的功能一样,只是时间有差别,想写个功能块,查看没有时间类型定义,想问一下如何写一个定时器? 最佳答案 SUBROUTIN…

    SIMATIC S7-200 2017年6月27日
  • S7200控制三菱伺服MR-J2S

    有个项目控制一个三菱伺服电机和一个步进电机,第一次用,照着说明书把伺服的线接上去了,就如附件上的图纸,做位置控制,501是从PLC上的Q0.0脉冲输出接到PG,503是方向(Q0.…

    2017年11月16日
  • SMB67赋值问题?

    想做单段管线高速脉冲串输出,设置为:不更新周期值,不更新脉冲宽度,允许更新输出脉冲数,周期单位为ms,选择单段管线PTO,允许PTO输出,请问SMB67=16#多少?标准答案是16…

    SIMATIC S7-200 2020年10月31日
  • S7 200 10MS定时器个数少,不够用

    如题,s7 200 10ms定时器个数少,不够用,可我还需要10ms精度的定时器,怎么办,不能互相干扰,各自独立!请教各位高手,指点迷津! 最佳答案 定时器类型…

    SIMATIC S7-200 2020年11月1日
  • S7-200 上载程序故障

    我的项目是S7-200 EM216.用PPI方式通讯,RS422接口,以前可以上载程序。软件是step7-MIRCOWIN32. 但今天停电又送电后不能上载程序…

    SIMATIC S7-200 2021年7月4日
  • 西门子200有没有32进32出模块

    西门子200有没有32进32出模块呢?现在我有226CPU,现在已经挂了2个8进8出模块和2个8出模块了;后面还能加2个32进32出模块不,挂一个32进32出模块不会相当于挂2个模…

    SIMATIC S7-200 2017年6月2日