亲爱的<芳> 知难而退的吧?嘿嘿!!!西门子S7-200在输出10000Hz的情况下,无论如何也不可能做到用一个程序中相隔20mS的两个时刻去读取到『没有断点』的相邻两个连续的新鲜数据!!
什么叫读出『输出脉冲数据』时出现的“断点”? 我理解这个“断点”就是接连两次读出的两个数据之间存在缺失的数据,形成一个空隔。这个“空隔”就叫做“断点”。譬如:有俩数据“44384”及“44386”之间存在一个缺失的数据:“44385”,它就是该俩数据之间的“断点”。
S7-200的高速脉冲的指标上限是20KHz,也就是说如果连续读取S7-200的(20KHz)高速脉冲数据要不出现“断点”,就得每隔0.05mS的时间就要执行一次读高速脉冲数据的当前值!难道芳有本事能在S7-200上准确的安排出连续的一串只相隔0.05mS的几个读取输出脉冲当前值的指令吗?!!!
芳是在问“哪里说过要连续”是吧?那就请看这芳在179楼的帖子复制图片:
客观规律决定了:PLSY指令让Y00以10000Hz的频率输出高速脉冲,在此前提下,一前一后相隔约20mS的两个时刻所读取DD8140的两个当前值,两个当前值数据之间理所当然有一大段数据(约200个数据)是缺失的!同样,在S7-200上也决不可能例外的挣脱这一客观规律的制约!!
引用<芳>的内容:
『 也不能说是理所当然。上面不是证实了吗。
同是相差20毫秒。有的就一样,有的就不一样。不是吗?』
<Wanggq>回复:
<芳>以为上面证实了什么?
“ 有的相同”譬如DD10与DD12:DD14与DD16是因为你把它们两两组合,分别写在同一个读取脉冲输出数据的“区域”中。这两个“区域”中的D8140的内容分别都是由一个时刻读取输出脉冲数据时写入的!
如果<芳>把这4个32位数据寄存器分别去记录4个时刻所读取的对应4个数据,那么它们就可以分别反应高速脉冲输出过程中的对应4个时刻的数据!
实现分别记录4个时刻的新鲜数据的FX程序,我将在明天抽时间贴出来!这个程序以<芳>贴在205楼的那个梯形图为原型,只需把其中的弱智毛病去掉,然后在该读取数据的时候即时的去读取脉冲计数器的内容写入DD8140,再由DD8140 分别传送给DD10 / DD12 / DD14 / DD16就能在同一个扫描周期里多次获得新鲜的输出脉冲数据!