这个问题还没解决吗?
看你另外一条帖子好像很多人告诉你方法了.
为了你这个问题, 我特意用动画仿真了. 当然为了快速我用的语言不是功能块或者梯形图.
语句大概如下,你可以按照这样转换到功能块, 或者等我装了软件再给你试功能块:
ps[psp]=frameCount/10.0; //注释: 定义一个记录时间的数组ps[3]有3个元素, 在事件到来时记录其时间戳,比如你可以是一个一直累加
的0.1s或者s, 在于你计时的精度要求, 此处我是frameCount你可以忽略..
if(ps[psp]==0) ps[psp]=1; //注释: 这个是为了避免0值比较, 初始化比较不合理
if(psp==2){
if( (ps[psp]-ps[psp-2])<10 ) ph=100; //注释: 如果3次的最后一次记录和最前的在10s内, 那么报警, 此处报警是ph=100忽略
}
else {
if( ((ps[psp]-ps[psp+1])<10 )&&(frameCount>100) ) ph=100; //避免初始报警, 0-3三个记录翻转, 视觉你可以用移动避免翻转
}
psp++;
psp%=3; //注释: 只判断最后3次, 一直有一直报, 10秒后没有报警取消, 在另外语句.
完整代码或功能图再议, 我只是给思路.以下是报警示意图.