• 
    <ul id="auswy"><sup id="auswy"></sup></ul>
  • <ul id="auswy"></ul>
    ABB
    關注中國自動化產業發展的先行者!
    CAIAC 2025
    2025工業安全大會
    OICT公益講堂
    當前位置:首頁 >> 案例 >> 案例首頁

    案例頻道

    利用DDE在MS-EXCEL中制作工業報表
    • 企業:控制網     領域:工控機    
    • 點擊數:2808     發布時間:2007-06-16 23:30:32
    • 分享到:
    工業報表的設計有好多軟件可以使用,但專業軟件的操作和使用上或多或少有不盡人意之處。本文利用DDE將工業數據導出到EXCEL中,利用OFFICE中的EXCEL輕松進行工業數據處理。從而實現工業報表的設計。



    引言

        工業報表的設計有好多軟件可以使用,但專業軟件的操作和使用上或多或少有不盡人意之處。如果可以將程序中的數據“導出到EXCEL”中,相信會給工作帶來不少的方便。



    圖表 1

        VB是常用的應用軟件開發工具之一,在現在工業中有很多應用。但用VB程序處理工業數據,你可能會遇到麻煩,因為一旦報表格式發生變化,就得修改相應程序,給應用軟件的維護工作帶來極大的不便。本文將告訴你如何實現VB程序中工業數據導出到EXCEL中,利用OFFICE中的EXCEL輕松進行工業數據處理。從而實現工業報表的設計。

        由于VB與EXCEL分別屬于不同的應用系統,如何把它們有機地結合在一起,是一個值得我們研究的課題。今天我們要討論的就是利用DDE實現工業監控參數的輸出到EXCEL。

        DDE預備知識
     
        DDE是windows平臺上的一個完整的通信協議,它使應用程序能彼此交換數據和發送指令。
     
        DDE對話的內容是通過三個標識名來約定的:

    1 應用程序名:它是進行DDE對話的雙方名稱。

    2 主題:被討論的數據域。

    3 項目:被討論的特定數據對象。

        設計過程

        打開VB程序,添加控件如下表:

        控件 CAPTION NAME 其他 作用

        Frame 工業參數采集 Frame1  控件容器

        Label數組 -- Label(0-11)  參數名稱

        Text數組 00 Text(0-11)  讀取參數

        按鈕導出 導出到 EXCEL CMDEXPORT  導出數據

        按鈕退出 退出 Command2  退出程序

        Timer --- Timer1 Interval =500 模擬數據

        公用對話框 -- CDLOG1  打開EXCEL



    圖表 2


        
    本文利用隨機數模擬工業參數。LabeL標簽上顯示變量參數名,Text文本框內顯示模擬的現場數據。其源程序如下:

        Private Sub Form_Load()

        ‘設置隨機數種子

        Randomize

        ‘設置標簽

        For I = 0 To 3

        Label1(I) = "流量" & " " & I + 1

        Next I

        For I = 4 To 7

        Label1(I) = "料位 " " & I - 3

        Next I

        For I = 8 To 11

        Label1(I) = "壓力" & " " & I - 7

        Next I

        End Sub

        Private Sub Timer1_Timer()    ‘用隨機數模擬實時工業參數,每0.5秒刷新一次。

        For I = 0 To 3

        Text1(I) = Format(Rnd * (100 - 1), "####.##") + " t/H"

        Next I

        For I = 4 To 7

        Text1(I) = Format(Rnd * (1000 - 1), "####.##") + " cm"

        Next I

        For I = 8 To 11

        Text1(I) = Format(Rnd * (100 - 1), "####.##") + " kPa"

        Next I

        End Sub

        現在。已經有了數據,接下來的工作就進入正題,通過DDE采集數值到EXCEL中。在:Private Sub CMDEXPORT_Click() 事件中,首先找到EXCEL的安裝地址。正常安裝EXCEL的地址在C:\program 
        Files\Microsoft Office\OFFICE11\ 下,但并不是所有人都是典型安裝。所以要判斷一下:

        If Dir("C:\program Files\Microsoft Office\OFFICE11\Excel.exe") <> "" Then

        Z = Shell("C:\program Files\Microsoft Office\OFFICE11\Excel", 2)

        Else

        Cdlog1.ShowOpen

        fil = Cdlog1.FileName

        If fil <> "" Then

        On Error Exit sub ‘簡單的出錯處理

        Z = Shell(Cdlog1.FileName, 2)

        Else

        Exit Sub

        End If

        End If



    圖表 3

        當然接下來就是要建立程序之間的DDE連接,在:Private Sub CMDEXPORT_Click() 事件中:

        For k = 0 To 11

        If Label1(k).LinkMode = vbNone Then

        Label1(k).LinkTopic = "Excel|Sheet1" ‘新建工作表sheep1

        Label1(k).LinkItem = "R" & k & "C1" 

        Label1(k).LinkMode = vbLinkManual '

        End If

       
    If Text1(k).LinkMode = vbNone Then

        Text1(k).LinkTopic = "Excel|Sheet1" 

        Text1(k).LinkItem = "R" & k & "C2" 

        Text1(k).LinkMode = vbLinkManual 

       
    End If

        Next k

       
    For I = 0 To 11

        Label1(I).LinkItem = "R" & I + 1 & "C1" '設置連接項目。

        If I < 4 Then

        Label1(I).Caption = "流量" & " " & I + 1

        ElseIf I < 8 Then

        Label1(I).Caption = "液位" & " " & I - 3

        ElseIf I < 12 Then

        Label1(I).Caption = "壓力" & " " & I - 7

        End If

        Label1(I).LinkPoke '將值放入單元。

        Text1(I).LinkItem = "R" & I + 1 & "C2" '設置連接項目。

        Text1(I).LinkPoke '將值放入單元。

        Next I

       
    On Error Resume Next ‘簡單的出錯處理

        MsgBox "所有參數導出完畢!請將數據保存以前,不要重復點擊“導出”按鈕。", 64, "導出完畢!"

       
    End Sub

        程序調試

        好了,現在可以測試運行一下程序。



    圖表 4

        文本框內的數字0.5秒刷新一次,點擊“導出到 EXCEL”,稍等片刻,你將會看到以下內容:



    圖表 5

        此時,在EXCEL中,已經新建了一張工作表,內容如下。剩下的工作相信大家都明白了。



     圖表 6

    總結
     
        本文只是通過一個簡單的例子,淺談一下“導出到EXCEL”的實現。旨在拋磚引玉,給大家共同探討。程序雖小,但有一定實用價值,讀者可加以引用,讓工業數據的處理更加簡便快捷。

    參考文獻

    1.Windows程序員使用指南(三)----OLE/DDE. [美]Jeffery Clark著,趙人任等譯.清華大學出版社,1999

    2.MSDN Library Visual Studio 6.0. 微軟公司

    熱點新聞

    推薦產品

    x
    • 在線反饋
    1.我有以下需求:



    2.詳細的需求:
    姓名:
    單位:
    電話:
    郵件: