您的当前位置:首页TIA WinCC Adv如何将变量自动归档到数据库

TIA WinCC Adv如何将变量自动归档到数据库

2021-10-21 来源:乌哈旅游
TIAWinCCAdv如何将变量自动归档到数据库

TIAWinCCAdvanced是TIAPortal平台中的一款单机版SCADA,我们可以用它构建运行在PC机上面的人机界面。因为是单站系统,所以它不支持C/S和B/S架构,另外在其它诸如画面、脚本功能上也比TIAWinCCProfessional弱。至于它们的差别请参见:TIAPortalV15.1安装说明

TIAWinCCAdvanced自身没有数据库系统,因此在数据归档上沿袭了精智屏的做法,将数据记录在CSV、TXT文件中。不过考虑到TIAWinCCAdvanced是运行在PC机上面的,因此西门子也为它适当的增强了这方面的功能,那就是我们也可以通过简单的配置将TIAWinCCAdvanced的历史数据归档到数据库里面。

下图展示了这种归档的使用,TIAWinCCAdvanced将数据记录到数据源WinCCAdvReport关联的数据库里面。

图1数据记录到数据库

创建数据库

虽然我们不再需要写脚本来保存数据了,但是TIAWinCCAdvanced自身没有数据库系统,所以我们得首先要为它创建一个数据库。打开SQLSERVER管理器,在

“数据库”上右击,选择“新建数据库”。

图2新建数据库

输入数据库名称,然后点击按钮“确定”。

图3输入数据库名称

通过上图中的红色按钮我们可以为数据库选择存放路径。然后我们可以看到已经成功创建了一个新的名为“WinCCAdv”的数据库。

图4新建的数据库WinCCAdv

配置数据源

接下来我们需要为上面创建的数据库配置数据源。首先打开控制面板,点击“管理工具”打开管理工具窗口。

图5管理工具

双击上图中的“ODBC数据源(64位)”,在选项卡“用户DSN”中点击按钮“添加”。

图6添加DSN

选择“SQLServer”,参见下图所示。

图7选择SQLServer

点击按钮“完成”,在弹出的“创建到SQLServer的新数据源”窗口中输入数据源名称“WinCCAdvReport”。在服务器栏中选择目标数据库实例,这里我们选择的是“HWLIB/WINCC”参见下图所示。

图8设置数据源名称

点击按钮“下一步”,这里使用默认设置即可。

图9设置权限

继续“下一步”,勾选“更改默认的数据库为”选项,并填写我们在上一节创建的

数据“WinCCAdv”,参见下图所示。

图10设置数据库名称

继续“下一步”,这里默认即可。

图11设置数据库日志文件路径

点击按钮“确定”,在弹出的窗口中点击按钮“测试数据源”,参见下图所示。

图12测试数据源

如果显示“测试成功”的话表示我们的设置没问题,可以进入下一步了。

图13测试结果

配置WinCCAdv归档

组态一个WinCCAdv项目,创建两个内部变量,分别为“DataTag1”和“DataTag2”,参见下图所示。

图14创建内部变量

然后再创建一个名为“HwLib”的历史记录,并将新建的两个内部变量设置为其记录变量,采集模式为“循环”,记录周期分别为2s和5s。选择该记录的存储位置为“数据库”,并将上一节我们创建的数据源“WinCCAdvReport”填写到下图中的红色方框里。

图15创建历史记录

上图中绿色方框里设置的是数据的记录条数,这里我们设置的是10000条。如果记录数大于这里设置的10000,那么TIAWinCCAdv会自动删除掉旧数据,填充新数据。也就是说TIAWinCCAdv会自动保证数据库里的记录数不会大于我们设置的10000。

运行TIAWinCCAdv项目,打开SQLSERVER管理器,这时我们会看到我们之前创建的数据库WinCCAdv下面多了一个数据表“HwLib0”,这个表是TIAWinCC

Adv自动创建的,其名称和我们在TIAWinCCAdv里面创建的历史记录名称一致。

图16自动创建的数据表

TIAWinCCAdvancde归档的数据不是压缩的,可以直接在SQLSERVER管理器中查看。在数据表“HwLib0”上右击,在快捷菜单中选择“选择前1000行”,参见下图所示。

图17选择查询

然后我们在右侧窗口就可以看到自动记录的数据了,参见下图所示。

图18自动记录的数据

从上图中我们也可以看出变量DataTag1的记录间隔是2秒,而变量DataTag1的记录间隔是5秒,这和我们的记录间隔时间是一致的。另外需要注意的是TIAWinCCAdvancde归档的数据是按照变量名/时间戳/值这样的关系顺序写到数据库里面,和保存CSV文件的格式一致,我们在读取数据展示时候需要做些转换。

因篇幅问题不能全部显示,请点此查看更多更全内容