zichen8716
我行,我行,我行行行!!!
级别: 家园常客
精华主题: 0
发帖数量: 266 个
工控威望: 527 点
下载积分: 4363 分
在线时间: 59(小时)
注册时间: 2010-03-25
最后登录: 2022-12-28
查看zichen8716的 主题 / 回贴
楼主  发表于: 2014-03-28 09:49
1、Wincc online trend控件实现多条曲线查询

项目要求,查询任意时段内的两条曲线的历史数据
首先在变量记录中设置需要记录的变量,如果需要在一个控件内显示两条曲线,做数据归档时,归档属性最好是一致的,归档属性不一样是否会出现问题,这个没测试,有兴趣的可以测试一下。
数据记录设置OK后,新建画面插入online trend控件,我的项目需要把趋势打印出来,所以把控件的工具栏全部隐藏。
双击online trend控件,添加需要显示的归档变量。选择公共X,Y轴等参数。坐标显示根据自己使用选择,基本上不用设置太多参数。
添加需要显示的历史归档变量后,就需要写脚本了,西门子工控网论坛有实例,实例提示针对于一条曲线时使用,咨询西门子技术支持,如果需要同时显示两条曲线时,需要对两条曲线分别进行设置属性“控件.index=0,1”,但是测试其实只设置index=0的起始及结束时间就OK,就是论坛给的实例不是只针对于一条曲线,两条曲线时同样适用,再多的曲线就没测试了。
西门子默认的时间格式为“MM-DD-YYYY HH-MM-SS”格式,所以在设置趋势起始及结束时间时需要注意。
注:导入归档数据需要一定的时间,建议按钮触发。尝试在画面打开时触发脚本,有的时候会出现历史数据加载不上来。
脚本如下,仅供参考
Dim objConnection  
Dim strConnectionString

Dim strSQL  
Dim objrs
Dim chaxun

'定义曲线控件
Dim TREND
Dim strval_1
Dim strval_2
Dim strval_t1
Dim strval_t2

'初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。

'初始化程序,省略N行。。。。。。。。。。。。。。。。。。。。。。。。。。。。

chaxun=HMIRuntime.Tags("管号查询输入").Read
strConnectionString = "Provider=MSDASQL;DSN=REPORT;UID=;PWD=;"
  strSQL = "select * from report where guanhao='"&chaxun&"';"
   Set objConnection = CreateObject("ADODB.Connection")
   objConnection.ConnectionString = strConnectionString
objConnection.Open
   Set objrs = CreateObject("ADODB.RecordSet")
  objrs.open  strSQL,objConnection
/赋值程序,省略,,,,,,,,,,,,,,,,,,,,,,/

/赋值程序,省略,,,,,,,,,,,,,,,,,,,,,,/

objrs.close
Set objrs = Nothing
  objConnection.Close
   Set objConnection = Nothing  
'趋势时间设定
Set trend = ScreenItems("控件1")
strval_r=HMIRuntime.Tags("测试日期_read").Read
strval_t1=HMIRuntime.Tags("开始时间_read").Read
strval_t2=HMIRuntime.Tags("测试时间_read").Read

strval_1=strval_r+" "+strval_t1
strval_2=strval_r+" "+strval_t2

trend.Index=0
trend.Online=False
trend.TimeRange=False
trend.BeginTime=strval_1
trend.EndTime=strval_2
trend.Command="Reload"
失败并不意味你浪费了时间和生命。失败表明你有理由重新开始