首页 > 其他分享 >西门子Wincc的归档数据批量导出

西门子Wincc的归档数据批量导出

时间:2022-12-03 21:11:12浏览次数:36  
标签:存储 database 数据库 归档 西门子 Server Wincc SQL

目录

1. Linked Server

1). 登录Sql Server Management Studio

2). 添加Linked Server

2. 存储过程

1). 修改SQL脚本

2). 运行SQL脚本

3). 测试存储过程

(a). 存储过程说明

(b). 存储过程调用

(c). 检查调用结果

3. 代理任务

1). 设置SQL Server Agent服务

2). 添加代理任务

4. 导出旧数据

1). 存储过程调用

2). 结果检查

 

 

  1. Linked Server

1). 登录Sql Server Management Studio

在开始菜单中搜索ssms,在搜索结果中打开Sql Server Management Studio

 

在SQL SERVER Management Studio登录窗口中,确认Server Type是否为Database Engine,Server Name确认是否为HostName\WinCC(如无内容,可输入.\WinCC),Authentication是否为Windows Authentication。

 

2). 添加Linked Server

在Object Explorer窗口中,展开Server Object,在Linked Servers上右键,弹出菜单中选择New Linked Server。

 

在New Linked Server窗口中,输入Linked Server的名称WINCCOLEDB,此名称在后面的存储过程中使用,请输入WINCCOLEDB。

Provider需选择WinCC OLEDB Provider for Archives。

Data Source为为本机的WinCC归档数据库,所以需输入.\WinCC。

Catalog中输入当前WinCC项目的运行数据库名称。每台计算机的WinCC项目名称不一样,请确认WinCC运行数据库名称。

 

确认输入信息无误后,点击OK按钮,即可在Linked Server下看到添加的名为WINCCOLEDB的Linked Server。

 

  1. 存储过程

1). 修改SQL脚本

点击SQL Server Management Studio的“项目”菜单,选择“OPEN“菜单,点击”File“子菜单。

 

在文件浏览窗口中导航到SQL脚本文件所在文件夹,选择SQL脚本文件TagLoggingExport.sql,点击“Open“按钮。

 

在SQL脚本编辑窗口,将数据库名称更换为WinCC项目运行数据库名称。

 

使用工具栏按钮保存修改后的SQL脚本。

 

2). 运行SQL脚本

运行SQL脚本需确保WinCC项目已打开,如未打开WinCC项目,则数据库中无WinCC项目运行数据库。

在打开SQL脚本的状态下,点击工具栏 中的“Execute“按钮运行存储过程。

 

运行SQL脚本后,可在Message窗口中查看SQL脚本运行结果。

 

成功运行后,可以在WinCC项目运行数据库中找到该存储过程。

 

 

3). 测试存储过程

(a). 存储过程说明

WinCC TagLogging归档数据属于加密方式存储,使用普通的SQL语句无法直接查询归档数据。该存储过程使用WinCC OLEDB读取前一天或者指定某一天的归档数据,并明文存储在新数据库中。读取前一天归档数据的模式,每天备份一个数据库文件,数据库备份文件名会增加前一日时间戳,例如TagLoggingBackup20211027。读取指定某一天归档数据的模式,将以参数中的查询日期增加到数据库备份文件中,例如TagLoggingBackup20210911。

该存储过程具有6个参数。

 

  • @TableName:明文数据库中用于存储归档数据的表名。
  • @DatabaseName:明文数据库名称
  • @DatabasePath:明文数据库文件存储路径,路径必须存在,且末尾不用加\
  • @BackupName:数据库备份bak文件名称
  • @BackupPath:数据库备份bak文件存储路径,路径必须存在,且末尾不用加\
  • @SelectDate:查询日期。如为NULL,则读取前一天归档数据。如为指定日期,如2021-11-19,则读取指定日期归档数据。如为0000-00-00,则用于测试,读取前10分钟归档数据
  • @ArchiveTagName:所需查询的归档变量的名称。如为ValueID,则数量不能超过20,如”103;104;105;106;107“。如需根据归档名称ValueName查询,则不长度不能超过128,且不能包含中文,如”Energy/tag1;Energy/Tag2;Energy/Tag3“。所需查询所有归档变量,则设置为”ALL”

参数示例如下:

  • 示例1:查询所有归档变量数据,存储在名为TagLoggingDecode的明文数据库中的data表中,该明文数据库存储路径为c:\temp\database文件夹,备份数据库文件名为TagLoggingBackup20211022.bak(时间戳为存储过程中备份时自动增加),备份文件存储路径为c:\temp\database\backup文件夹。归档名以及归档变量名称可在变量记录中查询。

 

EXEC sp_TagLoggingExportDay 'data','TagLoggingDecode','c:\temp\database','ALL',null,'TagLogging','c:\temp\database\backup'

  • 示例2:查询所有归档变量数据,存储在名为TagLoggingDecode的明文数据库中的data表中,该明文数据库存储路径为c:\temp\database文件夹,备份数据库文件名为TagLoggingBackup20211011.bak(时间戳由SelectDate参数确定),备份文件存储路径为c:\temp\database\backup文件夹。

EXEC sp_TagLoggingExportDay 'data','TagLoggingDecode','c:\temp\database','ALL','2021-10-11','TagLogging','c:\temp\database\backup'

  • 示例3:将MyArchive归档中的归档变量ID为893,894,895,896,897 的归档数据查询后,名为TagLoggingDecode的明文数据库中的Data表中,该明文数据库存储路径为c:\temp\database文件夹,备份数据库文件名为TagLoggingBackup20211022.bak(时间为存储过程中备份时自动增加),备份文件存储路径为c:\temp\database\backup文件夹。归档变量ID可于WinCC项目运行数据库中的Archive表中查询。

 

EXEC sp_TagLoggingExportDay 'data','TagLoggingDecode','c:\temp\database','893;894;895;896;897',null,'TagLogging','c:\temp\database\backup'

(b). 存储过程调用

点击工具栏中“New Query”按钮,打开SQL脚本编辑窗口。

 

在SQL脚本编辑窗口输入以下内容。

USE [CC_oval_21_10_27_09_20_33R]

EXEC sp_TagLoggingExportDay 'data',

'TagLoggingDecode',

'c:\temp\database',

'TagLogging',

'c:\temp\database\backup',

'2021-10-27',

'ALL'

点击工具栏中的“Execute”按钮即可执行。

 

(c). 检查调用结果

  • 查看“Message”窗口,确认存储过程运行是否有错误。

 

  • 查看“Object Explorer”窗口,确认“Databases”下是否有新数据库生成,如无需手动刷新。

             

  • 查看数据库TagLoggingDecode下是否有创建data表。

 

  • 查看data表中是否有前一天明文归档数据,需注意,数据的时间戳均为UTC时间,右下角有总条数,可在WinCCOnlineTableControl中查询指定时间数据,核对数据。

 

  • 检查路径C:\Temp\database文件夹中是否存在TagLoggingDecode数据库文件

 

  • 检查路径C:\Temp\database\backup文件夹中是否存在TagLoggingBackup????????.bak的数据库备份文件

 

  1. 代理任务

存储过程测试正确之后,需配置自动运行任务,需使用SQL Server Agent服务。

1). 设置SQL Server Agent服务

按Win+R组合键,打开运行窗口,输入Services.msc,打开“服务”。

 

找到“服务”中的“SQL Server Agent(WinCC)”服务。

 

启动“SQL Server Agent(WINCC)”服务,并且将该服务设置为“自动”模式。

 

2). 添加代理任务

展开“Object Explorer”窗口中的SQL Server Agent,在”Jobs“上右键,在弹出菜单中选择子菜单”New Job…“

 

在“New Job“窗口中,选择”General“属性,输入任务名称”ExportTagLogging”。

 

在“New Job“窗口中,选择”Steps“属性,点击按钮”New…”

 

在”New Job Step“窗口中,在”Step Name“中输入步的名称,如”ExportDatabaseBak”,在“Type”中选择“Transact-SQL script (T-SQL),在”Database”中选择WinCC运行数据库,将测试时的存储过程代码输入到”Command“中。

 

点击“OK”按钮后,可在”New Job“窗口中看到新增加的步骤。由于所有内容均在存储过程中执行,所以只需一个步骤即可。

 

在”New Job“窗口中,选择“Schedules”属性,点击“New…”按钮,设置作业自动执行的时间。

 

在“New Job Sechedule”窗口中,输入计划名称“ExportDatabaseBakDaily”,选择计划类型为“Recurring”,勾选“Enable”,频率设置为每天,每日频率设置为每天凌晨00:00:05,在执行时间段中设定计划作业开始时间,选择”No End Date“。

 

点击“OK“按钮后,可在“Schedule”属性中查看刚添加的计划时间。

 

在“New Job“窗口中点击”OK“按钮后,可在”Object Explorer“窗口中查看新增的计划任务。

 

在“Object Explorer“窗口中,双击打开”Job Activity Monitor“可查看计划任务运行状态。

 

  1. 导出旧数据

1). 存储过程调用

点击工具栏 中的“New Query”按钮。

 

--示例4:导出2021年10月11日的所有归档数据,存储在c:\temp\database数据库TagLoggingDecode中的data表中,并备份到C:\temp\database\backup文件夹

--EXEC sp_TagLoggingExportDay 'data','TagLoggingDecode','c:\temp\database','ALL','2021-10-11','TagLogging','c:\temp\database\backup'

在编辑窗口中输入调用的存储过程脚本,下方图中为导出2021-10-10日所有归档数据。

 

点击工具栏中的“Execute”按钮。

 

在Message窗口中检查存储过程执行是否有报错。

 

如需导出其它日期的历史数据,请修改存储过程参数中的SelectDate参数后,按照以上流程操作。

2). 结果检查

  • 检查当前查询结果

查询TagLoggingDecode数据库中的data表中的数据,确认数据是否为所查询日期期间的数据。需注意,查询的结果为UTC时间。

 

  • 检查数据库备份结果

检查C:\temp\database\backup文件夹中是否有新的数据库文件存在。

 

标签:存储,database,数据库,归档,西门子,Server,Wincc,SQL
From: https://www.cnblogs.com/caesar-the-great/p/16948779.html

相关文章

  • 20221203 Docker - 拉勾教育【归档】
    参考资料拉勾教育尚硅谷Docker【归档】Docker官网Docker官网文档命令参考-Docker官网DockerHub前言背景2020年学习了一套尚硅谷的Docker视......
  • 西门子Step7 Smart软件下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【0023】即可获取下载链接。......
  • 西门子博图V15.1下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【0022】即可获取下载链接。......
  • 西门子S7-200PLC工具软件,包含200系列编程软件、PPI驱动、密码识别工具
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【0026】即可获取下载链接。......
  • Oracle数据库体系结构更改数据库的归档模式
    重做日志文件负责实例失败时的数据恢复,因为SGA中没有被保存的数据会全部丢失,使用重做日志文件就可以完全恢复事务。而归档日志进程用于介质恢复,比如磁盘损坏时,可以使用之前......
  • outlook与foxmail邮箱归档
    微软操作https://support.microsoft.com/zh-cn/office/%E6%89%8B%E5%8A%A8%E5%B0%86%E9%A1%B9%E7%9B%AE%E5%AD%98%E6%A1%A3-ecf54f37-14d7-4ee3-a830-46a5c33274f6  ......
  • Linux系统中的文件归档压缩
    一、文件压缩及归档1、文件压缩gzip和bzip命令用于文件压缩,但是缺陷是压缩完成后源文件消失所以一般不用。命令格式是:gzip或者bzip+0-9的压缩等级(数字越大压缩级别越大)......
  • Oracle归档
    Oracle归档1.开启归档1.1查看归档状态使用以下命令查看归档状态SQL>ARCHIVELOGLIST;DatabaselogmodeNoArchiveModeAutomaticarchival......
  • 20221129 Maven - 尚硅谷【归档】
    参考资料尚硅谷2022版Maven教程(maven入门+高深,全网无出其右!)Maven官网POM参考mvnrepository代码重工前言视频时间:2022-2版本信息当前最新版本:3.8......
  • oracle11g 联机重做日志、归档日志、日志文件组以及日志文件操作
    文章目录一.归档方式1.1联机重做日志、归档日志概念1.2工作模式1.3数据库恢复1.4归档模式(1)启用(2)查看归档文件被存放的路径以及存放文件的容量:(3)......