您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术嵌入式Linux组态软件实时数据库的设计 正文
嵌入式Linux组态软件实时数据库的设计

嵌入式Linux组态软件实时数据库的设计

点击数:7277 次   录入时间:03-04 11:48:48   整理:http://www.55dianzi.com   嵌入式系统-技术

  /* 描述域表数据项的数据结构 */

  typedef struct {

  char domIndex[3];//域号

  tbTag_item *tbTag_ptr;//该域的数据点表地址

  } tbDom_item;

  /*描述数据点表数据项的数据结构*/

  typedef struct {

  char tagIndex[3];//数据点号

  tag_node *tag_ptr;//指向数据点的指针

  int shmid;//存储该数据点的共享内存标号

  char name[NAME_LEN + 1];//数据点名称

  } tbTag_item;

  域表与数据点表的数据项内容与关系结构示意见图 3。

  3.4 一组访问实时数据库的通用编程接口

  作为投入现场运行的监控组态软件的核心部件,实时数据库需要为现场操作人员提供类 似传统数据库管理系统的实时数据查询与更新等功能。另外出于设备无关性的考虑,也需要 为监控组态软件的其他应用程序提供一组用来直接访问实时数据库的接口函数。这样,对于 其他工控设备与实时数据库进行数据交换的需求,只要利用这样一组接口函数开发不同的驱 动程序便可得到满足,从而增强了实时数据库系统的通用性与开放性。下面列出了一些较为 常用的数据访问接口函数。

  int CreatTag();//创建数据点

  char *GetNameByID(char *tagID);//通过数据点ID 取得数据点名

  char *GetIDByName(char *tagName);//通过数据点名得到数据点ID

  pv_type_set GetPVType(char *tagName);//通过数据点名得到数据点过程量值类型

  int GetPVByName(char *tagName, pv_data_set *pv);//根据数据点名获取数据点过程量值

  int SetPVByName(char *tagName, pv_data_set *pv);//根据数据点名写入数据点过程量值

  5 结语

  实时数据库作为监控组态软件的核心部分,其组织结构是否高效直接影响到与底层 I/O 过程设备的数据交换,与实时监控界面程序的数据传递,与组态软件中其它运行程序的实时 通信等多项技术指标。所以,其设计要求结构精简,存储高效,并且具备相当的可靠性与稳 定性。经实际应用证明,由本文提出的利用共享内存,文件系统,通用数据库多层级存储介 质相结合的实时数据库存储结构,能较充分地利用Linux 操作系统实时多任务方面的特性, 较好地满足工业生产现场环境的实时响应要求。另外,实时数据库的开发是一个有着广阔前景的研究领域,其还包括诸如I/O 调度与缓冲管理,恢复与超载管理等多项实现内容[7]。

  本文作者创新点:本文利用Linux 操作系统对多任务并发处理操作的良好支持,采用二 级地址索引为数据点独立分配共享内存空间,以多进程调度的方式实现了数据采集与处理从 而提高了系统吞吐量和数据存取效率。同时,多层级的实时数据库存储结构能较好地兼顾工 业生产环境的时间约束与数据图形表现多样性的要求。



上一页  [1] [2] 


本文关键字:嵌入式  软件  Linux  数据库  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术