使用WinCC通过ODBC轻松读取数据库 (wincc 通过 odbc 读取数据库)

随着工业自动化的发展和应用,越来越多的企业开始使用SCADA系统对生产工艺过程进行监控和控制,并收集大量的数据。这些数据对企业的生产效率和质量控制起着至关重要的作用,因此如何快速、精准地获取这些数据,成为企业智能化建设中的重要环节。

WinCC是世界领先的SCADA系统之一,它具有强大的数据采集、处理、分析和展示功能,在物联网和大数据时代中具有重要应用价值。本文将介绍如何,以便将企业的数据及时、准确地反映在SCADA系统中,为企业的生产管理和决策提供重要依据。

一、什么是ODBC

ODBC(Open DataBase Connectivity)是一种开放的数据库连接标准,通过ODBC可以访问各种不同的数据库,如MySQL、Oracle、SQL Server等。ODBC提供了一种独立于不同数据库管理系统(DBMS)的方法来访问数据,使得不同平台上的应用程序能够互相访问各自的数据。

二、配置ODBC数据源

在使用WinCC通过ODBC读取数据库之前,首先需要进行ODBC数据源的配置。

1、打开“控制面板”,找到“管理工具”-“ODBC数据源(64位)”:

2、在弹出的“ODBC数据源(64位)”对话框中选择“系统DSN”并点击“添加”按钮:

3、选择所连接数据库管理系统的驱动程序,本例中使用的是SQLServer,因此需要选择“SQL Server Native Client 11.0”,点击“完成”按钮:

4、输入数据源名称和描述信息,设置数据库服务器和身份验证方式(本例中使用的是SQL Server身份验证,因此需要输入用户名和密码),测试连接,如果连接成功则点击“确定”按钮完成数据源配置:

三、设置WinCC项目属性

在使用WinCC进行数据读取之前,还需要设置WinCC项目属性,以确保能够成功访问ODBC数据源。

1、在WinCC选项卡中选择“信息”-“配置属性”-“数据库”:

2、在“通用”选项卡中勾选“启用数据库连接”和“使用ODBC连接”,输入所连接的ODBC数据源名称、用户名和密码:

3、在“ODBC”选项卡中选择使用的ODBC驱动程序出面板中的属性进行配置,如下图所示:

四、使用WinCC读取数据库

完成上述配置后,就可以在WinCC中读取ODBC数据源中的数据了。

1、在WinCC选项卡中选择“绘图管理”-“数据曲线”:

2、在“数据源管理”中选择“SQL查询”:

3、输入需要查询的SQL语句(本例中查询的是“t_test”表中的数据):

4、选择需要显示的数据和时间范围:

5、数据曲线生成后即可显示所查询的数据:

五、

本文介绍了的具体步骤,通过配置ODBC数据源和WinCC项目属性,尤其是设置ODBC连接驱动程序的特定属性,就可以方便地在WinCC中读取各种不同的数据库。这种方法具有广泛的适用性和可扩展性,为SCADA系统在数据处理和分析方面提供了更加强大的能力和潜力。

相关问题拓展阅读:

VB访问WINCC的过程归档数据库 如何连接及查询?望大虾指教

从WINCC6.0开始,就开始采用SQL3000SP3做为WINCC的后台数据了.而这个SQL2023SP3是由SIEMENS为WINCC做了二次开发的,采用了一些独有的技术,一些是我们知道的,一些是我们所不知道的.所以当我们打开SQL管理器和用高级语言访问时,和常规的SQL访问的方法是有一些出入的.即使我们能够很轻易的访问ACCESS,普通的SQL2023的数据库,不见的你就能顺利的访问到WINCC的历史数据. 官方的资料显示: 1:WINCC的数据有设计时数据库和运行时数据库,分别放在相关的目录,对于数据使用者而言,我们知道就可以了.设计时数据库我们了解没有什么意义.但运行时数据库至少我们要知道它的名.他的名一般是”CC_工程名_年_月_日_时_分_秒R”的名,这个对于我们使用者而言,是很重要的的,无论你准备以DSN或OLEDB的方式访问数据库,你都需要它.如果你实在不知道它的名,你可以将WINCC激活,然后在’ODBC管理器”或”SQL企业管理器下的”DATABASE”可以看到它,它就蹲在李弊斗那里….. 2:运行时库的表的问题. 其实,这个是很多的用户很关心的问题,包括我自己在内.常规的使用过高级语言访问SQL的技术人员都知道,很卜誉多的SQL语句,如SELECT ,INSERT INTO等等,都需要指明在某一库的表中对它进行操作.因此,这个表的问题可能就是你访问SQL的拦路虎. 先告诉大家:WINCC6.0的SQL库操作是不需要表名的,因为他有自己定义的SQL语句.细节一会儿在描述. 其实,WINCC在运行时,根据WINCC的设置,数据归档是以一定时间做为基准,形成数据片段. 大体上有三个用户需要了解的表. 在数据片段下,有三个表是我们所关心的 1:ARCHIVE(用户归档记录) 2:TAGPRESSED(TAGUNPRESSED)(压缩/非压缩变量归档记录) 3:MSARCLONG(报警记录) 事实上,我们在操作数据时,还是并不能直接使用常规的SQL来操作这些表,甚至不允许修改它,MSARCLONG情况好一些,允许插入/修改等. TAGPRESSED的数据和WINCC内设置的变量管理下的归档是对应的, MSARCLONG的数据和WINCC内设置的报警记录下的设置是对应的. ARCHIVE的数据和WINCC内的用户归档数据是对应的. 一般的,当我们使用WINCC制作在线表格和在线趋势使用的都是变量管理器下的归档. 因此,我们打开TAGPRESSED的表,可以看到的一些都是变量记录的内容,通常也是在这里归档了用户的生产数据.因此,我们访问WINCC历史数据库,实际上是访问这里的变量记录 3:访问历史数据库的方法/连接字符/SQL语句 访问数据库的方法: A:WINCCOLEDB访问压缩归档,也可以访问非压缩归档 B:MS ADO/OLEDB只能访问非压缩归档对于这种说法,我只严正了WINCCOLEDB的方法,后者没有测试. 连接字符: WINCCOLEDB的连接字符为(本地): provider=winccoledbprovider.1,catalog=.\wincc,data source= 数据库名,user id=DBA,password=SQL 对于远程连接,因为没有条件测试,所以就不说了,希望有哪位朋友日后通过了测试,到这里告诉一下现在开始讲访问用户归档,过程值归档和消息归档的方法和语法: 1:查询过程值归档和消息归档的连接字符串 SET CON=Createobject(“adodb.connection”) con.open Provider=winccoledbprovider.1;catalog=cc_工程名_年_月_日_时_分_秒R,data source=.\wincc,user id=DBA,password=SQL 说明:按照WINCC规定的连接字符串,创建到数据库的连接,并且打开这个连接.其中,我们经常需要修改的是Catalog的值,这个值根据不同的工程和创建的时间不同,我们可以在ODBC管理器下或SQL的库中看到. 查询过程值归档和用户归档的SQL语句 TAG:R,’变量名1′,’起始时间’,’终止时间’ where条件说明:WHERE子句只对用户归档有效,对过程值归档无效.变量名:这个变量名要和WINCC下的变量管理器哪磨的过程值归档名要一致.其格式为:归档名/变量名.起始时间和终止时间可以用相对时间和绝对时间,一般绝对时间比较容易理解,就是从开始时间到终止时间就好了.例如,查询从2023/3/12 12:20:20秒到2023/3/13/ 12:20:20秒的数据,则应该写成’:20:20′ ‘:20:20’就好了.当然拉,也可以用相对时间格式,就是比目前时间的相对值,有个前移后移的问题,很简单的. 这里特别需要注意的是:记录到SQL数据库的时间都是格林威治时间,和中国的东8区有8个小时的时间差,也就是说记录的时间比本机PC时区晚8小时,这一点我们在测试是尤其重要.因为你是时间不正确,可能数据就没有显示,而导致你怀疑连接/命令/记录的有效性访问SQL数据库的方法过程描述. 这和访问普通的数据库的方法大致上是相同,唯一的就是由于WINCC的数据是经过了压缩的. 1:定义连接字符串,就是前面所讲到的. 2:创建ADODB的CONNECTION对象,在VB中直接用CREATEOBJECT(ADODB.CONNECTION)函数,在ASP的VB脚本中,需要使用内置SERVER对象创建CONNECTIONG对象. 3:打开到数据库的连接,使用CONNECTION的OPEN函数 4:创建COMMAND对象,并定义COMMAND对象采用用CMDTEXT方法,表明将要使用命令文本的方式来获取数据记录. 5:创建RECORDSET对象,并用COMMAND对象的返回记录集填充这个记录集. 6:RECORDSET对象的数据就可以被你任意的使用了

关于wincc 通过 odbc 读取数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 使用WinCC通过ODBC轻松读取数据库 (wincc 通过 odbc 读取数据库)