通过“SQL Server Import/Export”向导组态访问,提供了图形化和可编程的界面,可通过 WinCC OLE DB 提供程序来访问 WinCC 数据库,并导出到其他格式的文件中,例如Excel文件、文本文件。
下文举例说明如何使用SQL Server 2008 R2(在安装WinCC V7.3的时候SQL Server 2008 R2 也会被安装)把WinCC V7.3的历史归档数据导出到Excel CSV文件。
首先,打开WinCC项目,激活运行系统。
打开 开始菜单 -> 所有程序 -> Microsoft SQL Server 2008 R2 -> SQL Server Management Studio,如图3-1所示。在弹出的数据库对话框中,Server Name 选择为 “ES01\WinCC”,其中ES01为本例的本地计算机名,点击Connect,如图3-2所示。
图3-1
图3-2
SQL Server导出数据是根据ValueID来选择的,先按本小节操作确定要导出的归档变量所对应的ValueID,然后在下一小节根据ValueID将数据进行导出。
在左侧的Databases下选择WinCC项目对应的运行数据库,数据库的名称规则为CC_项目名称_日期_时间R,本例为CC_Exmaple_16_06_27_17_11_39R,如图3-3所示。
图3-3
选择展开Tables,右击dbo.Archive,选择Select Top 1000 Rows,如图3-4所示。观察查询结果,根据ValueName列和ValueID列可以对应出要导出的数据的ValueID。本例中TestTag1的ValueID为2,TestTag2的ValueID为3,如图3-5所示。
图3-4
图3-5
1.启动导出向导。右击WinCC项目的 运行数据库,选择Tasks -> Export Data,如图3-6所示。在弹出的SQL Server Import and Export Wizard中点击下一步,如图3-7所示。
图3-6
图3-7
2.选择导出数据源。Data Source选择WinCC OLEDB Provider for Archives;点击Properties设置数据连接属性,数据源设置为“.\WinCC”,初始目录设置为项目的运行数据库名称,本例为CC_Exmaple_16_06_27_17_11_39R,点击OK,然后进入下一步,如图3-8所示。为了改善本地访问期间的性能,推荐在数据源中输入“<计算机名称>\WinCC”,如:“ES01\WinCC”。
图3-8
3.设置导出文件。Destination 处设置为Flat File Destination,File Name处输入待导出的CSV文件的文件名(不需要提前创建),勾选Column names in the first data row,点击下一步, 如图3-9所示。
图3-9
4.设置数据查询语法。
选择Write a query to specify the data to transfer,点击下一步,如图3-10所示。
图3-10
输入SQL查询语句,注意:语法格式为WinCC/Connectivity Pack语法,不是标准的SQL语法。
此处用到的查询语句为:
TAG:R,<ValueID>,<TimeBegin>,<TimeEnd>
其中,
<ValueID>为要导出的数据在数据表中的ValueID值。
<TimeBegin>为开始时间,格式为:’YYYY-MM-DD hh:mm:ss.msc’。
<TimeEnd>为结束时间,格式为:’YYYY-MM-DD hh:mm:ss.msc’。
注意:由于WinCC数据库保存的时间为UTC格林尼治标准时间,所以会比北京时间小8个小时。如本例的开始时间为北京时间17:00:00,数据库保存的则为09:00:00。
此外,可以进行相对时间间隔的选择。<TimeBegin> = '0000-00-00 00:00:00.000'代表数据库里的第一条记录;<TimeEnd> = '0000-00-00 00:00:00.000'代表数据库里的最后一条记录。还支持多变量查询,如<valueID>=(1;2)就表示查询ValueID为1和2的数据。更多的语法信息请参考以下链接,http://support.automation.siemens.com/CN/view/zh/102768149,在WinCC/Connectivity Pack文档的第53页 3.4.5.3查询过程值归档。
本例查询2016年6月21日 17:00:00至17:10:00时间段内,ValueID为2和3的数据,代码如下:
TAG:R,(2;3),’2016-06-21 09:00:00.000’,’ 2016-06-21 09:10:00.000’
如图3-11所示,点击Parse检查语法无误,点击下一步。
图3-11
5.设置导出文件的数据格式。将Column delimiter选为Semicolon{;},然后点击Edition Mappings,按照表3-1进行设置数据类型和字节长度,然后点击OK保存,如图3-12所示。可以点击Preview进行预览,确认无误后,即可点击下一步。
表3-1
图3-12
6.生成导出文件。勾选Run immediately,点击Finish完成设置,如图3-13所示,;随后将完成数据导出,出现如图3-14的结果则表示数据导出正常,并得到导出的CSV文件,然后再参照附录1进行数据分列就可清楚地观察归档数据了。
图3-13
图3-14