日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

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

案例頻道

基于OPC的工控系統報表自動生成的實現
  • 企業:《自動化博覽》     領域:PLC /PAC/PCC/RTU     行業:網絡通訊    
  • 點擊數:2048     發布時間:2014-07-13 15:31:49
  • 分享到:

    摘要:針對工控系統報表生成問題,本文介紹了一種以VB、ACCESS數據庫及EXCEL電子表格為平臺進行自動報表系統開發的OPC客戶端解決方案。

    關鍵詞:OPC;VB;ACCESS;EXCEL;自動報表;工控系統

    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 引言

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

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

    2 系統開發

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

    2.1 程序設計

    2.1.1 工作流程設計

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

                       
                         圖1 “自動報表系統”工作流程圖

    2.1.2 定義OPC對象及相關變量

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

    該部分關鍵的程序代碼:

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

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

    該部分關鍵的程序代碼:

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

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

     2.1.4 建立OPC組及OPC標簽變量

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

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

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

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

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

      2.2 界面設計

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

                                
                                           圖2 “自動報表系統”操作界面

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

      2.3 系統的啟動與關閉

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

      3 結語

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

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

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

熱點新聞

推薦產品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产欧美日韩精品一区二区三区-国产欧美日韩精品一区二-国产欧美日韩精品高清二区综合区-国产欧美日韩精品第三区-天天舔天天操天天干-天天添天天干 | 国内自拍中文字幕,久久久一本精品99久久精品66,精品400部自拍视频在线播放,国产麻豆精品在线,日韩欧美高清视频,久久久免费精品视频 | 成人久久久久-成人久久久-成人久久精品一区二区三区-成人久久18免费游戏网站-成人久久18免费网-成人久久18免费软件 | 中文区永久区乱码六区-中文欧美一级强-中文免费观看视频网站-中文免费-狼牙视频在线免费观看入口-狼窝by揽春全文免费阅读 | 在线看国产,精品国产一区二区二三区在线观看,国产一区二区三区视频,美女一级毛片免费观看,日韩aa在线观看,成人精品一区二区www | 亚洲精品在线免费观看,在线日韩欧美,午夜高清在线观看免费完整版,亚洲综合久久久,久久一区二区三区免费,日韩小视频在线 | 国产婷婷视频-国产婷婷丁香久久综合-国产天天在线-国产天天操-小草在线免费观看视频-小草在线观看视频免费2019 | 国产一卡2卡3卡四卡精品网站-国产一久久香蕉国产线看观看-国产一进一出视频网站-国产一级在线现免费观看-亚洲高清国产拍精品影院-亚洲高清二区 | 欧美在线观看一区,免费看日产一区二区三区,欧美一区二区三区在线,精品1区2区3区,亚洲国产一成人久久精品,久久国产精品最新一区 | 国产真实乱对白精彩-国产真实露脸乱子伦-国产真实夫妇交换视频-国产这里有精品-亚洲第一国产-亚洲第一成年网站视频 | 亚欧成人毛片一区二区三区四区-亚欧成人乱码一区二区-亚久久伊人精品青青草原2020-亚飞与亚基在线观看-国产综合成人观看在线-国产综合91天堂亚洲国产 | 色网在线免费观看-色网在线观看-色网在线播放-色网在线-黄色片网址大全-黄色片网站在线观看 | 第一区免费在线观看-无码国产精品一区二区免费网曝-AV熟妇导航网-日韩欧美一区二区三区在线观看 -欧美乱人伦视频-啪啪视频一区 | 99re在线精品99re8热视频-99re在线精品-99re在线观看视频-99re在线观看-99re在线播放视频-99re在线 | 日韩美在线-日韩美一区二区三区-日韩美女在线视频-日韩美女视频在线观看-亚洲无线一二三四区手机-亚洲无专砖码直接进入 | 国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99 | 牛牛精品专区在线-牛牛超碰 国产-牛和人交videos欧美-妞干网手机免费视频-99精品视频在线观看免费-99精品视频在线观看re | 欧美一区精品,亚洲综合在线视频,国产v欧美v日韩在线观看,国产精品麻豆,亚洲小色网,欧美a在线观看 | 亚洲 欧美 日韩 在线,97热久久免费频精品99国产成人,另类激情亚洲,久久99九九精品免费,久久综合精品国产一区二区三区,2020精品极品国产色在线观看 | 精品午夜一区二区三区在线观看-精品午夜视频-精品午夜寂寞影院在线观看-精品午夜寂寞黄网站在线-日夜啪啪一区二区三区-日日摸天天爽天天爽视频 | 久草视频精品-久草视频免费-久草视频免费看-久草视频免费在线播放-天天操操-天天操操操操操 | 好男人天堂网,久久精品国产这里是免费,国产精品成人一区二区,男人天堂网2021,男人的天堂在线观看,丁香六月综合激情 | 日本久久久久久久,97久久精品一区二区三区,狠狠色噜噜狠狠狠狠97,日日干综合,五月天婷婷在线观看高清,九色福利视频 | 五月天视频网站,国产成人精品日本亚洲语言,999福利视频,精品123区,国产中文视频,美女视频一区二区三区在线 | 伊人精品国产,久久久国产精品视频,国产1页,国产精品亚洲综合一区,国产成人高清亚洲一区91,久久久一区二区三区不卡 | 欧美黄色网址-欧美黄色特级视频-欧美黄色片在线播放-欧美黄色片免费观看-99看片网-99看片 | 香蕉网站男人网站-香蕉网站狼人久久五月亭亭-香蕉网在线视频-香蕉网在线观看-香蕉网伊-香蕉婷婷 中文有码中文字幕免费视频-中文有码视频-中文伊人-中文一区在线观看-欧美性综合-欧美性在线视频 | 热久久国产-热99这里只有精品-热99这里有精品综合久久-热99在线观看-国产精品99久久久-国产精品99久久99久久久看片 | 亚洲免费在线观看-做羞羞的事情的免费视频-最终痴汉电车在线观看-最新综艺-最新自拍偷拍-最新在线精品国自拍视频 | 在线久色-在线久草-在线久-在线精品自拍亚洲第一区-久久在视频-久久在精品线影院精品国产 | 99re在线精品99re8热视频-99re在线精品-99re在线观看视频-99re在线观看-99re在线播放视频-99re在线 | 久草视频精品-久草视频免费-久草视频免费看-久草视频免费在线播放-天天操操-天天操操操操操 | 福利视频欧美一区二区三区-福利视频欧美-福利视频你懂的-福利视频导航网址-福利视频导航网-福利视频导航大全 | 一区二区三区欧美日韩-一区二区三区欧美-一区二区三区免费在线视频-一区二区三区免费在线观看-久久精品店-久久精品第一页 | 在线亚洲激情,免费看电影网站,奇米影音先锋,99免费视频观看,国产成人aa视频在线观看,久久久蜜桃 欧美人成在线视频-欧美人成一本免费观看视频-欧美人xxxxxbbbb-欧美区在线-在线不卡免费视频-在线播放周妍希国产精品 | 国产成人精品一区二区视频免费-国产成人精品一区二区视频-国产成人精品一区二区三在线观看-国产成人精品一区二区三在-国产成人精品一区二区三区小说-国产成人精品一区二区三区无码 | 波多野结衣的av一区二区三区-波多野结衣的电影-波多野结衣的中文-波多野结衣第二页视频-波多野结衣电影网-波多野结衣电影一区二区 | 一级日本高清视频免费观看-一级毛片直播亚洲-一级毛片在线完整免费观看-一级毛片在线全部免费播放-久久综合精品国产一区二区三区 | 佐藤遥希在线播放一二区-佐山爱巨大肥臀在线-佐山爱痴汉theav-佐良娜被爆漫画羞羞漫画-麻豆视频传媒二区-麻豆视频传媒 | 天堂视频在线观看免费-天堂视频在线-天堂视频免费-天堂色区-国产精品一区二区欧美视频-国产精品一区二区免费 | 无人 视频 在线观看免费高清-无吗视频-无码中文字幕日韩专区-无码中文字幕乱在线观看-国产区1-国产情侣一区二区 |