使用WinCC ConnectivityPack 查询本地过程值归档

如题,在深入浅出WinCC 中有讲到用WinCC OLE DB读取过程值归档的方法,具体方法可见图片1,代码如下,但是运行VB应用程序,总是提示:
ConnectionOpen (ParseConnectParams())无效的连接,不知问题出在哪?代码按书上例子只对连接字符串做了相应修改,或者问题在于WinCC ConnectivityPack 的安装上,ConnectivityPack Server 装不上,只装得上Client   

Private Sub Command1_Click()
Dim sPro As String
Dim sDsn As String
Dim sSer As String
Dim sCon As String
Dim sSql As String
Dim conn As Object
Dim oRs As Object
Dim oCom As Object
Dim oItem As ListItem

Dim m, n, s
'#为ADODB创建connection string'
sPro = "Provider = WinCCOLEDBProvider.1;"
sDsn = "Catalog = CC_Archive_13_10_28_16_21_21R;"

'sSer = "Data Source = .\WinCC" '

sSer = "Data Source = QINJIWEN:\WinCC"
sCon = sPro + sDsn + sSer

'#在sSql定义命名文本(相对时间)'
sSql = "TAG:R,'3','0000 - 00 - 00 00:10:00.000','0000 - 00 - 00 00:00:00.000'"
MsgBox "Open with:" & vbCr & sCon & vbCr & sSql & vbCr
'建立连接'
Set conn = CreateObject("ADODB.Connection")
conn.ConnectionString = sCon
conn.CursorLocation = 3
conn.Open
'#使用命令文本进行查询'
Set oRs = CreateObject("ADODB.Recordset")
Set oCom = CreateObject("ADODB.Command")
oCom.CommandType = 1
Set oCom.ActiveConnection = conn
oCom.CommandText = sSql

'#填充记录集'
Set oRs = oCom.Execute
m = oRs.Fields.Count

'#用记录集填充标准listview对象'
ListView1.ColumnHeaders.Clear
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(1).Name), 140
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(2).Name), 70
ListView1.ColumnHeaders.Add , , CStr(oRs.Fields(3).Name), 70

If (m > 0) Then
oRs.MoveFirst
n = 0
Do While Not oRs.EOF
n = n + 1
s = Left(CStr(oRs.Fields(1).Value), 23)
Set oItem = ListView1.ListItems.Add()
oItem.Text = Left(CStr(oRs.Fields(1).Value), 23)
oItem.SubItems(1) = FormatNumber(oRs.Fields(2).Value, 4)
oItem.SubItems(2) = Hex(oRs.Fields(3).Value)

If (n > 1000) Then Exit Do
oRs.MoveNext
Loop

oRs.Close
Else

End If

Set oRs = Nothing
conn.Close

Set conn = Nothing
End Sub

图片说明:

使用WinCC ConnectivityPack 查询本地过程值归档   

最佳答案

可以参考一下:《使用 WinCC OLE DB Provider 导出 WinCC / CAS 归档数》
http://blog.sina.com.cn/s/blog_669692a60100quuc.html

提问者对于答案的评价:
very   good!

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc219401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年12月2日 上午11:33
下一篇 2017年12月2日 上午11:33

相关推荐

  • SQL2005开机重装

    我安装wincc6.2的附件SQL2005,没有成功,就算了。不用wincc6.2了。但电脑每次开机或重启都会自动安装SQL2005,都不成功。怎么样能够去掉,我的系统是XP&nb…

    SIMATIC WinCC 2019年6月11日
  • wincc 二进制触发脚本动作

    wincc 二进制变量触发脚本动作是置1的时候执行还是有跳变就执行?谢谢 最佳答案 有跳变时执行脚本。 提问者对于答案的评价:又专门建了个内部变量试了下,呵呵

    SIMATIC WinCC 2021年7月5日
  • 请问,IPC377E与TP1200,如何选型区别,将对约400个模拟量实时监控和记录,或有更好的选择请推荐

    请问,IPC377E与TP1200,如何选型区别,将对约400个模拟量实时监控和记录,或有更好的选择请推荐,最好是一体式的,有现货的,谢谢 最佳答案 有400个模拟量数据需要实时监…

    SIMATIC WinCC 2021年7月5日
  • WINCC中逻辑表达式怎么输入

    wincc7.0中我要定的表达式是或的关系,我不知道这个或(II)从哪里能加上,特来请教一下还有一个问题就是WINCC运行状态时能发出一个M点吗,如果能发的话在哪里能设置,谢谢期待…

    SIMATIC WinCC 2017年6月10日
  • wincc怎么样实现UDP广播?

    请问各位高手,怎样才能在WINCC里实现UDP广播? 问题补充:非常谢谢阿瑟斯,但由于我不会用VB,请问还有没有其他方法,比如在全局脚本里用C编写? 最佳答案 1.在WinCC画面…

    SIMATIC WinCC 2019年6月11日
  • wincc flemible 上载程序

    我的触摸屏是  700 IE ,上传用的是以太网口,触摸屏的IP是 192.168.111.11我的pc的IP是192.168.1…

    SIMATIC WinCC 2017年6月27日
  • wincc里面如何把按钮触发改成变量触发

    wincc里面如何把按钮触发改成通过变量触发 钻石用户推荐最佳答案 可以用全局C动作或VBS动作来做。将按钮里的代码拷贝到全局动作中,可能需要修改,然后,设置全局动作的触发器,选择…

    SIMATIC WinCC 2021年7月5日
  • 怎么做?

    想把一个屏幕的wincc画面拷到另一个新屏幕上,该怎么做?谢谢 最佳答案 打开原画面,另存 提问者对于答案的评价:thanks

    SIMATIC WinCC 2019年6月11日
  • wincc 报警控件ccalwinctrl

    ccalwinctal 在属性里看到这个控件的名字,但是我在控件了没有找到,这个控件怎么用,设备分别报警(1车间,2车间报警分开) 最佳答案 这报警控件估计是组态人员改的…

    SIMATIC WinCC 2021年7月5日
  • wincc中过程值存放在哪个数据库表中?

    wincc中过程值存放在哪个数据库表中?归档变量和非归档变量都在数据库表中可以查询吗? 最佳答案 打开你的WINCC项目文件夹,里面有个ArchiveManager文件夹,里面有三…

    SIMATIC WinCC 2019年6月11日