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

最新廣告
關注中國自動化產業發展的先行者!
工業智能邊緣計算2025年會
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于ODBC技術實現iFix組態軟件與關系數據庫通訊接口
  • 企業:控制網     領域:儀器儀表     行業:建筑樓宇    
  • 點擊數:8449     發布時間:2008-04-13 16:48:22
  • 分享到:


    龔偉平(1976-)
男,湖南雙峰人,中南大學信息科學與工程學院在讀工程碩士研究生,(湖南婁底華菱漣鋼集團信息自動化中心,湖南  婁底 417009)主要研究方向為先進控制技術及工程應用、過程工業控制、智能控制與智能自動化。

摘要:本論文詳細介紹了基于ODBC技術實現iFix 組態軟件與關系數據庫通訊的原理和方法,增強了報表功能;某工程應用實例表明該方法行之有效。

關鍵詞:關鍵字 ODBC;iFix;三級機;SQL2000

Abstract: This paper describes in detail the communication principle and method of iFix configuration software and relational database based on ODBC technology, and the function of report is also added to this system. The practical engineering application shows the effectiveness of the method.

Key words: ODBC;iFix;Level3;SQL2000

1   引言

    iFix是Intellution Dynamics(全世界上第一套基于組件技術的自動化監控軟件家族)最為重要的上位監控軟件產品之一,該軟件產品無疑為全球自動化生產制造業提供了易于使用,高性能的自動化監控解決方案,平臺功能強大,集控制技術、人機界面技術、數據庫技術、網絡技術于一身,可實現數據采集、實時過程監控、報警和報警管理、報表查詢打印、趨勢分析等功能,并且可與信息自動化管理系統進行無縫連接。借助ODBC技術,將iFix采集的現場數據通過以太網傳送到L3系統的關系數據庫中,實現共享信息資源的全方位、全過程信息系統。

2   總體思路 

    開放式數據庫互連(ODBC)是Microsoft的標準API,用來訪問、顯示和修改多種關系數據庫數據;結構化查詢語言(SQL)是關系數據庫使用的標準語言,用來檢索、更新和管理數據,不提供公共應用程序接口(API)。ODBC技術的最大優勢是開放的互操作性,通過安裝多種ODBC驅動程序,可實現同一應用程序對不同數據庫的訪問。由于iFix和SQL2000都支持ODBC標準,可以通過ODBC接口實現SCADA節點和數據庫服務器之間的通訊。



圖1  多層ODBC驅動程序結構圖

    在本應用中是通過在iFix端安裝ODBC驅動程序,把SQL2000數據庫作為數據源來實現連接的。在iFix中可通過兩種ODBC結構(多層ODBC驅動和單層ODBC驅動)來實現通訊。數據庫文件和應用可位于同一臺計算機上,也可以通過網絡位于另外計算機上。多層驅動更為普遍,通常與遠程數據庫服務器如SQL2000和Oracle等一起使用。多層驅動處理由應用引起的ODBC呼叫,傳遞實際SQL命令到數據庫系統。由于SQL2000屬于遠程服務器數據庫,所以采用的是多層ODBC驅動程序,其結構如圖1所示。

    當iFix ODBC應用請求連接時,由ODBC驅動管理器裝載相應的驅動程序,ODBC驅動程序將iFix ODBC的調用轉換成對特定數據庫的調用,并與數據庫客戶端支持層通訊。網絡層將請求處理并傳送到數據庫服務器,監聽進程負責接收客戶端服務的請求,最終由數據庫引擎查詢實現數據的操作。

3    數據通訊原理

    通過ODBC API提供訪問SQL數據源,iFix允許使用下列方法:iFix SQL接口選項,稱為iFix ODBC;以及在Microsoft  Visual Basic for Applications通過DAO或RDO。iFix到SQL數據源的路徑如圖2所示。



圖2  iFix到SQL數據源的路徑示意圖

    iFix ODBC由SQL觸發塊(SQT)、SQL數據塊(SQD)、SQL任務三部分組成,其中SQL觸發塊用于指定SQL命令的名稱,并確定數據傳輸觸發的時間或事件,SQL數據塊用于指定采集和傳送的數據以及數據傳送的方向。SQL任務除處理和ODBC驅動的通訊外,還和SQT塊、SQD塊通訊。以iFix過程數據庫到關系數據庫為例說明數據的傳輸過程:

    (1)當SQL觸發塊(SQT)由時間或事件觸發時,把要執行的SQL 命令的名稱和數據源的名稱DSN 一起傳給SQL任務;

    (2)SQL任務根據接收到的信息到關系數據庫的SQL庫表檢索與命令名對應的SQL命令。數據庫引擎以字符串的形式返回SQL命令;

    (3)SQL任務把從SQL庫表獲得的SQL命令和SQL數據塊(SQD)中列出的數據塊中的數據結合,形成完整的命令;

    (4)SQL任務用該命令對關系數據庫進行操作,由數據庫引擎把數據寫入數據表中。

4   實現方法

    4.1 數據庫服務器的配置

    (1)創建SQL2000數據庫與表單:數據庫名稱為iFix ;創建SQL命令表、錯誤記錄表與實時數據采集表 。創建SQL命令:在SQL Query Analyzer中使用SQL語言創建SQL庫表,用以存放將要執行的SQL命令。該庫表只能有sqlname和sqlcmd兩個字段,分別存放SQL命令的名稱和內容。創建錯誤記錄表和數據表:錯誤記錄表用于記錄所有SQL運行的錯誤消息,其字段也需根據要求設置;數據表用于存放實際傳輸的數據,可根據應用的需要創建合適的字段(需要傳輸多少個標簽數據就需要有多少個字段)。

    (2)創建ODBC數據源:打開WINDOWS控制面板中管理工具的數據源(ODBC),選中系統DSN或用戶DSN項,單擊添加后選擇SQL2000驅動程序,填寫數據源DSN名稱:iFixODBC與服務器名稱:SUNOK。

    (3)在SQL Server Network Utility Gerneral中允許TCP/IP協議,在其屬性中設置端口。

    (4)在客戶端配置中網絡庫選用TCP/IP,注意端口設置與步驟C中一致,使服務器能響應iFix ODBC應用的請求。

    4.2 SCADA節點(iFix端)的配置

    在對iFix軟件進行配置前,需安裝SQL2000的網絡服務和基本客戶機軟件(ODBC驅動程序包括在其中),以支持ODBC的運行。

    (1)添加SQL帳戶:在創建完ODBC數據源后,就可在系統設置SCU中添加SQL帳戶,把SQL2000數據源添加進來。此處選擇的數據庫類型為SQL2000,填寫的用戶名和密碼必須具有訪問在數據庫中創建的SQL庫表和數據表的權限,數據庫ID便是SQL2000數據源名DSN。

    (2)配置SQL任務:在SCU的配置SQL任務對話框中完成。首先需啟用SQL支持,啟用后SQL任務會以WSQLODC.EXE任務的形式自動添加。然后需分別設置主、次備份文件的路徑,以便與數據庫服務器的通訊出現故障時將數據備份,等故障排除后重新發送。此外還需分別輸入數據源名、數據庫中SQL庫表和錯誤記錄表的名稱。

    (3)定義SQT和SQD塊:iFix過程數據庫與SQL2000數據庫的通訊方式及傳輸內容是通過配置SQT和SQD塊具體實現的。在iFix過程數據庫管理器中添加標簽SQT與SQD。SQT塊中需添加將執行的SQL命令名(需與SQL2000數據庫中表單名稱一致)與數據庫ID,命令執行的時間事件或塊事件與事件類型,以及與該SQT塊鏈接的SQD塊。在SQD塊中需定義需要傳輸的過程數據標簽(時間日期標簽默認為TMTD)以及傳輸的方向。

    4.3 報表的實現

    iFix基于時間調度事件可以生成每天的Excel格式報表,但經過實踐后,發現iFix運行緩慢,其后臺服務占有相當的系統資源。如果采用API計時器也需占用大量的系統資源,造成控制系統死機。因此,建議不采用調度事件或API計時器觸發。Intellution推薦所有iFix的VBA腳本中使用ADO來處理數據庫的訪問。

    (1)創建ADO對象

    為了使用ActiveX數據對象來處理數據,需要參考畫面工程中的ActiveX數據對象庫。從VBE的工具菜單中選擇參考指令然后選擇ADO類型庫。對象變量被聲明為模塊級,這意味著在本例中可以應用在所有其他程序中。如果讀取它們之后不處理這些記錄,那么它們被聲明為程序級。
創建ADO記錄集:

    Dim conODBC As ADODB.Connection
    Dim adoRS As ADODB.Recordset
    Private Sub InitADO()
    Dim strQuery As String
    On Error GoTo ErrorHandler
    strQuery = "select * from iFixNo1 "
    Set conODBC = New ADODB.Connection
    conODBC.Open "driver= _
    & " SQL server};server=SUNOK;uid=sa;pwd=;database=iFix"
    Set adoRS = New ADODB.Recordset
    adoRS.Open strQuery, conODBC, adOpenDynamic, _
    adLockPessimistic, adCmdText
    Exit Sub
    ErrorHandler:
        HandleError
End Sub
(2)初始變量定義
Dim ReportArray As Variant “存放日報中所有要顯示的參數的數組”
Dim FirstPoint1 As Variant“ 第一個變量”
Dim tempvar As Variant “中間變量”
Dim strStartTime, strEndTime “報表查詢的時間范圍”
Dim Interval As Variant “報表查詢的間隔時間”
Dim OutReportfile As Variant “輸出EXCEL表格的文件名”
Dim TemplateName As String “這個是日報表模板的文件名”
(3)建立對EXCEL的引用,并打開報表的模板文件:
Set msExcel = CreateObject("Excel.Application")
With msExcel
.WindowState = xlMinimized
.Visible = False
.Workbooks.Open ReportTemplateName, , False Rem“ 打開報表的模板文件”
.ActiveWorkbook.ActiveSheet.Select
.DisplayAlerts = False
.DisplayAlerts = False
.Wait (Now() + 0.00002)
End With
(4)建立查詢數據庫后的記錄集,并把數據寫到Excel中后另存為Excel文件:
Set adoRS = New ADODB.Recordset
adoRS.CursorLocation = adUseClient
adoRS.Open SQL1, conODBC, adOpenForwardOnly, adLockReadOnly
If adoRS.BOF Then
adoRS.Close
conODBC.Close
With msExcel
DoEvents
.ActiveWorkbook.Close
.Quit
End With
Set msExcel = Nothing
Rem MsgBox “第一個表查詢條件為空,請檢查查詢條件”
Exit Sub
Else
c = 1
While adoRS.EOF <> True
With msExcel.Worksheets(1)
For j = 1 To 24
If adoRS(0) <> "" Then
msExcel.Worksheets(1).Cells(j, c).Value = adoRS(0)
adoRS.MoveNext
End If
Next j
End With
c = c + 1
Wend
msExcel.ActiveWorkbook.SaveAs “d:\” & OutReportfile & “.xls”
msExcel.Quit
msExcel.DisplayAlerts = True
msExcel.Visible = True
Set msExcel = Nothing
Set conODBC = Nothing
adoRS.Close

5   應用實例

    本方法已用于湖南漣鋼焦化廠自動配煤智能控制與專家系統中。iFix從施耐德PLC采集的各種配合煤的累積重量、水份、配煤比等實時數據需要傳送到鐵前L3系統數據庫中。為便于數據的管理,在數據庫中創建2個生產數據表。累積重量的數據,采用塊事件觸發傳輸方式,事件標簽設置為新煤三號皮帶運行,事件類型為高到低。對于水份、配煤的數據,也采用時間觸發傳輸方式,但將其時間間隔設置為較長。通過把iFix采集的過程數據傳輸到SQL2000關系數據庫,實現了對運行工況數據的掌握,從而達到有效的生產調度、合理配置資源、提高生產效益、及時發現和迅速排除故障的目的。

6   結束語

    筆者采用以上方法成功實現了iFix過程數據庫與SQL2000關系數據庫的連接,該方法實現簡單,只需掌握基本的SQL語言,大大節省了開發時間。測試表明通過該ODBC接口能實時、準確地將過程數據傳送到數據庫服務器,能滿足對現場實時數據的要求。

熱點新聞

推薦產品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 亚洲第一视频网-亚洲第一色在线-亚洲第一色网站-亚洲第一人黄所-亚洲第一区在线观看-亚洲第一区在线 | 亚洲福利区-亚洲福利精品电影在线观看-亚洲福利电影一区二区?-亚洲风情无码免费视频-国产亚洲视频在线-国产亚洲视频精彩在线播放 | 日本漫画母亲口工子全彩-日本漫画大全无翼乌-日本妈妈在线观看中文字幕-日本妈妈xxxx-操他射他影院-操老太太的逼 | 国产精品高潮呻吟AV久久-国产精品高潮呻吟AV久久床戏-国产精品高潮呻吟AV久久动漫-国产精品高潮呻吟AV久久黄-国产精品高潮呻吟AV久久无码-国产精品高潮呻吟爱久久AV无码 | yy一级毛片免费视频-yyyyyy高清成人观看-yy6080理aa级伦大片一级毛片-yy4080午夜理论一级毛片-色吊丝在线观看国产-色的视频在线观看免费播放 | 精品欧美小视频在线观看-精品欧美18videosex欧美-精品免费在线视频-精品免费视在线视频观看-亚洲视频区-亚洲视频欧美在线专区 | 亚洲福利区-亚洲福利精品电影在线观看-亚洲福利电影一区二区?-亚洲风情无码免费视频-国产亚洲视频在线-国产亚洲视频精彩在线播放 | 丰满的日本护士-丰满的日本护士xxx-丰满的少妇一区二区三区免费观看-丰满的熟妇岳中文字幕-丰满多毛少妇做爰视频-丰满多毛少妇做爰视频爽爽和R | 国产免费看-国产免费久久精品久久久-国产免费久久精品99-国产免费久久精品44-天天干天天天天-天天干天天爽天天射 | 国产偷啪视频一区-国产偷啪-国产偷窥女洗浴在线观看亚洲-国产偷窥-无套啪啪-无套大战白嫩乌克兰美女 | 一区二区视频在线观看高清视频在线-一区二区三区无码高清视频-一区二区三区无码被窝影院-一区二区三区四区国产-久久re视频精品538在线-久久re热在线视频精99 | 欧美日本一道免费一区三区-欧美日本一道高清二区三区-欧美日本一道道一区二区三-欧美日本亚洲国产一区二区-在线观看黄的网站-在线观看国内自拍 | 欧美黄网在线-欧美黄色影院-欧美黄色影视-欧美黄色一级网站-99免费看-99免费精品视频 | 久久久久久99精品-久久久久久99-久久久久久91香蕉国产-久久久久久91精品色婷婷-中国一级片免费看-中国一级毛片国产高清 | 日韩精品电影在线观看-日韩精品电影在线-日韩精品电影一区-日韩精品电影-国产日韩欧美综合-国产日韩欧美在线一区二区三区 | 久久99热不卡精品免费观看,色播综合,国产一级视频在线观看网站,激情综合激情,aa视频在线观看,五月天综合激情网 | 黑人巨大精品欧美-黑人巨大精品欧美一区二区-黑人巨大精品欧美一区二区o-黑人巨大精品欧美一区二区免费-黑人巨大跨种族video-黑人巨大两根一起挤进A片 | 国产日韩欧美亚洲综合在线-国产日韩欧美视频在线观看-国产日韩欧美视频-国产日韩欧美久久久-人人澡人人澡人人澡-人人澡人人澡人人 | 天天躁日日躁狠狠躁欧美日韩,亚洲情综合五月天,久久精品国产福利,97高清国语在线看免费观看,丁香五六月婷婷,欧美视频日韩视频 | 亚洲精品成人一区-亚洲精品成人网久久久久久-亚洲精品成人久久久影院-亚洲精品成人久久-黑人巨大白妞出浆-黑人巨大vs小早川怜子 欧美日韩亚洲无线码在线观看,国产成人亚洲综合91精品555,欧美成人国产,国产成人青青热久免费精品,亚洲欧美日韩色图,国产三级网站在线观看 | 久久这里只有精品国产99-久久这里只有精品2-久久这里只有精品1-久久这里只精品热在线99-在线少女漫画-在线涩涩免费观看国产精品 国产精选一区二区-国产精选一区-国产精选污视频在线观看-国产精选91热在线观看-特级黄色视频毛片-特级黄色免费片 | 久久精品久噜噜噜久久-久久精品久久久久-久久精品久久久-久久精品久久精品久久精品-亚洲影视一区-亚洲影视精品 | 国产福利视频在线观看福利-国产福利视频情侣视频-国产福利视频-国产福利美女福利视频免费看-国产鲁鲁视频在线播放-国产噜噜噜精品免费 | 一级成人生活片免费看-一级床上爽高清播放-一级大毛片-一级大片免费看-一级二级毛片-一级夫妻黄色片 | 欧美黑寡妇香蕉视频-欧美国产一区视频在线观看-欧美国产一区二区三区-欧美国产一区二区-国产成人精品第一区二区-国产成人精品2021欧美日韩 | 婷婷综合激情五月中文字幕,美国性网站,国产精品亚洲欧美日韩久久,每日更新在线观看,久久免费视屏,www.成年人视频 | 日本乱中文字幕系列-日本伦理黄色大片在线观看网站-日本伦理片网站-日本伦理网站-韩国三级视频网站-韩国三级视频在线观看 | 热血影院-热热99-热久在线-热久久最新网址-成人毛片一区二区三区-成人毛片视频免费网站观看 | 久久99国产精品一区二区,欧美日韩另类在线,婷婷四月开心色房播播网,收集最新中文国产中文字幕,亚洲综合激情六月婷婷在线观看,欧美一级淫片 | 成人av免费视频在线观看-成人av鲁丝片一区二区免费-成人av精品一区二区三区四区-成人aⅴ综合视频国产-成人aⅴ片-成年网站免费观看精品少妇人妻av一区二区三区 | 亚洲伦,视频二区 素人 欧美 日韩,亚洲精品美女久久久aaa,伊人婷婷色,国产福利一区二区三区在线观看,国产成人亚洲欧美三区综合 | 日韩精品电影在线观看-日韩精品电影在线-日韩精品电影一区-日韩精品电影-国产日韩欧美综合-国产日韩欧美在线一区二区三区 | 国产精品国产三级大全在线观看-国产精品国产三级囯产av中文-国产精品国产三级国av在线观看-国产精品国产三级国v麻豆-国产精品国产三级国产-国产精品国产三级国产aⅴ | 91精品国产综合久久久久-91精品国产综合久久久久久-91精品国产综合久久青草-91精品国产综合久久婷婷-91精品国产综合久久香蕉-91精品国产综合久久消防器材 | 欧美日日射-欧美日视频-欧美日穴-欧美日一级-草久久免费视频-草久伊人 | 久久久精品视频免费观看,非会员体验60秒试看福利区,免费福利在线观看,国内免费视频成人精品,久久久中文字幕日本,婷婷激情五月 | 你懂的在线观看视频-你懂的日韩-你懂的国产精品-你懂的福利视频-夜夜操网-夜夜操天天爽 | 日皮影院,一区二区三区高清不卡,国产日韩欧美中文字幕,日韩亚洲欧美一区二区三区,国产三级91,国产精品hd免费观看 | 99久久中文字幕,五月天激激婷婷大综合丁香,欧美老女人性视频,精品午夜一区二区三区在线观看,99成人免费视频,2020国产精品永久在线观看 | 欧美黑寡妇香蕉视频-欧美国产一区视频在线观看-欧美国产一区二区三区-欧美国产一区二区-国产成人精品第一区二区-国产成人精品2021欧美日韩 | 甜性涩爱在线播放-甜性涩爱下载-甜性涩爱全集在线观看-甜性涩爱免费下载-国产成人午夜精品免费视频-国产成人无码一区AV在线观看 极品少妇粉嫩小泬啪啪AV-极品少妇粉嫩小泬啪啪小说-极品少妇高潮啪啪AV无码-极品少妇伦理一区二区-极品少妇小泬50PTHEPON-极品夜夜嗨久久精品17c |