关闭

[置顶] WinCC -- 创建HMI组态 -- 组态趋势

标签: 脚本csv报表function语言
8815人阅读 评论(0) 收藏 举报
分类:

WinCC -- 创建HMI组态 -- 组态趋势

更新时间:2011-06-28 22:57:25  来源: 西门子(中国)有限公司工业业务领域工业自动化与驱动技术集团

核心提示:WinCC -- 创建HMI组态 -- 组态趋势  在PCS 7或WinCC中,不影响性能的前提下,SQL 数据库可以连接多少单个归档片断?  在 WinCC 中如何在一个画面中显示不同的趋势图?  如何在WinCC运行时修改在线趋势控件的时间范围? 

WinCC -- 创建HMI组态 -- 组态趋势 
   
 
在PCS 7或WinCC中,不影响性能的前提下,SQL 数据库可以连接多少单个归档片断? 
在 WinCC 中如何在一个画面中显示不同的趋势图? 
如何在WinCC运行时修改在线趋势控件的时间范围? 
如何在运行时移除曲线,并且剩余曲线仍正常显示? 
在WinCC在线趋势控件中,为什么选择了"保存报表"功能选项的变量归档值并不能够完全导出? 
如何更改 WinCC 在线表格控件列标题的语言? 
如何使用WinCC在线趋势控件中的“保存报表”将归档的过程值导出成CSV文件? 
如何使用 C 或 VBS 脚本通过新变量提供 WinCC 在线趋势控件的单个趋势? 
WinCC在线趋势控件中如何触发记录? 
如何通过脚本来动态组态在线趋势控件的时间范围? 
如何在运行系统中显示其它 WinCC 项目的归档? 
在WinCC在线趋势控制中如何设置时间显示格式(例如12或24小时)? 
如何改变标尺窗口的字体大小或类型? 
WinCC在线趋势控件时如何按夏令时显示归档数据的? 
当在线趋势控件窗口打开时如何对实际数值定位标尺位置? 
为什么有时候字符“i”和“u”会与标签值一起显示? 
在缩放的时候,为什么有些趋势/数值没有显示出来? 
WinCC在线趋势控件中,测量值曲线为什么会发生时间偏移? 
运行期间如何移动趋势控制? 
collapse('/WWsupport/',22286050, document.img_22286050)
在PCS 7或WinCC中,不影响性能的前提下,SQL 数据库可以连接多少单个归档片断? 跳转至开头
隐藏订货号显示订货号订货号:

组态要点
在归档组态中,需要保证所有单个归档(包括快速归档,慢速归档和报警归档)片断的个数不超过某一个值。
经过测试比较,SQL数据库所能连接的单个归档片断最大可行的数量为200个。归档片断个数不能过多地超过这个数量,否则会影响Microsoft SQL server运行性能。这会导致数据管理错误。

注意
关于归档组态的内容可以参考条目号15399096。
关于提高归档组态性能的更多信息可参考条目号29442950 。

关键词
数据库片段,归档片段,数据库性能

在 WinCC 中如何在一个画面中显示不同的趋势图? 跳转至开头
隐藏订货号显示订货号订货号:

描述
同一个 WinCC 在线趋势控件中,通过不同的按钮来选择显示不同测量点的曲线,有两种方法。

  • 选择 1: 用脚本分配变量
  • 选择 2: 画中画技术

两种方法都是在 "Trend_Function_Main.PDL", "Trend_Function_1.PDL" 和 "Trend_Function_2.PDL" 画面中实现的。这几个画面可以在例子中找到。

准备:
变量“testvar1”和“testvar2”分别显示在两个在线控件 Trend 1 和 Trend 2 中。
 

No. 步骤
1 在变量记录中,新建过程值归档“TestArchive”。
2 在归档中建立相应的变量归档(testvar1 and testvar2)。

Fig. 01

选择1:WinCC V7.0 中脚本分配变量
在本例中,WinCC 在线趋势控件的名称为 “Control1”。另外,建立了两个趋势,但是并没有分配给某个变量。分配由 VBS 脚本或 C 脚本完成。 VBS 和 C 脚本在文件 “M1_button_assign_tag.txt”中
 

No. 步骤
1 将 WinCC 在线趋势控件组态为显示最多趋势。
2 组态一个按钮(在对象选项板中选择“标准”〉“窗口对象”〉“按钮”)。
3 右键按钮选择属性,选择“事件”〉“按钮”〉“鼠标”。
4 右键“鼠标动作”对应的闪电符号,选择 VBS 动作。
5 通过如下脚本,创建一个对象(如“objCon1”) (C 脚本不需要创建对象)

Dim objCon1
Set objCon1 = HMIRuntime.ActiveScreen.ScreenItems("Control1")
6 将变量联系到相应的趋势中(Index 0 = Trend 1, Index 1 = Trend 2, ... )。

'testvar1
objCon1.TrendIndex = 0
objCon1.TrendTagName = "TestArchive\testvar1"

'testvar2
objCon1.TrendIndex = 1
objCon1.TrendTagName = "TestArchive\testvar2"

注意:

  • 更多关于使用 VBS 或 C 脚本建立变量变化请参考条目: 10259719
  • 更多关于 WinCC  在线趋势控件的动态方法及属性设置请参考 WinCC Information System:
    "使用 WinCC" > "VBS for creating procedures and actions" > "VBS Reference " > "Object types of the ScreenItem object" > "Controls" > "WinCC Online Trend Control "

选择2:画中画技术
本例中,在画面“Trend_Function_Main.PDL”中组态了一个画面窗口,画面窗口中调用了“Trend_Function_1.PDL”和“Trend_Function_2.PDL”两个已经组态好在线趋势控件的画面。VBS 和 C 脚本在文件“M2_pic_in_pic.txt”中。
 

No. 步骤
1

在图形编辑器中,创建第一个测量点的画面。
注意:
这个 PDL 画面的名称最好来自于测量点的名字,并且可以从变量列表中复制其名字。

2 在画面中插入 WinCC 在线趋势控件。连接趋势到测量点(WinCC V7.0)的归档变量(如 testvar1)。

在图片中插入一个应用程序窗口并且连接到测量点的趋势模板(老板本)。

3 然后相应的调整图像的几何属性和应用程序窗口。
本例中,高350像素,宽550像素。这个大小是根据画面窗口的大小定的。
4 重复步骤3和4,为其他的测量点创建画面。
将应用程序窗口链接到每一个曲线模板上,然后用测量点的名字保存图像。
5 下一步创建一个新图片,可以用不同的按钮调用不同的趋势。
在这个画面中,为已经建好的画面插入一个宽(550 pixels)高(350 pixels)的画面窗口。属性可自由选择。

警告:
不要将画面窗口连接到某个画面,这个工作是运行时动态完成的。

6 鼠标单击事件中插入如下源代码。注意根据您的项目更改图片名称。

C 动作
SetVisible("Trend_Function_Main","PictureWindow1",1);
SetPictureName("Trend_Function_Main","PictureWindow1","Trend_Function_1.PDL");

VBS 动作
Dim objCon1
'create objects
  Set objCon1 = HMIRuntime.ActiveScreen.ScreenItems("PictureWindow1")
'configuration
  objCon1.Visible = 1
  objCon1.PictureName= "Trend_Function_1.PDL"

7 现在可以通过 Picture Tree Manager 将画面“Trend_Function_Main.PDL”合并到画面图层。

例子:
为了在项目中可以使用这些图片,必须按照前面“准备”中提到方式建立归档变量 “testvar1”和“testvar2”。此外,将下面三个 PDL 文件拷贝到项目文件夹下的 “GraCS”中。
(...Siemens\WinCC\WinCCProjects\<Project_name>).
此例是在 WinCC V.0.中建立的。

ZIP 文件中包含了三个 PDL 文件(WinCC 画面)和两个 TXT 文件(VBS and C 脚本)。

1804857_WinCC_Anzeige_Trendkurven.zip ( 36 KB )

关键字:
趋势组态,画面组态

如何在WinCC运行时修改在线趋势控件的时间范围? 跳转至开头
隐藏订货号显示订货号订货号:

描述:
通常在组态“WinCC在线趋势控件属性”对话框中的“时间轴”页上分配时间轴参数。


图 01

在运行时修改时间范围,可以使用两种不同的对话框。可以直接在WinCC在线趋势控件的工具栏上通过相应的图标打开这两个对话框。

  • 属性对话框 
  • 选择时间对话框

属性对话框:
如果在WinCC在线趋势控件属性的“工具栏”页中选择了“打开‘设置参数’对话框/‘组态对话框’”,就可以在运行时调用属性对话框。 

选择时间对话框:
在组态图形编辑器时,WinCC在线趋势控件的属性对话框的“工具栏”页中,可以选择“选择时间范围”。这样就可以在运行时设置WinCC在线趋势控件的时间范围了。


图 02

注意:

  • 如果在运行时使用属性对话框设置时间范围,则有机会修改控件的其它属性。
  • 如果在运行时使用时间范围对话框设置时间范围,则没有机会修改控件的其它属性。

更多信息:

  • 如何在运行时使用脚本修改时间范围的描述参考ID: 11942662.
  • 如何在运行时使用脚本为趋势分配不同的变量的描述参考ID: 10259719.

关键词:
WinCC在线趋势控件

如何在运行时移除曲线,并且剩余曲线仍正常显示? 跳转至开头
隐藏订货号显示订货号订货号:

说明
在曲线窗口模板中已经组态了几条曲线。在运行模式下不想显示所有的曲线,按如下进行操作:

  • 在工具条上单击“参数”按钮。
  • 在“选择对象”下选择不想显示的曲线。
  • 在“显示”下移除“显示曲线”的对钩。
  • 单击“接受”并单击“OK”确认。

    如果在运行系统中想再次显示曲线,按如下操作:

  • 在工具条上单击“参数”按钮。
  • 在“选择对象”下选择想再次显示的曲线。
  • 在“显示”下再次勾选“显示”曲线。
  • 单击“接受”并单击“OK”确认。

    当然也有其它选择。通过组态曲线窗口模板,使“曲线在背景中开/关”按钮在工具条中显示。按照如下操作:

  • 打开曲线窗口模板。
  • 单击“模板”。
  • 在工具条上单击“组态”。
  • 勾选“打开选择曲线对话框”。
  • OK 确认。

    使用该对话框可以在运行时选择要显示的曲线。

  • 在WinCC在线趋势控件中,为什么选择了"保存报表"功能选项的变量归档值并不能够完全导出? 跳转至开头
    隐藏订货号显示订货号订货号:

    描述:
    使用"WinCC在线趋势控件"的“保存报表”功能(WinCC V7.0之前版本)或“导出数据”功能(WinCC V7.0),可以导出显示的变量值。在此必须注意的是:此功能仅仅把变量记录值存入了显示趋势控件的CSV文件中,在这里,可能会出现周期归档变量的所有 记录不能够被全部导出,控件有多少条记录可用于显示依赖于其配置尺寸情况。

    例如:
     

    控件尺寸 趋势时间长度 归档记录条数 可导出记录条数 1)
    600 x 400 像素 10 分钟 600 600
    20 分钟 1200 880
    400 x 300 像素 10 分钟 600 504
    20 分钟 1200 504




    1) 一些影响趋势控件显示区的设置(如时间轴的时间格式等),会改变上面导出的记录条数。

    解决方法:
    确保控件不要画得太小,或者显示时间段太长,对于这两种情况,您可以采用下面几种方法实现记录数据的导出:

    • Industrial Data Bridge
    • WinCC ODK
    • Connectivity Pack
    • PM-OPEN EXPORT (WinCC Premium Add-On)

    了解更多关于"WinCC在线趋势控件"中"保存报表"或“导出数据”功能,请参阅 条目号: 25533776。在 "WinCC 信息系统" 下 "使用WinCC > 归档过程值> 过程值的输出>过程值输出到过程画面中 > 以表格形式输出过程值",和WinCC V6.2手册(参考条目号25842925并从“信息”下下载)以及WinCC V7.0手册可以查询更多"WinCC在线趋势控件"的信息。

    更多编辑和显示归档变量信息,请参阅条目号22578952.

    如何更改 WinCC 在线表格控件列标题的语言? 跳转至开头
    隐藏订货号显示订货号订货号:

    说明
    在图形编辑器中插入一个 WinCC 在线表格控件。各个表格列的标题可以以不同的语言来显示。

    用于 WinCC 在线表格控件的文本组态:

    • 到 WinCC V6.0 (包括 SP2)
    • 从 WinCC V6.0 (从 SP3) 到 WinCC V7 使用 "WinCC V7 之前的在线表格控件"
    • 在 WinCC V7 中

    到 WinCC V6.0 (包括 SP2)
    使用如下的命令来组态文本及语言的改变。

    SetPropWord("Picture1.PDL","Control1","Index",0);
    SetPropChar("Picture1.PDL","Control1","Name","Date");

    第一行命令指定欲改变标题的列。控件中的列 1 使用 Index 0,列 2 使用 Index 1,列 3 使用 Index 2 等等。第二行命令给列设置名称 (本例中为 Date)。这两行代码必须按此顺序使用并且对每个列都要使用一次。

    如果想改变控件的标题,使用如下代码:

    SetPropChar("Picture1.PDL","Control1","Caption","Archive Tank 1");
     

    示例:使用一个按钮改变 2 列的语言

    目标语言是 German:

    #include "apdefap.h"
    void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
    SetPropChar("Picture1.PDL","Control1","Caption","Archive Tank 1");

    SetPropWord("Picture1.PDL","Control1","Index",0);
    SetPropChar("Picture1.PDL","Control1","Name","Date");

    SetPropWord("Picture1.PDL","Control1","Index",1);
    SetPropChar("Picture1.PDL","Control1","Name","Time");

    SetLanguage(0x0407);
    }

    目标语言是 English 的脚本:

    #include "apdefap.h"
    void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
    {
    SetPropChar("Picture1.PDL","Control1","Caption","Archive Tank 1");

    SetPropWord("Picture1.PDL","Control1","Index",0);
    SetPropChar("Picture1.PDL","Control1","Name","Date");

    SetPropWord("Picture1.PDL","Control1","Index",1);
    SetPropChar("Picture1.PDL","Control1","Name","Time");

    SetLanguage(0x0409);
    }

    从 WinCC V6.0 (自 SP3) 到 WinCC V7 使用“WinCC V7 之前的在线表格控件”
    在 WinCC 图形编辑器中,通过菜单命令“视图 > 语言...”打开对话框来更改组态的运行语言。选择需要的运行语言。在在线表格控件的组态对话框中为每种运行语言组态相应的文本。


    图 01

    在 WinCC V7 中
    在 WinCC 图形编辑器中,通过菜单命令“视图 > 语言...”打开对话框来更改组态的运行语言。选择需要的运行语言。在在线表格控件的组态对话框中为每种运行语言组态相应的文本。


    图 02

    注意
    使用相同的方法为时间列来组态不同语言下的标题。为此,在组态对话框中切换到“时间列”页面,然后象更改数值列那样来更改名称即可。

    关键词
    转变,多语言,OCX

    如何使用WinCC在线趋势控件中的“保存报表”将归档的过程值导出成CSV文件? 跳转至开头
    隐藏订货号显示订货号订货号:

    介绍:
    在WinCC在线趋势控件中提供了“保存报表”功能,用于将趋势中显示的曲线导出成CSV文件。

    参见WinCC的信息系统“使用 WinCC -〉归档过程值-〉过程值的输出〉过程值输出到过程画面中〉以趋势形式输出过程值〉运行系统中的操作〉如何在运行系统中操作在线趋势控件” ,以及 WinCC V6.2 手册(可以在 Entry ID 25842925下载文档)和 WinCC V7.0 手册。

    详细信息如下 ...

    • ... WinCC V7 以前的在线趋势控件
    • ... WinCC V7 的在线趋势控件
    • ... 在 MS Excel中显示数据
    • ... 自动导出 

    WinCC V7 以前
     

    No. 描述
    1

    导出数据
    在在线趋势控件的工具栏中激活 “保存报表”功能。可以在在线趋势控件的组态对话框或者运行时通过“分配参数”功能中设置 。

    停止在线趋势控件更新,就可以执行“保存报表”功能。
    选择“保存报表”来导出数据。 


    Fig. 01

    2

    "CSV文件和名称和路径"

    CSV文件是在WinCC项目文件夹下"Export > Tag Logging"子文件夹中被创建。该文件的名称由控件窗口标题和时间构成。

    "<标题>_<本地时间>.csv"

    • <标题>
      WinCC在线趋势控件的窗口标题,是在“WinCC在线趋势控件属性”对话框中定义的参数,其位置在“常规”〉“窗口标题”域。该属性可以在画面编辑的组态时或者运行时配置。名称"Caption"用于该属性的动态化。

      如果没有给该属性赋值,它将包含一个空的字符串,或者该属性的字串中只有一个空格,CSV文件名会使用字串"WinCC_OnlineTrendCtrl"而不是窗口标题。若窗口标题在运行时显示(窗口标题的“显示”属性),对导出文件名没有影响。
       
    • <本地时间>
      当“保存报表”功能被执行时,计算机的本地时间会被写入文件名。
    3 CSV 文件中的数据说明
    下图是导出文件中一部分的屏幕拷贝。


    Fig. 02

    导出文件分成三部分,每一部分都有表头标明各列的含义。下面对各部分进行说明。

    第一部分 - 趋势窗口的常规信息
    第一部分包含的常规信息有

    • “趋势名称”
      “趋势名称”是WinCC在线趋势控件的标题(“标题”属性)。如果没有使用该属性,这里将使用"WinCC_OnlineTrendCtrl_"
       
    • “趋势个数”
      “趋势个数”说明在线趋势控件导出的趋势值个数

      注意:
      如果在WinCC在线趋势控件中没有显示值的趋势,将不会被导出。因此也没有被考虑到“趋势个数中”
       
    • "日期从"
      “日期从”表明了数据导出的日期和时间的起始值

      注意:
      如果WinCC在线趋势控件中包含了多个趋势,并且每个都有独立的时间轴,则这些趋势会有不同的起始时间。在这种情况下,这里显示的是最早的时间。
    • "日期到"
      “日期到”标明了导出数据的结束时间和日期

      注意:
      如果WinCC在线趋势控件中包含了多个趋势,并且每个都有独立的时间轴,则这些趋势会有不同的结束时间。在这种情况下,这里显示的是最晚的时间。时间是按照UTC时间显示的

    第二部分 - 趋势的常规信息
    第二部分是关于单独趋势的常规信息

    • "趋势编号"
      “趋势编号”标明了一个趋势的顺序编号
       
    • "趋势名称"
      “趋势名称”标明了一个趋势的名称。该名称是在“WinCC在线趋势空间属性”对话框中“曲线”标签〉“名称”输入域。该“名称”属性也可以被自动的赋值。
       
    • "最小值"
      “最小值”表明导出趋势的最小值

      注意:
      如果在WinCC在线趋势控件中显示的趋势使用了“放大”的功能,“最小值”与未被放大的区域部分有关。
       
    • "最大值"
      “最大值”表明导出趋势的最大值

      注意:
      如果在WinCC在线趋势控件中显示的趋势使用了“放大”的功能,“最大值”与未被放大的区域部分有关。

    第三部分 - 导出趋势数值
    第三部分包含趋势的导出数据

    • "趋势编号"
      “趋势编号”表明与导出值相关趋势的编号
       
    • "日期"
      “日期”表明与导出值相关的日期和时间
       
    • "数值"
      “数值”表明被归档的过程值

    注意:

    • 第二部分表明了趋势编号("Pen Number") 和趋势名称 ("Pen Name")之间的相互关系。为了能够唯一的解释数据,在趋势名称里设置测量点的名称是有意义的。
    • 导出数据是按照“趋势编号”和“日期”升序排列的。首先按照“趋势编号”,然后按照“日期”排列
    • 时间是按照UTC时间显示的
    • 在导出数据的时候会访问运行数据库
      • 如果因为Y轴范围设定的问题,趋势值有一部分没有显示在WinCC在线趋势控件中,仍然不影响它们被正常的导出。
      • 在WinCC 在线趋势控件中通过插值显示的数据不会被导出


     WinCC V7中
     

    No. Description
    1

    导出数据
    在在线趋势控件的工具栏中激活 “保存报表”功能。可以在在线趋势控件的组态对话框或者运行时通过“分配参数”功能中设置 。

    停止在线趋势控件更新,就可以执行“保存报表”功能。
    选择“保存报表”来导出数据。 


    Fig. 03

    2

    "CSV文件和名称和路径"

    CSV文件是在WinCC项目文件夹下"Export > Tag Logging"子文件夹中被创建。默认情况下,该文件的名称由在线趋势控件名称构成。

    下图显示了“WinCC 在线趋势属性”对话框。 


    Fig. 04

    在这里,可以预设文件名,目标路径等。 关于该对话框组态的更多信息请参阅 WinCC 在线帮助中 "Working with WinCC > Archiving Process Values > Output of Process Values > Process Value Output in Process Pictures > Process Value Output in Trend Form in Process Pictures > Configuring the Online Trend Control > How to export Runtime data".

    若作了合适的配置,当在运行时选择“导出数据”功能时会打开下列对话框,需要的话,可以更改先前的设置。 


    Fig. 05

    3 CSV 文件中的数据说明

    下图是导出文件中一部分的屏幕拷贝。


    Fig. 06

    对于每条趋势,导出的文件中包含两列:归档时间和归档变量值。两列成对出现。

    对于每条趋势,第一行显示信息 "<Name of trend> Time" 作时间列和"<Name of trend> ValueY" 作变量值列。.

    关于在 MS Excel 中显示导出数据的注释

    • MS Excel 中的显示限制(65536 行 and 256 列)
      Microsoft Office 2007 之前的Excel只能支持65535行和256列,若您试图打开的文件超过了这个限制,将会弹出错误消息,多出的行或者列会被删除。
    • 调整格式来显示时间和日期
      在Microsoft Excel中显示导出的CSV文件,有一些域可能无法正常显示。例如,时间中的秒值可能缺失。您需要根据您显示的需求来调整相应单元格的格式

     

    • 自动导出
      可以实现归档过程值自动导出到CSV文件。该过程如下:

      • 配置热键
        在“WinCC在线趋势控件属性”对话框〉“工具栏”标签〉“键/组合键”输入域为“保存报表”或“导出报表”功能配置热键
      • 在动作中执行热键操作
        您可以组态一个由事件触发或者由时间周期触发的动作,来执行WinCC在线趋势控件中的配置的热键。然后将会执行数据导出。
        下图是一段VB脚本,操作的是WinCC在线趋势控件中的配置的"F8"键 


        Fig. 07

    如何使用 C 或 VBS 脚本通过新变量提供 WinCC 在线趋势控件的单个趋势? 跳转至开头
    隐藏订货号显示订货号订货号:

    说明:
    例如,在初始条件下,过程值归档 "TestArchive" 中的变量 "testvar1" 被分配给趋势控件的曲线1(图01)。  


    图. 01

    C 脚本:
    现在按下面的步骤利用 C 脚本将过程值归档中的变量 "testvar2" 分配给趋势控件的曲线1。
     

    No. 步骤
    1

    首先,将在线趋势控件的 "Index" 属性设置为对应曲线号的数值。

    WinCC V6.x 和 WinCC V7.0
    SetPropWord(lpszPictureName,"Control1","TrendIndex",0); 

    2 将WinCC在线趋势控件(= Control1)中选择出的曲线的 "TagName" 属性或者 TrendTagName 设置为新的变量:

    WinCC V6.x
    SetPropChar(lpszPictureName,"Control1","TagName","TestArchive\\testvar2");

    WinCC V7.0
    SetPropChar(lpszPictureName,"Control1","TrendTagName","TestArchive\\testvar2");

    3 将WinCC 在线趋势控件(= Control1) 中选择出的曲线的 "Command" 属性设置为 "Reload":

    WinCC V6.x
    SetPropChar(lpszPictureName,"Control1","Command","Reload"); 

    WinCC V7.0
    不需要(趋势自动更新)

    VBS 脚本:
    现在按下面的步骤利用 VBS 脚本将过程值归档中的变量 "testvar2" 分配给趋势控件的曲线1。
     

    No. 步骤
    1 为WinCC 在线趋势控件 "Control1" 创建一个对象 "objCon1" 。

    WinCC V7.0
    Dim objCon1
    Set objCon1 = HMIRuntime.ActiveScreen.ScreenItems("Control1")

    2 首先将趋势控件的 "Index" 属性设置为对应曲线号的数值。

    WinCC 7.0
    objCon1.TrendIndex = 0

    3 将在线趋势控件 (= Control1) 中选择出的曲线的 "TrendTagName" 属性设置为新的变量:

    WinCC 7.0
    objCon1.TrendTagName = "TestArchive\testvar2"

    注意:

    • 如何在运行时分配不同变量给趋势请参考条目 ID: 1804857。
    • 在任何情况下 "Index" 代表了在线趋势控件中 CurveX 的设置 (更多信息请参考图形编辑器的在线帮助)。
    • 请注意 C 脚本中变量名和归档名之间必须用" \\" 分隔。

    Keywords:
    趋势显示, 曲线显示

    WinCC在线趋势控件中如何触发记录? 跳转至开头
    隐藏订货号显示订货号订货号:

    描述:
    可以通过使用"Activate" 属性来触发在线趋势控件的趋势记录。
    如何触发,举例来说:连接一个二进制变量(见下述图片)。当信号"TRUE", 记录开始,信号状态为"FALSE", 记录停止。


    图. 01

    注意
    结果的不同取决于在线趋势控件所连接的是归档变量还是在线变量。
    对于归档变量所有的数据总是显示在在线趋势控件上。触发仅仅影响趋势的更新,当信号为真时,所有的值都将被从归档中装载。

    对于在线变量来说当趋势控件属性"Activate" 为 "FALSE"时的值都是无效的。如果趋势记录中断,那么当记录再次启动时上次获得的最后的值将于新值线性连接上。因为在线变量没有存储。因此,如果通过外部事件(本例子是变量触发)触发了输出值的中断,则必须考虑到区别对待在线变量和趋势变量。

    下图展示了一个过程变量的归档和一个在线过程变量以及通过一个触发变量在相同的时间段内触发导致的结果。
    对于归档变量所有值有效,而对于在线变量当触发状态为“FALSE”的时候所有值丢失。


    图. 02


    图. 03


    图. 04

    警告
    WinCC V7.0, "Activate"属性只针对  "WinCC Online Trend Control (Classic)"有效!

    如何通过脚本来动态组态在线趋势控件的时间范围? 跳转至开头
    隐藏订货号显示订货号订货号:

    动态属性:
    可以通过内部 C 函数“ SetPropXXX() ”或者是画面对象的 VBS 在运行系统中设置对象的属性。以下是一个用于“ C ”与 VBS 的样例函数。

    动态化的注意事项:

    • 如果所有的曲线是用了公共时间轴,那么所有的曲线都将使用第一条曲线或者第一个时间轴的时间范围。
    • 曲线或者时间轴的计数从“ 0 ”开始,也就是
      第一条曲线/时间轴的地址为“ 0 ”,
      第二条曲线/时间轴的地址为“ 1 ” ...,
      第 n 条曲线/时间轴的地址为“ n-1 ”。

    附加信息

    • 在条目 ID: 34344393 中描述了如何在运行系统中改变时间范围而不使用脚本。
    • 在条目 ID: 10259719 中描述了如何通过脚本为一条曲线分配不同的变量。
    • 在 WinCC 信息系统中有更多的关于 WinCC Online Trend Control 动态化的方法及属性:
      “使用 WinCC ” > “ 创建过程和动作的 VBS ” > “ VBS Reference ” > “ Object types of the ScreenItem object ” > “ Controls ” > “ WinCC Online Trend Control ”。

    起始及结束时间动态化
     

    No. WinCC V7.0 中的步骤 WinCC V6.x 中的步骤
    1

    选择曲线
    在在线趋势控件中选择您希望设置时间范围的曲线。

    给“ TimeAxisIndex ”( long* )属性设置您所希望控制的曲线的值。 给“ Index ”( word* )属性设置您所希望控制的曲线的值。
    2 切换为离线模式
    将在线趋势控件切换为离线模式。
    给“ Online ”( BOOL )属性赋值为“ FALSE ”。 给“ Online ”( BOOL )属性赋值为“ FALSE ”。
    3 禁止时间范围
    通过起始及结束时间定义了一个时间窗口。
    将“  TimeAxisRangeType ”( long* )属性的值设置为“ 1 ”。 将“ TimeRange ”( BOOL )属性的值设置为“FALSE ”。
    4 设置起始时间
    将“ TimeAxisBeginTime ”( char* )属性的值设置为所希望的起始时间。 将“ TimeAxisBeginTime ”( char* )属性的值设置为所希望的起始时间。
    5 设置结束时间
    将“ TimeAxisEndTime ”( char* )属性的值设置为所希望的结束时间。 将“ EndTime ”( char* )属性的值设置为所希望的结束时间。
    6 更新数据
    在在线趋势控件中更新数据。
    不需要。 从 WinCC V6.0 SP3 开始:
    为此您需要将“ Command ”( char* )属性的值设置为“ Reload ”。

    通过 C 脚本:
    为此您需要将“ Activate ”属性的值设置为“ FALSE然后再次设置为“ TRUE ”。

    WinCC V7.0

    Dyn_Start-End_WinCC70_C.txt ( 482 bytes )

    Dyn_Start-End_WinCC70_VBS.txt ( 538 bytes )

    WinCC V6.x

    Dyn_Start-End_WinCC6x_C.txt ( 515 bytes )

    Dyn_Start-End_WinCC6x_VBS.txt ( 460 bytes )

    通过 WinCC V7.0 动态化时间范围
     

    No. 步骤
    1

    选择曲线
    在在线趋势控件中选择您希望设置时间范围的曲线。
    为此您需要将“ TimeAxisIndex ”( long* )属性的值设置为您所希望控制的时间轴。

    2 使能时间范围
    为此您需要将“ TimeAxisRangeType ”( long* )属性的值设置为“ 0 ”。
    3

    设置时间范围
    为此您需要将“ TimeAxisTimeRangeBase ”( long* )属性的值设置为期望值(例如 1000 )。

    注意:
    时间范围是按照毫秒来进行设置的。以下值可用:

    • 500 (500 毫秒)
    • 1000 (1 秒)
    • 60000 (1 分钟)
    • 3600000 (1 小时)
    • 86400000 (1 天)
    4 设置时间范围因数
    为此您需要将“ TimeAxisTimeRangeFactor ”属性的值设置为期望值(例如 30 )。
     

    Dyn_TimeRange_WinCC70_C.txt ( 389 bytes )
    Dyn_TimeRange_WinCC70_VBS.txt ( 300 bytes )

    通过 WinCC V7.0 动态化测量点数
     

    No. 步骤
    1 选择曲线
    在在线趋势控件中选择您希望设置时间范围的曲线。
    为此您需要将“ TimeAxisIndex ”属性的值设置为您所希望控制的时间轴。
    2 使能时间范围
    为此您需要将“ TimeAxisRangeType ”属性的值设置为“ 2 ”。
    3 设置测量点数
    为此您需要将“ TimeAxisMeasurePoints ”属性的值设置为期望值(例如 120 )。
     

    Dyn_MeasPoints_WinCC70_C.txt ( 313 bytes )

    Dyn_MeasPoints_WinCC70_VBS.txt ( 258 bytes )

    注意:

    • “ Command ”属性只存在于 WinCC V6.0 SP3 及更高版本中。当使用“ C ”时您可以使用“ Activate ”属性在在线趋势控件中来更新数据。
    • 在线趋势控件的“ Activate ”属性只适用于“ C ”的动态化而不适用于 VBS 。
    • 在运行系统中不能通过 VBS 来设置“ Activate ”属性,因为 VBS 是通过“ Activate ”方法来访问“ ScreenItems ”对象的。

    时间设定及时间格式

    • 您可以在运行系统中通过输入/输出域来为操作人员提供开始时间的输入。输入/输出域根据 WinCC 变量动态化。在脚本中读出变量值用于写入“ BeginTime ”属性值。
    • 指定日期及时间的输入格式根据操作系统的国家设置以及 WinCC 运行语言。更多关于数据格式的信息可参看条目 ID 11377522 。德国格式的日期时间为“ DD.MM.YYYY hh:mm:ss ”,例如:23.05.2006 14:23:00 (在日期及时间之间为空格)。
    • 用于指定开始及结束时间的文本输入/输出域可以使用字符“ t ”及“ 9 ”为格式代码以防止错误输入。用于输入日期及时间的文本输出格式为以下格式“ 39t99t2999 29:99:99 ”。


      图 01

      更多关于输入/输出域的输出格式可参看 WinCC 信息系统:
      “使用 WinCC > 创建过程画面 > 使用对象 > 在对象选项板中使用对象 > 使用智能对象 > I/O 域 > 如何定义“字符串”数据类型的输出格式”。

    如何在运行系统中显示其它 WinCC 项目的归档? 跳转至开头
    隐藏订货号显示订货号订货号:

    说明
    可以通过使用 ODK 函数来融合其它项目的归档。

    开放式开发包( ODK )提供的函数可以用于列出已 存在归档,读出及写入数据到归档中。也可以用于导出数据到“ *.csv ”文件中。使用 ODK 函数可以在运行系统中将 WinCC 项目的归档数据导出,也可以将其它 WinCC 项目的归档数据导入。导入的数据也可以通过“ WinCC Online Trend Control ”或“ WinCC Online Table Control ”进行显示。 

    关于 WinCC 选件开放式开发包( ODK )的相关信息可参考条目 IDs 9652128, 17810928, 22450798 及 26663897.

    条目 ID 22578952 展示了用于显示及编辑 WinCC 归档的选件。

    在WinCC在线趋势控制中如何设置时间显示格式(例如12或24小时)? 跳转至开头
    隐藏订货号显示订货号订货号:

     

    说明:
    时间显示的格式是在WinCC在线趋势控制中通过“控制面板>区域和语言设置>区域选项>自定义>时间”设置的。在此可指定想使用12还是24小时的显示格式。如果设置被更改,系统必须重新启动才能使更改生效。


    图01

    如何改变标尺窗口的字体大小或类型?
    0
    0

    查看评论
    * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
      个人资料
      • 访问:382437次
      • 积分:4318
      • 等级:
      • 排名:第7342名
      • 原创:40篇
      • 转载:146篇
      • 译文:1篇
      • 评论:23条
      最新评论