运行时如何过滤、排序并导出用户归档数据?

说明:
以下内容介绍了如何过滤、排序并导出用户归档数据:n

No. 描述
1 使用“WinCC 用户归档表格元素”的过滤、排序和导出功能 n

WinCC V7.0

“WinCC 用户归档控件”提供在运行时过滤、排序和导出数据的接口。关于“WinCC 用户归档控件”的详细信息,请参见 WinCC 信息系统中的“选项 〉用户归档 〉WinCC 用户归档控件”。n

WinCC V6.x
“WinCC 用户归档表格元素”提供运行时过滤、排序和导出数据的接口。n

以下详细介绍了"WinCC 用户归档表格元素":n

打开 WinCC 在线帮助,选择路径“WinCC 信息系统〉选项〉用户归档〉WinCC 用户归档表格元素”〉。然后点击“ WinCC 用户归档表格元素文档”按钮,将打开相应的帮助条目,选择“内容”标签。运行模式控件的描述可以在“用户归档控件〉运行时”条目下找到。

2使用用户归档脚本函数
可以使用用户归档脚本函数选择(过滤)、排序和导出用户归档数据。下面函数的“hArchive”参数是用户归档的有效句柄。使用函数“uaQueryArchive()“ 或“uaQueryArchiveByName()“之前,一定要创建该句柄。 n

  • "uaArchiveSetFilter()"
    n
    BOOL uaArchiveSetFilter (
    UAHARCHIVE hArchive,
    LPSTR pszFilter);

    该函数设置过滤,用于查询用户归档的数据。参数“pszFilter”为字符串类型,包含了实际的过滤条件。过滤条件的语法格式相应于 SQL 编程语言的 WHERE 语句,关键字“WHERE”不指定。

    示例:

    Batch Date > '1992-12-31 23:45:12.12'
    该声明选择如下数据记录,这些数据记录的“Batch Date”字段的数值大于指定的数值'1992-12-31 23:45:12.12'。“Batch Date”字段为“DB_TYPE_TIME”类型

    Batch ID = 15 OR Batch ID = 110
    该声明选择如下数据记录,这些数据记录的“BatchID”字段的数值为15或110。“Batch ID”字段为“DB_TYPE_INTEGER”类型

    Batch ID BETWEEN 110 AND 114
    该声明选择如下数据记录,这些数据记录的“BatchID”字段的数值在110和114之间。“Batch ID”字段为“DB_TYPE_INTEGER”类型

    Batch name like '%batch%' andDate Begin >= '2006-01-01' ANDDate Begin < '2007-01-01'
    该 声明选择如下数据记录,这些数据记录的"Batch name"字段中包含字符串"batch",“Date Begin”字段的数值在'2006-01-01'和'2007-01-01'之间。“Batch Name”字段为“DB_TYPE_CHAR”类型,“Date Begin”字段为“DB_TYPE_TIME”类型。

    Batch Name like 'batch%'
    该声明选择如下数据记录,这些数据记录的“Batch Name“字段由字符串“batch“开头,"Batch Name"字段的数据类型是"DB_TYPE_CHAR"

    注意:
    在SQL语句中,字符串要用单引号括起来'<STRING>'。n

  • "uaArchiveSetSort()"
    n
    BOOL uaArchiveSetSort (
    UAHARCHIVE hArchive,
    LPSTR pszSort);

    该函数对用户归档进行排序,参数"pszSort" 是包含实际排序条件的字符串。其排序规则符合 SQL 编程语句中 ORDERBY 子句的写法,关键字“ORDER BY”不指定。

    示例:

    Batch ID asc, ID desc
    这个例子定义了排序规则。第一个例句,是对字段"Batch ID" 的升序排列。另外, "ID"字段是附属的排序规则,如果在对"Batch ID" 字段排序时数据记录相同,此时可以依据"ID" 字段进行排序。

    Batch ID, ID desc
    这个例子和上面的例子相同。
    注意:
    关键词"asc" (升序)是排序的默认属性,因此可以不用声明。

    Batch User, Batch Name
    这个例子表示以"Batch User"字段做升序排列,对 "Batch Name"做附属升序排列。
    n

  • "uaArchiveExport()"
    n
    BOOL uaArchiveExport (
    UAHARCHIVE hArchive,
    LPSTR pszDestination,
    LONG lType,
    LONG lOptions);

    该函数将当前的用户归档导出到一个 CSV 的文本文件中。"pszDestination"参数包含了文本文件的完整路径,数据导出时创建该文本文件,参数 "lType"和 "lOptions"没有作用,填0。

关于用户归档脚本函数的详细信息:

  • WinCC V7.0
    请参见 WinCC 信息系统中的“选项 〉用户归档 〉用户归档脚本”。

    WinCC V6.x
    打开 WinCC 在线帮助,选择路径 "WinCC 信息系统>选项 >用户归档 > "。点击"用户归档文档",打开用户归档的帮助,选择"内容"标签页进入"User Archives Editor > User Archives Scripts >References of Standard Functions",点击"Display"按钮和"Further References",该条目位于帮助窗口顶部的区域。
    打开可选择帮助主题的窗口后,选择"References of the archive-specific Runtime functions"条目,点击"Display"按钮,和归档相关的函数会按字母排序的方式列出,每一个函数带有简短的说明。

  • 用户归档脚本函数调用的是"WinCC Open Development Kit" (ODK)选件中的函数,WinCC ODK 中有关于用户归档函数的详细信息。在条目9652128中可以找到ODK的支持信息。
  • 下面的样例程序示范了如何使用用户归档脚本函数。

    运行时如何过滤、排序并导出用户归档数据? UAExport.zip ( 4 KB )

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332921.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论