[100分]征集:对于持续报警状态的处理(传播与记录报警事件),应采用什么较好的策略?

rogerOO7 2007-08-01 02:58:13
需求:
系统中有一个或多个事件源,其都有一个报警状态,标识了该事件源是否处于报警状态;
当事件源产生报警时,就会产生一个报警事件,而且改变事件源的状态为报警状态,系统需要对该事件进行记录,并且需要把报警事件通知给客户端,使用户对此报警进行处理.

问题描述:
系统运行过程中事件源因某种条件触发了报警,此后较长一段时间内,报警条件一直没有改变,事件源一直处于报警状态。而产生报警条件的数据可能采样频率比较频繁,比如5毫秒一次数据采样。
如果每采集一次数据就产生一次报警事件,就会产生庞大的报警事件需要进行记录和传播,会占用巨大的系统资源来对此进行处理。

请问:
对此系统采用什么策略才能更好处理这种持续报警事件?
...全文
287 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
rover___ 2008-05-18
  • 打赏
  • 举报
回复
标记一个接警状态。这个状态下,说明相应客户已经得到报警,并正在采取措施,此后相同报警不再警告。直到警报解除。
cceczjxy 2007-12-26
  • 打赏
  • 举报
回复
支持zhulinpptor
zhulin
等 级:
发表于:2007-11-20 11:24:2314楼 得分:0
由客户决定!!!
不要让自己臆测客户需求!!!


-------------------
支持

具体看客户怎么用这个状态.

zhoujianhei 2007-11-21
  • 打赏
  • 举报
回复
在我们的控制系统中是这样处理的:

报警控制模块,有一个报警队列,用于保存当前用户还没有处理的报警,而用户处理过的报警从此队列中清除。
当新的报警产生时,首先检查该队列是否存在相同的报警,存在则放弃这个新报警,不存在则添加。
pptor 2007-11-20
  • 打赏
  • 举报
回复
由客户决定!!!
不要让自己臆测客户需求!!!
飞哥 2007-11-20
  • 打赏
  • 举报
回复
支持zhulinpptor
zhulin
等 级:
发表于:2007-11-20 11:24:2314楼 得分:0
由客户决定!!!
不要让自己臆测客户需求!!!

_石头_ 2007-11-13
  • 打赏
  • 举报
回复
原来狗狗也是搞电力系统的阿!呵呵!幸会幸会!!


a. 根据数据刷新周期,不间断地报警;
例如:每采集到一次温度超过100度,就产生一次报警事件。
如果每采集一次数据就产生一次报警事件,就会产生庞大的报警事件需要进行记录和传播,会占用巨大的
系统资源来对此进行处理。用户如果还不能及时处理,但还是不断地接收到报警,可能会感觉比较啰嗦。
------------------------------------------------------------------------------------

可以这样来处理:
为每次采样数据定义一个报警状态标志,如果采集到的温度超过报警域值(100)时,首先判断前一次的报警标志,如果该标志处在已报警状态,则本次不报警,但要把本次的报警标志设立为已报警状态,如果本次采集没有达到域值,则将本次报警标志清除,当下一次超过域值时,检测到本次的报警标志为清除状态,就会触发报警事件。----依次循环,确保了每次事件只触发一次报警
对于客户端,我们可以每次报文中都插入一个报警状态标志,由客户端自行根据报警标志表示的报警事件类型来判断该报警事件是否已经接收到,如果已经收到则不作任何处理,相反,如果未收到,则应重发!----这样就免除了用时间定时发送报警事件,一则避免了繁琐,二者实时性较强!
expter 2007-08-09
  • 打赏
  • 举报
回复
?监听信息、
expter 2007-08-09
  • 打赏
  • 举报
回复
。。。

我看看。。

up
simon031187 2007-08-09
  • 打赏
  • 举报
回复
b. 只报进入和退出报警状态;
因为系统一直处于报警状态,只是在开始报警时产生一次报警事件,通知在线的客户端。
存在的问题是:如果客户端进入系统比报警时间晚,则客户端就会接收不到报警事件。

我觉得只要在这个基础上完善一下就行了。
可以把报警事件做成一个消息队列,发送到客户端的时候,客户端返回确认信息。
如果客户端没运行,则队列一直保留,不会丢报警事件。
goodluckyxl 2007-08-09
  • 打赏
  • 举报
回复
告警发生过后 如果不恢复将不会持续告警
直到恢复后 再次发生告警才认为再次告警

goodluckyxl 2007-08-09
  • 打赏
  • 举报
回复
没有经验的可能回答的不到位

这个问题还是比较容易的
我们电力设备报警处理是这样的
一般有可能是下位机和上位机采用udp连接
那么产生告警后需要唤醒客户服务程序 这个是主动告警处理
然后将事件通知给上位机
如果唤醒不了 将隔一段时间持续唤醒上报
同样可以采用短信SMS通道上报 等多种上报方式
尽快让告警无障碍的一次上报成功
星羽 2007-08-07
  • 打赏
  • 举报
回复



cun up
weiym 2007-08-06
  • 打赏
  • 举报
回复
客户进入是自己检测当前有哪些报警源,如果有则产生报警
taodm 2007-08-02
  • 打赏
  • 举报
回复
由客户决定!!!
不要让自己臆测客户需求!!!
rogerOO7 2007-08-02
  • 打赏
  • 举报
回复
可能偶前面描述得不够清楚,不容易理解,下面再举例说一下。
--------------------------
需求:
系统中有一个或多个事件源,其都有一个报警状态,标识了该事件源是否处于报警状态;
当事件源产生报警时,就会产生一个报警事件,而且改变事件源的状态为报警状态,系统需要对该事件进

行记录,并且需要把报警事件通知给客户端,使用户对此报警进行处理.

问题描述:
系统运行过程中事件源因某种条件触发了报警,此后较长一段时间内,报警条件一直没有改变,事件源一

直处于报警状态。而产生报警条件的数据可能采样频率比较频繁,比如5毫秒一次数据采样。
例如:温度超限报警系统,温度数据是从某个测量设备采集得到,当温度一直超过100摄氏度时,系统就

会处于报警状态。如果温度一直不于低100度,系统就一直处于报警状态。

三种不同的方案:
a. 根据数据刷新周期,不间断地报警;
例如:每采集到一次温度超过100度,就产生一次报警事件。
如果每采集一次数据就产生一次报警事件,就会产生庞大的报警事件需要进行记录和传播,会占用巨大的

系统资源来对此进行处理。用户如果还不能及时处理,但还是不断地接收到报警,可能会感觉比较啰嗦。


b. 只报进入和退出报警状态;
因为系统一直处于报警状态,只是在开始报警时产生一次报警事件,通知在线的客户端。
存在的问题是:如果客户端进入系统比报警时间晚,则客户端就会接收不到报警事件。

c. 根据指定间隔定期报警。
这种策略就结合前两种方案的特点,进入报警状态时产生一次报警事件,如果事件源还一直处于报警状态

,就每隔一定的时间产生一次报警事件,以通知客户。
这也有个问题,就是时间间隔大小的选择问题,如何才是最优的报警间隔呢?

一般的报警系统或工控系统会如何选择这些策略?


请问:
对此系统采用什么策略才能更好处理这种持续报警事件?
对应的报警事件如何兼顾提醒作用和处理压力。

MPTD_Fire 2007-08-01
  • 打赏
  • 举报
回复

强行改
weiym 2007-08-01
  • 打赏
  • 举报
回复
为什么要采集,报警源产生报警事件事件时通知客户就可以了么,比如说ID号为多少的报警源启动报警或停止报警.
jixingzhong 2007-08-01
  • 打赏
  • 举报
回复
纯 Mark

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧