背景
使用手工编程,也就是pls指令,发pwm脉冲。
过程
当一个脉冲正在处于高电平的时候,执行禁止脉冲(sm67.7=0)然后执行pls指令,脉冲会停止,停止后处于低电平状态。
问题1
当这个脉冲高电平出现很短很短时间后,就被终止了。那么这个很短很短的窄脉冲宽度会是有多少?
问题2
这个窄脉冲是否会被0.2微秒滤波时间的高速计数器捕捉到?
这是我实验里面的一个重要环节。
我用pwm发脉冲给伺服。然后用接线方式,高速计数器捕捉pwm数量。使得程序可以知道pwm和伺服走了多少。(请不要告诉我使用库,我有我理由证明库达不到我的使用要求。)
现在现象是,我用不固定的逻辑(中断程序)使能脉冲然后又禁止脉冲。脉冲的宽度是毫秒级的,一定不快。偶尔,伺服的命令脉冲读数比plc程序里面的高速计数器多了1个脉冲。反复不断地使能禁止,使能禁止,只会发现伺服收到的脉冲逐渐比高速计数器的增多。
为了回避一些问题,我也做了另外一种实验。pwm波周期4微秒,宽度2微秒,一直发了十几秒钟。结果高速计数器的读数跟伺服的读数一致,从而反应线路可以承受高频的通过,不会发生误差。
然而,却在一个毫秒级的脉冲串当中,竟然出错了。
我已经没有什么可以怀疑了。只剩下这个“窄脉冲”的问题没法解释。
我的设想
假如这样的一个窄脉冲真实存在,而伺服的带宽是相当的宽的,这个脉冲被伺服接收了,而高速计数器没有反应,就会出现这样的结果。