组态回放

Navigation:  功能明细 > 数据展示 > 组态展示 >

组态回放

Previous pageReturn to chapter overviewNext page

控件方式使用组态回放

组态回放功能需要在组态画面添加hdZTPlay控件,通过该控件可以切换历史数据回放和实时数据显示2种模式,切换操作对当前画面运行的客户端有效,建议在导航栏等bsp画面中添加。

下面是2个效果图:

ztPageReview_1

ztPageReview_2

 

组态编辑中添加ocx控件如下:

ztPageReview_3

 

注意在组态画面上拖动设置控件合适的大小。

编辑状态下双击控件上的配置按钮,可以设置回放控件默认属性:

ztPageReview_4

 

配置回放控件上面操作完成就可以了。

另外回放控件提供GetMode()函数供组态脚本调用,获取当前回放模式,返回值为零时表示实时数据显示模式,值为1时表示历史数据回放模式。

 

组态画面运行时回放控件的按钮可以控制启动和暂停回放、回放快进倍速、停止回放、动态设置回放参数。回放进度条左侧显示当前回放起止时间,右侧显示当前回放时间,拖动进度条可以调整当前回放进度。

ztPageReview_1

 

脚本方式使用组态回放

方法

组态回放提供一些列的方法,通过调用方法实现界面回放配置与控制。

方法说明

方法名称

函数说明

参数说明

GetStartTime

获取开始时间

输入:空

返回值:字符串组态回放的开始时间

默认值:为当前时间往前一小时

SetStartTime

设置开始时间

输入:组态回放的开始时间,格式为  yyyy-mm-dd hh:mm:ss

返回值:参数正确,返回0,否则,返回错误码

约束:开始时间要小于结束时间

GetEndTime

获取结束时间

输入:空

返回值:组态回放结束时间

默认值:当前时间

SetEndTime

设置结束时间

输入:组态回放的结束时间,格式同开始时间

返回值:字符串同开始时间

约束:结束时间必须大于开始时间

GetPlaySeg

获取历史数据播放间隔

返回值:整型值历史数据播放的间隔

默认值:5秒

SetPlaySeg

设置历史数据播放间隔

输入:播放数据的间隔秒数

返回值:如果设置成功为0, 否则返回错误码

约束:不能小于等于0,也不能大于结束时间减去开始时间的间隔

GetPlayTimeSec

获取回放控件游标位置的时间

输入:

返回值:long ,显示的是从197011日到现在的秒数。

GetValueMode

获取取值模式

输入:空

返回值:整形0或者1 0表示前向插值,1表示线型插值

默认值:0,前向插值

SetValueMode

设置取值模式

输入:取值模式整形值0 ,或者1

返回值:成功为0,否则错误码

约束:只能是0, 1

GetBackColor

获取控件背景颜色

输入:空

返回值:控件背景颜色的RGB整形值

默认值:黑色

SetBackColor

设置控件背景颜色

输入:vb中直接使用RGB函数

返回值:0

约束:无

GetTextColor

获取控件上字体颜色

输入:空

返回值:控件字体颜色的RGB整形值

默认值:白色

SetTextColor

设置控件上字体颜色

输入:vb中直接使用RGB函数

返回值:0

约束:无

Play

播放

Pause

暂停

Stop

停止

ReSetPlayTime

重新设置播放节点

输入:整型值

返回值:设置成功为0,否则错误码

约束:0-100之间

SpeedUpPlay

加速播放

输入:整型值

返回值:设置成功为0,否则错误码

约束:只能是1,2,4,8,16,32,1表示加速1倍,2表示加速4倍,32表示加速速率为1

默认值:1

GetMode

获取回放模式

输入:

返回值:整形 ,0表示实时数据回放,1表示历史数据回放

 

方法在Vb中脚本编写样例:

获取组态回放的配置数据

在Test.bsp中添加4个IO控件,分别为IOStartTime, IOEndTime, IOPlaySeg, IOValueMode,添加2个矩形控件RectangleBGColor,RectangleTextColor;添加一个按钮BsButtonSet,在脚本中添加按钮的Onclick事件,编辑脚本如下:

 

Sub BSButtonSet_OnClick()

'get config data

IOStartTime.Text = ZTPLAYCONTROL5.GetStartTime

IOEndTime.Text = ZTPLAYCONTROL5.GetEndTime

IOPlaySeg.Text = ZTPLAYCONTROL5.GetPlaySeg

IOValueMode.Text = ZTPLAYCONTROL5.GetValueMode

RectangleBGColor.FillColor ZTPLAYCONTROL5.GetBackColor

RectangleTextColor.FillColor = ZTPLAYCONTROL5.GetTextColor

End Sub

 

设置组态回放的参数

在Test.bsp中再添加4个windows的标准Edit控件,分别为EditStartTime, EditEndTime, EditPlaySeg, EditValueMode, EditBGColor,以及 EditTextColor,编辑脚本如下:

Sub BSButtonSet_OnClick()

'get old config data

IOStartTime.Text = ZTPLAYCONTROL5.GetStartTime

IOEndTime.Text = ZTPLAYCONTROL5.GetEndTime

IOPlaySeg.Text = ZTPLAYCONTROL5.GetPlaySeg

IOValueMode.Text = ZTPLAYCONTROL5.GetValueMode

RectangleBGColor.FillColor ZTPLAYCONTROL5.GetBackColor

RectangleTextColor.FillColor = ZTPLAYCONTROL5.GetTextColor

 

'set new config data

'set start time

If EditStartTime.WindowText<> "" Then

IOStartTime.Text = EditStartTime.WindowText

End If

nRet = ZTPLAYCONTROL5.SetStartTime(IOStartTime.Text)

If nRet <> 0 Then

MsgBox "Start time Invalid"

End If

 

'set end time

If EditEndTime.WindowText <> "" Then

IOEndTime.Text = EditEndTime.WindowText

End If

nRet = ZTPLAYCONTROL5.SetEndTime(IOEndTime.Text)

If nRet <> 0 Then

MsgBox "End Time Invalid"

End If

 

'set Play seg

Dim nPlaySeg

strPlaySeg = IOPlaySeg.Text

nPlaySeg = Int(strPlaySeg)

temp = EditPlaySeg.WindowText

If temp <> "" Then

strPlaySeg = EditPlaySeg.WindowText

nPlaySeg = Int(strPlaySeg)

End If

nRet = ZTPLAYCONTROL5.SetPlaySeg(nPlaySeg)

If nRet <> 0 Then

MsgBox "Play Seg Invalid"

End If

 

'set Value mode

Dim nValueMode

strValueMode = IOValueMode.Text

nValueMode = Int(strValueMode)

If EditValueMode.WindowText <> "" Then

strValueMode = EditValueMode.WindowText

nValueMode = Int(strValueMode)

End If

nRet = ZTPLAYCONTROL5.SetValueMode(nValueMode)

If nRet <> 0 Then

MsgBox "Value Mode Invalid"

End If

 

'set back color

If EditBGColor.WindowText <> "" Then

strcolor = Split(EditBGColor.WindowText, ",", -1, 1)

RectangleBGColor.FillColor = RGB(strcolor(0),strcolor(1),strcolor(2))

End If

ZTPLAYCONTROL5.SetBackColor RectangleBGColor.FillColor

 

'set Text color parse RGB value

If EditTextColor.WindowText <> "" Then

strcolor = Split(EditTextColor.WindowText, ",", -1, 1)

RectangleTextColor.FillColor = RGB(strcolor(0),strcolor(1),strcolor(2))

End If

ZTPLAYCONTROL5.SetTextColor RectangleTextColor.FillColor

End Sub

 

播放,暂停,停止,加速, 重新设置播放节点

在Test.bsp中加入五个按钮,BSButtonPlay, BSButtonPause, BSButtonAccelerate BSButtonStop,BSButtonReSet,添加EditRate, 和EditPercent输入框,在脚本编辑中添加5个按钮的On_click事件:

Sub BSButtonPlay_OnClick()

ZTPLAYCONTROL5.Play

End Sub

 

Sub BSButtonPause_OnClick()

ZTPLAYCONTROL5.Pause

End Sub

 

Sub BSButtonAccelerate_OnClick()

rate = EditRate.WindowText

nRate = Int(rate)

nRet = ZTPLAYCONTROL5.SpeedUpPlay( nRate)

If nRet <> 0 Then

MsgBox "加速速率输入不合法"

End If

End Sub

 

Sub BSButtonStop_OnClick()

ZTPLAYCONTROL5.Stop

End Sub

 

Sub BSButtonReSet_OnClick()

percent = EditReSetPlayTime.WindowText

nPer = Int(percent)

nRet = ZTPLAYCONTROL5.ReSetPlayTime(nPer)

If nRet <> 0 Then

MsgBox "设置新的播放节点的值不正确在0-100之间"

End If

End Sub

 

获取回放控件游标位置的时间

画面布局如下,目标是通过BSButton按钮获取进度条游标位置的时间,并显示在TEXT处:

ztPageReview_5

脚本如下:

Sub BSButton3_OnClick()

Text2.Text = ZTPLAY1.GetPlayTimeSec()

End Sub

 

效果如下:

ztPageReview_6

所取得的结果为197011日0点0分0秒到游标所在处的秒数,可以折算成游标所处时间,也可以结合GetStartTime()函数,从而计算已播放的时间。

 

事件

事件说明

事件名称

事件说明

ModeChange

当回放模式变化的时候触发

vb脚本编写样例

在Test.bsp中,添加一个Text控件,编辑脚本:

Sub ZTPLAYCONTROL5_ModeChange()

Text23.Text = “Hello”

End Sub

©2015. All Rights Reserved.