关于组态王历史曲线的绘制
在作项目中,常常遇到需要查看工程的历史数据图和历史曲线。
在使用组态王的过程中遇到了以下问题。
问题;工程要求要能查找历史数据和查看历史曲线。组态王内置历史曲线可以绘制,但数据
不能第三方访问。且历史数据记录不能停止。
要绘制历史曲线,首先要有历史数据,组态王本身有历史数据库。也可使用第三方数
据库。
组态王自己的历史数据库不开放(只可用函数语句表另存为),第三方不能访问。
第三方数据库是微软的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, "dsn=aew;uid=;pwd=");//连odbc 数据库
SQLCreateTable( DeviceID, "表格1", "表格1" );//
在数据库插入表格模
板
C . 在access 数据库里打开插入的表格1,转换到设计视图,更改datetime 的数据类型
为“日期/时间”
D . 在“常规”下设置“默认值”为“NOW()”//在数据插入式自动插入当前的时间。
经测试日期和时间可在组态王控件日期时间空间里显示,历史曲线绘制完成。
学习了点sql 语句,编程自由度很高,不仅仅局限以上的解决方式(像宏和vba 脚本都没用到)
学无止境„„
2016/8/2 10:49 qq316355917
朗利电气设备有限公司
关于组态王历史曲线的绘制
在作项目中,常常遇到需要查看工程的历史数据图和历史曲线。
在使用组态王的过程中遇到了以下问题。
问题;工程要求要能查找历史数据和查看历史曲线。组态王内置历史曲线可以绘制,但数据
不能第三方访问。且历史数据记录不能停止。
要绘制历史曲线,首先要有历史数据,组态王本身有历史数据库。也可使用第三方数
据库。
组态王自己的历史数据库不开放(只可用函数语句表另存为),第三方不能访问。
第三方数据库是微软的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, "dsn=aew;uid=;pwd=");//连odbc 数据库
SQLCreateTable( DeviceID, "表格1", "表格1" );//
在数据库插入表格模
板
C . 在access 数据库里打开插入的表格1,转换到设计视图,更改datetime 的数据类型
为“日期/时间”
D . 在“常规”下设置“默认值”为“NOW()”//在数据插入式自动插入当前的时间。
经测试日期和时间可在组态王控件日期时间空间里显示,历史曲线绘制完成。
学习了点sql 语句,编程自由度很高,不仅仅局限以上的解决方式(像宏和vba 脚本都没用到)
学无止境„„
2016/8/2 10:49 qq316355917
朗利电气设备有限公司