从流程图上可以看出控制软件要求能不断地得到联网变频器的状态,这就要求控制软件不停地下发变频器的状态查询指令。这个功能通过在程序里设定了一个计时器SetTimer(1,10000,NULL)完成。定时器使控制软件每10s对变频器进行一次状态查询,检查变频器是否在线。如果在线就会反映这个变频器当前的各种状态,如果不在线会有相应的提示信息显示。计算机与变频器组网时软件的主界面图如图3所示。
图3 控制软件的主界面图
控制软件界面上显示的网络信息和各个变频器的参数信息都要配合相应的数据库才能完成。而对于网络中各个变频器状态信息的获得则要通过计算机串口上传至现场的变频器运行数据实现。下面就分别介绍控制软件是如何对数据库和计算机串口进行操作的。
3 应用DAO技术操作数据库
数据库是现代计算机应用的一个重要组成部分,是人们有效地进行数据存储、共享和处理的工具。有两种主要的数据库类型,即平面数据库和关系数据库。简而言之,平面数据库是一组记录的集合,数据库中的每一个记录都是由字段构成的,第一个字段则包含了与本条记录相关的特定信息。
而关系数据库就像是由若干个平面数据库连接在一起形成的。采用关系数据库能够建立一个记录集合与另一个记录集合之间的关系。在关系数据库中,每一个记录集合称为一张表,表之间的连接是通过关键字实现的,关键字用来确定一条记录的值。
这个控制软件的数据库使用的是平面数据库。数据库中存储了变频器网络的信息和网络中各个变频器的参数。数据库用Access建立,应用DAO作为数据库的访问接口。Microsoft Jet为像Access和Visual Basic这样的产品提供了数据引擎。DAO是使用Microsoft Jet数据库引擎来访问数据库的。VisualC++6.0提供了对DAO的封装,MFCDAO类封装了DAO的大部分功能,从而使VC程序可以使用MFCDAO类方便地进行数据库访问。
下面具体叙述是如何利用数据库完成软件的网络控制功能。首先用Access建立变频器网络的信息表,然后程序中建立一个基类为CdaoRecordset(DAO中封装的一个类)的类Cdata,该类与数据库中的变频器网络信息表相联系。当要在网络中添加一个变频器时,不仅要在变频器网络信息表上进行添加数据操作,还要在数据库中添加一个关于该变频器功能码的新表。对变频器网络信息表的添加操作用了一个CdaoRecordset类数据库指针m_leftptr。CdaoRecordset类是对DAO记录集对象的封装,代表从数据源中选择的一种记录,管理数据库中表里记录的操作。而要在数据库中添加一个新增变频器功能码的新表,需要设定一个CdaoDatabase类的变量。CdaoDatabase类是对DAO数据库对象的封装,它代表了一个数据库连接,管理数据库的操作和数据库中表的操作。下面是网络中添加一个变频器时对数据库的操作程序。