int clock; //收到新数据的时间,格式同模拟量结构
};
说明:
为了模拟量统一,告警状态标识符flag这里的枚举数值从10开始,这样,省去了后面在处理告警状态时需要判断变量是属于模拟量还是状态量的工作。
实际工程操作中,状态量的变化,可能是由故障导致设备非法动作,也有可能是工作人员实际操作产生的合法动作。所以,需要引入关联变量(relName[16]),即一定范围内的一个集中指示信号,一个变电站可以用一个这样的指示状态量,也可以有多个,但一般采用一个种类的故障原因指示信号,用于指示动作原因。多个状态量会对应一个关联变量,且关联变量会自动随状态量的变化而变化。在设备进行人为操作时,关联变量不随状态量变化而变化,在发生动作时不会产生告警。当设备动作由非人为造成时,关联变量发生变化,从而产生告警。
3.1.3设备数据结构定义
如下为管理设备的数据结构:
struct SDev
{
int devId; //设备编号
char name[16]; //设备编码,唯一性关键字段
char desc[64]; //设备名称
char devType; //设备类型。1-发电机,2-变压器,3-断路器(开关),4-刀闸
//5-母线,6-线路,7-电容器,8-电抗器
float voltClass; //电压等级,6(kV)、35(kV)等
char groupName[16];//设备归属组
//通信
short channelNo; //通道编号
char comAddr[16]; //通信地址
int portNo; //通信端口号
};
3.1.4 告警数据结构定义
如下为管理告警的数据结构:
struct SEvent //Alarm
{
char devName[16]; //告警设备编码
char dataName[16]; //告警数据编码
float value; //告警时的实际值
int date; //告警的日期。格式为:
//YYYYMMDD:= year*10000+month*100+day
int clock; //告警的时间,格式如上
char soundFlag; //是否语音输出的标志。0:已经语音输出,1:新事件,还没有输出语音
char eventDesc[256]; //告警语句,即需要显示在界面和语音告警的文本语句
int Flag;//数据标志,是否告警状态,0:正常,1-一级上越限告警,2-一级下越限告警
//3-二级上越限告警,4-二级下越限告警
};
注意,此处的Flag标志与soundFlag标志含义不同。Flag表示的是该告警事件的告警状态,用于记录告警事件的告警类型等级,也用于合成语音告警所需要的播报内容。而soundFalg是语音是否与输出标志,表明该条需要语音播报的告警信息是否已经播报过了,防止重复播报。
3.1.5 实时数据管理
如下为对构建的结构体进行实例化的程序代码,
/************结构体实例化**********************/
- 上一篇:AT89S51单片机的车载应答器设计方案
- 下一篇:89C52单片机LED点阵视屏动画显示系统设计
-
-
-
-
-
-
-
杂拟谷盗体内共生菌沃尔...
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
中考体育项目与体育教学合理结合的研究
河岸冲刷和泥沙淤积的监测国内外研究现状
大众媒体对公共政策制定的影响
乳业同业并购式全产业链...
电站锅炉暖风器设计任务书
java+mysql车辆管理系统的设计+源代码
酸性水汽提装置总汽提塔设计+CAD图纸