wincc报表实现?

用wincc怎么实现连接SQL服务器的记录,将数据写入SQL,并在报表中输出SQL相应的数据?最好是提供VC和VB的两种解决方案~~

最佳答案

1 wincc怎么实现连接SQL服务器的记录, 是要WinCC 的归档数据,还是自己用脚本归档,若是自己的脚本归档,是用sql ole db,
 若是使用WinCC 的归档数据, 使用provider ole ,db .
 a 使用sql ole db, 读用户归档
 Sub OnClick(ByVal Item)                    

 Dim sDsn 
 Dim sSer 
 Dim sCon 
 Dim sSql 
 Dim conn 
 Dim oRs 
 Dim oCom 
 Dim sPro 
 Dim m,n,s
 Dim a,b,c
 Dim Listview1
 Dim oItem 
 Dim xlsApp
 Dim strDateTime 

 Dim iMS

 Set Listview1 = ScreenItems("Control1") 

 

 sCon ="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CC_database_08_10_20_14_59_38R;Data Source=YSY\WINCC"

 
 sSql = "Select * from UA#myua"
 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

 
 Set xlsApp=CreateObject("Excel.Application")
 xlsApp.Visible=True
 xlsApp.Workbooks.Open"E:\sample.xls"

 
 If (m > 0) Then 
 oRs.MoveFirst
 n = 1

 xlsApp.Cells(1,1).Value=oRs.Fields(0).Name
 xlsApp.Cells(1,2).Value=oRs.Fields(1).Name
 xlsApp.Cells(1,3).Value=oRs.Fields(2).Name

 Do While Not oRs.EOF
 n = n + 1
 xlsApp.Cells(n,1).Value=oRs.Fields(0).Value
 xlsApp.Cells(n,2).Value=oRs.Fields(1).Value
 xlsApp.Cells(n,3).Value=oRs.Fields(2).Value

 oRs.MoveNext
 Loop
 xlsApp.ActiveWorkBook.Save
 xlsApp.Workbooks.Close
 xlsApp.Quit
 Set xlsApp=Nothing

 

 
 End If 
 oRs.Close
 Set oRs = Nothing
 conn.Close
 Set conn = Nothing
 End Sub

 b,使用provider ole ,db 读归档数据
 Sub OnClick(ByVal Item)                 
                                                           
 Dim xlsApp
 Dim sDsn 
 Dim sSer 
 Dim sCon 
 Dim sSql 
 Dim conn 
 Dim oRs 
 Dim oCom 
 Dim sPro 
 Dim m,n,s
 Dim a,b,c

 sPro = "Provider=WinCCOLEDBProvider.1;"
 sDsn = "Catalog=CC_vbs_08_05_26_14_56_45R;"   //该为自己的数据库名称
 sSer = "Data Source=.\WinCC"
 sCon = sPro + sDsn + sSer

 // 该为自己的归档名称和变量名称

 sSql = "Tag:R,('ProcessValueArchive\tag1';'ProcessValueArchive\tag2'),'2008-07-2 00:32:00.000','2008-07-2 17:34: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
 Set xlsApp=CreateObject("Excel.Application")
 xlsApp.Visible=True
 xlsApp.Workbooks.Open"E:\sample.xls"

 
 xlsApp.Cells(10,2).Value=6
 If (m > 0) Then 
 oRs.MoveFirst
 n = 1

 xlsApp.Cells(1,1).Value=oRs.Fields(0).Name
 xlsApp.Cells(1,2).Value=oRs.Fields(1).Name
 xlsApp.Cells(1,3).Value=oRs.Fields(2).Name
 xlsApp.Cells(1,4).Value=oRs.Fields(3).Name
 xlsApp.Cells(1,5).Value=oRs.Fields(4).Name
 Do While Not oRs.EOF
 n = n + 1
 xlsApp.Cells(n,1).Value=oRs.Fields(0).Value
 xlsApp.Cells(n,2).Value=oRs.Fields(1).Value
 xlsApp.Cells(n,3).Value=FormatNumber(oRs.Fields(2).Value,2)
 xlsApp.Cells(n,4).Value=Hex(oRs.Fields(3).Value)
 xlsApp.Cells(n,5).Value=Hex(oRs.Fields(4).Value)
 oRs.MoveNext
 Loop
 xlsApp.ActiveWorkBook.Save
 xlsApp.Workbooks.Close
 xlsApp.Quit
 Set xlsApp=Nothing
 End If 
 oRs.Close
 Set oRs = Nothing
 conn.Close
 Set conn = Nothing

 End Sub

提问者对于答案的评价:
可以

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月29日 下午6:59
下一篇 2017年5月29日 下午7:00

相关推荐

  • PCMCIA总线接口的电脑没有了

    现在市上带PCMCIA总线接口的电脑没有了,只有EXPRESS CARD 的接口.我买了CP5512卡,怎么安装? 问题补充:我看了市面上还有少数老型号电脑有,…

    SIMATIC IPC/PG 2017年6月1日
  • IPC自动重启

    如图西门子IPC,最近总自动退出程序,然后系统重启,有时一天三次,有时一个月一次,已加UPS,故障依旧。不知为何 钻石用户推荐最佳答案 1、检查一下电脑的散热,CPU温度高了会自动…

    SIMATIC IPC/PG 2020年11月1日
  • S7300与PC通讯

    S7-300与上位机(CP5611卡)的WinCC和STEP7-V5.4能同时通讯吗?应该怎样设置?请答侠指点。 问题补充:我没说清楚,使用一条PROFIBUS电缆 最佳答案 可以…

    SIMATIC IPC/PG 2017年5月31日
  • TIA Portal V14系统信息

    安装完TIA Portal V14按F1键获取系统信息帮助内容,显示的内容乱码怎么回事呢,求解决方案。 图片说明:    最佳答案 IE&n…

    2021年7月5日
  • SIMATIC PANEL PC 477 能否用 SIMATIC PANEL 477C 代替使用

    477型号工作正常 现场还有一台477C想作为备用机 程序和系统能否兼容 问题补充:477型号 6AV7443-0CD13-0BJ0 &nb…

    SIMATIC IPC/PG 2020年11月1日
  • 一体化工作站

    我想使用一台研华一体化工作站,使用S7-300 PLC,而工作站只有RS232串口,请问那位高手有这方面的通信资料,最好能有实例介绍.  邮箱laf@…

    SIMATIC IPC/PG 2017年5月29日
  • 求IPC627D工控机网卡驱动

    求一个西门子IPC627D工控机(6AG4131-2BA10-0XX5)的网卡驱动,自带的光盘上好像没有那个型号的驱动。搜索到的网卡型号为:Inter(R)  …

    SIMATIC IPC/PG 2017年5月28日
  • automation license manager 在哪里呢

    电脑重装之后,重新装博途,出现下面的错误?怎么处理?请指教谢谢!博途15 的。有点崩溃 最佳答案 Automation License Manager…

    SIMATIC IPC/PG 2020年11月1日
  • 如何学习工控机?

    请教熟悉工控机的大侠:如何学习用工控机IPC作为控制器做设备?买了一本薛、何编著的《工控机及组态控制技术原理与应用》,好像挺理论化的。你们是怎么学会工控机的呢? 钻石用户推荐最佳答…

    SIMATIC IPC/PG 2020年11月1日
  • 变频器参数问题?

    现在已经实现了上位机与MM440变频器的通讯,可以修改参数,但是有个问题比较棘手,因为项目要求有比较多的参数是通过上位机来修改的,比如最大扭矩,最大电压,等等,而在变频器拖动电机运…

    SIMATIC IPC/PG 2017年5月31日