999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LabVIEW和Java存儲過程的數據自動采集接口的實現與應用

2008-01-29 00:26:34,,,
船海工程 2008年1期
關鍵詞:船舶程序數據庫

, ,, ,

(1.中國船舶科學研究中心,江蘇 無錫 214082;2.江南大學 信息工程學院,江蘇 無錫 214122; 3.無錫職業技術學院,江蘇 無錫 214121)

船舶數字化平臺項目的主要目標是實現從中國船舶研究中心重點實驗室試驗數據的采集、整理、分析和整合,并實現基于集中的中央數據庫開發艦船性能預報系統,提供數據訪問和交換服務性能預報系統,提供數據訪問和交換服務。利用LabVIEW[1]的數據采集[2]和對數據庫的操作功能以及Java的存儲過程,在船舶數據庫平臺上實現數據自動采集接口。

1 LabVIEW數據采集

1.1 LabVIEW程序簡介

LabVIEW的程序由前面板和流程圖兩部分組成,整個程序是基于多線程的設計,前面板和流程圖各占用一個線程。前面板是LabVIEW程序的圖形用戶接口,此接口集成了用戶輸入,并顯示程序的輸出,相當于傳統儀器的面板。流程圖包含虛擬儀器程序的圖形化源代碼,編程控制和定義在前面板上的輸入和輸出功能。

1.2 LabVIEW數據采集流程

數據采集的整個過程見圖1。

圖1 LabVIEW數據采集流程圖

圖3 LabVIEW數據自動入庫

在數據采集之前,程序將對DAQ板卡初始化,板卡上和內存中的Buffer是數據采集存儲的中間環節。采集卡的數據先送到Buffer,由于采用的卡有DMA性能,模擬輸入操作就有一個通向計算機內存的高速硬件通道,這就意味著所采集的數據直接送到計算機的內存。觸發涉及初始化、終止或同步DAQ事件的任何方法。觸發器通常是一個數字或模擬信號,其狀態可確定動作的發生。硬件觸發讓板卡上的電路管理觸發器,控制了DAQ事件的時間分配,有很高的精確度。自動采集接口首先由采集到的數據通過通用接口總線傳輸給主機,由 LabVIEW試驗系統程序進行相應處理后,再通過Java存儲過程將原始數據和信息存儲到數據庫中。

1.3 LabVIEW數據自動采集程序結構圖

在數據采集到以后,數據將會進行分析,然后將分析處理后的數據直接導入到船舶數字化平臺中。將分析好的數據利用Java的存儲過程導入到船舶數字化平臺中的程序結構見圖2。

圖2 LabVIEW配置程序

LabVIEW配置程序圖中描述的是將LabVIEW進行數據庫連接的配置,確保每次都能夠連接上數據庫。

在LabVIEW數據自動入庫圖中,LabVIEW設置了一些參數的類型和數據的格式,然后用call方法來調用Java存儲過程,利用存儲過程將數據自動保存到船舶數字化平臺中。在保存的過程中,如果檢測到數據有問題或者數據格式不對,Java的存儲過程就會執行事物的回滾,LabVIEW會提示保存出錯;如果檢測不到錯誤,LabVIEW會提示添加成功。

2 存儲過程

2.1 Java的存儲過程與PL/SQL的存儲過程

從Oracle8i開始,Oracle已經在數據庫中支持Java,從而為存儲過程提供了不同于PL/SQL的開放式和可移植的方法。兩種語言都適用于數據庫編程,對于要求與SQL進行無縫集成的數據庫中心來說則邏輯使用PL/SQL,從而完成對數據庫對象、類型和特性的訪問。

出于與數據庫的無關性考慮,可以選擇Java作為開放式的語言來取代PL/SQL,同時也為了集成和溝通SQL、XML、J2EE和Web服務等各個領域。

2.2 創建存儲過程的Java方法

2.2.1 數據的處理

Java的存儲過程中首先是進行數據的處理,主要有以下一些處理:

1) 有些船舶數字化平臺中設定為非空的數據如果在LabVIEW中為空,那么在Java的存儲過程中會進行處理,使數據不能保存到船舶數字化平臺;

2) 設定LabVIEW分析好的數據的格式全部為字符串類型,在Java的存儲過程中將會對這些字符串數據進行適當的轉換,使數據能和船舶數字化平臺中的數據類型保持一致;

3) 在一些包含了許多單獨字段的字符串,對其進行分割,用字符數組來保存這些分割好的數據。

2.2.2 事務的處理

在數據庫操作中,一項事務是指由一條或多條對數據庫更新的sql語句所組成的一個不可分割的工作單元。只有當事務中的所有操作都正常完成了,整個事務才能被提交到數據庫,如果有一項操作沒有完成,就必須撤消整個事務。由于對數據庫進行了多次操作,每一次的執行或步驟都是一個事務.如果數據庫操作在某一步沒有執行或出現異常而導致事務失敗,這樣有的事務被執行有的就沒有被執行,從而就有了事務的回滾,取消先前的操作。在jdbcapi中,可以通過調用setAutoCommit(false)來禁止自動提交事務。然后就可以把多條更新數據庫的sql語句做為一個事務,在所有操作完成之后,調用commit()來進行整體提交。倘若其中一項sql操作失敗,就不會執行commit()方法,而是產生相應的sqlexception,此時就可以捕獲異常代碼塊中調用rollback()方法來撤消事務。

2.2.3 自增序列的查詢與插入

在數據庫的表結構中,有些字段被設置為主鍵,并且是自增的。在查詢這些字段時可以采用no_zlcon_s.currval,插入這些字段可以采用no_zlcon_s.nextval。其中no_zlcon_s為其中一張表的sequence。并且在做這些操作的時候應該先做no_zlcon_s.nextval,然后做no_zlcon_s.currval。

2.3 裝載Java存儲過程到ORACLE

LoadJava是加載Java源文件、Java類文件和Java資源文件的實用程序,它可以用來驗證字節碼,并將Java類和JAR文件布置到數據庫中。它既可以通過命令行調用,也可以通過包含于DBMS_Java類中的loadJava()方法調用。為了加載zlcon類,輸入:

loadJava-user ksx/cssrc@cssrcdb D:zlcon.class。

其中,ksx為用戶名;cssrc為用戶密碼;cssrcdb為SID,為zlcon類存放的物理位置。

利用這個命令,可以將zlcon類裝載到ORACLE數據庫的KSX用戶下。

2.4 生成存儲過程調用

為了從ORACLE中調用Java方法(以及從PL/SQl和JDBC中調用),必須首先通過Call Spec發布公共靜態方法,它為SQL定義方法采用的參數以及返回的SQL類型。Java存儲過程可以通過其Call Spec從以下各項中進行調用:SQL DML語句(INSERT, UPDATE、DELETE、SELECT、CALL、EXPLAIN PLAN、LOCK TABLE和MERGE)、PL/SQL塊、子程序、程序包以及數據庫觸發器。可以像下面這樣生成調用的Java存儲過程:

create or replace function addzlconzlori(ShipModleID varchar2,PropellerModuleID varchar2,……) return varchar2 as language Java name ‘zlcon.addzlconzlori(Java.lang.String,Java.lang.String,……)’ return Java.lang.String。

這樣就創建了一個addzlconzlori存儲過程,相當于在ORACLE里面存在這樣一個方法,可以被其他程序來調用,并且其中還涉及到存儲過程的返回值。

3 LabVIEW調用Java的存儲過程

3.1 LabVIEW中訪問船舶數字化平臺

LabVIEW本身并不具備數據庫訪問功能,因此以LabVIEW編制的虛擬儀器系統需要其它輔助的方法來進行數據庫訪問。在LabVIEW中訪問數據庫的方式主要又以下幾種:

1) 利用NI公司的附加工具包中的數據庫接口工具包LabVIEW SQL Toolkit[3]進行數據庫訪問。該工具包集成了一系列的高級功能模塊,這些模塊封裝了大多數的數據庫操作和一些高級的數據庫訪問功能。

2) 利用LabVIEW的ActiveX功能,調用Microsoft ADO對象,利用SQL語言實現數據庫的訪問。使用這種方法需要用戶對Microsoft ADO以及SQL語言有較深的了解。

3) 通過第三方開發的免費工具包LabSQL訪問。LabSQL利用Microsoft ADO以及SQL語言來完成數據庫訪問,將復雜的底層ADO及SQL操作封裝成一系列的LabSQL VIs,簡單易用。

出于對程序的可靠性和快速性考慮,數據自動采集接口訪問數字化平臺采用的是第1)種方式。

3.2 LabVIEW中執行存儲過程

LabVIEW SQL Toolkit是用于數據庫訪問的附加工具包,它集成了一系列的高級功能模塊,這些模塊封裝了大多數的數據庫操作和一些高級的數據庫訪問功能,以使用LabVIEW SQL Toolkit在LabVIEW中支持ODBC的本地或遠程數據庫,例如Microsoft Access,Microsoft SQL Sever,Sybase SQL Server以及Oracle等。

使用DB Tools List Tables以一維數組形式列出指定數據庫中的所有表,同時顯示在前面板數組控件tables中。用戶指定Table Index后,通過索引數組函數Index Array索引其中一個表。然后將表名連接到DB Tools List Columns和DB Tools Select All Data。

接下來先將采集的數據進行格式轉換,賦給addzlconzlori方法里面的參數,然后連接到數據庫后,可以通過執行下面的SQL語句來調用Java的存儲。

Call addzlconzlori (?,?,……..) into:msg;

select :msg from dual;

然后LabVIEW會根據存儲過程的返回值來顯示是否操作成功。

4 結束語

LabVIEW的數據采集的技術。經實踐證明效果明顯,大量減少了人工的參與,同時也提高了數據采集的安全性和穩定性。對于需要進行大量數據采集的系統有很好的借鑒意義。

[1] Robert H.Bishop LabVIEW 6i 實用教程[M].北京:電子工業出版社, 2004.

[2] 楊樂平,李海濤.LabVIEW高級程序設計[M].北京:清華大學出版社,2003.

[3] 黎洪生,李 超,劉俊剛,等.LabVIEW中利用ADO接口訪問數據庫的方法[J].計算機系統應用,2001(11):73-74.

猜你喜歡
船舶程序數據庫
計算流體力學在船舶操縱運動仿真中的應用
《船舶》2022 年度征訂啟事
船舶(2021年4期)2021-09-07 17:32:22
船舶!請加速
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 国产激情国语对白普通话| 国产精品亚洲片在线va| 国产成人做受免费视频| 国产小视频在线高清播放| a欧美在线| 91视频日本| www.99在线观看| 亚洲伦理一区二区| 久久这里只有精品国产99| 九色在线观看视频| 色综合久久久久8天国| 伊人91在线| 欧美精品影院| 欧美精品在线免费| 69视频国产| 亚洲综合天堂网| 国产成人av一区二区三区| 欧美成a人片在线观看| 国产特级毛片aaaaaa| 中国一级毛片免费观看| 最新国产高清在线| 欧美特黄一级大黄录像| 国产v欧美v日韩v综合精品| 美女毛片在线| 亚洲色图欧美| 综合色区亚洲熟妇在线| 亚洲狼网站狼狼鲁亚洲下载| 国产大片喷水在线在线视频| 亚洲成肉网| 国产高颜值露脸在线观看| 台湾AV国片精品女同性| 91国内在线观看| 欧美一级高清片久久99| 国产一区二区三区视频| 四虎永久免费地址在线网站| 青草娱乐极品免费视频| 精品国产自| 成人一级免费视频| 亚洲天堂.com| 国产成人欧美| AⅤ色综合久久天堂AV色综合| 欧美啪啪网| 国产精品无码作爱| 天堂在线www网亚洲| 国产99在线观看| 欧美日韩亚洲国产| av免费在线观看美女叉开腿| 国产精品亚洲一区二区三区z| 无码国产伊人| 午夜国产大片免费观看| 欧美成人h精品网站| 免费jjzz在在线播放国产| 成年女人a毛片免费视频| 亚洲精品在线91| 国产网友愉拍精品| 日韩黄色大片免费看| 国产第一页免费浮力影院| 九九热免费在线视频| 最新精品久久精品| 久综合日韩| 久久性妇女精品免费| 成人韩免费网站| 国产91丝袜在线播放动漫| 99视频在线精品免费观看6| 久久精品国产亚洲麻豆| 国产成人亚洲欧美激情| 丁香五月亚洲综合在线| 天天色综网| 中文字幕乱码二三区免费| 国产成人乱无码视频| 亚洲午夜综合网| 国产网友愉拍精品视频| 国产综合另类小说色区色噜噜| 18禁影院亚洲专区| 国产精品片在线观看手机版| 波多野结衣二区| 色噜噜狠狠狠综合曰曰曰| 国产美女在线免费观看| 99久久国产综合精品2023 | 中文字幕在线一区二区在线| 婷婷综合在线观看丁香| 久久精品人人做人人综合试看|