1 引言
保養及檢驗,是船舶營運過程中的重要內容,是決定船舶生命周期長短的重要工作。船舶產品是包含船體和各類舾裝、動力、電氣設備在內的復合集成產品[1]
,其產品數據本身是復雜而龐大的。同時,由于船舶保養及檢驗工作中涉及到的各部門(船舶設計中心、船級社總部、驗船師、船舶營運公司(以下簡稱“船公司”)船端、岸端,以及船舶測厚公司等外部機構)彼此獨立且部分數據共享,加之受地理條件、網絡條件的制約,面向船舶保養及檢驗的數據庫系統應為異構分布式數據庫,系統的各節點間根據不同的網絡條件進行數據傳遞。將該數據庫系統用于保養及檢驗工作中時,其架構的合理與否直接影響到系統運行的效率、穩定性及安全性。
在船舶行業中,由于近年來CAD/CAM軟件的發展,船舶生命周期中的設計、制造階段的數據資源已經有了很多的處理方案,并應用于具體的軟件數據庫中。在維護保養與檢驗階段,特別是對于船體結構的保養與檢驗,往往要針對具體的結構單元,如板、梁、涂層面,以及相關設備等進行數據的獲取和錄入。而在這個階段中,船員、機務、驗船師、測厚員的工作目前仍多以紙質文檔或手工電子表格的形式進行,操作過程直觀性較差,人工干預性強、數據時效性差,并且參與保養檢驗工作的各部門間缺少一個整體的數據架構環境來進行數據共享。針對這一情況,本文提出了一種基于3D船體結構模型保養及檢驗的異構分布式數據庫架構方案,將涉及的船體結構BOM信息、船舶基本參數、保養檢驗數據等內容進行整理、建立映射關系,配置于各節點數據庫中,且各節點部分數據能夠共享。同時,系統為每個部門匹配對應的軟件客戶端,其前端為3D模型與數據交互操作模式。這種架構體系能夠避免不同部門信息“孤島”的產生,為船舶保養及檢驗工作的信息化及其工作效率的提高提供了參考。
2 船舶保養及檢驗數據庫系統設計
1
2
2.1 參與部門及角色
首先從用戶需求入手進行系統分析,每個參與部門對應著不同的系統用戶角色。系統分為船舶設計中心、船級社總部、驗船師、船公司船端、岸端、外部機構等幾個部門。
從業務功能上來說,船舶設計中心依托PDM系統管理數據,設計并建立起船體結構模型,同時,導出船體結構及設備的BOM數據,為其他建造及營運部門用戶的數據庫中提供并隨時更新必要的屬性數據;針對船公司船舶檢查維護保養業務,船公司船端及岸端客戶端系統基于船體結構3D模型,對船舶維護保養的計劃進行編制、下達,包含了檢查維護保養信息的填報、查詢、報表等操作;針對船級社船舶檢驗業務,船級社及其驗船師系統基于船體結構3D模型,對船體結構的檢驗數據進行管理,包含了船體結構修理、檢驗信息的錄入等操作;針對船體結構測厚業務及其他外部機構業務,外部機構系統基于船體結構3D模型,對測厚等外部數據進行管理。船級社總部、現場驗船師、船公司岸端、船公司船端、外部機構均有相應的接口程序,實現了數據在各異構數據庫中的同步。
2.2 系統數據流向
針對上述不同部門的業務功能,將船舶保養及檢驗工作所涉及的數據進行分類,并確定系統數據流向,見圖1。各部門數據庫結構因需求差異均為異構的。
系統中將數據分為8類,每類均對應若干相關記錄子表,分別為:
0- 船舶信息字典,記錄船舶基本信息,包括其尺度、型值、技術指標等基本參數;
1- 結構及設備字典,記錄結構板梁、材料、設備等結構屬性,以及相關的艙室、涂層、結構件、涂裝信息等基本參數;
2- 檢驗修理字典,記錄驗船師檢驗所涉及的檢驗類別、結構修理計劃等;
3- 檢驗修理記錄,記錄驗船師檢驗所涉及的修理詳細情況;
4- 維護保養規則字典,記錄維護保養過程中所涉及保養記錄的規則、保養類別等;
5- 維護保養記錄,根據維護保養規則所生成的記錄,供船公司機務及船員填報;
6- 船員職務信息,記錄船員職務任命變更情況;
7- 系統屬性日志,記錄數據同步操作內容,記錄數據同步狀態;
8- 測厚數據,也可為其他外部數據,由驗船師來獲取,或直接由船級社獲取。
數據集0、1、2類別為系統數據字典。
圖1 系統數據流向
2.3 系統配置總體流程
1
2
3
系統數據庫的配置由船舶設計中心來完成,流程如圖2。船體維護保養檢查、船舶修理評估、船體測厚等功能均是基于船舶3D模型完成的。船舶設計中心首先需基于不同的系統功能,為其數據集中配置相應的結構屬性數據,并依此數據進一步配置相關區域劃分(如涂層艙、結構艙劃分)的屬性數據,共同作為保養及檢驗工作中的結構屬性字典使用。
圖2 數據庫系統配置流程
3 船舶保養及檢驗數據庫系統實現
3
3.1 系統實現工具的選擇
系統各節點采用的數據庫軟件分別為:船公司采用SQL-SERVER2005;船級社總部采用ORACLE9i;船級社驗船師采用ACCESS;外部機構采用ACCESS或SQL- SERVER2005。這個選擇主要基于節點數據量的大小、操作的復雜程度進行。各節點中,船舶設計中心、船級社總部、船公司岸端為多用戶訪問數據庫服務器模式,其余均為單機數據庫模式。
系統選取CATIA V5進行3D船舶模型的建立,建立的模型文件主要有全船結構模型、船公司涂層檢查模型、船級社涂層檢查模型、船體結構模型、艙室劃分模型、船舶設備模型等幾大類。建立模型后,生成其輕量化3DXML格式的模型,以便將該模型文件顯示于本系統中。系統中每個客戶端均采用達索公司的免費三維模型瀏覽器3DXML Player顯示模型,該瀏覽器為組件形式。系統調用其動態鏈接庫VIA3DXMLPluginLib.dll 及CAT3DXMLPLAYERTLB.dll。系統選用VB.NET2005作為客戶端開發工具。
3.2 基于CATIA的BOM數據提取
船舶設計中心系統利用CATIA V5 Automation的VBA接口,從3D模型及CATIA系統知識庫中對BOM數據進行分類提取,編寫接口,將BOM數據以XML為目標格式,進行轉換。
在CATIA中,所有的數據都被封裝成對象的形式,并形成樹形的結構[2]。對CATIA中Product對象的訪問流程見圖3。
圖3 BOM數據提取流程
Product對象的BOM數據可通過該對象的GetTechnologicalObject及StrComputeServices方法,對CATIA中選擇集Selection進行數據提取。數據提取部分實現代碼如表2:
CATIA為Application對象;Object1為Product對象;ObjStru為Product屬性結構體數組,以Prodcut對象為個體進行存儲.
CATIA = GetObject(, "CATIA.Application") ‘獲取Application對象
ProductDocument1 = CATIA.ActiveDocument
InputObjectType(0) = "Product" ‘設置選擇集參數
status = ""
While status <> "Cancel" Or "Normal" ‘獲取選擇對象
status = Selection1.SelectElement3(InputObjectType, "Select- product",CATMultiSelTriggWhenUserValidatesSelection, False)
If status = "Normal" Then
Exit While
End If
End While
For i=0 to Selection1.items.count-1 ‘遍歷選擇集
ObjStru(i).Object1 = Selection1.FindObject("CATIAProduct") ‘獲取Product對象
ObjStru(i).Inertia= Object1.GetTechnologicalObject('Inertia') ‘獲取重心
ObjStru(i).Thicknesses= Object1.GetTechnologicalObject(' Thicknesses') ‘獲取厚度
ObjStru(i).Material= workbench.StrComputeServices. GetMaterialName (Object1) ‘獲取材料
ObjStru(i).length = workbench.StrComputeServices.GetLength(Object1)
……
Next
ExporttoXMLInterface(ObjStru) ‘將導入XML文檔接口進行處理
表1 BOM提取部分代碼
3.3 基于XML的數據字典配置
BOM信息,以及保養檢驗基本信息字典,均以XML為中間格式進行表達。系統中采用XML-Schema表達數據庫基本架構,通過DataSet對象對數據庫進行存儲、讀取、修改處理,并將所選數據集的基本結構導出XML-Schema文檔進行表示,基本內容以XML文檔進行表示。該數據字典配置過程如圖4。
圖4 基于XML的數據字典配置
4 系統示例
以船公司系統船端版和岸端版程序為例,船端系統中,基本操作界面如圖6(a),船員選擇構件后,可針對已生成的維護保養要求,對其保養情況進行填寫,通過數據同步,修改內容以XML格式導出,通過衛星連線更新至岸端數據庫中。岸端系統中,如圖6(b),機務針對船員提交的記錄進行審核,填寫審核意見后,以同樣的方式更新至船端數據庫中。
圖6 (a)船公司系統-船端示例 (b)船公司系統-岸端示例
5 結語
本文提出了一種3D模型與數據表交互模式下的數據庫系統架構方案,該數據庫系統包含了基本BOM信息及多部門保養及檢驗的工作記錄;谶@個系統,制定了部門間的數據流向,編寫了異構數據處理接口,統一了數據表達格式。
這個數據庫系統架構方案在提高船舶保養及檢驗工作效率的同時,能夠幫助船公司、船級社等部門全面、詳細的掌控船體結構狀態、保養檢驗工作狀態,為進一步進行結構計算、評估、決策等提供必要的數據基礎。同時,其數據配置內容接口統一、易于擴充,使數據庫的擴展更易于實現,為架構更加智能化和集成化的系統提供了參考。
參考文獻
[1] 張俊,余劍峰. 船舶異地協同設計設備資源庫設計[J].船舶工程,2006(1):50-53.
[2] 楊流輝,張和明. 基于COM組件的CATIA產品信息集成技術研究與實現[J].計算機工程與應用,2001(24):132-134.
[3] 李玉剛,紀卓尚,林焰. 基于XML的船舶型值表表達標準化[J].中國造船,2008(3):79-86.
[4] 劉煜,鐘展,趙文龍. 三維CAD與BOM管理系統的接口研究[J].機械工程與自動化,
2005(2):24-27.
[5] 李玉剛. 面向數字化造船的XML及其相關標準應用研究[D].大連理工大學,2007-3.
[6] 張國華. 船舶產品數據管理中BOM信息的研究[D].哈爾濱工程大學,2004-1.
[5]RussellS.Peak,Joshua Lubell,Vijay Srinivasan,Stephen C.Waterbury.STEP,XML,and UML:
Complementary Technologies[J].Journal of Computing and Information Science in
Engineering,2004(4):379-390.
作者簡介
于淳 男,1984年生,碩士研究生。主要從事智能船舶CAD、船舶可視化方面的研究工作。
陳明 男,1972年生,副教授。
孫永剛 男,1979年生,碩士研究生。
09033