将数据存储在生成的EXCEL表中

按照例子我可以实现:
1、创建一个excel表,将变量归档的数据写进去
2、创建一个与IO域中输入日期为名称的excel表
     但是我无法将上面两个合起来,及点击一次按钮,创建一个与当前IO域值为名称的excel表,并且将数据写在这个表中。
     我现在只能创建表,然后表里面是空的。
     下面是代码


Sub OnLButtonDown(ByVal Item, ByVal Flags, ByVal x, ByVal y)                                            
Dim xlsApp
Dim sDsn
Dim sSer
Dim sCon
Dim sSql
Dim conn
Dim oRs
Dim oCom
Dim sPro
Dim m, n, s, x_f, x_n, l
Dim a, b, c
Dim TimeFrom, TimeTo
Dim patch,Day


'''''''''''''选择读取归档变量的时间区间

Set TimeFrom = HMIRuntime.Tags("DayFrom")
TimeFrom.Read

Set TimeTo = HMIRuntime.Tags("DayTo")
TimeTo.Read 


''''''''''''''创建excel表路径
Day = HMIRuntime.Tags("Day").Read

patch = "e:\" & Day & ".xls"


''''''''''''''例子内容

sPro = "Provider=WinCCOLEDBProvider.1;"
sDsn = "Catalog=CC_ceepc_cs_14_01_15_06_41_10R;"
sSer = "Data Source=CEEPC-33\WINCC"
sCon = sPro + sDsn + sSer

sSql = "Tag:R,('ProcessValueArchive\氨气流量';'ProcessValueArchive\频率反馈1';'ProcessValueArchive\频率反馈2';'ProcessValueArchive\出口气压力';'ProcessValueArchive\出口水压力';'ProcessValueArchive\储罐温度';'ProcessValueArchive\储罐液位'),'" + TimeFrom.Value + "','" + TimeTo.Value + "'" 

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
x_f = oRs.RecordCount/7
Set xlsApp = CreateObject("Excel.Application")
'xlsApp.DisplayAlerts = True
xlsApp.Visible = True
'xlsApp.Workbooks.Open "C:\Users\Auser\Desktop\ss1.xls"

'''''''''''创建新excel表    我最担心这里有问题
xlsApp.Workbooks.Add
xlsApp.Save patch
xlsApp.Workbooks.Open patch
'xlsApp.Workbooks.Open "C:\Users\Auser\Desktop\ss1.xls"


'''''''''''''''''例子内容
If (m > 0) Then
oRs.MoveFirst
n = 0
l = 1

xlsApp.Cells(1, 1).Value = "时间"
xlsApp.Cells(1, 2).Value = "氨水流量 m3/h"
xlsApp.Cells(1, 3).Value = "频率反馈1 Hz"
xlsApp.Cells(1, 4).Value = "频率反馈2 Hz"
xlsApp.Cells(1, 5).Value = "出口气压 Mpa"
xlsApp.Cells(1, 6).Value = "出口水压 Mpa"
xlsApp.Cells(1, 7).Value = "储罐液位 m"
xlsApp.Cells(1, 8).Value = "储罐温度 ℃"

Do While Not oRs.EOF

x_n = n Mod x_f
l = Int(n / x_f)

 xlsApp.Cells(x_n+2, 1).Value = oRs(1) '时间
 xlsApp.Cells(x_n+2, (l+2)).Value = oRs(2)       '值
 n = n + 1
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

最佳答案

第一:请先尝试查询一个变量的值。
第二:你要保证你的时间部分的值是正确的,也就是说做个消息框看看弹出的时间是否正确,是否真的读到了你想要的时间。
第三:wincc的变量归档的时间格式不是我们的北京时间,我没有看到你的时间转换代码,而这个代码是必须的。
第四:你创建了两个excel表格,我不知道这有什么作用,通常是创建一个模板,然后把数据写进去按照你想要的名字另存即可。
第五:在你操作电子表格的时候需要指定你要操作哪一个sheet,我再代码里没有找到。
还有两点就是不太重要的,其一你的代码写的没有顺序,应该把相同功能的代码尽量放在一起,方便查找问题。其二,我怀疑你这个代码是从技术文档上找的,不要轻易相信,因为技术文档也有可能出错。
以上内容有可能有疏漏,说错了请见谅。

VBS代码读取wincc变量归档,每天保存一个电子表格。利用控件查询显示所需日期的电子表格内容,并支持在wincc界面编辑报表,更改数据等等。每天固定24条数据,如果相应小时点数没有数据,则用#填充。
请参考优酷视频
 http://v.youku.com/v_show/id_XNzA2MjY0MzEy.html
 QQ1305567706  小董

提问者对于答案的评价:
谢谢,先不弄了,忙过这阵子再说

最佳答案作者回复:
好的   有需要随时联系qq2606352062即可

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月18日
下一篇 2017年11月18日

相关推荐

  • OPC DA WINCC

    2台PC:A、B在同一局域网,A、B都安装WINCC V6.2SP3,A做服务器B做客户机,客户机添加OPC通道,通过OPC条目管理器找到A服务器名称选择OPCSERVE…

    SIMATIC WinCC 2019年6月11日
  • 请问wincc画面制作的一般流程是什么?

    我现在要做中厚板的HMI界面,包括液压缸控制等。问题如下:1、是应该在PSC7中项目下和S7_400,并列加入一个OS项目,还是单独在wincc中创建OS?2、液压缸是否要自己要画…

    SIMATIC WinCC 2019年6月11日
  • Wincc 不能打开页面报表编辑器!!

    Wincc 不能打开页面报表编辑器!! 提示“OLE-connection to CSApi invalid:800401f3&n…

    SIMATIC WinCC 2019年6月11日
  • WinCC网络问题

    一个WinCC的监控系统,有两个个sever,三个client。请问,五台电脑在硬件接线上怎么连接?采用什么网络?什么通信方式? 最佳答案 这个问题很清晰,你直接加一个交换机就可以…

    SIMATIC WinCC 2019年6月11日
  • WINCC如何将时钟与S7-300同步?

    一般我们都是将WINCC与工控机同步的,那我可不可以将WINCC与PLC同步?就是让它只与PLC同步而不与工控机同步。 最佳答案 1.可以通过在PLC和WinCC中分别编程实现时钟…

    SIMATIC WinCC 2019年6月11日
  • Wincc Pro V13 VS Wincc Flexible V13

    Wincc Pro V13和Wincc Flexible V13有什么区别?安装Wincc Pro V13时选择那个密匙…

    SIMATIC WinCC 2017年6月7日
  • 如何建立结构变量在可以在C脚本下使用?

    我现在想要在C脚本程序下用到结构类型变量,这个结构变量必须得可以在工程中的所有C脚本下都可以应用,但只想声明一次!这应该怎么做?类似如下的结构: structure&nb…

    SIMATIC WinCC 2019年6月11日
  • PCS7中WINCC与PLC连接

    PCS7中2 套WINCC与410H 是S7冗余连接,通讯没有问题PCS7中2 套WINCC与1200通讯出问题,每套WINCC都与1200建立通讯通…

    SIMATIC WinCC 2021年7月5日
  • C脚本解读

    我写了下面脚本,不过还有一个警告,请专家帮忙改改,谢谢! #include "apdefap.h" int gscAct…

    SIMATIC WinCC 2019年6月11日
  • wincc报警记录不显示

    在已使用的wincc中添加报警项目,结果运行起来报警信息不显示,奇怪了?这个点是图一的方块,报警变红,从这个地址找到块,plc中也有反应,添加这个变量进报警表运行没有报警?点动作了…

    2021年7月5日