application & tools - · pdf file开项目。在 visual studio...

40
应用与工具 工业解决方案 封面 使用独立的 Windows 应用程序访问 WinCC 数据 WinCC_CopackCsharp应用技术文章 2009 10

Upload: vuthu

Post on 06-Feb-2018

350 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

应用与工具

工业解决方案

封面

使用独立的 Windows 应用程序访问 WinCC 数据

“WinCC_CopackCsharp”

应用技术文章 2009 年 10 月

Page 2: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

2 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

西门子工业自动化与驱动技术集团服务及支持门户网站

本文摘自西门子公司工业自动化与驱动技术集团服务门户网站。通过以下链接,用

户可以直达本文的下载页面。 http://support.automation.siemens.com/WW/view/en/35840700 如对本文有任何疑问,请发邮件至以下 e-mail 与我公司联系: [email protected]

Page 3: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

WinCC_CopackCsharp Version 1.1,项目编号:35840700 3

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

自动化任务 1

自动化解决方案 2

安装 3

运行应用程序 4

其它注释、提示和技巧等 5

参考书目 6

历史版本 7

s

SIMATIC WinCC_CopackCsharp 使用独立的 Windows 应用程序访问 WinCC 数据

Page 4: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

质量保证与责任

4 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

质量保证与责任

注 这些应用示例无约束力,并不说明完整的组态、配备或未知项,也不代表客户专

用解决方案,只是为一般用途提供支持,用户应保证所述产品用正确的方法使

用。这些应用举例不能减轻用户在应用、安装、操作和维护时采用正确方法的责

任。在使用这些应用示例时,用户应承认我公司对责任条款描述以外的任何损失/索赔不承担责任。我们保留在任何时候对这些应用示例进行变更的权利,恕不另

行通知。如果本应用示例所提供的建议与西门子其它出版物如产品目录有任何差

异,应以其它文件的内容为准。

我公司不对本文件所含信息承担任何责任。

任何由于使用本应用示例中所描述的例证、信息、程序、工程及性能数据等所引起

的对我公司的索赔要求,不管以何种法律理由,我公司概不接受。本排除责任不适

用于法定义务,如德国产品责任法案(“Produkthaftungsgesetz”)所定义的在下

述情况下的义务:故意或严重过失、人身或健康伤害、产品质量包换、欺诈性隐瞒

缺陷、或违反合同基本条款(“wesentliche Vertragspflichten”)。但是,如果由

于违反合同基本条款所引起的索赔要求应限于合同本身所能预见的损失,除非该损

失是由于故意或重大过失造成,或该损失基于人身或健康伤害所应承担的法定责

任。上述规定不表示用户对其损害提出举证责任的改变。 未得到西门子工业业务领域的明确授权,不得转让或复制这些应用示例或其摘录。

Page 5: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

目录

WinCC_CopackCsharp Version 1.1,项目编号:35840700 5

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

目录 质量保证与责任 .............................................................................................................. 4

目录 5

1 自动化任务........................................................................................................... 7

2 自动化解决方案.................................................................................................... 8

2.1 描述 ...................................................................................................... 8

2.2 使用的硬件和软件组件 ......................................................................... 9

3 安装.................................................................................................................... 10

4 运行应用程序 ........................................................... Error! Bookmark not defined.

4.1 界面对象的详细描述 ............................. Error! Bookmark not defined. 4.1.1 “Connection”(连接)工作组 ............................................................ 11 4.1.2 “Archive”(归档)工作组................................................................... 14 4.1.3 “data selection”(数据选择)工作组 ................................................ 15 4.1.4 “Time Interval”(时间间隔)工作组 .................................................. 17 4.1.5 “read archives”(读取归档)按钮..................................................... 18 4.1.6 “Export data”(导出数据)工作组..................................................... 18 4.1.7 显示运行时数据的数据单.................................................................... 20

4.2 读取、显示和导出 WinCC 过程值归档 ............................................... 21

4.3 读取、显示和导出 WinCC 消息归档................................................... 23

4.4 读取、显示和导出 WinCC 用户归档................................................... 25

5 其它注意事项、提示和技巧等............................................................................ 26

5.1 在水晶报表中创建一份报表 ................................................................ 26

5.2 对过程值归档求值的C#-码.................................................................. 30 5.2.1 连接过程定义 ...................................................................................... 30 5.2.2 数据选择的定义 .................................................................................. 30 5.2.3 连接数据库并读取数据 ....................................................................... 31 5.2.4 为 DataGrid 和/或水晶报表提供数据:.............................................. 31 5.2.5 DataGrid 数据连接: ......................................................................... 34 5.2.6 水晶报表数据连接: ........................................................................... 34 5.2.7 关闭与归档的连接............................................................................... 35 5.2.8 把归档值导出为 csv 文件 ................................................................... 35

5.3 用于对报警和消息求值的 C#代码 ....................................................... 35 5.3.1 连接过程定义 ...................................................................................... 35 5.3.2 数据选择的定义 .................................................................................. 35 5.3.3 连接数据库并读取数据:.................................................................... 36 5.3.4 为 DataGrid 和/或水晶报表提供数据:.............................................. 36 5.3.5 DataGrid 数据连接: ......................................................................... 36 5.3.6 水晶报表数据连接: ........................................................................... 37 5.3.7 关闭与归档的连接............................................................................... 37

5.4 用于对用户归档求值的 C# 代码 ......................................................... 37 5.4.1 连接过程定义 ...................................................................................... 37 5.4.2 数据选择的定义 .................................................................................. 37 5.4.3 连接数据库并读取数据:.................................................................... 37

Page 6: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

目录

6 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

5.4.4 为 DataGrid 和/或水晶报表提供数据:.............................................. 37 5.4.5 DataGrid 数据连接: ......................................................................... 38 5.4.6 水晶报表数据连接: ........................................................................... 38 5.4.7 关闭与归档的连接............................................................................... 38

6 参考书目 .................................................................. Error! Bookmark not defined.

7 历史版本 .................................................................. Error! Bookmark not defined.

Page 7: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

自动化任务

WinCC_CopackCsharp Version 1.1,项目编号:35840700 7

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

自动化任务 1简介

从 WinCC 6.0 起,WinCC 运行系统数据库就采用了分段结构,也就是说,数据会

提交给多个归档段(多个数据库)。有一部分数据会以压缩的二进制形式提交。

WinCC 选件“WinCC Connectivity Pack”提供了 WinCC-OleDBProvider,它让

用户可以直接读取变量记录和报警记录中的运行系统数据。WinCC OLE DB Provider 可以提供解压缩解密格式的各个归档段中的数据。WinCC Connectivity Pack 的用户在访问变量记录和报警记录数据时不必担心归档的分段以及加密。

自动化任务描述

利用独立的 C-Sharp Windows 应用程序并使用 WinCC Connectivity Pack,已归档

的变量记录(过程数据归档)和报警记录(已归档的消息和报警),以及用户归档

等 WinCC 运行系统数据都可以访问。

此外还应说明的是,如何读出变量记录和报警记录以及用户归档的运行系统数据,

如何通过水晶报表显示和输出,或者导出成 CSV 文件。

这里没有提供特别注意来说明创建和编写一个 C# Windows 应用程序和实现访问 WinCC 归档数据所需的机制位。

Page 8: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

自动化解决方案

2

8 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

自动化解决方案

2.1 描述

数据库连接结构

• 准备数据(调整时间格式;本地时间或国际标准时间)

• 使用 MS OleDB 接口读取 WinCC 归档组态和 WinCC 用户归档

• 使用 WinCC OleDBProviders 读取已归档的过程值(WinCC 变量记录)以及报

警和消息(WinCC 报警记录)。

• 用“DataGrid”控件显示数据表格

• 把文件输出成 csv 文件

• 通过水晶报表输出数据

此条目包含了一个完整的 Visual C# 例程,它用一个可运行 Windows 应用程序给出

了上述访问机制。

注 本例仅用于实现数据的读取访问。在使用 MS OleDB 接口时,各 SQL 命令(例如

更新、插入、删除等)在技术上也允许对数据进行写入访问。

注意 写入访问只能用用户归档中的数据进行测试和使能。

注 请进入http://support.automation.siemens.com/WW/view/en/22578952 了解访问 WinCC 归档的概览和其它选项。

Page 9: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

自动化解决方案

WinCC_CopackCsharp Version 1.1,项目编号:35840700 9

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

2.2 使用的硬件和软件组件

本例中,使用了两台独立的计算机(WinCC 服务器和 Connectivity Pack 客户

端)。WinCC 服务器用于把数据归档到 WinCC 运行系统数据库中。Connectivity Pack 客户端用于读取 WinCC 运行系统数据库中的数据。系统使用了以下组态:

WinCC 服务器: 表 2-1

硬件 软件

MS Windows XP Professional SP2 Intel Pentium 4 CPU 2,4 GHz, 2GB RAM

SIMATIC WinCC V6.2(包含 SQL Server 2005 SP1) 或

SIMATIC WinCC V7.0

Connectivity Pack 客户端: 表 2-2

硬件 软件

MS Windows XP Professional SP2 注: 必须安装 Windows 组件“Microsoft Message Queuing”。在“控制界面”>软件>添加/删除 Windows 组件>消息队列”中

可以安装这些组件。

Intel Pentium 4 CPU 2,4 GHz, 1GB RAM

在使用 WinCC-OleDBProvider 时: • WinCC/ConnectivityPack V6.2 (客户

端) 或

• WinCC/ConnectivityPack V6.2 (客户

端)

可选: MS Visual Studio 2005 Professional 带 Visual C#

示例文件和项目

下表包含了本例中使用的所有文件和项目。 表 2-3

组件 注释

WinCCcopack.zip 包含了使用 Visual Studio 2005 创建的 C#项目

Page 10: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

安装

3

10 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

安装

下载并解压

下载提供的例程,并解压收到的压缩归档。创建“WinCCcopack”文件夹。子文件

夹“WinCCcopack > appCopack”包含了使用 Visual Studio 2005 创建的 C# 项目

根据是否已安装开发环境 MS Visual Studio,您可以按照如下方式使用例程:

已经安装了 Visual Studio 开发环境

如果您的计算机上已经安装了 Visual Studio,您可以双击“appCopack.sln”文件打

开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译程序,并用菜单

命令“Debug”(调试)>“Start without debugging”(不调试直接开始)执行该

程序。

没有安装 Visual Studio 开发环境

如果您的计算机上没有安装 Visual Studio,您可以双击“.WinCCcopack > appCopack\obj\Debug\appCopack.exe”文件执行程序。

Page 11: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 11

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

运行应用程序 44.1 界面对象的详细描述

启动该 Windows 应用程序后,程序窗口会显示“starting… (Form2)”(正在启动…

(窗口 2))此窗口以独立线程启动,程序下载完成后终止。 图 4-1

程序下载完毕后,会显示 “appCopack (Form1)”(“appCopack (窗口 1 )”)

程序窗口。 图 4-2

该程序包含如下所述的一个程序窗口。

4.1.1 “Connection”(连接)工作组

类型: GroupBox 名称: grpConnection

Page 12: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

12 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

图 4-3

此工作组的输入字段用于组态与数据源的连接。在启动此程序时,这些字段已经预

分配好了。用户可以在运行系统修改连接的参数,执行数据查询。

注 按“connect to database”(连接到数据库)按钮后,此工作组就不会再运行

了。 当您更改“archive”(存档)工作组中的选择时,“Connection”(连接)工作

组会再次运行。

表 4-1

界面对象

(对象名称)

描述

输入字段“Source”(源) 类型: TextBox 名称: txtSource

此输入字段包含了 WinCC 服务器的名称,以及要访问其运行系

统数据的 SQL 服务器的实例名。 <计算机名>\WINCC 在启动此程序时此字段被预赋值为

“WINCC_70_LP\WINCC”。

输入字段“Source”(源) 类型: TextBox 名称: lblCatalog

在此输入字段,用户必须指定要访问数据的运行系统数据库的

数据源名称(DSN)。 注: • 对于 WinCC 运行系统,WinCC 内部变量

“@DatasourceNameRT”包含了 WinCC 运行系统数据库

的“数据源名称”。您可以通过读取此变量来决定所需的

数据源名称。请进入

http://support.automation.siemens.com/WW/view/en/9061684了解详细信息。

• 程序启动期间,此字段被赋值为

“CC_OS_1__09_06_23_10_01_27R”。

Page 13: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 13

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

界面对象

(对象名称)

描述

输入字段“Provider”( 提供器) 类型: TextBox 名称: txtProvider

在输入字段中,用户必须指定 WinCC-OleDBProviders 的名

称。 注: • WinCC-OleDBProvider 由 Connectivity Pack 提供,用于

读取变量和报警记录的运行系统数据。 • 为了访问 WinCC 运行系统数据(例如用户存档的存档组

态),对于 MS OleDB 接口,程序总会使用

“SQLOLEDB”提供器。 • 程序启动期间,此字段被赋值为

“WinCCOLEDBProvider.1”。

输入字段“Uid” 类型: TextBox 名称: txtUid

在此输入字段,用户必须指定访问运行系统数据库的数据库用

户名。 注: • 此用户名只用于通过 MS OleDB 接口访问数据库。此字段

不用于使用 WinCC-OleDBProvider 访问数据库。 • 在 WinCC 运行系统数据库中,您可以单独创建一个用户,

用于 MS OleDB 访问,并指定密码和用户权限。请进入

http://support.automation.siemens.com/WW/view/en/27147643了解如何创建用户的详细信息。

• 程序启动期间,此字段被赋值为“DBUser”。

输入字段“Pwd” 类型: TextBox 名称: txtPwd

在此输入字段,用户必须指定访问运行系统数据库的密码。密

码输入是隐藏式的,即仅显示星号“***” 注: • 此密码只用于通过 MS OleDB 接口访问数据库。此字段不

用于使用 WinCC-OleDBProvider 访问数据库。 • 程序启动期间,此字段被赋值为“123456”。

Page 14: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

14 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

4.1.2 “Archive”(归档)工作组

类型: GroupBox 名称: grpArchive 图 4-4

这些单选按钮用于选择数据源。提供以下选项(数据源):

• “Tag Logging”(变量记录)

• “Alarm Logging”(报警记录)

• “User Archive” (用户归档) 选择数据源时,用户可以决定读取哪种类型的数据。此外,选择后就不能操作

“data selection”(数据选择)、“Time Interval”(时间间隔)、“export data” (导出数据)工作组和“read archives” (读取归档)按钮了。

点击“connect to database”(连接到数据库)按钮会装载数据库其它设置的数

据,因此点击后“Connection”(连接)工作组就不再运行了。

注 此工作组一直可以操作。

更改数据源时也可以再次允许运行“Connection”(连接)工作组。

表 4-2

界面对象

(对象名称)

描述

选项“Tag Logging”(变量记录) 类型: RadioButton 名称: rbtTagLogging

按“Tag Logging”(变量记录)选项后,会把

“WinCC Tag Logging”(WinCC 变量记录)用作

随后数据查询的数据源。 注: 点击“connect to database”(连接到数据库)按

钮后,可以操作“Data selection”(数据选择)、

“Export Data”(导出数据)、“Time Interval”(时间间隔)工作组和“read archives”(读取归

档)按钮。

Page 15: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 15

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

界面对象

(对象名称)

描述

选项“Alarm Logging”(报警记

录) 类型: RadioButton 名称: rbtAlarmLogging

按“Alarm Logging”(报警记录)选项后,会把

“WinCC Alarm Logging”(WinCC报警记录)用

作随后数据查询的数据源。

注: 点击“Connect to database”(连接到数据库)按

钮后,可以操作“Time Interval”(时间间隔)工

作组和“read archives”(读取归档)按钮。

选项“User Archives”(用户归档) 类型: RadioButton 名称: rbtAlarmLogging

按“User Archives”(用户归档)选项后,会把

“WinCC user archive”(WinCC 用户归档)用作

随后数据查询的数据源。 注: 点击“connect to database”(连接到数据库)按

钮后,可以操作“Time Interval”(时间间隔)工

作组和“read archives”(读取归档)按钮。

4.1.3 “data selection”(数据选择)工作组

类型: GroupBox 名称: grpDataSelection 图 4-5

此工作组中的对象仅用于组态对变量记录的运行系统数据的访问。在此工作组中,

可以选择可用的 WinCC 变量记录的归档变量,以及用于压缩指定数据的特殊参数。

注 只有在 “Archive”(归档)工作组中选择了“Tag Logging”(变量记录)选

项,而且按下了“connect to database”(连接到数据库)按钮时,才能运行此

工作组。

Page 16: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

16 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

表 4-3

界面对象

(对象名称)

描述

下拉列表“Archive Tag”(归档变

量) 类型: ComboBox 名称: cmbTags

下拉列表“Archive Tag”(归档变量)包含了运行

系统数据库中组态的归档变量。您可以通过鼠标单

击打开此下拉列表,并选择需要从运行系统数据库

中读取值的归档变量。 注: • 在实际轮询数据时,为了提高性能,WinCC-

OleDBProvider 会获得归档变量 ID,而不是归

档变量名。 • 通过下拉列表,会显示检测到的归档变量的数

量。 • 在选择“Data-Grid”控件时,停用

CrystalReportViewer。

按钮“Aggreg. Typ” 类型: ComboBox 名称: cmbInterpol

下拉列表“Aggreg. Typ”包含 WinCC Connectivity Pack 支持的聚合类型。您可以选择一种聚合类型对

数据查询(压缩)期间给定时间间隔中的变量记录

运行系统的多个后续归档值进行查询。 程序启动期间,下拉列表中会输入“Without Aggreg.”值。如果选择了此值,则此次查询期间的

值不会与 WinCC-OleDBProvider 结合。

输入字段“Ineterval”(时间间隔) 类型: TextBox 名称: txtStep

这里输入组合(压缩)值的时间间隔(单位:

秒)。此字段中输入的值只有在“Aggreg Typ”下

拉列表中选择的值不是“Without Aggreg.”时才有

效。 程序启动期间,此字段被赋值为 60(秒)。

Page 17: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 17

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

4.1.4 “Time Interval”(时间间隔)工作组

类型: GroupBox 名称: grpTimeInterval 图 4-6

此工作组中的对象用于给出查询变量记录和报警记录运行系统数据时用作过滤器标

准的时间间隔。

注 只有在“Archive”(归档)工作组中选择了“Tag Logging”(变量记录)选

项,而且按下了“connect to database”(连接到数据库)按钮时,才能运行此

工作组。

时间按本地格式给出。在查询给定的时间间隔时,它要先转换成 UTC 时间,然后

传输给 WinCC-OleDBProvider 作为过滤器标准。

在轮询用户归档时,不发送时间间隔。

在程序启动时,时间间隔设置为最后 24 小时。

表 4-4

界面对象

(对象名称)

描述

日期时间选择框 “Local Time from”(本地时间开始

于) 类型: DateTimePicker 名称: dtpFrom

在此选择框里,可以指定查询时间间隔的开始时

间。

日期时间选择框 “Local Time to”(本地时间结束

于)” 类型: DateTimePicker 名称: dtpTo

在此选择框里,可以指定查询时间间隔的结束时

间。

Page 18: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

18 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

4.1.5 “read archives”(读取归档)按钮

类型: GroupBox 名称: grpExport 图 4-7

点击“read archives”(读取归档)按钮从数据库读取先前设置的归档,这可能会

花数分钟时间。读取数据时,程序不能运行。

数据读取完毕后,读取的数据量会显示在该按钮旁边的文字中。

注 只有在“Archive”(归档)工作组中选择了一个复选框,而且按下了“connect to database”(连接到数据库)按钮时,此按钮才能运行。

4.1.6 “Export data”(导出数据)工作组

类型: GroupBox 名称: grpExport 图 4-8

此工作组中的对象仅用于组态对变量记录和报警记录的运行系统数据的导出。

注 只有按下了“read archives”(读取归档)按钮时,此工作组才能运行。

会显示“DataGrid”表单中的数据(包括已完成的分类)。

Page 19: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 19

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

表 4-5

界面对象

(对象名称)

描述

输入字段“ExportPath” 类型: TextBox 名称: txtExportPath

此字段内显示的是数据导出的路径。可以通过输入

此字段或者点击“Select Path”(选择路径)按钮

来更改此处的路径。 注: 在程序启动时,会创建“C:\data\tmp”路径作为此

字段的默认输入。

输入字段“ExportFile” 类型: TextBox 名称: txtExportFile

此字段用于输入文件名。创建一个与.csv 兼容的.txt文件。 在选择一个归档变量时,或者程序启动期间,此字

段的默认输入为已选择的归档变量的名称,并在后

面加上字符“.txt”。 “<ARCHIV_TAGNAME>.txt”

按钮“Select Path”(选择路径) 类型: Button 名称: btnPath

点击此按钮打开文件夹选择对话框。所选择或创建

的文件夹会传输给“ExportPath”路径。

按钮“Export”(导出) 类型: Button 名称: btnExport

通过点击此按钮,把“DataGrid”控件的数据导

出。 在导出完毕后,按钮下方会出现文字“export finished”(导出已完成)。

Page 20: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

20 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

4.1.7 显示运行系统数据的数据单

类型: TabControl 名称: tabView 图 4-9

数据查询的结果显示在一个数据单里。可使用用于显示表格的“DataGrid”变量,

以及用于格式化显示(例如打印版)的“CrystalReports”。 表 4-6

界面对象

(对象名称)

描述

“DataGrid”变量 类型:TabPage 名称:tabPageDataGrid 包含 DataGrid 控件 类型:DataGridView 名称:myGrid

“DataGrid”控件用于显示表格中的数据。

Page 21: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 21

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

界面对象

(对象名称)

描述

“CrystalReports”变量 类型:TabPage 名称:tabPageCrystalReports 包含 Rerport 控件 类型:CrystalReportViewer 名称:crystalReportViewer1

CrystalReportViewer 用于格式化数据显示。

“Rows Found”(查找行)显示文

本 类型:Label 名称:lblAnz

该显示字段显示的是数据库查询提供的数据记录结

果的数量。

“read archives”(读取归档)按钮 类型:Button 名称:btnRead

按“read archieves”(读取归档)按钮执行数据库

查询。获得的数据显示在表格里或被格式化。 在显示变量记录运行系统数据时,会写入 csv 文件。如果 csv 文件已经存在则它会被覆盖。

4.2 读取、显示和导出 WinCC 过程值归档

以下描述显示了变量记录运行时数据是如何显示在“DataGrid”控件或者水晶报表

查看器中以及输出成 csv 文件的。

表 4-7

编号 操作

1. 组态与数据库的连接。

2. 选择“Tag Logging”(变量记录)单选按钮,并单击“connect to database”(连接到数据

库)按钮。

3. 在“ArchiveTag”下拉列表中,您可以选择一个归档变量,并设置归档变量的压缩

(Aggreg.Typ 和时间间隔)。

4. 选择时间间隔

注 WinCC-OleDBProvider 提供了带有 UTC 格式的时间戳的标准数据。要显示数

据,此时间戳会被转换成本地时间。

“Quality”(质量)和“Flags”(标记)值会显示为十六进制值。

Page 22: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

22 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

下图显示了变量记录归档数据的表格显示。 图 4-10

Page 23: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 23

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

4.3 读取、显示和导出 WinCC 消息归档

以下描述显示了报警记录的运行系统数据是如何显示在“DataGrid”控件或者水晶

报表查看器中的。

表 4-8

编号 操作

1. 组态与数据库的连接。

2. 选择“Alarm Logging”(报警记录)单选按钮,并单击“connect to database”(连接到数据

库)按钮。

3. 选择时间间隔

4. 单击“read archives”(读取归档)按钮。

5. 如有必要,您可以更改导出文件夹以及导出文件的文件名,然后单击“Export”(导出)按

钮。

注 WinCC-OleDBProvider 提供了带有 UTC 格式的时间戳的标准数据。要显示数

据,此时间戳会被转换成本地时间。

消息状态“State”由 WinCC-OleDBProvider 默认以十进制值的格式提供。消息

状态会转换成字符链以便显示。使用报警记录编辑器中的消息等级的字符。

Page 24: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

24 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

下图显示了报警记录归档数据的表格显示。 图 4-11

Page 25: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

运行应用程序

WinCC_CopackCsharp Version 1.1,项目编号:35840700 25

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

4.4 读取、显示和导出 WinCC 用户归档

下图显示了用户归档的运行系统数据是如何显示在“DataGrid”控件或者水晶报表

查看器中的。

此应用程序显示的是用户归档“Products”(产品)的数据。这需要 WinCC 项目中

的用户归档组态如下: 图 4-12

显示用户归档“Products”(产品)的过程如下:

表 4-9

编号 操作

1. 组态与数据库的连接。

2. 选择“Alarm Logging”(报警记录)单选按钮,并单击“connect to database”(连接到数据

库)按钮。

3. 单击“read archives”(读取归档)按钮。

4. 如有必要,您可以更改导出文件夹以及导出文件的文件名,然后单击“Export”(导出)按

钮。

Page 26: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

5

26 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

其它注意事项、提示和技巧等

5.1 在水晶报表中创建一份报表

这一节描述如何创建一个 MS Visual Studio 2005 格式的水晶报表。 表 5-1

步骤

1 添加数据集

此步骤中,可以创建数据集,通过读取它的数据来支持报表: • 在项目文件夹解决方案浏览器中右击打开项目的上下文菜单,并选择菜单项目

“Add > New Item”(添加>新项目),打开一个带有模板列表的窗口。 • 选择“DataSet”(数据集)条目。

在此处指定最终文件名。

• 按“Add”(添加)按钮创建项目的数据集。

Page 27: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

WinCC_CopackCsharp Version 1.1,项目编号:35840700 27

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

步骤

2 数据集>添加数据表格 • 在解决方案浏览器中双击之前创建的数据集。打开数据集设计程序。 • 右键单击数据集设计程序内的“空白”区域。打开上下文菜单。按菜单选项

“Add > DataTable”(添加>数据表格) 提供了一个空数据表格。

• 调整创建的数据表格的名称。

3 数据集>添加数据表格>添加列 • 用右键按钮选择数据集内的数据表格的标题。打开上下文菜单。选择菜单选项

“Add >Column”(添加>列)。添加了一个新列。 根据以后要读取的归档数据调整列名称。为每个数据表格列添加一个相应的数据集的

数据表格列。

4 添加一个水晶报表

• 在解决方案浏览器中右键单击打开项目的上下文菜单,并选择菜单命令 “Add > New Item”(添加>新条目)。 打开一个带有模板列表的窗口。

• 选择“Crystal Report”( 水晶报表)条目。

• 为报表指定最终名称。(此名称用于创建报表类。)

• 按“Add”(添加)按钮创建项目报表。

Page 28: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

28 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

号 步骤

5 带有数据集的水晶报表>连接数据表格 • 打开报表模板

在报表设计程序中打开一个报表。您可以在解决方案浏览器中双击一个报表

“<ReportName>.rpt”。 • 打开数据库专家

在报表的空白区右键单击。打开上下文菜单。选择选项“Database > Database Expert”(数据库>数据库专家)。要打开数据库专家,您还可以使用菜单选项

“Crystal Reports > Database > Database Expert”(水晶报表>数据库>数据库

专家)。打开数据库专家。 • 数据集>添加数据表格

“Available Data Sources”(现有数据源)列表包含了之前在“ADO.NET (XML)”条目中创建的数据集。单击所需的数据集,然后就可以看到已包含的数

据表格了。通过双击或“>”按钮,您可以把数据表格添加到“Selected Tables”(已选择表格)列表中。

从现在起,表格列就可以在水晶报表设计程序中使用了。

Page 29: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

WinCC_CopackCsharp Version 1.1,项目编号:35840700 29

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

号 步骤

6 用现有的数据库字段组态水晶报表 单击报表的空白区。打开上下文菜单。选择菜单选项“Field Explorer”(字段浏览

器)。您还可以通过命令“Crystal Reports > Field Explorer”打开字段浏览器。字段

浏览器列出了带有之前已经连接的数据表格,并且此数据表格具有之前创建的列。您

现在可以使用鼠标把列“拖拽”到报表里了。报表中已使用的列在“Field Explorer > Database Fields”(字段浏览器>数据库字段)中带有绿色的对勾标记。

7 把 CrystalReportViewer 添加到表格

为了在应用程序中使用一个水晶报表,您可以把 CrystalReportViewer 添加到一个自

己应用程序的表格中。您可以在“Crystal Reports > CrystalReportViewer”(水晶报

表>CrystalReportViewer)上的工具箱中找到 CrystalReportViewer。 在运行时,这可以预览、打印和导出报表。 注: • 要显示的报表的类在运行时只能分配为“.ReportSource”属性。

(请参考示例 水晶报表数据连接 ) • 在标准设置下不会显示工具箱和状态栏。要显示工具箱和状态栏,请把属性

“DisplayStatusbar”和“DisplayToolbar”的值设置成“true”。 工具栏(顶部区域的菜单栏)提供了导出/打印/滚动/缩放和搜索功能。状态栏

(显示在底部)提供了页面信息和缩放系数。

Page 30: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

30 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

5.2 对过程值归档评估的 C#-码

5.2.1 连接过程定义

“字符串”变量“myConnectionString”用于对与归档数据库已建立的连接所需的

信息进行初始化。针对连接过程,该字符串的基本设置显示如下:

string myConnectionString = "Provider = WinCCOLEDBProvider.1; ////WinCC OleDBProvider Data Source = <Rechnername>\WINCC>; Catalog = <Data Source Name>“;

在程序中,“Connection”(连接)工作组的对象(“txtSource”、“txtCatalog”和“txtProvider”)用于初始化针对连接过程的字符串。

5.2.2 数据选择的定义

“字符串”变量“mySelectQuery”使用实际 SQL 数据查询所需的信息进行初始

化。针对数据选择,该字符串的基本设置显示如下: string mySelectQuery = "TAG:R,(id1;id2;idn), //id=Ident. Process value archive ’yyyy-mm-dd hh:mm:ss’, //Start time stamp ’yyyy-mm-dd hh:mm:ss’, //End time stamp ’TIMESTEP=n,Typ’"; //n=increment in seconds //Type=compression type (e.g.AVG //for the mean value)

在程序中,“Data selection”(数据选择)工作组的对象(“cmbTags”、

“cmbInterpol”和“txtStep”)以及“Time Interval”(时间间隔)(“dtpFrom”

和“dtpTo”)用于初始化数据选择的字符串。 注:

– WinCCOLEDBProvider 支持在一次查询中指定多个归档变量。归档变量可

以赋予名称或归档变量 ID。 此例程仅从一个归档变量中读取了数据。已选择“cmbTags”下拉列表中选

择的归档变量的值。

– 归档变量保存在运行系统数据库中,带有标准时间戳(UTC)。必须用标准

时间码(UTC)为 WinCCOLEDBProvider 提供查询时间段,因此提供的数

据与本地时间没有时间滞后。因此“dtpFrom”和“dtpTo”对象上使用的时

间戳在对象用于数据查询前要从本地时间转换成标准时间。以下程序代码显

示了时间戳转换成标准时间码,以及数据选择的时间戳的准备。“字符串”

变量“tfrom”和“tto”用于设置数据选择的字符串。 //covert to universal time (utc) localDateTimeFrom = dtpFrom.Value; localDateTimeFrom = System.DateTime.Parse(localDateTimeFrom.ToString()); univDateTimeFrom = localDateTimeFrom.ToUniversalTime();

Page 31: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

WinCC_CopackCsharp Version 1.1,项目编号:35840700 31

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

string tfrom = dtpFrom.Value.Year.ToString() + "-" + string.Format("{0:MM}",univDateTimeFrom.Month.ToString()) + "-" + string.Format("{0:dd}",univDateTimeFrom.Day.ToString()) + " " + string.Format("{0:HH}",univDateTimeFrom.Hour.ToString()) + ":" + string.Format("{0:mm}",univDateTimeFrom.Minute.ToString()) + ":" + string.Format("{0:ss}",univDateTimeFrom.Second.ToString()); //covert to universal time (utc) localDateTimeTo = dtpTo.Value; localDateTimeTo = System.DateTime.Parse(localDateTimeTo.ToString()); univDateTimeTo = localDateTimeTo.ToUniversalTime(); string tto = dtpTo.Value.Year.ToString() + "-" + string.Format("{0:MM}",univDateTimeTo.Month.ToString()) + "-" + string.Format("{0:dd}",univDateTimeTo.Day.ToString()) + " " + string.Format("{0:HH}",univDateTimeTo.Hour.ToString()) + ":" + string.Format("{0:mm}",univDateTimeTo.Minute.ToString()) + ":" + string.Format("{0:ss}",univDateTimeTo.Second.ToString());

5.2.3 连接数据库并读取数据

以下程序码显示了与数据库的连接和访问数据的过程。 OleDbConnection myConnection; OleDbCommand myCommand; OleDbDataAdapter myAdapter; . . . // Connection Archive-Database myConnection=new OleDbConnection(myConnectionString); myCommand = new OleDbCommand(mySelectQuery) myCommand.Connection = myConnection; myAdapter = new OleDbDataAdapter (myCommand); //connect and access

注: 此例程中,数据是通过 OleDbDataAdapter 读取的。也可以使用

OleDbDataReader。这不影响 SQL 查询的实际传输过程,但是会影响后面的数据处

理。使用 OleDbDataAdapter,可以直接提供 DataGridView 中的信息,而不用处理

行和列。

5.2.4 为 DataGrid 和/或水晶报表提供数据:

此例程使用 DataGridView 控件表示表格中的数据,使用 CrystalReportViewer 输出

格式化数据。两种控件都显示了将 DataTable 类型的对象用作数据源。

OleDBDataAdapter 可以提供数据表格对象“myTableTags”,其中使用的数据是

SQL 查询使用“.Fill()”方法读取的数据。

Page 32: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

32 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

DataTable myTableTags; . . . myTableTags = new DataTable(); . . . myTableTags.TableName = "myTableTags"; myAdapter.Fill(myTableTags);

数据表格“myTableTags”的数据被逐行(逐条数据记录)读取,为显示并写入另

一个数据表格“myTableTagsModify”做准备。已修改的数据表格

“myTableTagsModify”的数据用于显示。 以下程序代码显示了数据的准备情况:

这种情况下,数据表格“myTableTagsModify”的结构(列)必须手动创建。以下

代码显示了创建数据表格“myTableTagsModify”前三列的情况。

Page 33: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

WinCC_CopackCsharp Version 1.1,项目编号:35840700 33

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

//=================================================== // //Adding Columns and Rows to Data Table myTableTagsModify // //=================================================== DataColumn newColumn = new DataColumn ("localTimestamp", System.Type.GetType("System.String")); newColumn.Caption = "localTimestamp"; newColumn.DefaultValue = string.Empty; myTableTagsModify.Columns.Add(newColumn); // newColumn = new DataColumn ("RealValue", System.Type.GetType("System.String")); newColumn.Caption = "RealValue"; newColumn.DefaultValue = string.Empty; myTableTagsModify.Columns.Add(newColumn); // newColumn = new DataColumn ("Quality", System.Type.GetType("System.String")); newColumn.Caption = "Quality"; newColumn.DefaultValue = string.Empty; myTableTagsModify.Columns.Add(newColumn); 以下代码显示的是“填写”数据表格“myTableTagsModify”的情况。数据表格

“myTableTags”要进行以下调整:

为了显示,时间戳要从标准时间码(UTC)转换成本地时间码。

归档变量的值显示 3 位值。

质量代码和变量状态显示为十六进制数字。

在此部分,创建了“ValueName”、“localDateTimeFrom”、

“localDateTimeTo”、“univDateTimeFrom”和“univDateTimeTo”列,并提供

了值。此列在报表中访问。 –

//modify DataTable myTableTagsModify.Clear(); foreach (DataRow row in myTableTags.Rows) { DataRow newRow = myTableTagsModify.NewRow(); //covert to local time localDateTime = System.DateTime.Parse(row["Timestamp"].ToString()); localDateTime = localDateTime.ToLocalTime(); newRow["localTimestamp"] = localDateTime.ToString(); newRow["RealValue"] = (String.Format("{0:F3}",row["RealValue"])).PadLeft(20); newRow["Quality"] = String.Format("0x{0:X}", row["Quality"]).PadLeft(10); newRow["Flags"] = String.Format("0x{0:X}",row["Flags"]).PadLeft(10); newRow["ValueID"] = row["ValueID"]; newRow["ValueName"] = szValueName; newRow["localDateTimeFrom"] = localDateTimeFrom; newRow["localDateTimeTo"] = localDateTimeTo; newRow["univDateTimeFrom"] = univDateTimeFrom; newRow["univDateTimeTo"] = univDateTimeTo; myTableTagsModify.Rows.Add(newRow); }//foreach(DataRow) myGrid.DataSource = myTableTagsModify;

Page 34: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

34 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

5.2.5 DataGrid 数据连接:

要显示的数据表格的名称被分配到 DataGridView 控件 的“.DataSource”属性。 myGrid.DataSource = myTableTagsModify;

5.2.6 水晶报表数据连接:

本例中,为每个报告(变量记录、报警记录和归档值)创建了单独的报表。对于每

个报表,Visual Studio 都会创建一个与之同名的报表类。

下图显示了此项目中创建的报表,以及现有的报表类。 图 5-1

通过.SetDataSource 连接已创建的实例的数据池与数据表格。 在我们的例子中,只有一个水晶报表查看器。.ReportSource 连接和所需的报表实例

决定了,myDataReportAlarms 这里应该显示哪个报表。 // Activating Crystal-Report CRTagLogging myDataReportTags = new CRTagLogging(); myDataReportTags.SetDataSource(myTableTagsModify); crystalReportViewer1.ReportSource = myDataReportTags;

Page 35: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

WinCC_CopackCsharp Version 1.1,项目编号:35840700 35

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

5.2.7 关闭与归档的连接

myConnection.Close();

5.2.8 把归档值导出为 csv 文件

数据表格“myTableTagsModify”被逐行(逐条数据记录)读取,内容被写入到 csv 文件中。 StreamWriter streamTagLogging = null; string strLine = ""; string strExportFile = ""; // //Loop through DataTable by DataRow // //text file open strExportFile = String.Format("{0}\\{1}", txtExportPath.Text, txtExportFile.Text); streamTagLogging = File.CreateText(strExportFile); strLine = "strExportFile=" + txtExportFile.Text; streamTagLogging.WriteLine(strLine); streamTagLogging.WriteLine(myConnectionString); strLine = String.Format("mySelectQuery=\"{0}\"", mySelectQuery); streamTagLogging.WriteLine(strLine); strLine = "localTimestamp; RealValue; Quality; Flags"; streamTagLogging.WriteLine(strLine); foreach (DataRow row in myTableTagsModify.Rows) { strLine = String.Format("{0}; {1}; {2}; {3}", row["localTimestamp"], row["RealValue"], row["Quality"], row["Flags"]); streamTagLogging.WriteLine(strLine); }//DataRow if (streamTagLogging != null)streamTagLogging.Close();

5.3 用于对报警和消息求值的 C#代码

5.3.1 连接过程定义

请参考 5.2 1 节的内容。

5.3.2 数据选择的定义

“字符串”变量“mySelectQuery”使用实际 SQL 数据查询所需的信息进行初始

化。针对数据选择,该字符串的基本设置显示如下: string mySelectQuery = "ALARMVIEW:SELECT * FROM AlgViewDeu Where DateTime>'2007-08-10 12:00:00’ AND DateTime<'2007-08-10 14:00:00’";

Page 36: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

36 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

在程序中,“Time Interval”(时间间隔)工作组的对象(“dtpFrom”和

“dtpTo”)用于初始化数据选择的字符串。

注 消息归档保存在运行系统数据库中,带有标准时间戳(UTC)。对于过程值归档

的数据选择(参考 5.2.2 节),本地时间戳会转换成标准时间戳。

5.3.3 连接数据库并读取数据:

请参考 5.2 节的内容。

5.3.4 为 DataGrid 和/或水晶报表提供数据:

请参考 5.2 4 节的内容。

以下程序代码显示了消息的状态是如何显示为字符链而不是数字值的(就像在 WinCC 报警控制中)。消息状态的数字值在切换指令中求出,而相关的字符链在各

种情况分支中赋值。

注 可能的数字值(消息可能的“状态”)上的信息,在条目 24842903 中,或者 WinCC 信息系统中,位置在: “使用 WinCC >创建过程和操作的 ANSI-C >ANSI-C功能描述>附录>结构定义 >结构定义 MSG_RTDATA_STRUCT ”

//szState = String.Format("0x{0:X}", row["State"]).PadLeft(10); iState = (short)(row["State"]); switch (iState){ case 1: szState = row["TxtCame"].ToString(); break; case 2: szState = row["TxtWent"].ToString(); break; case 3: szState = row["TxtAck"].ToString(); break; case 16://0x10 (Quit System) szState = row["TxtAck"].ToString(); break; default: szState = String.Format("0x{0:X}", row["State"]).PadLeft(10); break; }//switch row["State"] newRow["State"] = szState;

5.3.5 DataGrid 数据连接:

要显示的数据表格的名称被分配到 DataGridView 控件 的“.DataSource”属性。 myGrid.DataSource = myTableTagsModify;

Page 37: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

WinCC_CopackCsharp Version 1.1,项目编号:35840700 37

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

5.3.6 水晶报表数据连接:

请参考 5.2.5 节的内容。 // Activating Crystal-Report CRAlarmLogging myDataReportAlarms = new CRAlarmLogging(); myDataReportAlarms.SetDataSource(myTableAlarmsModify); crystalReportViewer1.ReportSource = myDataReportAlarms;

5.3.7 关闭与归档的连接

myConnection.Close();

5.4 用于对用户归档评估的 C# 代码

5.4.1 连接过程定义

“字符串”变量“myConnectionString”用于对与归档数据库已建立的连接所需的

信息进行初始化。针对连接过程,该字符串的基本设置显示如下:

string myConnectionString = "Provider =SQLOLEDB; //Microsoft OleDBProvider Data Source = <Rechnername>\WINCC>; uid = <User Name> pwd = <Password> Initial Catalog = <Data Source Name>“;

在程序中,“Connection”(连接)工作组的对象(“txtSource”、

“txtCatalog”、“txtProvider”、“txtProvider”、“txtUid”和“txtPwd”)用于

初始化针对连接过程的字符串。

5.4.2 数据选择的定义

“字符串”变量“mySelectQuery”使用实际 SQL 数据查询所需的信息进行初始

化。针对数据选择,该字符串的基本设置显示如下: mySelectQuery = "SELECT iID,szName, iCount, fWeight FROM UA#Products" ;

5.4.3 连接数据库并读取数据:

请参考 5.2 节的内容。

5.4.4 为 DataGrid 和/或水晶报表提供数据:

请参考 0 节的内容。 // Providing data for data grid myTableProducts.TableName = "myTableProducts"; myAdapter.Fill(myTableProducts);

Page 38: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

其它注意事项、提示和技巧等

38 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

5.4.5 DataGrid 数据连接:

要显示的数据表格的名称被分配到 DataGridView 控件的“.DataSource”属性。 myGrid.DataSource = myTableProducts;

5.4.6 水晶报表数据连接:

请参考 5.3.6 节的内容。 // Activating Crystal-Report CRProducts myDataProducts = new CRProducts (); myDataProducts.SetDataSource(myTableProducts); crystalReportViewer1.ReportSource = myDataProducts;

5.4.7 关闭与归档的连接

myConnection.Close();

Page 39: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

参考书目

WinCC_CopackCsharp Version 1.1,项目编号:35840700 39

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

参考书目 6

互联网链接

下表并不完整,仅选择提供了一部分适用信息来源。 表 6-1 互联网链接

主题 标题

\1\ 参考此条目 http://support.automation.siemens.com/WW/view/en/35840700

\2\ 西门子 I IA/DT 客户支持

http://support.automation.siemens.com

\3\ 确定数据源名称 http://support.automation.siemens.com/WW/view/en/9061684

\4\ 为 WinCC 运行时

数据库创建一个用

http://support.automation.siemens.com/WW/view/en/27147643

\5\ 消息的“状态” http://support.automation.siemens.com/WW/view/en/24842903

\6\ 访问 WinCC 归档 http://support.automation.siemens.com/WW/view/en/22578952

Page 40: Application & Tools -   · PDF file开项目。在 Visual Studio 中打开项目后,您可以编辑源文件,编译

历史版本

40 WinCC_CopackCsharp

Version 1.1,项目编号:35840700

Cop

yrig

ht ©

Sie

men

s A

G 2

009

All

right

s re

serv

ed

历史版本 7 表格 7-1 历史版本

版本 日期 修改

V1.0 06.12.2007 第一版

V1.1 08.10.2009 • 启用/停用数据工作组的用户指南 • 消息导出和用户归档实现 • 应用程序可以使用而无需安装水晶报表