亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trendgraph.ctl

?? 用vb寫的一個opc的客戶端控件
?? CTL
字號:
VERSION 5.00
Begin VB.UserControl TrendGraph 
   BackColor       =   &H00000000&
   ClientHeight    =   4605
   ClientLeft      =   0
   ClientTop       =   0
   ClientWidth     =   6015
   FillStyle       =   0  'Solid
   ForeColor       =   &H00000000&
   LockControls    =   -1  'True
   PropertyPages   =   "TrendGraph.ctx":0000
   ScaleHeight     =   4605
   ScaleWidth      =   6015
   ToolboxBitmap   =   "TrendGraph.ctx":002D
   Begin VB.Line linHorizon 
      BorderColor     =   &H00FFFFFF&
      X1              =   600
      X2              =   3000
      Y1              =   1920
      Y2              =   1920
   End
End
Attribute VB_Name = "TrendGraph"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Private Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long

' OPC對象
Dim WithEvents objMyOpcServer As OPCServer
Attribute objMyOpcServer.VB_VarHelpID = -1
Dim WithEvents objMyOpcGroup As OPCGroup
Attribute objMyOpcGroup.VB_VarHelpID = -1
Dim objMyOpcGroups As OPCGroups

' 屬性
Dim dRangeX As Double
Dim dRangeY As Double
Dim ocPointColor As OLE_COLOR
Dim bAutoLink As Boolean
Dim strProgID As String
Dim strItemID As String

' 內部工作變量
Dim g_bConnect As Boolean   ' 連接標志
Dim g_lNowTime As Long      ' 本次事件的發生時間
Dim g_lOldTime As Long      ' 上次事件的發生時間
Dim g_dPf As Double         ' 事件數
Dim g_dQuotient As Double
Dim g_bFirstPaint As Boolean

' 屬性的初期值
Const conDefaultRangeX As Double = 10000
Const conDefaultRangeY As Double = 1
Const conDefaultPointColor As Long = &HFFFFFF
Const conDefaultLineColor As Long = &HFFFFFF
Const conDefaultBackColor As Long = &H0
Const conDefaultPointSize As Long = 1
Const conDefaultAutoLink As Boolean = False
Const conDefaultProgID As String = "OPC.SimaticNet"
Const conDefaultItemID As String = "ytwzm1kd"

Public Sub Connect()
    ' 連接OPC服務器
    If Ambient.UserMode Then
        ' 連接OPC服務器僅限于運行模式
        Call OpcConnect(strProgID, strItemID)
    End If
End Sub

Public Sub Disconnect()
    ' 斷開OPC服務器
    Call OpcDisConnect
End Sub

Public Sub Plot(ByVal dX As Double, ByVal dY As Double)
    ' 描繪趨勢圖
    Dim dNewQuotient As Double
    Dim dAbsolute As Double
    
    dNewQuotient = dX \ RangeX
    dAbsolute = Abs(dY)
    If dNewQuotient <> g_dQuotient Then
        ' 改變顯示范圍
        Cls
        g_dQuotient = dNewQuotient
        g_bFirstPaint = True
    End If
    
    If g_bFirstPaint Then
        ' 描繪趨勢圖的第一點
        PSet (ScaleWidth * ((dX Mod RangeX) / RangeX), (ScaleHeight / 2) - ((ScaleHeight / 2) * (dAbsolute / RangeY) * Sgn(dY))), PointColor
        g_bFirstPaint = False
    Else
        Line -(ScaleWidth * ((dX Mod RangeX) / RangeX), (ScaleHeight / 2) - ((ScaleHeight / 2) * (dAbsolute / RangeY) * Sgn(dY))), PointColor
    End If
End Sub

Private Sub objMyOpcServer_ServerShutDown(ByVal Reason As String)
    ' OPC服務器關機要求的處理
    Call Disconnect

    MsgBox Title:=Extender.Name, _
        Prompt:="OPC服務器關機。" & vbCr & """" & Reason & """", _
        Buttons:=vbInformation
End Sub

Private Sub objMyOpcGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, _
        ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)
    ' 數據變化事件的處理
    ' 記錄時間和次數
    g_lOldTime = g_lNowTime
    g_lNowTime = timeGetTime
    g_dPf = g_dPf + 1

    ' 描繪趨勢圖
    Plot g_lNowTime, ItemValues(LBound(ItemValues))
End Sub

Private Sub UserControl_Initialize()
    ' 內部工作變量的初始化
    g_bConnect = False
    g_lNowTime = 0
    g_lOldTime = 0
    g_dPf = 0
    g_dQuotient = 0
    g_bFirstPaint = True

    ' 啟動定時器
    timeBeginPeriod 1
End Sub

Private Sub UserControl_InitProperties()
    ' 屬性的初始化
    dRangeX = conDefaultRangeX
    dRangeY = conDefaultRangeY
    ocPointColor = conDefaultPointColor
    
    linHorizon.BorderColor = conDefaultLineColor
    UserControl.BackColor = conDefaultBackColor
    UserControl.DrawWidth = conDefaultPointSize
    
    bAutoLink = conDefaultAutoLink
    strProgID = conDefaultProgID
    strItemID = conDefaultItemID

    If AutoLink Then
        ' 自動連接
        Call Connect
    End If
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    ' 保存屬性的讀取
    dRangeX = PropBag.ReadProperty("RangeX", conDefaultRangeX)
    dRangeY = PropBag.ReadProperty("RangeY", conDefaultRangeY)
    ocPointColor = PropBag.ReadProperty("PointColor", conDefaultPointColor)
    
    linHorizon.BorderColor = PropBag.ReadProperty("LineColor", conDefaultLineColor)
    UserControl.BackColor = PropBag.ReadProperty("BackColor", conDefaultBackColor)
    UserControl.DrawWidth = PropBag.ReadProperty("PointSize", conDefaultPointSize)
    
    AutoLink = PropBag.ReadProperty("AutoLink", conDefaultAutoLink)
    ProgID = PropBag.ReadProperty("ProgID", conDefaultProgID)
    ItemID = PropBag.ReadProperty("ItemID", conDefaultItemID)
    
    If AutoLink Then
        ' 自動連接
        Call Connect
    End If
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    ' 屬性的保存
    PropBag.WriteProperty "RangeX", dRangeX, conDefaultRangeX
    PropBag.WriteProperty "RangeY", dRangeY, conDefaultRangeY
    PropBag.WriteProperty "PointColor", ocPointColor, conDefaultPointColor
    
    PropBag.WriteProperty "LineColor", linHorizon.BorderColor, conDefaultLineColor
    PropBag.WriteProperty "BackColor", UserControl.BackColor, conDefaultBackColor
    PropBag.WriteProperty "PointSize", UserControl.DrawWidth, conDefaultPointSize

    PropBag.WriteProperty "AutoLink", AutoLink, conDefaultAutoLink
    PropBag.WriteProperty "ProgID", strProgID, conDefaultProgID
    PropBag.WriteProperty "ItemID", strItemID, conDefaultItemID
End Sub

Private Sub UserControl_Terminate()
    ' 斷開OPC服務器
    Call Disconnect
    
    ' 停止定時器
    timeEndPeriod 1
End Sub

Private Sub UserControl_Resize()
    ' 控件大小變化的處理
    linHorizon.X1 = 0
    linHorizon.Y1 = ScaleHeight / 2
    linHorizon.X2 = ScaleWidth
    linHorizon.Y2 = ScaleHeight / 2
End Sub

' 表示X軸的范圍
Public Property Get RangeX() As Double
    RangeX = dRangeX
End Property

Public Property Let RangeX(ByVal dNewValue As Double)
    dRangeX = dNewValue
    PropertyChanged "RangeX"
End Property

' 表示Y軸的范圍
Public Property Get RangeY() As Double
    RangeY = dRangeY
End Property

Public Property Let RangeY(ByVal dNewValue As Double)
    dRangeY = dNewValue
    PropertyChanged "RangeY"
End Property

' 圖的顏色
Public Property Get PointColor() As OLE_COLOR
    PointColor = ocPointColor
End Property

Public Property Let PointColor(ByVal ocNewValue As OLE_COLOR)
    ocPointColor = ocNewValue
    PropertyChanged "PointColor"
End Property

' 中心線的顏色
Public Property Get LineColor() As OLE_COLOR
    LineColor = linHorizon.BorderColor
End Property

Public Property Let LineColor(ByVal ocNewValue As OLE_COLOR)
    linHorizon.BorderColor = ocNewValue
    PropertyChanged "LineColor"
End Property

' 背景的顏色
Public Property Get BackColor() As OLE_COLOR
    BackColor = UserControl.BackColor
End Property

Public Property Let BackColor(ByVal ocNewValue As OLE_COLOR)
    UserControl.BackColor = ocNewValue
    PropertyChanged "BackColor"
End Property

' 圖的寬
Public Property Get PointSize() As Long
    PointSize = UserControl.DrawWidth
End Property

Public Property Let PointSize(ByVal lNewValue As Long)
    UserControl.DrawWidth = lNewValue
    PropertyChanged "PointSize"
End Property

' 是否自動連接?
Public Property Get AutoLink() As Boolean
    AutoLink = bAutoLink
End Property

Public Property Let AutoLink(ByVal bNewValue As Boolean)
    bAutoLink = bNewValue
    PropertyChanged "AutoLink"
End Property

' OPC的設置
Public Property Get ProgID() As String
    ProgID = strProgID
End Property

Public Property Let ProgID(ByVal strNewValue As String)
    strProgID = strNewValue
    PropertyChanged "ProgID"
End Property

Public Property Get ItemID() As String
    ItemID = strItemID
End Property

Public Property Let ItemID(ByVal strNewValue As String)
    strItemID = strNewValue
    PropertyChanged "ItemID"
End Property

' 讀取數據的時間間隔(僅用于運行模式)
Public Property Get Time() As Long
    Time = Abs(g_lNowTime - g_lOldTime)
End Property

Public Property Let Time(ByVal lNewValue As Long)
    ' 錯誤,只讀用屬性
    Err.Raise Number:=383
End Property

' 讀取數據的次數(僅用于運行模式)
Public Property Get Pf() As Double
    Pf = g_dPf
End Property

Public Property Let Pf(ByVal dNewValue As Double)
    ' 錯誤,只讀用屬性
    Err.Raise Number:=383
End Property

Public Sub ShowAboutBox()
Attribute ShowAboutBox.VB_UserMemId = -552
    ' 版本信息
    dlgAbout.Show vbModal
    Unload dlgAbout
    Set dlgAbout = Nothing
End Sub

Private Sub OpcConnect(ByVal strProgID As String, ByVal strItemID As String)
    Dim myOpcServer As OPCServer
    Dim myOpcItems As OPCItems
    Dim myOpcGroups As OPCGroups
    Dim myOpcGroup As OPCGroup
    Dim strNode As String
    Dim lLength As Long
    
    ' 連接OPC服務器
    If g_bConnect Then Exit Sub
    
    Set myOpcServer = New OPCServer
    
    If Left(strProgID, 2) = "\\" Then
        ' 連接遠程OPC服務器
        lLength = InStr(3, strProgID, "\")
        If lLength = 0 Then
            MsgBox Title:=Extender.Name, _
                Prompt:="程序標識符不正確。" & vbCr & "(" & strProgID & ")", _
                Buttons:=vbExclamation
            Set myOpcServer = Nothing
            Exit Sub
        End If
        strNode = Left(strProgID, lLength - 1)
        strProgID = Right(strProgID, Len(strProgID) - lLength)
        
        On Error GoTo ConnectError
        myOpcServer.Connect strProgID, strNode
        On Error GoTo 0
    Else
        ' 連接本地OPC服務器
        On Error GoTo ConnectError
        myOpcServer.Connect strProgID
        On Error GoTo 0
    End If
    
    ' OPC組的添加
    Set myOpcGroups = myOpcServer.OPCGroups
    Set myOpcGroup = myOpcGroups.Add("MyGroup")
    myOpcGroup.UpdateRate = 10          ' 設置更新周期為10毫秒。
    myOpcGroup.IsSubscribed = True      ' 使數據變化事件有效。
    Set myOpcItems = myOpcGroup.OPCItems
    
    Dim ItemServerHandles() As Long
    Dim ItemServerErrors() As Long
    Dim RequestedDataTypes(1) As Integer
    Dim AccessPaths As Variant
    Dim ClientHandles(1) As Long
    Dim OPCItemIDs(1) As String

    ' OPC項的添加
    OPCItemIDs(1) = strItemID
    ClientHandles(1) = 1
    RequestedDataTypes(1) = vbDouble
    myOpcItems.AddItems 1, OPCItemIDs, ClientHandles, ItemServerHandles, _
        ItemServerErrors, RequestedDataTypes, AccessPaths
    
    Set objMyOpcServer = myOpcServer
    Set objMyOpcGroups = myOpcGroups
    Set objMyOpcGroup = myOpcGroup

    g_bConnect = True
    Exit Sub

ConnectError:
    ' OPC服務器連接錯誤
    Set myOpcServer = Nothing
    
    MsgBox Title:=Extender.Name, _
        Prompt:="程序標識符錯誤。" & vbCr & "(" & ProgID & ")", _
        Buttons:=vbExclamation
End Sub

Private Sub OpcDisConnect()
    ' 斷開OPC服務器
    If Not g_bConnect Then Exit Sub
    
    objMyOpcGroups.RemoveAll
    objMyOpcServer.Disconnect
    
    Set objMyOpcGroup = Nothing
    Set objMyOpcGroups = Nothing
    Set objMyOpcServer = Nothing
    
    g_bConnect = False
End Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美变态tickling挠脚心| 1区2区3区国产精品| 国产精品对白交换视频| 亚欧色一区w666天堂| 成人a免费在线看| 欧美成人性战久久| 亚洲成人av电影| 色香色香欲天天天影视综合网| 日韩欧美一区在线观看| 亚洲一区在线免费观看| 成人一二三区视频| 欧美精品一区二区三区高清aⅴ| 亚洲一区二区欧美激情| 成人看片黄a免费看在线| 日韩欧美视频一区| 日本视频免费一区| 欧美区一区二区三区| 亚洲日本免费电影| 粉嫩一区二区三区在线看| 精品日本一线二线三线不卡| 亚洲电影中文字幕在线观看| 色网站国产精品| 国产精品乱码人人做人人爱| 国产乱妇无码大片在线观看| 欧美成人vr18sexvr| 日本成人中文字幕| 91精品久久久久久久久99蜜臂| 一个色妞综合视频在线观看| 91偷拍与自偷拍精品| 国产午夜精品久久久久久免费视| 国产综合久久久久久久久久久久 | 777午夜精品免费视频| 亚洲六月丁香色婷婷综合久久 | 日韩精品在线看片z| 久热成人在线视频| 26uuu国产电影一区二区| 麻豆成人久久精品二区三区红 | 狠狠色狠狠色综合日日91app| 日韩欧美亚洲国产精品字幕久久久| 午夜影院在线观看欧美| 6080亚洲精品一区二区| 日韩精品国产欧美| 日韩美女一区二区三区| 国产成人免费视频网站 | 国产日韩精品一区二区三区| 国产v综合v亚洲欧| 亚洲三级理论片| 欧美丝袜第三区| 日本va欧美va精品| 26uuu亚洲| 成人国产精品免费网站| 亚洲自拍偷拍综合| 日韩精品资源二区在线| 国产成人啪午夜精品网站男同| 国产精品美女久久久久aⅴ| 99在线精品一区二区三区| 夜夜操天天操亚洲| 欧美一级二级在线观看| 国产91露脸合集magnet| 艳妇臀荡乳欲伦亚洲一区| 国产精品全国免费观看高清| 色素色在线综合| 奇米四色…亚洲| 国产精品超碰97尤物18| 欧美人与z0zoxxxx视频| 国产高清不卡二三区| 亚洲一卡二卡三卡四卡五卡| 欧美一卡2卡三卡4卡5免费| 国产精品一区二区果冻传媒| 亚洲综合在线五月| 久久女同互慰一区二区三区| 色婷婷综合久久| 国内精品国产成人国产三级粉色 | 亚洲一区二区三区视频在线| 日韩欧美aaaaaa| 色狠狠一区二区| 国产一区视频网站| 亚洲精品第1页| 国产偷国产偷精品高清尤物| 欧美性一级生活| 白白色亚洲国产精品| 理论电影国产精品| 亚洲一卡二卡三卡四卡无卡久久| 久久五月婷婷丁香社区| 欧美久久久久免费| 99riav久久精品riav| 久久av资源网| 午夜电影久久久| 洋洋成人永久网站入口| 国产三级精品视频| 亚洲精品一区二区三区香蕉| 欧美日本韩国一区| 欧洲一区二区三区免费视频| 岛国av在线一区| 国产精品一区二区三区乱码| 美美哒免费高清在线观看视频一区二区| 国产精品国产三级国产三级人妇 | 色香蕉久久蜜桃| 成人黄页在线观看| 久久99这里只有精品| 亚洲午夜久久久久久久久电影网| 国产精品国产三级国产aⅴ入口| 日韩免费视频线观看| 欧美久久免费观看| 欧美伊人久久久久久久久影院| jlzzjlzz国产精品久久| 成人美女在线视频| 懂色一区二区三区免费观看| 国产福利一区在线观看| 国产一区二区精品久久| 另类小说一区二区三区| 麻豆久久久久久久| 青青草视频一区| 久久激五月天综合精品| 精品亚洲成a人| 国产伦精品一区二区三区在线观看 | 久久99热这里只有精品| 日韩国产欧美视频| 免费成人av资源网| 久久精品久久精品| 国产又黄又大久久| 成人免费av资源| 91黄色免费看| 欧美色涩在线第一页| 欧美日高清视频| 日韩免费看的电影| 日本一区二区三区久久久久久久久不| 精品国产一区二区国模嫣然| 久久免费精品国产久精品久久久久| 国产欧美精品一区二区色综合朱莉| 精品盗摄一区二区三区| 久久久久97国产精华液好用吗| 亚洲国产经典视频| 亚洲韩国一区二区三区| 日本伊人精品一区二区三区观看方式| 强制捆绑调教一区二区| 国产精品一区二区久久不卡| 99精品视频中文字幕| 欧美理论在线播放| 日韩免费高清视频| 亚洲欧洲一区二区在线播放| 亚洲不卡av一区二区三区| 久久精品噜噜噜成人88aⅴ| 成人午夜精品在线| 欧美中文字幕不卡| 日韩一级二级三级| 国产精品女人毛片| 亚洲一区影音先锋| 国产自产2019最新不卡| 色婷婷狠狠综合| 精品美女在线播放| 亚洲私人黄色宅男| 精品在线免费视频| 色欧美片视频在线观看| 欧美美女喷水视频| 国产精品久久一卡二卡| 日韩精品久久理论片| 成人av免费在线观看| 欧美日韩精品电影| 国产精品第一页第二页第三页| 日韩在线卡一卡二| 91亚洲男人天堂| 日韩精品一区二区三区三区免费 | 亚洲国产精品成人综合| 日本不卡一二三| av激情亚洲男人天堂| 日韩三级免费观看| 一区二区三区欧美视频| 国产精品69毛片高清亚洲| 欧美精品九九99久久| 亚洲精品久久7777| 国产精品77777| 欧美xingq一区二区| 亚洲国产综合人成综合网站| 国产精品中文字幕日韩精品| 欧美二区乱c少妇| 亚洲黄色尤物视频| av电影在线观看一区| 久久精品欧美一区二区三区麻豆| 日韩高清在线一区| 99国产精品久| 久久久久久久免费视频了| 麻豆91在线看| 91精品福利在线一区二区三区| 亚洲激情av在线| 色悠悠久久综合| 亚洲精品v日韩精品| 白白色 亚洲乱淫| 国产精品丝袜91| 丁香婷婷综合网| 国产精品福利在线播放| 丁香婷婷综合激情五月色| 国产日韩欧美一区二区三区乱码 | 91麻豆精东视频| 综合久久久久综合| 91在线小视频| 一区二区三区不卡在线观看| 91伊人久久大香线蕉| 一区二区三区精品在线| 欧美日韩在线播放三区四区|