组态回放

Navigation:  组态系统介绍 > 组态系统与iHyperDB >

组态回放

Previous pageReturn to chapter overviewNext page

组态回放:是iCentroView+iHyperDB系统所支持的特殊功能。基于iHyperDB实时历史数据库,iCV组态画面通过简单配置及控件使用,即可快速组态实现回放历史动态画面的功能。可按时间段及设定步长查看历史监控画面。

 

u组态回放控件的画面组态方法

u组态回放控件的脚本调用方法

 


u组态回放控件的画面组态方法

1.在iCV安装时,选择安装“iHyperDB插件”后,就可以使用组态回放的控件及相关函数。

注意:

iHD的组态不能和iCV组态安装在同一台机器,所以在同一台机器中选择安装了iCV的“iHyperDB插件”,安装iHD时,不要选择安装“组态”功能。

 

2.在组态画面编辑页面中,对象的动画数据源均需配置成来自iHyperDB,具体配置选择方法,详见:组态系统介绍>用户指南>组态对象>变量选择

 

3.在组态画面编辑页面中,添加回放控件。

通过添加hdZTPlay控件,可以令当前画布中的对象动画数据源切换为:历史数据回放和实时数据显示2种模式。若需要对整个客户端的多个画面生效,建议将hdZTPlay控件添加在导航栏等bsp画面中,并配以脚本实现控制功能。

hdZTPlay控件添加方法:

在组态画面编辑状态下,点击工具栏上的插入ActiveX控件按钮,或通过顺序点击“菜单>绘图>ActiveX控件”,如下图。在组态画面上拖动鼠标,设置控件合适的大小。

ztPageReview_PageReviewAdd

 

双击控件上的配置按钮如下图,可以设置回放控件默认属性。当然画面在运行状态下,也可点击此配置按钮,在线修改下图参数。

ztPageReview_PageReviewCfg

 

至此回放控件添加配置完毕。

 

4.回放控件的运行态

如下图,为回放控件的运行态:

ztPageReview_PageReviewButton

回放进度条左侧显示当前回放起止时间,右侧显示当前回放时间,拖动进度条可以调整当前回放进度。

回放进度条右侧四个按钮分别为:启动/暂停回放、回放快进倍速、停止回放、动态参数设置。

 

回放控件提供一系列函数供应用开发需要,比如:提供GetMode()函数供组态脚本调用,可获取当前回放模式,返回值为零时表示实时数据显示模式,值为1时表示历史数据回放模式。

ztPageReview_PageReviewDisplay2

 

 

u组态回放控件的脚本调用方法

 

方法

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

方法说明:

方法名称

函数说明

参数说明

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

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

 

事件

事件说明

事件名称

事件说明

ModeChange

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

vb脚本编写样例

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

Sub ZTPLAYCONTROL5_ModeChange()

Text23.Text = “Hello”

End Sub