回答者: 凌波微步- 高级工程师  第11级
2009-03-09 08:54:18
您可以评论本回答,或直接点击“提交”按钮推荐本回答...
我可以取出来,但显示不了。我显示时用的是ms listbox 2.0控件,不过没成功显示出来,多列没成功,单列的成功了。
访问数据库的方法都很标准呵呵,下面是用VBS访问的方法:
1,定义数据库对象
Dim ConnectionObj
Dim Connectionstring
Dim CommandStr_TimeStart
Dim CommandStr_TimeEnd
Dim CommandObj
Dim RecordSetObj
Connectionstring="Provider=WinCCOLEDBProvider.1;Catalog=CC_cc_09_01_07_13_16_32R;Data Source=.\WinCC"
2,操作数据库对象
CommandStr_TimeStart="Tag:R,'cc\NewTag',"
CommandStr_TimeStart=CommandStr_TimeStart+"'"+starttime+"'"+","+"'"+endtime+"'"
Set ConnectionObj=CreateObject("ADODB.Connection")
ConnectionObj.ConnectionString=Connectionstring
ConnectionObj.CursorLocation=3
ConnectionObj.Open
Set RecordSetObj=CreateObject("ADODB.Recordset")
Set CommandObj=CreateObject("ADODB.Command")
Set CommandObj.ActiveConnection=ConnectionObj
CommandObj.CommandType=1
CommandObj.CommandText=CommandStr_TimeStart
Set RecordSetObj=CommandObj.Execute
If RecordSetObj.EOF Then
MsgBox "no data found or data has not archived!",,"Error"
RecordSetObj.Close
Set RecordSetObj=Nothing
Set CommandObj=Nothing
ConnectionObj.Close
Set ConnectionObj=Nothing
Else
RecordSetObj.MoveFirst
temp1=RecordSetObj.Fields(2).Value
RecordSetObj.MoveLast
temp2=RecordSetObj.Fields(2).Value
resultt=temp2-temp1
HMIRuntime.Tags("Result").Write resultt
RecordSetObj.Close
Set RecordSetObj=Nothing
Set CommandObj=Nothing
ConnectionObj.Close
Set ConnectionObj=Nothing
End If
看着改吧!!忘了,这里用的是一个归档记录的查询命令,查询报警也有专用的命令,想不起来了。
回答者: null- 学长  第2级
2009-03-09 21:32:53
您可以评论本回答,或直接点击“提交”按钮推荐本回答...
WINCC报警记录采用压缩算法存入SQLSERVER
但是如果你的报警记录简单的话应该可以找到相应的数据表的
找到了数据表读出来这就不是wincc技术范畴了,vb vc 。net都可以对数据库操作
回答者: 天生胆小- 毕业实践员  第4级
2009-03-10 15:58:58
您可以评论本回答,或直接点击“提交”按钮推荐本回答...
WinCC的报警记录是压缩的,读出报警记录,需要借助于wincc的connectivity pack选件。
回答者: HTLearn- 中级技术员  第6级
2009-03-12 13:52:02
您可以评论本回答,或直接点击“提交”按钮推荐本回答...
上一页
1
下一页