Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

【预告:模块化工业PC(早10点开课)】正文: Wincc实现与数据库的交互以及报表的实现方式

剑指工控 2021-11-25 20:33:05 阅读数:2 评论数:0 点赞数:0 收藏数:0

JZGKCHINA

工控技术分享平台

经常会有朋友用到将部分有用的数据单独写到关系型数据库如:SQL Server ,MySQL等,然后通过制作报表进行数据的显示,而对于报表,我目前比较常用的是 SQL Server 自带的免费的 SSRS 来制作报表,用户可以通过网页的形式进行访问,页可以导出为PDF,WORD,或者可以选择打印,非常方便。

那么对于WINCC软件大家肯定非常熟悉了,

那么,如何将实时数据写入WINCC自带的关系数据库SQL Server,并读出。

步骤:

1)在SQL SERVER中创建一个数据库

登录到 SQL Server,登录方式默认为Windows账户,而非混合账户sa(如图2),首先需要在SQL Server中建立一个数据库,如名称为“DBTEST”,然后建立一个表,如value,表中输入字段,并设置数据格式,如字段名称为 press,temp,他们对应的数据类型都为 float , 此处的字段名称需要与WINCC中变量的名称一致,(如图1)

图1

图2

如果你对数据库不懂,那么可以观看此专栏进行学习,掌握数据库的相关知识,以及报表的制作方法。

2)wincc 数据写入到数据库

可以使用按钮来将数据写入,在按钮的VBS脚本中输入代码;一般我们常通过全局脚本,周期触发将数据写入(必须在计算机属性—启动选项卡中勾选"全局脚本运行系统")

代码如下(按钮和全局脚本相同):

'定义变量

Dim sCon

Dim sSql

Dim oRs

Dim conn

Dim oCom

Dim Con

Dim Data1, Data2

'将需要写入的数据从WINCC中读取到变量中,此处的press和temp必须与数据库中的建立的字段一致

Data1=HMIRuntime.tags("press").read

Data2=HMIRuntime.tags("temp").read

'数据库连接,"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial ‘Catalog=DBTEST;Data Source=.\WINCC"中Initial Catalog=DBTEST需要改为实际建立的数据库的名称,Data Source=.\WINCC需要修改为数据源,完整的名称应该是登录数据库时的Server name: luoyh\WINCC

Con="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DBTEST;Data Source=.\WINCC"

Set conn = CreateObject("ADODB.Connection")

conn.ConnectionString = Con

conn.CursorLocation = 2

conn.Open

'将实时数据插入到数据库,"insert into value VALUES(" & Data1 & "," & Data2&");" 此处value为表的名称," & Data1 & "," & Data2&" 此处的数据为字符串时需要用单引号,如:' " & Data1 & " ',' " & Data2&" '

sSql="insert into value VALUES(" & Data1 & "," & Data2&");"

Set oRs = CreateObject("ADODB.Recordset")

Set oCom = CreateObject("ADODB.Command")

Set oCom.ActiveConnection = conn

oCom.CommandType = 1

oCom.CommandText = sSql

Set oRs = oCom.Execute

Set oRs = Nothing

conn.Close

Set conn = Nothing

以上代码就可以实现将实时读取到数据写入到关系数据库,写入的频率主要看全局脚本中周期触发的设置。

3)通过 SSRS 开发报表,进行数据的显示分析等操作。

通过 SSRS 可以以表格的形式进行数据显示,可以对数据生成趋势曲线,饼图,仪表盘,地图等元素,通过一定脚本,还可以实现对数据的筛选功能等。还可以通过网页形式访问报表,而对于很多组态软件都已经具有Web控件,那么就可以通过此web控件将网页嵌入到你的画面中进行报表的查看。此方式非常方便,比组态软件自带的报表功能强大。

SSRS 开发的简单报表

各种 Chart

各种仪表盘

以上关于 WINCC 在与数据库的数据交互,以及如何使用 SSRS实现强大的报表功能的介绍到此结束。

。。。。。。

姿势已摆好

就等你点啦

作者简介

剑控老罗

具有10年工业自动化领域SCADA,DCS,PLC等项目实施经验,熟悉石化行业,油田数字化行业,熟悉多个品牌PLC,HMI,SCADA,数据库等。

本文分享自微信公众号 - 剑指工控(JZGKCHINA) ,作者:剑控老罗

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间: 2020-02-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

版权声明
本文为[剑指工控]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1898516

编程之旅,人生之路,不止于编程,还有诗和远方。
阅代码原理,看框架知识,学企业实践;
赏诗词,读日记,踏人生之路,观世界之行;

支付宝红包,每日可领