首页 > 热点 >  >  > 正文

WinCC历史数据利用VB快速录入,学会直接超越同行 聚看点

2023-05-29 12:33:58 来源:互联网

能否快速批量录入历史数据变量?能否动态增、删历史数据控件里数据?能否动态选择控件的时间区间?


(相关资料图)

总之,就是想,省时!高效!灵活!

本文以示例方式来介绍这个话题,包括:

示例功能介绍示例实现步骤示例源程序下载链接

1.功能介绍

动态控制WinCC在线表格控件

1、选择参数组名称(变量组),向控件中添加多条数据

2-3、设定历史数据显示的时间范围

4、设置数据时间间隔

5、查询历史数据

2.组态步骤

创建变量

在WinCC变量管理中创建不同的变量

本例中,每个变量组下包含的变量如表所示:

创建变量归档

在WinCC变量记录下创建变量归档,并添加变量

变量归档下包含的归档变量同上

3.WinCC查询画面

添加画面对象

本例中需要选择查询的参数以及查询的时间段,然后通过一个按钮来执行数据查询脚本,并把历史数据加载到在线表格控件上。

因此,需要在画面中添加以下对象:- 选项组控件:用来选择所查询的参数,其对应的所有归档变量将会被加载到历史数据控件中- 时间选择控件:用来设定历史数据的开始和结束时间- 历史数据控件:查询- 按钮:执行查询事件

画面中个对象的名称将会在查询脚本中被使用到,因此需要设定各个控件的名称。本例中各控件名称设置如下图所示。

选项组控件

<选项组控件用来选择需要查询的参数,并且为单选控件。本文中介绍两种添加选项组控件的方法:直接拖拽控件、从Excel表格中拖拽。1、直接拖拽控件选项组控件可以直接从“窗口对象”下拖拽到画面中,设定其框数量(属性:“几何”->“框数量”)为4,并为不同的索引设定相应的文本。

2、从表格中拖拽:下面介绍另外一种方法,可以直接从excel(必须是微软的excel不可以是wps)或者WinCC Configuration Studio中拖拽文本到WinCC画面自动创建选项组控件。首先,在excel中输入需要的文本。然后,在excel中选择所有文本,移动鼠标到选中区域的右下角,直到鼠标变成十字光标形状。按着鼠标右键拖拽文本到WinCC画面,松开鼠标,在弹出对话框中选择“插入选项组”。最后,选项组控件被插入到WinCC画面。

另外,也可以直接从WinCCConfiguration Studio中拖拽文本到WinCC画面自动创建选项组控件,方式和上面的从表格拖拽一致,也有右键拖拽。

时间选择控件

按如下步骤添加MicrosoftDate and Timer Picker Control控件到画面中。

首先,在ActiveX控件上右键,选择“添加/删除”,然后在OCX控件列表中选择Microsoft Date andTimer Picker Control。

然后,添加控件到画面,拖拽MicrosoftDate and Timer Picker Control控件到画面中。

最后,设置控件的“Format”属性为“3-dptCustom”,“CustomFormat”属性为”yyyy-MM-dd hh:mm”。

在线表格控件

添加在线表格控件到画面中,所有属性保持默认值即可。

查询脚本

根据选项组所选定的参数加载相应的多个归档变量到在线表格控件,根据设定的查询时间范围设定控件时间轴的开始时间及结束时间。注意:设定在线表格控件的时间范围之前,需要取消在线表格控件的“刷新”(Online)属性,否则设定的时间范围不起作用。本例中将通过脚本来设置在线表格控件的“刷新”(Online)属性。画面中“数据查询”按钮的脚本

以下是部分的VBS脚本如下:Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)Dim OP1,tbl1,colDim TableName(26),ValueColumnCount "定义每张表格数值上限为(可以自行增减) 定义变量个数Set tbl1 = ScreenItems("tbl1") "将在线表格控件名称赋值给tbl1tbl1.Online=False "停止数据刷新Dim iFor i=1 To tbl1.ValueColumnCounttbl1.ValueColumnIndex=i "引用已组态的数值列。使用此属性可以将其它属性的值分配给特定的数值列。

"介于 0 和 (ValueColumnCount - 1) 之间的值为“ValueColumnIndex”的有效值。属性“ValueColumnCount”定义已组态的数值列数。

"通过特性 ValueColumnRepos 可为“ValueColumnIndex”特性分配动态属性。数据类型为 LONG。

tbl1.ValueColumnRemove=tbl1.ValueColumnName "添加数据前先删除所有数据,否则数据没办法替换NextSet OP1=ScreenItems("OP1") "数据选择选项组控件名称 (注意设置好多选框名字为OP1)Select Case OP1.Process "根据选择项设定变量个数及各个归档变量名称Case 1 "选择第1项TableName(0)="测试\温度1"TableName(1)="测试\温度2"TableName(2)="测试\温度3"TableName(3)="测试\温度4"

valuecolumncount=4 "每个选择的个数赋值给计数变量Case 2 "选择第2项TableName(0)="测试\湿度1"TableName(1)="测试\湿度2"TableName(2)="测试\湿度3"TableName(3)="测试\湿度4"TableName(4)="测试\湿度5"

valuecolumncount=5

Case 4 "选择第3项TableName(0)="测试\压力1"TableName(1)="测试\压力2"TableName(2)="测试\压力3"valuecolumncount=3

" Case 8 "选择第4项"TableName(0)="EMS\A区DB_1A-2Q34气锁对1A-2Q30缓冲_相对_显示值""TableName(1)="EMS\A区DB_1A-2Q43气锁对1A-2Q39缓冲_相对_显示值""TableName(2)="EMS\A区DB_1A-2Q53微生物检验室对1A-2Q52更衣_相对_显示值""TableName(3)="EMS\A区DB_1A-2Q52更衣对1A-2Q51缓冲_相对_显示值""TableName(4)="EMS\A区DB_1A-2Q51缓冲对外走廊_相对_显示值""TableName(5)="EMS\A区DB_1A-2Q33退更对1A-2Q34气锁_相对_显示值""TableName(6)="EMS\A区DB_1A-2Q32气锁对1A-2Q31更衣_相对_显示值""TableName(7)="EMS\A区DB_1A-2Q31更衣对1A-2Q30缓冲_相对_显示值""TableName(8)="EMS\A区DB_1A-2Q30缓冲对外走廊_相对_显示值""TableName(9)="EMS\A区DB_1A-2Q49无菌检验室对1A-2Q48更衣_相对_显示值""TableName(10)="EMS\A区DB_1A-2Q48更衣对1A-2Q47缓冲_相对_显示值""TableName(11)="EMS\A区DB_1A-2Q47缓冲对外走廊_相对_显示值""TableName(12)="EMS\A区DB_1A-2Q41气锁对1A-2Q40更衣_相对_显示值""TableName(13)="EMS\A区DB_1A-2Q40更衣对1A-2Q39缓冲_相对_显示值""TableName(14)="EMS\A区DB_1A-2Q39缓冲对外走廊_相对_显示值"

需要完整程序可以私信老周获取

运行结果

在WinCC计算机属性的启动列表中启动“变量记录运行系统”,并激活WinCC项目。

激活项目,效果如首图

本文源程序 (软件版本:WinCC V7.5 SP2)

标签:

相关阅读
返回顶部