登录
首页 DCS论坛 DCS论坛
回帖 发帖
正文

主题:求教:浙大中控的DCS算法搭建。

点击:602 回复:5

大佬们,请教一下,如何使用浙大中控DCS的功能块实现:30s内检测到3次故障脉冲信号触发报警?
23-09-28 10:33
这个问题还没解决吗?
看你另外一条帖子好像很多人告诉你方法了.
为了你这个问题, 我特意用动画仿真了. 当然为了快速我用的语言不是功能块或者梯形图.
语句大概如下,你可以按照这样转换到功能块, 或者等我装了软件再给你试功能块:
 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秒后没有报警取消, 在另外语句.
完整代码或功能图再议, 我只是给思路.以下是报警示意图.
附件 微信截图_20230928110327.jpg
23-09-28 11:03
谢谢大佬。问题还未解决。貌似没有直接定义数组的功能块。
23-09-28 11:30
浙江中控ecs-700吗? 我这没它软件. 我看看其它的软件功能块.
23-09-28 14:33
知道逻辑就OK。
现成的没有,搞不定就请外援呗
23-09-30 17:14
检测“故障脉冲信号”事件,得到bool on,随系统不同而变化。
30s内检测到3次bool信号,触发报警,可以解决。
这个问题解决了吗?有个思路。事件发生,30秒计时开始...:计数器+1,>=3,报警,计数器清零,30秒计时清零;或30秒到,计数器清零,30秒计时清零。
仔细考虑了一下,此法不严谨,有漏报警。但还是可以解决。需要2套计数器,计时器。
最后修改:2023/10/11 7:50:35
23-10-08 16:38

工控新闻

更多新闻资讯