用户归档和变量记录的区别,用户归档怎样做报表呢

看过用用户归档做报表的例子,使用VB和SQL语言将用户归档的数据库导出到EXCEL,但由于我比较菜,那些代码都看不懂的,希望前辈们给我指点!给我说下详细的思路!
最好能给我解释下每段代码的功能!不胜感激!


在用户归档中加入如下2个表:
 创建2个归档,归档类型:无限制;通讯:无;控制变量:无;标记:上一次修改。
 gdblm:别名:归档变量名
   字段名      数据类型     长度   别名
   BLWB         字符串      30    变量文本
   DW           字符串      10    单位
   Tag_name     字符串      30    变量名
 
 ZDGD:整点归档
   字段名      数据类型     长度   别名
   BM          字符串      30     别名
   RQ          日期/时间          日期
   SJ          日期/时间          时间
   Tag_name    字符串      30     变量名
   ZHI         数(浮点)           值
 
 WINCC动作,触发器按每小时的00:00触发。
 Option Explicit
 Function action
 
  Dim gzd,RM_MASTER,tagstr,tag_name,table_name
  Dim tag_N,tag_T,tag_U,i,tag_W
  Dim Atag_N,Atag_T,Atag_U,max,Atag_W,idd,sql1,db_time
  
 ' On Error Resume Next
  RM_MASTER=GetTag("@RM_MASTER")
  'RM_MASTER=1
  'If RM_MASTER=1 Then
   table_name="UA#ZDGD"
   db_open
   sql="SELECT * FROM " & table_name & " ORDER BY ID DESC"
   Set rs = CreateObject("ADODB.Recordset")
   rs.Open sql, conn, 1, 1
   If Not rs.eof And Not rs.bof Then
    idd=rs(0)
    db_time=rs("SJ")
   Else
    idd=0
    db_time="00:00"
   End If 
   If Hour(db_time)<>Hour(Now()) Then
  
  
    sql="SELECT * FROM UA#gdblm ORDER BY ID"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sql, conn, 1, 1
    If Not rs.eof And Not rs.bof Then
     rs.MoveFirst
     i=0
     Do While Not rs.Eof
      tag_N=tag_N & ";" & rs(1)
      tag_T=tag_T & ";" & rs(2)
      tag_U=tag_U & ";" & rs(3)
      i=i+1
      rs.movenext
     Loop
     tag_N=Right(tag_N,Len(tag_N)-1)
     tag_T=Right(tag_T,Len(tag_T)-1)
     tag_U=Right(tag_U,Len(tag_U)-1)
     Atag_N=Split(tag_N,";")
     Atag_T=Split(tag_T,";")
     Atag_U=Split(tag_U,";")
     max= UBound(Atag_N)
     For i=0 To max
      idd=idd+1
      tagstr=Atag_N(i)
      tag_name=Atag_T(i)
      'If RM_MASTER=1 Then
      sql1=zdgd_sql1 (idd,tagstr,tag_name,table_name)
      'MsgBox sql
      conn.execute sql1
      'End If
     Next
     'MsgBox sql
    End If
  
   End If
  'End If

最佳答案

用户归档是归档你指定的变量,即存储在你的硬盘中(通过数据库的方式),报表查询是访问你的这个数据库,具体可以到下载中心下载文档。

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月10日 下午8:42
下一篇 2019年6月10日

相关推荐

  • 西门子400冗余中的上位机画面怎么才能切换

    西门子400冗余中的上位机画面怎么才能切换,冗余的CPU可以切换,但是上位机画面不能切换,画面上无数据传输,请问在WINCC中还需要做些什么设置啊??? 最佳答案 冗余系统和PC之…

    SIMATIC WinCC 2019年6月11日
  • wincc如何用C脚本读取和写入文本变量

    如题,我希望在C脚本中实现对文本变量的读取和写入,我使用了“SetTagChar”函数,结果并没有将文本写进去,也不知道能不能从中读出来,请问如何得到文本变量中的字符数据。 最佳答…

    SIMATIC WinCC 2021年7月5日
  • 西门子TP1200触摸屏,所有模拟量的IO域数值不刷新

    西门子TP1200触摸屏,所有模拟量的IO域数值不刷新,一直是原始状态,只有切换到别的画面后再切回来,模拟量显示数值才刷新,否则一直不变。 钻石用户推荐最佳答案 变量的采集模式有三…

    SIMATIC WinCC 2021年7月5日
  • wincc打开应用程序

    WINCC如何通过脚本打开一个应用程序及应用程序对应的固定文件。 谢谢! 希望有详细例程! 问题补充:比如我要打开一个文件,如:E:\he.doc,脚本如何编写…

    SIMATIC WinCC 2019年6月11日
  • 使用一个BOOL变量检测PLC与WINCC通讯是否正常?

    一,在PLC有一个长“置1”的BOOL,在WINCC连接这个BOOL变量,希望在PLC与WINCC断开连接的时候,WINCC这端BOOL为“0”,比如做一个圆变色之类等作为断线警示…

    SIMATIC WinCC 2021年7月5日
  • MP277画面如何加密

    MP277项目中的画面如何加密?有什么方式可以让别人无法修改项目里面的画面内容?即使有源程序. 最佳答案 有以下两种方法:1. 在MP277的控制面板–Password…

    SIMATIC WinCC 2019年6月11日
  • wincc冗余切换问题

    先简单说下 公司有个6年前的国外项目用的是两套S7300CPU(6ES7 315-2AG10-0AB0/V2.0)通过MPI实现软冗余的,用CP343-1&nb…

    SIMATIC WinCC 2019年6月11日
  • wincc6.0sp3

    安装完后,打不开工程,还是用自带的复制器复制过去的。 问题补充:没有错误提示,进行到66%就进行不下去了,在上位机运行过的工程就打不开,从未在上位机运行过的工程能打开运行,计算机名…

    SIMATIC WinCC 2019年6月11日
  • wincc information 一直显示 license expired

    会出来一个红色框框,显示“Your software license has expired! WinCC will&n…

    2021年7月5日
  • wincc 多语言

    请问wincc 中能否显示俄文?如何显示? 最佳答案 参考:《如何在过程画面中组态多语言文本?》:http://support.automation.siemens.co…

    SIMATIC WinCC 2017年12月7日