关于组态王数据库绘制曲线的方式

更新时间:2023-10-25 09:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

关于组态王历史曲线的绘制

在作项目中,常常遇到需要查看工程的历史数据图和历史曲线。 在使用组态王的过程中遇到了以下问题。

问题;工程要求要能查找历史数据和查看历史曲线。组态王内置历史曲线可以绘制,但数据

不能第三方访问。且历史数据记录不能停止。

要绘制历史曲线,首先要有历史数据,组态王本身有历史数据库。也可使用第三方数据库。

组态王自己的历史数据库不开放(只可用函数语句表另存为),第三方不能访问。 第三方数据库是微软的access数据库或者是SQL sever 数据库等。

在测试access数据时发现。组态王保存的历史数据在绘制历史曲线调用时,有个日期时间格式的数据需要选取。但在数据库里边没有符合这个格式的选项。

经查看发现组态王合成的日期时间格式在access里是字符串(文本)格式,不符合

datetime格式。于是手动更改为datetime格式,组态王可以调用历史数据绘制曲线了。但数据又不能插入了。测试失败。

方法1.在SQL several数据库中同时插入两个一摸一样的表格,表格1插入数据,表二在表1

插入时同时插入数据并转换数据格式,然后在历史曲线控件里调用。

在表格1调用触发器,然后再插入数据到表格2,同时更改日期时间字符串为

datetime格式,直接在组态王历史控件里调用即可。 create trigger myinserta

on MODE for insert as

declare @a char(15),@b int,@c char(8),@d char(10),@e char(24),@f int,@g int,@h int,@i int,@j int,@k int,@l int,@m char(10); select @a=工件号编码,@b=序号,@c=时间,@d=日期,@e=DATATIME,@f=毫秒,@g=轨顶温度,@h=轨顶温度,@i=轨低温度,@j=轨低温度,@k=喷风温度,@l=喷风压力,@m=用户 FROM INSERTED

INSERT INTO MODE1 values

(@a,@b,@c,@d,@e,@f,@g,@h,@i,@j,@k,@l,@m);

上面第一个触发器定义中间变量和数据长度和格式,定义的格式应当和组态王模板设定的长度和数据类型一致。

下面的触发器在每次插入触发时更改DATATIME列的格式为datetime日期时间格式。

create trigger STTTOTIMEa on MODE --(//记录体名称) ALTER TABLE MODE1

ALTER COLUMN DATATIME datetime;

方法2还是使用SQL several数据库。

在定义组态王模板时定义一个内部空变量,定义类型为long,长整型。随模板一起插

入,在组态里,转换DATATIME字符串为datetime日期时间格式,并赋值给定义的长整型(long),在组态历史控件里就可以调用了

未实践 注;此方法为山东网友所指导。

方法3和方法2类似,采用access数据库,没有触发器,需要后台编写查询语句生成查询

表。

A.在查询语句表格里添加新的变量命名为“新日期”,更改数据表里的“日期时间”文本为”日期/时间”格式【用CDate([日期时间])】

B.添加需要的变量,有日期时间后,可以任意在组态王历史曲线控件里边调用。

方法4.应该是所有的数据库都可通用。在数据插入时,在数据库编程。插入本机的系统时间

为数据采集时间。

Access经过测试可以使用。

A. 在组态王数据模板里新添加一个变量命名为datetime,数类型为long,选中可以为

空值。

B. 运行组态王, SQLConnect( DeviceID, \连odbc数据库

SQLCreateTable( DeviceID, \表格1\表格1\在数据库插入表格模

C. 在access数据库里打开插入的表格1,转换到设计视图,更改datetime的数据类型

为“日期/时间”

D. 在“常规”下设置“默认值”为“NOW()”//在数据插入式自动插入当前的时间。

经测试日期和时间可在组态王控件日期时间空间里显示,历史曲线绘制完成。

学习了点sql语句,编程自由度很高,不仅仅局限以上的解决方式(像宏和vba脚本都没用到)

学无止境??

2016/8/2 10:49 qq316355917

朗利电气设备有限公司

本文来源:https://www.bwwdw.com/article/rvz2.html

Top