用wincc trend control 显示任意时间段的参数趋势

2020-04-14 15:49

用wincc trend control 显示任意时间段的参数趋势(转)

2007-04-03 11:01

首先,你需要建立2个输入输出域用于输入你要显示的起始时间和结束时间。(变量连接类型为字符型)

然后你需要设立一个按钮(当然也可以直接在你一个按钮脚本中输入)用于将输入的字符型变量转换为时间日期格式。 按钮的VBS脚本为: Sub onClick(ByVal Item) Dim ActDate Dim Year_Sect Dim Month_Sect Dim Day_Sect Dim Date_Mod Dim Date_End Dim ActTime Dim Time_Mod_b Dim Time_Mod_e Dim DateString_b Dim DateString_e

ActDate = Date '当前日期 Year_Sect = Year(Date) ‘提取年份 Month_Sect = Month(Date) ’提取月份 Day_Sect = Day(Date) ‘提取日

Date_Mod = Day_Sect & \ ’然后根据归档的要求将日期重新组合成,日.月.年的格式 ActTime = Time ‘当前时间

Time_Mod_b = DateAdd(\’起始时间减15分钟 Time_Mod_e = DateAdd(\ActTime) ‘结束时间减5分钟

DateString_b = Date_Mod &\’将起始时间编为:日.月.年 时间格式 DateString_e = Date_Mod &\

HMIRuntime.Tags(\'25.02.2004 21:10:00 HMIRuntime.Tags(\ End Sub

这段程序的作用就是查看过去15分钟到过去5分钟的时间段,如果你要显示任意时间,那么只要不调用DateADD函数即可。

接下来你需要设立一个按钮,用于将时间设定起作用。

大体思路是这样的:首先,停止趋势的显示,也就是取消激活(这里只是指趋势控件,而不是指项目),然后将转换的时间写入的控件属性,最后再激活控件,由于控件的时间是根据所有曲线

来的,所以如果(这里指假设)你有3个变量(3条曲线,那么你需要重复3次,也就是说,我们可以对任意的曲线的时间作设定。) C语言脚本如下:

void onClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {

SetPropWord(lpszPictureName,\

//相当于选择控件名为control2的趋势控件的第一条曲线(曲线顺序根据你组态控件时添加变量的先后)

SetPropBOOL(lpszPictureName,\//在线方式的取消

SetPropBOOL(lpszPictureName,\//取消当前的时间范围,方便我们将要定义的时间范围灌入 SetPropBOOL(lpszPictureName,\//将趋势控件取消激活

SetPropChar(lpszPictureName,\//设置起始时间,STRVAR变量为先前VBS中转换过来的

SetPropChar(lpszPictureName,\//设置结束时间

SetPropWord(lpszPictureName,\

//对第二条曲线设置时间,如果你只有1条,那么无需写这段了,如果有多条,那么重复多次,你只需要改变Index后的参数,如第二条曲线,那么就是1,第3条,那么就是2了。 SetPropBOOL(lpszPictureName,\SetPropBOOL(lpszPictureName,\SetPropBOOL(lpszPictureName,\

SetPropChar(lpszPictureName,\

SetPropChar(lpszPictureName,\

SetPropBOOL(lpszPictureName,\

//当所需要的时间曲线都设定完了后,激活控件即可,注意,你如果要对多个曲线做时间范围设定,那么你不能使用公共X轴和公共Y轴属性,否则无法看出效果。 }

#include \

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {

SetPropWord(lpszPictureName,\

SetPropWord(lpszPictureName,\

SetPropWord(lpszPictureName,\

SetPropWord(lpszPictureName,\}

#include \

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName) {

SetPropWord(lpszPictureName,\

SetPropBOOL(lpszPictureName, \

SetPropWord(lpszPictureName,\

SetPropChar(lpszPictureName,\(\

SetPropChar(lpszPictureName,\strVar_2\}

Sub OnClick(ByVal Item) Dim objCon1

Dim strVar_1 'tag for start time Dim strVar_2 'tag for end time

'create objects

Set objCon1 = HMIRuntime.ActiveScreen.ScreenItems(\ Set strVar_1 = HMIRuntime.Tags(\ Set strVar_2 = HMIRuntime.Tags(\

'read tags

strVar_1.Read

strVar_2.Read 'configuration

objCon1.TimeAxisIndex = 0 objCon1.Online = 0

objCon1.TimeAxisRangeType = 1

objCon1.TimeAxisBeginTime = strVar_1.Value objCon1.TimeAxisEndTime = strVar_1.Value End Sub


用wincc trend control 显示任意时间段的参数趋势.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:失血性休克及抢救

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: