Java连接wincc_WinCC中访问SQL SERVER数据库
有两种身份验证方式可以连接到SQL Server数据库,它们是Windows身份验证和SQL身份验证。在本文中,WinCC将使用Windows身份验证进行连接,但我展示了使用SQL身份验证连接到SQL Server的连接字符串。
注意:在本文中,我假设您已经安装了SQL Server。 我使用过SQL Server 2008,但这里完成的所有步骤对SQL Server 2005都有效。在本文中,我创建了一个数据库,因此我们可以进行读取和插入。 对于许多实际情况,工厂或系统已经有一个数据库。 因此,唯一需要的就是在WinCC中操作。
创建SQL Server数据库
在“Database”上单击鼠标右键,然后单击“New Database...”(新建数据库)
在“Database name:”上键入“SQL_WINCC”(或您想要的任何名称)
在“Database> SQL_WINCC”下,右键单击“New Table ...”(新表),然后创建这些列,如下图所示。
最后将其命名为“Table_1”。
SQL_WINCC 数据库看起来是这样...
注意:我没有在“Table_1”中创建索引或主键,因为SQL Server配置不是本文的重点! 但在实际系统中,强烈建议创建它们。
创建WinCC应用程序
打开WinCC项目管理器,然后单击“New”(新建)
选择“Single-User Project”(单用户项目),然后选择“OK”(确定)。
将其命名为“WinccSql”,然后“Create”(创建)。
WinCC Explorer中看起来会是这样
创建内部标签
在“WinccSql”下的WinCC项目管理器中,双击“Tag Management”(变量管理)
单击“Tag Management > Internal Tags”(标记管理>内部标记)并创建这12个标记。
这些标签将在主屏幕中使用。 其中一些保存来自SQL Server的数据,而其他的保存插入到SQL Server的数据。
配置屏幕
在“WinccSql”下的WinCC项目管理器中,双击“Graphics Designer”(图形编辑器)。 将打开一个名为“NewPdl_1”的空白页面,就像这样。
使用“矩形”,“静态文本”和“I / O域”对象,按下图这样摆放。
按下图这样,在“属性> I / O域>输出/输入>输出值”中,将它们绑定到相应变量:
将绑定了变量“TAG_STRING_INSERT”,“TAG_STRING_11”和“TAG_STRING_21”对象的“属性> I / O域>输出/输入>数据格式”更改为STRING。
创建VB脚本
介绍
与数据库通信的最简单方法是使用VB-Script,它基本上需要4个步骤。
连接配置
命令配置
记录集配置
管理从数据库返回的数据
连接配置基本上具有以下参数:
数据提供商 Provider
数据服务器(服务器名称)
初始目录(要连接的数据库)
认证
在本文中,我使用此连接字符串:
Provider=SQLOLEDB;Data Source=MAWINWINCC;InitialCatalog=SQL_WINCC;Trusted_connection=yes;
“Trusted_connection”表示连接将通过Windows身份验证完成。 对于SQL身份验证,连接字符串将如下所示:
Provider=SQLOLEDB;Password=1234567890;Persist Security Info=True;User ID=sql_user;Initial Catalog=SQL_WINCC;Data Source=MAWIN\WINCC
“Insert”按钮的VB脚本
单击“插入”按钮并浏览到“事件>静态文本>鼠标>鼠标单击> VBS操作”。 现在在那里复制这个脚本。
'connection对象
Dim cn
'recordset记录集对象
Dim rs
'command命令对象
Dim mc
Dim sql
Dim column1
Dim column2
Dim column3
Dim column4
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set mc = CreateObject("ADODB.Command")
'相当于是adUseClient枚举值,表示用在客户端中
cn.CursorLocation = 3
'连接字符串
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=MA1815\WINCC;Initial Catalog=SQL_WINCC;Trusted_connection=yes;"
'打开连接
cn.Open
'Read the tags that will be inserted into database
column1 = HMIRuntime.Tags.Item("TAG_STRING_INSERT").Read
column2 = HMIRuntime.Tags.Item("TAG_INT_1_INSERT").Read
column3 = HMIRuntime.Tags.Item("TAG_INT_2_INSERT").Read
column4 = HMIRuntime.Tags.Item("TAG_INT_3_INSERT").Read
'SQL语句
sql = "INSERT INTO TABLE_1 (COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4) VALUES ('" & column1 & "', " & column2 &", " & column3 & ", " & column4 & ")"
'配置命令对象
Set mc.ActiveConnection = cn
'表示命令中的文字是一个SQL语句
mc.CommandType = 1
mc.CommandText = sql
'执行命令
rs.Open mc, , 2, 1
'关闭连接
cn.Close
点击OK按钮
Select按钮的脚本
单击“选择”按钮并浏览到“事件>静态文本>鼠标>鼠标单击> VBS操作”。 现在在那里复制这个脚本
Dim cn 'connection 连接对象
Dim rs 'record set 记录集对象
Dim mc 'command 命令对象
Dim i
Dim sql
Dim column1
Dim column2
Dim column3
Dim column4
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set mc = CreateObject("ADODB.Command")
'相当于是adUseClient枚举值,表示用在客户端中
cn.CursorLocation = 3
'连接字符串
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=MA1815\WINCC;Initial Catalog=SQL_WINCC;Trusted_connection=yes;"
'打开连接
cn.Open
'在本文中,我为了方便起见,限制在2个寄存器内,但您可以从SQL中读取一些数据,然后将它们写入网格中,比如
sql = "SELECT TOP 2 COLUMN_1, COLUMN_2, COLUMN_3, COLUMN_4 FROM TABLE_1"
'配置Command对象
Set mc.ActiveConnection = cn
'表示CommandText中的是一个SQL语句
mc.CommandType = 1
mc.CommandText = sql
'执行SQL命令
rs.Open mc, , 2, 1
'假如找到了至少一条记录
If rs.RecordCount > 0 Then
rs.MoveFirst
'循环以获取从数据库读取的所有数据
For i = 1 To rs.RecordCount
'从数据库中读取数据
column1 = rs(0)
column2 = rs(1)
column3 = rs(2)
column4 = rs(3)
'TAG_STRING_11 或 TAG_STRING_21 或 ... TAG_STRING_n1
HMIRuntime.Tags.Item("TAG_STRING_" & i & "1" ).Write column1
'TAG_INT_12 或 TAG_INT_22 或 ... TAG_INT_n2
HMIRuntime.Tags.Item("TAG_INT_" & i & "2").Write column2
'TAG_INT_13 或 TAG_INT_23 或 ... TAG_INT_n3
HMIRuntime.Tags.Item("TAG_INT_" & i & "3").Write column3
'TAG_INT_14 或 TAG_INT_24 或 ... TAG_INT_n4
HMIRuntime.Tags.Item("TAG_INT_" & i & "4").Write column4
'继续下一条
rs.MoveNext
Next
End If
'关闭记录集
rs.Close
'关闭连接
cn.Close
现在,单击“OK”。
完成了! 运行WinCC!:)
Java连接wincc_WinCC中访问SQL SERVER数据库相关推荐
- vfp spt连接mysql_VFP中用SPT访问SQL Server数据库_mysql
VFP因它简单易学,可快速建立应用软件而深受广大程序员喜爱,但其数据库系统不安全也令广大用户非常头痛.随着MS SQL Server数据库系统的推广应用,其强大的安全性能普遍受到好评.笔者在长期的编程 ...
- Java案例:利用JDBC访问SQL Server数据库
Java案例:利用JDBC访问SQL Server数据库 1.以sa为登录名连接数据库服务器 2.附加选课数据库Xk,如下图所示: 3.启动Eclipse,创建Java项目TestDB
- Serverless 解惑——函数计算如何访问 SQL Server 数据库
函数计算(Function Compute):函数计算 是事件驱动的全托管计算服务.使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码.函数计算为您准备好计算资源,弹性地可靠地运行任务 ...
- VB访问SQL Server数据库技术全揭密
VB访问SQL Server数据库技术全揭密 2006-08-03 05:00作者:出处:电子技术责任编辑:方舟 摘 要: 本文讨论了Visual Basic应用程序访问SQL Server数据库的几 ...
- 在Android中使用SQL server数据库
@[TOC]关于Android中SQL server数据库的使用 在Android中使用SQL server 在Android中,有内置的SQLlite数据库,属于本地存储,其他客户端无法访问,所以就 ...
- 远程连接docker中的SQL Server
远程连接docker上的SQL_Server 参考: 官方文档https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect ...
- 从勒索软件攻击中恢复 sql server 数据库 mdf文件
最近一个朋友的sql server 数据库中了勒索加密病毒,找到我帮忙,花了点时间帮他找回了99%的数据
- 使用Microsoft SQL Server Management Studio连接远程阿里云SQL Server数据库
首先我买的是阿里云域名与网站->云虚拟主机:如下 点云虚拟主机进去后,可以看到你的主机: 点击主机,看到详细信息: 这里重点看数据库的信息. 主要到有两点: 数据库类型: SqlServer 数 ...
- dapper 连接mysql_使用Dapper访问SQL Server数据库
对应Demo程序名:DapperDemo 准备工作:为项目安装Dapper类库 方法一:项目中添加:项目名右键:Manage NuGet Packages:搜索Dappe:点击安装 方法二:在NuGe ...
- C++中使用ODBC连接SQL Server数据库
文章目录 整体总结 ODBC连接 一个修改别人的整体的例子 整体总结 用odbc过时了,还是使用ado吧,易用,高效率,不用配置odbc数据源,易维护,实际项目已从odbc中改用了ado,请看我的这篇 ...
最新文章
- Linux 定位网络不通问题
- linux zk集群,linux ZooKeeper集群安装
- 《Ray Tracing in One Weekend》——Chapter 3: Rays, a simple camera, and background
- es6的模块化export和import
- Mac安装mysql 8.0.21
- vpp自动化测试报错调试
- windows10开机时出现你的设备遇到问题,需要重启
- 数据库简介、及常用数据库介绍
- [memo] dlopen 与 --export-dynamic
- 数据库管理工具heidiSQL的基本使用
- swift linux编译器,Linux平台Swift语言开发学习环境搭建
- 计算机怎样结束应用进程,结束进程,详细教您电脑怎么结束进程
- windows defender might impact performance
- nodemcu控制开关电灯_安装电灯开关护罩,以防止人们关闭智能灯泡
- 高防御服务器是怎么防御的?
- 如何快速的清除 灰鸽子 木马病毒 【附清除工具 以及 清除原理】
- 计算机毕设推荐基于微信小程序的自来水收费系统
- Thunder for Mac: 迅雷下载记录保存文件etm_task_store.dat.mac的解析 【更新】
- 将HTML文件设为电脑桌面壁纸教学
- 66套可视化数据分析PPT图表,帮你一键提升PPT逼格
热门文章
- ppt背景图片怎么设置?6步教你快速搞定!
- 矩形脉冲信号合成_实验10 矩形脉冲信号分解
- 符号——Alt+数字键
- html实现图片轮播切换箭头,Vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)_鹿岛_前端开发者...
- 机器人协同工作,RobotArt是怎么做到的呢?
- [小程序] HBuilderX导入uniapp后,无法运行或发行,提示“[微信小程序开发者工具] × open IDE”
- HTML5权威指南读书笔记18(第27章)-window对象,获取窗口信息,获取scree信息,与窗口交互,用户提示,基本信息,history对象,pushstate添加条目,使用定时器
- Machine Learning机器学习自学资料整理
- Enigma密码机原理图解
- Windows下在MSDos窗口下打开指定目录