1、 建立数据库表格
使用ACCESS数据库,建立数据库表,命名“DeviceInfo”。
2、组态王建立内存变量
3、创建记录体
创建与Access数据库关联的记录体。数据类型、字段名称与数据库中表格的相应内容应保持一致。
4、关联数据源
在应用程序启动时添加数据库连接语句。
5、自定义函数
编写自定义函数实现数据库数据的插入,以及时间计算等功能。
函数内容如下所示。
if (var==1)
{
//写入数据库,字段赋值
\\本站点\DB_DESC=name;
\\本站点\DB_START=\\本站点\$日期+""+\\本站点\$时间;
\\本站点\DB_END="";
\\本站点\DB_LENGTH="";
SQLInsert( DeviceID,"DeviceInfo", "BIND" );//向数据中,插入一条记录
}
else
{
string whrStr="描述='"+name+"'and 结束时间='" + " '" ;
string selStr="select * fromDeviceInfo where " + whrStr;
SQLSetStatement( DeviceID, selStr);
SQLExecute( DeviceID, "BIND",0 ); //功能等同sqlselect函数
string startStr = \\本站点\DB_START;
//开始时间转换秒
string midY=StrMid ( startStr, 1, 4 );
string midM=StrMid ( startStr, 6, 2 );
string midD=StrMid ( startStr, 9, 2 );
string midH=StrMid ( startStr, 12, 2 );
string midMi=StrMid ( startStr, 15, 2 );
string midS=StrMid ( startStr, 18, 2 );
long lY=StrToInt ( midY);
long lM=StrToInt ( midM);
long lD=StrToInt ( midD);
long lH=StrToInt ( midH);
long lMi=StrToInt ( midMi);
long lS=StrToInt ( midS);
long startTime= HTConvertTime(lY,lM,lD,lH,lMi,lS);
long endTime= HTConvertTime (\\本站点\$年,\\本站点\$月,\\本站点\$日,\\本站点\$时,\\本站点\$分,\\本站点\$秒);//结束时间转换秒
//计算时间差
long timeLength=endTime-startTime;//单位秒
string endStr=StrFromInt ( timeLength, 10)+"秒";
//写入数据库,所有字段重新赋值
\\本站点\DB_END=\\本站点\$日期+""+\\本站点\$时间;
\\本站点\DB_LENGTH=endStr;
//设置查询条件,当条件相同时更新数据库中的记录
SQLUpdate( DeviceID,"DeviceInfo", "BIND", whrStr);
}
6、数据改变命令语言,引用自定义函数
分别定义作为设备启停信号的bool型变量,并分别用此变量作为数据改变命令语言的变量
7、运行
切换各开关状态模拟设备开启停止,点击查询可以查看设备状态,如果设备已开启却未停止,点查询后只会出现设备开始运行的时间。
