⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calarmopr.cls

📁 与西门子PLC通讯的程序,经工业现场测试没有问题
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "cAlarmOPR"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit

' In the DataBase , Must be built 2 exec as this :
' 1 select top 1 realtime,pv_wt02,pv_wt03,pv_wt04,pv_st01,pv_st02,pv_st04,pv_st06,pv_prst,pv_prsub from realtimedata order by realtime desc
' 2 select top 1 * from sv_alert order by realtime desc
'
' In the DataBase ,There must be another sheet which named "AlertInfo" that include items: realtime,alertinfo

' SV_AlertSet:
'       Realtime
'       HHST01
'       HHST02
'       HHST04
'       HHST06
'       HHWT02
'       HHWT03
'       HHWT04
'       LLWT02
'       LLWT03
'       LLWT04
'       HHPRST
'       LLPRST
'       HHPRSUB
'       LLPRSUB

Private WithEvents priTMRAlert          As Timer
Attribute priTMRAlert.VB_VarHelpID = -1


Private priLastAlert                    As String



Public Property Let setTimerOCX(ByRef lTimer As Timer)
    
    Set priTMRAlert = lTimer
    priTMRAlert.Enabled = False
    
End Property


Public Sub Initialization()
    
    On Local Error GoTo ErrOPR
        priTMRAlert.Interval = 2000
        priTMRAlert.Enabled = True
        
    Exit Sub
ErrOPR:
        
End Sub

Private Sub DoAlertOPR()

    Dim tArrPV(20) As Variant
    Dim tArrSV(20) As Variant
    Dim tStr As String
    Call gCDBOPR.getItemsValue("exec getPVAlertItems", tArrPV())
    Call gCDBOPR.getItemsValue("Select top 1 * from SV_AlertSet order by realtime desc", tArrSV())
    tStr = getRealtimeAlertInfo(tArrPV(), tArrSV())
    If tStr <> priLastAlert Then
        priLastAlert = tStr
        If tStr = "" Then Exit Sub
        tStr = "Insert into AlertInfo Values('" & Now() & "','" & priLastAlert & "')"
        gCDBOPR.SaveAlertValue tStr
    Else
        priLastAlert = tStr
    End If
    
End Sub


Private Function getRealtimeAlertInfo(ByRef lPVItems() As Variant, ByRef lSVItems() As Variant) As String
    
    Dim tStr$
    tStr = tStr & IIf(lPVItems(1) > lSVItems(1), "1点炉温超高  ", "")
    tStr = tStr & IIf(lPVItems(2) > lSVItems(2), "2点炉温超高  ", "")
    tStr = tStr & IIf(lPVItems(3) > lSVItems(3), "4点炉温超高  ", "")
    tStr = tStr & IIf(lPVItems(4) > lSVItems(4), "6点炉温超高  ", "")
    tStr = tStr & IIf(lPVItems(5) > lSVItems(5), "2点水温超高  ", "")
    tStr = tStr & IIf(lPVItems(6) > lSVItems(6), "3点水温超高  ", "")
    tStr = tStr & IIf(lPVItems(7) > lSVItems(7), "4点水温超高  ", "")
    tStr = tStr & IIf(lPVItems(5) < lSVItems(8), "2点水温超低  ", "")
    tStr = tStr & IIf(lPVItems(6) < lSVItems(9), "3点水温超低  ", "")
    tStr = tStr & IIf(lPVItems(7) < lSVItems(10), "4点水温超低  ", "")
    tStr = tStr & IIf(lPVItems(8) > lSVItems(11), "还原压力超高  ", "")
    tStr = tStr & IIf(lPVItems(8) < lSVItems(12), "还原压力超低  ", "")
    tStr = tStr & IIf(lPVItems(9) > lSVItems(13), "还原压差超高  ", "")
    tStr = tStr & IIf(lPVItems(9) < lSVItems(14), "还原压差超低  ", "")
    getRealtimeAlertInfo = tStr
    
End Function

Private Sub priTMRAlert_Timer()
    
    Call DoAlertOPR
    
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -