回复:在WINCC6。0中如何实现班报表,日报表,月报表,年报表?

密切相关

  • 帖子

    195
  • 精华

    10
  • 被关注

    5

论坛等级:侠客

注册时间:2005-01-06

普通 普通 如何晋级?

发布于 2005-04-30 11:44:12

0楼

1、使用语言VB截取WINCC中的变量

'-----------------------声明与WinCC有关的调用---------------------
Public Mcp As Object
Public McpName As String
Public bMcp As Boolean

'--------------------------------------------------------------------
Private Sub Timer1_Timer()
Dim Tagname1a As String
Dim Tagnamet As String
Dim Tagname1c As String
Dim Tagname2a As String
Dim Tagname2c As String
Dim alarmx
Dim value1, value2
Dim xx
Dim kk
Dim xxpath

If Mcp Is Nothing Then
Exit Sub
Unload Me
End If
If McpName = "" Then
GoTo ddddd
End If
'-----------------------------------------------------------
If Me.Data2.Recordset.EOF = False Then
Me.Data2.Recordset.MoveFirst
shuju1 = Me.Data2.Recordset.Fields("sjbl").Value
kongzhi1 = Me.Data2.Recordset.Fields("kzbl").Value
If Me.Data2.Recordset.RecordCount >= 2 Then
Me.Data2.Recordset.MoveNext
shuju2 = Me.Data2.Recordset.Fields("sjbl").Value
kongzhi2 = Me.Data2.Recordset.Fields("kzbl").Value
End If
End If
'----------------------------数据读取部分开始----------------------------
xx = Mcp.GetValue("printx1")


Tagname1a = shuju1
Tagname2a = shuju2
Tagname1c = kongzhi1
Tagname2c = kongzhi2
convalue1 = Mcp.GetValue(Tagname1c)
value1 = Mcp.GetValue(Tagname1a)
convalue2 = Mcp.GetValue(Tagname2c)
value2 = Mcp.GetValue(Tagname2a)


'----------------------------数据读取部分结束----------------------------
'----------------------------数据记录部分开始----------------------------
If convalue1 < con1 Then
If con1 = 1 And con1 <> "" Then
Me.Data1.Recordset.AddNew
Me.Data1.Recordset.Fields("MCGS_time").Value = Now()
Me.Data1.Recordset.Fields("d3").Value = value1
Me.Data1.UpdateRecord
' Me.Data1.Refresh
Me.Label3.Caption = "共有 " + Str(Data1.Recordset.RecordCount)

End If
End If

If xx > xxx Then
If xx > 0 And xxx <> "" Then
kk = Shell("C:\Program Files\V6.exe ", vbMaximizedFocus)
End If
End If


If convalue2 < con2 Then
If con2 = 1 And con1 <> "" Then
Me.Data1.Recordset.AddNew
Me.Data1.Recordset.Fields("MCGS_time").Value = Now()
Me.Data1.Recordset.Fields("d3").Value = value2
Me.Data1.UpdateRecord
Me.Data1.Refresh

End If
End If
value1 = Mcp.GetValue(Tagname1a)'Tagname1a为WINCC中的定义的变量名称
value2 = Mcp.GetValue(Tagname2a)
con1 = convalue1
con2 = convalue2
xxx = xx
Me.Label3.Caption = "共有 " + Str(Data1.Recordset.RecordCount)
'----------------------------数据记录部分结束----------------------------
Exit Sub
ddddd:
Unload Me
End Sub

'以上为主要代码部分
2、利用VB写报表调用或者查询的程序这在网上VB的论坛里到处都是
另外数据库使用WINCC6 中的SQLSEVER2000不过这属于侵权没人查液没事。如果数据少液可以使用ACCESS
3、建立ODBC的连接然后就是用
4、利用WINCC标准函数中的ProgramExecute(Program_Name); 调用你编写的外部程序就行了。


这个程序是我用程序将WINCC 中的部分数据归档到MCGS的数据库中然后编写了一个统一的报表界面同时供这两种组态软件中调用的。
希望这些能对诸位有一些帮助。
其实我也是菜鸟!!

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有31963条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。