您当前的位置:五五电子网电子知识电工技术电工文摘控制软件系统实时数据库设计 正文
控制软件系统实时数据库设计

控制软件系统实时数据库设计

点击数:7250 次   录入时间:03-04 12:01:16   整理:http://www.55dianzi.com   电工文摘
void SetObjectInivalue(float inivalue) {ObjectInivalue=inivalue;}
void SetObjectMinvalue(float minvalue) {ObjectMinvalue=minvalue;}
void SetObjectMaxvalue(float maxvalue) {ObjectMaxvalue=maxvalue;}
void SetObjectUnit(CString unit) {ObjectUnit=unit;}
……
//定义输出接口,提供给基本数据操作和存盘、报警操作
CString GetObjectName() { return ObjectName; }
float GetObjectInivalue() { return ObjectInivalue;}
float GetObjectMinvalue() { return ObjectMinvalue;}
float GetObjectMaxvalue() { return ObjectMaxvalue;}
CString GetObjectUnit() { return ObjectUnit;}
……
//现场的实时值操作
void SetFieldvalue(float valuefield) {Fieldvalue=valuefield; }
float GetFieldvalue() { return Fieldvalue; }
};

实时数据库类的设计,用 VC++声明的头文件如下:
class RealDB : public CObject

private :
AnalogType *TemAnalog;
SwitchType *TemSwitch;
POSTTTION temPOSTTTION;
int DataNum;
private:
//创建 Access 历史数据库和表
BOOL CreateNewTable();
BOOL CreateHistoryAlarmDB();
BOOL CreateHistoryObjectTable();
public:
CDaoTableDef *m_newtable;
CDatabase m_dataobject;
CObList m_listdata; //数据对象的链表
CString IndexTag[200]; //定义最大数据对象个数 200
int AnalogSwitchSign; //定义模拟和开关型的分割位置
//操作
public:
RealDB();
virtual ~RealDB();
BOOL CreateDataObject(); //创建数据对象
//数据对象的基本操作
BOOL GetProFromName(CString Name, int Type , float InitV ,CString Unit ,
float MaxV , float MinV , int PointN );
BOOL GetProFromID(int id,CString Name, int Type , float InitV ,CString Unit ,
float MaxV , float MinV , int PointN );
int GetIDFromDataName(CString dataname); //通过标记名取得 ID 号
CString GetDataNameFromID(int id); //通过 ID 取得数据对象的名称
int GetDataType(CString Name);
int GetAlmDataName(CString name[200]); //报警数据对象集合
int GetSaveDataName(CString alarmname[200]); //保存数据对象的集合

//数据对象的现场值读写操作
BOOL GetvalueFromName(CString name,float value); //通过标记名取得现场值
BOOL SetvalueFromName(CString name,float value); //通过标记名将现场值写入数据对象中
BOOL GetvalueFromID(int id,float value); //通过 ID 号取得现场值
BOOL SetvalueFromID(int id,float value); //通过 ID 号写入现场值
BOOL GetvalueArrayFromID(int Num,int id[],float value[]);//成组读取数据对象的现场值
BOOL SetvalueArrayFromID(int Num, int id[], float value[]);//成组写入数据对象的现场值
……
};

4 结束语
    实时数据库设计是先进控制软件设计的重要组成部分,是难点部分,本文通过对实时数据库的概述和分析,论述了实时数据库模块的实现方法,以面向对象的编程方式给出了定义类的部分代码。实时数据库系统复杂,由于篇幅有限,本文没有一一详细说明。笔者所开发的实时数据库可以与已经开发的先进控制软件连接起来,已经在实验室调试通过,还有一些工作(如实时数据库管理系统、实时数据库接口等)也正在进行。

上一页  [1] [2] 


本文关键字:软件  数据库设计  电工文摘电工技术 - 电工文摘