Wincc远程写入SQL数据库
欢迎使用Markdown编辑器
整体思路:
1、 数据服务器:192.168.2.37
将该机作为SQL Server数据库的服务器,在此机上,安装SQL Server数据库,设置开放远程访问接口,建立数据库DNP15B2N,在该数据库下,建立三个数据表:B2NStatus、B2Noperate、B2NFault
2、 上位Wincc:192.168.2.36
该机为上位机,只需在Wincc中设置脚本即可
步骤:
1、 安装Win10系统
2、 设置Win10系统密码(账户、密码在安装SQL要用到)
3、 设置IP地址192.168.2.37,关闭防火墙
4、 安装SQL
5、 打开SQL Server Management Studio
6、 服务器名称:192.168.2.37
7、 登录后,右键选择“属性”。左侧选择“安全性”,选中右侧的“SQL Server 和 Windows 身份验证模式”以启用混合登录模式
8、 选择“连接”,勾选“允许远程连接此服务器”,然后点“确定
9、 展开“安全性”,“登录名”,新建登录名:REM
10、 左侧选择“常规”,右侧选择“SQL Server 身份验证”,并设置密码:abc321
11、 在服务器角色中,将Sysadmin勾打上
12、 在状态中,设置为“授予”、“启用”
13、 重新启动
14、 以REM账户,登录
15、 新建数据库:DNP15B2N
16、 安全性-登录名-REM,右键属性,用户映射,选中新建的数据库DNP15B2N,将db_datareader,db_datawriter的勾打上
17、 在数据库下,DNP15B2N下,新建表B2NStatus
其中,序号列设置为自增列,点击序号,在列属性中,打开表示规范的“+”,将“(是标识)”,选择为是,标识增量为1
18、 打开sql server配置管理器
19、 下面开始配置SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server Browser”正在运行
20、 在左则选择sql server网络配置节点下的sqlexpress的协议,在右侧的TCP/IP默认是“否”,右键启用或者双击打开设置面板将其修改为“是“
至此,数据库服务器配置完成了
在上位机Wincc中,用excel测试,是否远程连接已开启
//全局脚本
Dim oCon
Dim sCon
Dim DT_now
Dim Status1,Status2,Status3,Status4,Status5,Status6,Status7,Status8,Status9,Status10,Status11,Status12,Status13,Status14,Status15,Status16
Dim Sys_Hour,Sys_Minute,Sys_Second
'读取系统时、分
Sys_Hour=Hour(Now)
Sys_Minute=Minute(Now)
Sys_Second=Second(Now)
'每2小时写入一次数据
If Sys_Hour=0 Or Sys_Hour=2 Or Sys_Hour=4 Or Sys_Hour=6 Or Sys_Hour=8 Or Sys_Hour=10 Or Sys_Hour=12 Or Sys_Hour=14 Or Sys_Hour=16 Or Sys_Hour=18 Or Sys_Hour=20 Or Sys_Hour=22 Then
'读取系统日期时间
DT_now=Now
'读取WINCC变量
Status1=HMIRuntime.Tags (“加速器钢筒温度”).Read
Status2=HMIRuntime.Tags (“加速器钢筒压力”).Read
Status3=HMIRuntime.Tags (“循环水出口水温”).Read
Status4=HMIRuntime.Tags (“循环水回水水温”).Read
Status5=HMIRuntime.Tags (“蓄水池液位”).Read
Status6=HMIRuntime.Tags (“集水坑液位”).Read
Status7=HMIRuntime.Tags (“去离子水泵出口温度”).Read
Status8=HMIRuntime.Tags (“去离子水泵出口流量”).Read
Status9=HMIRuntime.Tags (“去离子水泵出口压力”).Read
Status10=HMIRuntime.Tags (“Q3D去离子水泵出口温度”).Read
Status11=HMIRuntime.Tags (“Q3D去离子水泵出口流量”).Read
Status12=HMIRuntime.Tags (“Q3D去离子水泵出口压力”).Read
Status13=HMIRuntime.Tags (“去离子水水箱液位”).Read
Status14=HMIRuntime.Tags (“压缩空气压力”).Read
Status15=HMIRuntime.Tags (“一号水塔温度”).Read
Status16=HMIRuntime.Tags (“二号水塔温度”).Read
'数据库接口设置
sCon=“driver={sql server}; server=192.168.2.37;uid=REM;pwd=abc321;dataBase=DNP15B2N”
Set oCon=CreateObject(“ADODB.Connection”)
oCon.ConnectionString=sCon
oCon.open
‘将当前数值插入数据库
oCon.execute "INSERT INTO B2NStatus VALUES(’“&DT_now&”‘,’“&Status1&”‘,’“&Status2&”‘,’“&Status3&”‘,’“&Status4&”‘,’“&Status5&”‘,’“&Status6&”‘,’“&Status7&”‘,’“&Status8&”‘,’“&Status9&”‘,’“&Status10&”‘,’“&Status11&”‘,’“&Status12&”‘,’“&Status13&”‘,’“&Status14&”‘,’“&Status15&”‘,’“&Status16&”',‘0.0’,‘0.0’,‘0.0’)"
oCon.close
Set oCon=Nothing
End If