(6)
YXDEF.DBF 遥信测点的定义库
用于存放遥信测点信息定义记录,其结构如下:
字段名DH Name JDZT JDON JDOFF CD State
JSDEF.DBF 计算数据库
点 号 含 义设备名称 输入接点状态 接点”断”时显示 是否存档 开关状态 接点”通”时显示 整型 字符 逻辑型 字符 字符 逻辑型 逻辑型 属 性长 度 20 1 10 10 1 1 2用于存放计算信息定义记录,其结构如下:
字段名DH Symb
DLFDSJ.DBF电量峰谷时间分段信息
点 号 含 义计算符号(+-*/=)属 性 整型 字符 长度 1 2用于存放电量时段信息定义记录,其结构如下:
字段名DH 含 义 序号 属 性时段标记时段数(0/1/2) 整型 字符 长度 1 2注: 0:高峰时段 1:低谷时段 2:腰荷时段
YCBBX.DBF 遥测报表定义库
用于存放遥测报表格式定义记录,其结构如下:
字段名 含 义 D01 . . . D18 SJ
序号 属 性报表第一项 整型 字符 长度 8 2 报表最后一项 字符 8 DLBBX.DBF 遥测报表定义库
用于存放电量报表格式定义记录,其结构如下:
字段名 含 义 D01 . SJ 序号 属 性报表第一项 整型 字符 长度2 10 . D16 .·图形库
ZJXT.GR 主接线图文件 YCSJB.GR遥测列表文件 YXSJB.GR遥信列表文件 DLSJB.GR电量列表文件
报表最后一项 字符 10 用于存放图形文件定义记录,其数据结构如下: struct {int Parts; } Attribute;
union { struct { int x1,y1,x2,y2; int Width; TColor Color; } Line;
struct { int x,y; TColor Color; int Size; char Name[20];
char Code[STRLENTH+1]; } String; struct { int x,y; int Point,State; TColor Color; } S00; struct { int x,y; int Point,State; TColor Color; } S01;
struct { int x,y; int Point,State; TColor Color; } S02;
struct { int x,y; int Point,State;
TColor Color; } Data; } Attr; } Element[RECORDLEN];
变电站实时监控系统模型(9)
六、系统设计
本项设计中,本人负责主控模块、画面显示模块、异常显示模块、信息定义模块、作图模块、计算模块、电量积分等模块的编制。 1、主控模块
完成系统主画面的生成、时间单元初始化、用户数据库读入、实时数据库的打开、图形类的申请、串行通信口启动等工作。其代码如下:
__fastcall TFrmMain::TFrmMain(TComponent* Owner) : TForm(Owner) {
time_t t; struct tm *mt;
FILE *Stream;
MonDays[0]=31,MonDays[1]=28,MonDays[2]=31; MonDays[3]=30,MonDays[4]=31,MonDays[5]=30; MonDays[6]=31,MonDays[7]=31,MonDays[8]=30; MonDays[9]=31,MonDays[10]=30,MonDays[11]=31; t=time(NULL); mt=localtime(&t); Year=mt->tm_year+1900; Month=mt->tm_mon+1; Day=mt->tm_mday; Hour=mt->tm_hour; Minute=mt->tm_min; Second=mt->tm_sec; delete mt;
TableYCDef->IndexName=\ TableYXDef->IndexName=\ TableDLDef->IndexName=\ CommSwitch=-1; XTYXGr=new TMyGr; XTYXCls=new TClsDraw; XTYXGr->Image=Image1; XTYXCls->Image=Image1;
Stream=fopen(\ fread(BchTbl,sizeof(BchTbl),1,Stream); fclose(Stream); SynFlag=false; Comm1->StartComm(); }
2、画面显示模块
完成画面图形读入、显示、任务设定。其代码片段如下: void __fastcall TFrmMain::menu_ZJXTClick(TObject *Sender) {
CommSwitch=dtZJXT;
XTYXGr->Image->Canvas->Pen->Color=clWhite;
XTYXGr->Pointer=XTYXGr->Read_GrFile(\ if (XTYXGr->Pointer!=0) { XTYXCls->ClearDraw(); XTYXGr->DisplayGr(); } }
3、异常记录显示模块
将异常记录数据库与一显示表格对应起来,显示变位记录内容。开关变位模块代码如下: void __fastcall TFrmMain::menu_KGBWClick(TObject *Sender) {
CommSwitch=dtKGBWJL; FrmXSBWJL->Show(); }
4、信息定义模块
定义遥测测点、遥信测点、电量测点的有关参数。其中遥测定义子程序代码如下: void __fastcall TFrmjk::JYCDYKClick(TObject *Sender) {
Table1->Close();
Table1->DatabaseName =\ //定义数据库路径
Table1->TableName =\ //定义数据库路文件名 Table1->TableType =ttDBase; //定义数据库类型
Table1->FieldDefs->Clear(); //清除原数据字段
Table1->FieldDefs->Add(\ Table1->FieldDefs->Add(\ Table1->FieldDefs->Add(\ Table1->FieldDefs->Add(\ Table1->FieldDefs->Add(\ Table1->FieldDefs->Add(\ Table1->FieldDefs->Add(\ Table1->FieldDefs->Add(\ //定义各字段
Table1->IndexDefs->Clear(); //清除索引
TIndexOptions MyIndexOptions; MyIndexOptions< Table1->IndexDefs->Add(\创建索引,索引名为IdxDH //MyIndexOptions>>ixUnique; //取消唯一索引选项 //Table1->IndexDefs->Add(\ Table1->CreateTable(); //创建数据库 //Table1->Active=true; Table1->Open(); //提示字段改为中文 Table1->FieldByName(\点号\