• <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

    <table id="fficu"></table>

    <sup id="fficu"></sup>
    <output id="fficu"></output>
    1. ACS880-07C
      關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
      橫河電機-23年10月11日
      2024
      工業(yè)智能邊緣計算2024年會(huì )
      2024中國自動(dòng)化產(chǎn)業(yè)年會(huì )
      2023年工業(yè)安全大會(huì )
      OICT公益講堂
      當前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

      案例頻道

      基于OPC的工控系統報表自動(dòng)生成的實(shí)現
      • 企業(yè):《自動(dòng)化博覽》     領(lǐng)域:PLC /PAC/PCC/RTU     行業(yè):網(wǎng)絡(luò )通訊    
      • 點(diǎn)擊數:1837     發(fā)布時(shí)間:2014-07-13 15:31:49
      • 分享到:

          摘要:針對工控系統報表生成問(wèn)題,本文介紹了一種以VB、ACCESS數據庫及EXCEL電子表格為平臺進(jìn)行自動(dòng)報表系統開(kāi)發(fā)的OPC客戶(hù)端解決方案。

          關(guān)鍵詞:OPC;VB;ACCESS;EXCEL;自動(dòng)報表;工控系統

          Abstract: In respects of the problems on generating the statistical tables and reports of industrial control system, this paper introduces a solution applied for the OPC Client which is developed by automatic generation system with the VB, ACCESS database and EXCELelectric .vvvvvvvKey words: OPC; VB;ACCESS; EXCEL; Automatic generation; Industrial control system

          1 引言

          目前國內外常見(jiàn)的PLC、DCS系統其在線(xiàn)監控軟件都存在一個(gè)普遍性的缺陷,即監控功能強大而報表生成功能弱小,無(wú)法滿(mǎn)足各類(lèi)工業(yè)企業(yè)在報表方面的特殊要求,比如,各種結構復雜的表頭、表體,數據查詢(xún)、統計、備份、打印、交接班記事、正點(diǎn)或非正點(diǎn)時(shí)間記錄等要求,因此必須開(kāi)發(fā)專(zhuān)門(mén)的報表系統軟件解決這一問(wèn)題。另一方面,面對不同廠(chǎng)家、不同軟硬件結構的PLC、DCS系統,由于相互之間互不兼容,也需要找到一種普遍適用的報表解決方案。針對這些問(wèn)題,本文以西門(mén)子PLC系統的在線(xiàn)報表開(kāi)發(fā)為例,介紹一種采用VB+ACCESS數據庫+EXCEL電子表格為平臺進(jìn)行在線(xiàn)自動(dòng)報表開(kāi)發(fā)的OPC客戶(hù)端解決方案。

          OPC客戶(hù)端軟件的開(kāi)發(fā)所應用的核心技術(shù)就是OPC技術(shù)(O:OLE,對象鏈接和嵌入;P:process,過(guò)程;C:control,控制),OPC意為“在過(guò)程控制領(lǐng)域的對象鏈接和嵌入技術(shù)”,它是一個(gè)用于解決不同結構的工控系統之間進(jìn)行數據交換的、世界通用的工業(yè)技術(shù)標準,也是開(kāi)發(fā)通用型報表系統的必要條件。

          2 系統開(kāi)發(fā)

           作為OPC客戶(hù)端,本系統的運行需要OPC服務(wù)器在后臺的支持,而OPC服務(wù)器實(shí)際上是一種軟件,它既可以獨立存在也可以是與監控軟件集成在一起。西門(mén)子PLC系統提供的OPC服務(wù)器就是以組件形式集成在其上位機監控軟件WinCC(WINDOWS CONTROL CENTER,視窗控制中心)中,并隨著(zhù)WinCC的安裝、運行而自動(dòng)安裝、運行,因此系統開(kāi)發(fā)時(shí)不需要對OPC服務(wù)器做任何操作,只需與OPC服務(wù)器建立通訊連接即可,以下為系統開(kāi)發(fā)的關(guān)鍵技術(shù)。

          2.1 程序設計

          2.1.1 工作流程設計

          本系統主要的任務(wù)就是周期性地從OPC服務(wù)器中讀取所需的在線(xiàn)工藝參數,并定期存入后臺數據庫及報表模板中完成自動(dòng)采集、自動(dòng)生成報表的工作,因此系統的流程設計如圖1所示。

                             
                               圖1 “自動(dòng)報表系統”工作流程圖

          2.1.2 定義OPC對象及相關(guān)變量

          在VB編程中,為了定義OPC對象首先必須在所建工程中引用OPC控件,具體操作是在打開(kāi)工程進(jìn)入VB編程窗口后,通過(guò)“工程”→“引用”菜單將西門(mén)子提供的Siemens OPC DAAutomation 2.0控件加入即可。OPC控件引用之后即可定義與OPC客戶(hù)端相關(guān)的各種OPC對象全局變量,包括OPC服務(wù)器對象OPCServer、OPC組對象OPCGroup、客戶(hù)端句柄數組clienth()、服務(wù)器端句柄數組serverh()、錯誤句柄數組errors()、標簽數組itemids()、標簽值數組values()這幾個(gè)關(guān)鍵的全局變量,其中,標簽值數組values()必須設為變體型Variant數據類(lèi)型。

          該部分關(guān)鍵的程序代碼:

          •  定義OPC服務(wù)器對象:Dim WithEvents myopcserver As OPCServer;
          •  定義OPC組對象:Dim Wi thEvents myopcgroup As OPCGroup;
          •  定義客戶(hù)端句柄數組:Dim clienth() As Long;
          •  定義服務(wù)器端句柄數組:Dim serverh() As Long;
          •  定義錯誤句柄數組:Dim errors() As Long;
          •  定義標簽數組:Dim itemids() As String;
          •  定義標簽值數組:Dim values()。

           2.1.3 建立與OPC服務(wù)器的連接在相關(guān)對象與全局變量定義之后即可建立與OPC服務(wù)器的通訊連接,這一步的關(guān)鍵是必須首先獲得所連接OPC服務(wù)器的“程序ID(progid)”及OPC服務(wù)器所在計算機的“節點(diǎn)名稱(chēng)(Node)”,這些信息可從PLC系統生產(chǎn)廠(chǎng)家的OPC服務(wù)器的技術(shù)說(shuō)明中獲得。對西門(mén)子而言,其OPC服務(wù)器的程序ID為“OPCServer.WinCC”,而OPC服務(wù)器的節點(diǎn)名稱(chēng)其實(shí)就是運行OPC服務(wù)器軟件所在的計算機名稱(chēng),建立連接時(shí)如果客戶(hù)端運行所在的計算機就是服務(wù)器,那么節點(diǎn)名稱(chēng)可以省略。

          該部分關(guān)鍵的程序代碼:

           •  定義OPC服務(wù)器的程序ID:progid = "OPCServer.WinCC";
          •  生成新的OPC對象:Set myopcserver = New OPCServer;
           •  建立與OPC服務(wù)器的連接:myopc s e rve r.Conne c t progid。

          執行連接指令之后,連接過(guò)程是否成功需要進(jìn)行狀態(tài)判斷,可利用OPC服務(wù)器的運行狀態(tài)(ServerState)屬性來(lái)進(jìn)行判斷,如果ServerState值等于“1”則表示OPC正在運行并且連接成功,其它值則表示連接失敗,需要再次進(jìn)行連接操作直到成功為止,否則后續工作將無(wú)法進(jìn)行。

           2.1.4 建立OPC組及OPC標簽變量

           一旦與OPC服務(wù)器連接成功,即可建立OPC組對象并由組對象生成標簽變量,該部分的關(guān)鍵代碼:

            •  建立OPC組對象:Set myopcgroup = myopcserver.OPCGroups.Add("ABC");
            •  給標簽數組及客戶(hù)端句柄數組賦值:clienth(i) =i(i為順序編號);itemids(i) =“xxx”(xxx為具體的標簽名);
            •  建立OPC標簽變量:myopcgroup.OPCItems.AddItems   m, itemids, clienth, serverh, errors (m為標簽變量個(gè)數)。

           該指令為一次性成批建立OPC變量的指令,執行之后,所有的標簽變量是否全部建立成功需要逐一進(jìn)行判斷,判斷的依據是執行該指令后生成的錯誤句柄即errors()數組的返回值,若成功建立第i個(gè)變量則errors(i)的值為零,否則為非零。在建立標簽指令執行之后需要對每一個(gè)變量進(jìn)行判斷,確保所有變量都建立成功,如發(fā)現存在失敗,須終止程序運行并進(jìn)行排查,直到全部成功為止方可進(jìn)行后續工作。

           2.1.5 讀取OPC變量值,存入數據庫及電子表格

           當所有的OPC變量都建立成功之后便可開(kāi)始OPC變量的訪(fǎng)問(wèn)工作,根據需要本系統采用定時(shí)訪(fǎng)問(wèn)方式,每隔一分鐘采集一次變量數據,一份保存于A(yíng)CCESS數據庫中用于歷史數據的查詢(xún),另一份則根據當前時(shí)間是否處于報表規定的記錄時(shí)間而確定是否直接寫(xiě)入EXCEL電子表格中,生成這一報表記錄時(shí)間點(diǎn)的數據。為此,須事先設計好對應的ACCESS數據庫結構及EXCEL電子表格模板,為數據保存和報表記錄做好準備。數據保存之后,系統將進(jìn)入下一個(gè)工作循環(huán)中。

            2.2 界面設計

           本系統的界面設計以簡(jiǎn)潔、友好、易學(xué)易用并能滿(mǎn)足生產(chǎn)需要為原則,按功能的劃分把界面設計為如圖2所示的單窗口、多頁(yè)面樣式。                  

                                      
                                                 圖2 “自動(dòng)報表系統”操作界面

           界面上共有三個(gè)選項卡如圖2所示:“報表查詢(xún)”用于打開(kāi)、查詢(xún)任意日期的在線(xiàn)報表和報表數據歷史記錄,只要選擇好“日期”和“報表”兩項內容,點(diǎn)擊“打開(kāi)報表”按鈕即可打開(kāi)相應日期的EXCEL格式報表,點(diǎn)擊“生成報表”按鈕即可重新生成對應日期的報表;“超標記錄”用于查詢(xún)任意時(shí)間段的所有被監控參數的超標情況,可查詢(xún)到超標參數的工序名稱(chēng)、參數名稱(chēng)、參數位號、超標開(kāi)始時(shí)間、開(kāi)始值、結束時(shí)間、結束值、總超標時(shí)間及在超標期間出現的最大值、最小值、最大正偏差、最大負偏差信息,選擇好“日期”和“工序”后點(diǎn)擊“確定”按鈕即可,點(diǎn)擊“導出EXCEL”按鈕則可將查詢(xún)結果導出到EXCEL電子表格文件中,供其他應用;“報警記錄”用于對參數超標狀態(tài)實(shí)時(shí)發(fā)出警示,僅有一個(gè)“刷新”按鈕,用于強制執行超標狀態(tài)的窗口更新操作。

            2.3 系統的啟動(dòng)與關(guān)閉

           本報表系統是一個(gè)獨立于工控系統之外的客戶(hù)端軟件,它的啟動(dòng)與關(guān)閉的時(shí)機和方式問(wèn)題也是需要考慮的重要問(wèn)題,最佳的啟停方式應該是與OPC服務(wù)器的啟停實(shí)現同步。因此,有兩種解決方法:第一種是通過(guò)設置監控軟件啟動(dòng)時(shí)的附加任務(wù)來(lái)實(shí)現,如西門(mén)子的WinCC即可通過(guò)此方式實(shí)現;第二種是對那些無(wú)附加啟動(dòng)任務(wù)功能的監控軟件而言,可通過(guò)設置操作系統的自動(dòng)啟動(dòng)任務(wù)實(shí)現報表系統的自動(dòng)啟動(dòng)。對于關(guān)閉的問(wèn)題則相當簡(jiǎn)單,只需在OPC服務(wù)器關(guān)閉時(shí)所觸發(fā)的“服務(wù)器關(guān)閉(ServerShutDown)”事件中添加一條程序關(guān)閉指令,即可實(shí)現與OPC服務(wù)器的同步關(guān)閉操作。

            3 結語(yǔ)

           本系統的開(kāi)發(fā)巧妙地利用了OPC技術(shù)解決不同工控系統的數據通訊問(wèn)題和報表的通用性問(wèn)題,巧妙地利用EXCEL電子表格在報表制作方面的強大功能解決了復雜報表的需求問(wèn)題,使系統具有通用性和靈活性。

           參考文獻:
            [1] 蘇昆哲, 深入淺出西門(mén)子WinCC V6[M]. 北京: 北京航空航天大學(xué)出版社, 2004, 162 – 164, 221 – 225.

           作者簡(jiǎn)介
           李朝光(1970-),男,工程師,本科,現就職于廣西柳州鋼鐵股份有限公司焦化廠(chǎng),主要從事自動(dòng)化系統維護管理方面的工作。

      熱點(diǎn)新聞

      推薦產(chǎn)品

      x
      • 在線(xiàn)反饋
      1.我有以下需求:



      2.詳細的需求:
      姓名:
      單位:
      電話(huà):
      郵件:
      欧美精品欧美人与动人物牲交_日韩乱码人妻无码中文_国产私拍大尺度在线视频_亚洲男人综合久久综合天

    2. <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

      <table id="fficu"></table>

      <sup id="fficu"></sup>
      <output id="fficu"></output>