SIEMENS 湖南环辰泰瑞电气设备有限公司
代理西门子系列产品,原装正品,质保一年。
联系人:彭岚
联系手机:--
固定电话:---
: ---
询价传真:----
邮箱地址:
办公地址:湖南省长沙县安沙镇谭访新村腰塘组617号
主营:数控系统,S7-200PLC S7-300PLC S7-400PLC S7-1200PLC 6ES5 ET200 人机界面,触摸屏变频器,DP总线,MM420 变频器MM430 变频器MM440 6SE70交流工程调速变频器 6RA70直流调速装置 SITOP电源,电线电缆,数控备件,伺服电机等工控产品. 我们在价格上有较大优势,更注重售后服务,现有大量现货销售,欢迎您来电咨询。
在WINCC中连接数据库可以使用ADO控件进行连接数据库,但是通常都不是用的ADO控件进行连接数据库,以下讲讲winccZ中使用ADO对象连接查询数据库。以下以报警记录为例。
一、了解ADO对象
1.1ADO对象操作数据库是微软提供的一种接口。
1.2对ADO对象的访问使用CreateObject函数(详情请参看CreateObject函数资料)
ADO组件的前缀是ADODB,所以访问的时候必须为ADODB.XX(X代表对象)
eg:
dim conn,oRs,oCom
Set conn = CreateObject("ADODB.Connection") 'Connection对象
Set oRs = CreateObject("ADODB.Recordset") 'ADODB.Recordset对象
Set oCom = CreateObject("mand") 'mand命令对象
二、对象
2.1 Connection 对象
2.1.1 open 方法
语法
connection.Open ConnectionString,UserID,Password,OpengOptions
说明
ConnectionString:可选参数,字符串,包含连接信息
UserID:可选参数,字符串,包含建立连接时候用的用户名
Password:可选参数,字符串,包含建立连接时候用密码
OpenOptions:可选参数,连接打开方式
eg1:(连接数据库代码方法1,仅连接部分代码)
Dim conn
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
conn.CursorLocation = 3
conn.Open
eg2:(连接数据代码方法2,连接部分代码)
Dim conn
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
Set conn = CreateObject("ADODB.Connection")
conn.CursorLocation = 3
conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
2.1.2 close方法
connection.close
eg:
Dim conn
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
Set conn = CreateObject("ADODB.Connection")
conn.CursorLocation = 3
conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
'这里写上对数据库查询,修改等操作
conn.close
2.1.3 execute方法
语法
Cn.Execute strCommand,[IngRowsAffected[,IngOptions]]
说明
strCommand:可以是查询语句、表名、存储过程名等
IngRowsAffected:可选参数,返回Insert、Update 、Delete查询语句后所影响的数目
IngOptiongs: 参数可以如下
adCmdUnkown:Command类型未定,由数据源提供者去判断Command语法
AdCmdFile:Command是和对象类型相应的文件名称
adCmdStoredProc:Command是存储过程名称
adCmdTable:Command是能产生内部SELECT*FROM TableName查询的表名称
adCmdTableDirect:Command是能直接从表中获取行内容的表名称
adCmdText:Command是一条SQL语句
eg:
Dim conn,oCom,oRs
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
Set conn = CreateObject("ADODB.Connection")
conn.CursorLocation = 3
conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
Set oCom = CreateObject("mand")
Set oRs = CreateObject("ADODB.Recordset")
mandType=1
Set oCom.ActiveConnection = conn
mandText ="ALARMVIEW:Select * FROM AlgViewCHT "
Set oRs = oCom.Execute
'以上4句还可以写成 Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")
conn.close
2.2 Recordset对象
Recordset 常用属性
RecordsetCount:返回当前记录的数目
BOF:表示当前记录位于该对象**个记录之前
EOF:表示当前记录位于该对象较后一个记录之后。
movefirst:移动到**条
movenext:移动到下一条
movelast:移动到较后一条
eg:
Dim conn,oCom,oRs
Dim m
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
Set conn = CreateObject("ADODB.Connection")
conn.CursorLocation = 3
conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
Set oRs = CreateObject("ADODB.Recordset")
Set oRs=conn.Execute("ALARMVIEW:Select * FROM AlgViewCHT ")
m = oRs.RecordCount
msgbox "报警行数"&m
conn.close
2.2.1 Open方法
语法
recordset.Open Source,ActiveConnection,CursorType,LockType,Options
说明
Source:可选参数,变体型,计算Command对象的变量名、SQL语句、表名、存储过程调用或持久的 Recordst文件名
ActiveConnection:可选参数,变体型,计算有效Connection对象变量名或字符串,包含 ConnectionString参数
CursorType:可选参数,用于确定数据提供者打开Recordset时应该使用游标类型,类型如下
adOpenForwardOnly:打开仅向前类型游标(默认类型)
adOpenKeyset:打开键集类型游标
adOpenDynamic:打开动态类型游标
adOpenStatic:打开静态类型游标
注:具体解释请参考百度结果,这里我们主要讲解应用方面的东西。
LockType:可选参数,确定数据提供者打开Recordset时应该使用的锁定(并发)类型的LockTypeEnum 值,类型如下
adLockReadOnly:只读,默认值
adLockPessinistic:保守式锁定,提供者完成确保成功编辑记录所需的工作,通常通过在编辑时 候锁定数据源的记录来完成。
adLockOptimistic:开放式锁定,提供者试用开放式锁定,只在调用Update方法时才锁定记录。
adLockBatchOptimistic:开放式批更新,用于批更新模式
Optiongs:可选参数,长整型,用于指示数据提供者如何计算Source参数,或从以前保存的Recordset 中恢复Recordset(以下省略参数类型讲解)
eg:
Dim conn,oRs,oCom
Dim m,i
Dim tagDSNName
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
Set conn = CreateObject("ADODB.Connection")
conn.CursorLocation = 3
conn.Open "Provider=WinCCOLEDBProvider.1;Catalog="&tagDSNName.Read&";Data Source=.\WinCC"
Set oRs = CreateObject("ADODB.Recordset")
oRs.open "ALARMVIEW:Select * FROM AlgViewCHT ",conn
m = oRs.RecordCount
MsgBox "报警行数"&m
oRs.Close
conn.Close
2.3 Command对象
2.3.1 对象属性说明
ActiveConnection:使打开的数据库连接与Command对象关联
CommandText:可执行的命令文本,如SQL语句
CommandType:*命令类型以优化性能
CommandTimeout:设置提供者等待命令行的秒数
以下摘自西门子连通性文档
过程值记录集结构
报警
过程值归档:
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("mand")
mandType = 1
Set oCom.ActiveConnection = conn
mandText = "TAG:R,'PVArchive\Tag1','0000-00-00 00:10:00.000','0000-00-00 00:00:00.000'"
报警消息归档:
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("mand")
mandType = 1
Set oCom.ActiveConnection = conn
mandText = "ALARMVIEW:Select * FROM AlgViewEnu"
用户归档
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("mand")
mandType = 1
Set oCom.ActiveConnection = conn
mandText = "SELECT * FROM UA#Test"
关于数据集可参考《ConnectivityPackInfoSystem_zh-CHS》文档其中非常详细
如果需要了解更多的方法,属性,请查阅ADODB手册上面非常的详细,本文并非专门讲解ADODB对象的文章而是重点在讲WINCC中如何使用方法,欢迎交流学习
湖南环辰泰瑞电气设备有限公司
联系人:彭岚
联系手机:--
固定电话:---
: --
询价传真:---
邮箱地址:
办公地址:湖南省长沙县安沙镇谭访新村腰塘组617号
主营:数控系统,S7-200PLC S7-300PLC S7-400PLC S7-1200PLC 6ES5 ET200 人机界面,触摸屏变频器,DP总线,MM420 变频器MM4306SE70交流工程调速变频器 6RA70直流调速装置 SITOP电源,电线电缆,数控备件,伺服电机等工控产品. 我们在价格上有较大优势,更注重售后服务,现有大量现货销售,欢迎您来电咨询。
代理西门子系列产品,原装正品,质保一年。
Simatic S7-300/S7-400:创建 Modbus/TCP 通信连接数据的向导(Modbus/TCP 向导)
推荐文档: 西门子工程师推荐本文档!
文献
涉及产品
SIMATIC S7-300/S7-400 CPU 配有外部 CP 343-1/CP 443-1 或 CPU 中集成有 PROFINET 接口时,可通过 Modbus/TCP 与第三方设备进行数据通信。
进行 odbus/TCP 通信组态时,可能需要使用为进 Modbus/TCP 通信而额外订购的各种块。
SIMATIC Modbus/TCP CP:订货号 2XV9450-1MB00 和 6AV6676-6MB00-6AX0
SIMATIC Modbus/TCP PN CPU:订货号 2XV9450-1MB02 和 6AV6676-6MB20-3AX0
SIMATIC Modbus/TCP CP Redundant:订货号:6AV6676-6MB30-3AX0
SIMATIC Modbus/TCP PN CPU Redundant:订货号:6AV6676-6MB10-0AX0
解决方案
Modbus/TCP 向导支持两项工作:
规划参数数据块
许可 Modbus/TCP 块
规划参数数据块
为了轻松组态该 Modbus/TCP 通信 (TCP native),可使用免费下载的 Mdbus/TCP 向导。使用 Modbus/TCP 块进行 Modbus/TCP 通信时,需在各数据块中*各连接的参数。选择产品后,使用 Modbus/TCP 向导工具可快速清晰地*各种连接参数和 Modbus 参数。
使用外部 CP 343-1/CP 443-1 进行数据通信时,在 NetPro 中需组态一个 TCP 连接。要通过 CPU 的 PROFINET 接口进行通信时,则需使用通信功能块 FB65“TCON”、FB66“TDISCON”、FB63“TSEND”和 FB64“TRCV”。
之后,该工具将一个包含连接说明所有参数的 DB 导出到 STEP 7 项目中。而现有连接则可进行读取、更改和复制。
许可 Modbus/TCP 块
使用 Modbus/TCP 向导从 CPU 在线读取 IDENT_CODE,并显示 IDENT_CODEas DataMatrix。请求的 REG_KEY 可以保存到数据块中,并可以加载到 CPU 中。
下图显示了 Modbus/TCP 向导的起始画面