• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于PCMS 系統(tǒng)的海洋工程浮體專業(yè)半成品管理功能的研究與應用

      2019-05-17 07:42:38吳濤曹紀慧
      現(xiàn)代計算機 2019年10期
      關鍵詞:浮體半成品下料

      吳濤,曹紀慧

      (海洋石油工程(青島)有限公司,青島 266000)

      0 引言

      眾所周知,浮體建造過程中結構專業(yè)的原材料主要為板材或者型材,當原材料下料后到模塊或者船體總裝搭載前,每個建造階段所產(chǎn)生的結構體統(tǒng)稱為半成品。本文概述了浮體建造過程中對半成品的管理方案,此方案主要用于浮體制造的下料、預制和裝配三個階段。下料工單完成工作量反饋后,通過半成品管理功能可篩選出具備下一階段建造條件的桿件,并根據(jù)工作階段和類型將數(shù)據(jù)進行合并或拆分,自動導出半成品材料清單,并能為下一階段的工單中進行材料預測預留,最終實現(xiàn)半成品管理。

      1 PCMS系統(tǒng)

      1.1 系統(tǒng)簡介

      PCMS(Project Construction Management System)即工程項目建造管理系統(tǒng),是基于鷹圖公司SmartYard 軟件系列產(chǎn)品,在數(shù)據(jù)標準化和規(guī)范的基礎上,結合海洋石油工程股份有限公司建造事業(yè)部個性化的工程項目管理需求,定制開發(fā)的一套用于海洋工程類項目建造全生命周期管理的信息集成系統(tǒng)。系統(tǒng)以三個軟件SPF(基礎數(shù)據(jù)平臺)、SPC(施工管理模塊)、SPM(材料管理模塊)為基礎,以工單為載體,打通設計、計劃、物資和生產(chǎn)的信息瓶頸,以符合行業(yè)內(nèi)AWP(Advanced Work Package)管理體系標準,提高建造施工組織效率。

      1.2 工單和工單類型

      根據(jù)AWP 管理體系標準,PCMS 系統(tǒng)的工單是一個IWP(Installation Work Packages)級別施工范圍,可動態(tài)展現(xiàn)該IWP 計劃、材料、設計、進度等信息。工單最重要的功能之一是實現(xiàn)材料預測預留,系統(tǒng)根據(jù)加工設計的材料需求和現(xiàn)場材料入庫情況進行精確匹配。在項目建造階段,每個專業(yè)的工單分為多種類型。以企鵝項目浮體專業(yè)為例,工單類型分別為下料、一級預制、二級預制、裝配、總裝。工單類型對應著不同的施工階段。

      2 半成品管理

      從下料階段開始到總裝階段結束,每一個建造階段都會產(chǎn)生半成品。半成品建造完成后會存放在預制場地,不會進行入庫,因此下一建造階段的工單包含該半成品材料時,需要明確該半成品是否已經(jīng)完成建造并且檢驗釋放。通過PCMS 系統(tǒng)工單執(zhí)行情況,從而判別出半成品材料的建造狀態(tài),實現(xiàn)半成品管理,使各個建造階段都可以進行材料預測預留是本文研究的重點。

      3 半成品完成狀態(tài)跟蹤報表的定制

      半成品完成狀態(tài)跟蹤報表是通過用戶定義含有Schema 數(shù)據(jù)結構的XML 文件在SmartPlant Foundation軟件中進行定制,此報表可導出當前生產(chǎn)項目工單執(zhí)行的完成量、完成時間等基本信息,并以xls 格式存儲。報表每行以該項目所有工單的工藝步驟為單位,表結構如表1 所示。

      表1 半成品完成狀態(tài)跟蹤報表的表結構

      Schema 數(shù)據(jù)結構的核心定義如下所示:

      由于報表作用域為整個Site,所有專業(yè)和工作階段的工單基本信息都會導出,為了過濾出浮體專業(yè)信息,在SmartPlant Foundation 中查找到半成品完成狀態(tài)跟蹤報表,編輯其定義,通過篩選條件過濾不必要的數(shù)據(jù)。例如篩選浮體專業(yè)的下料類型的工單,在Criteria一列增加篩選條件 Discipline=“Structural”,Purpose=“ST_Plate_Cut”or“ST_Shape_Cut”。

      4 半成品管理

      4.1 半成品管理原理

      半成品管理的原理是在不同建造階段,建立原材料和半成品或者半成品和半成品之間的關聯(lián)關系。例如,下料工單中名稱為3SD-CR-DWG-S10-ST-0201-VL-A36-10-0003.TXT-01 某鋼板,其 NestingList 的屬性值為一個列表,包含本張鋼板下料后的所有桿件及數(shù)量信息,我們稱之為Nesting,每個Nesting 以“,”作為分隔。Nesting 的結構為“桿件名稱”+“:”+“桿件數(shù)量”,即某下料方案下唯一的桿件名稱(TAG_ID)和該桿件數(shù)量(QTY)。某下料方案下的所有工藝步驟完成意味著此鋼板即具備下一階段建造即一級預制的條件。程序將以下料方案號(DWG_ID)作為篩選條件,補充其他信息,導出下料后半成品。此鋼板下料后會產(chǎn)生余料,即屬性ExcessMaterialList 的值,與NestingList處理方式一樣,補充其他信息,作為下料半成品導出。除下料階段外,其他建造階段半成品管理是通過TagID實現(xiàn)的。例如一級預制工單,TagID 同為101_CS01_T1的桿件完成比全部達到100%,則將101_CS01_T1 作為下一階段建造的半成品導出。

      4.2 半成品管理功能實現(xiàn)

      根據(jù)半成品管理需求,功能實現(xiàn)通過開發(fā)插件讀取半成品狀態(tài)跟蹤報表,分析報表處理數(shù)據(jù)后,導出SmartPlant Material 軟件能夠識別的半成品入庫清單。插件引入pandas 庫進行xlsx 文件的讀寫操作,使用dataframe 數(shù)據(jù)結構按工單類型篩選半成品狀態(tài)跟蹤報表進行數(shù)據(jù)分組。浮體專業(yè)半成品管理分為下料、預制、裝配和總裝四個階段,某些階段會根據(jù)工作小類型進一步細分。 例如下料階段分為板材下料(ST_Plate_Cut)和型材下料(ST_Shape_Cut),預制階段分為針對于T 型梁、組合梁、立柱、拉筋、舾裝預制件和其他結構附件的一級預制(ST_1st_Fabr)和針對于船體板片和組塊甲板片的二級預制(ST_2ed_Fabr)。裝配階段分為船體分段裝配(ST_Block_Asse)和上部模塊裝配(ST

      _Module_Asse)。在插件程序中數(shù)據(jù)分組代碼如下:

      df=pd.read_excel(excel_path,sheetname=0)

      # 按照不同的建造階段篩選數(shù)據(jù),使用dataframe 進行存儲

      df_1st_Fabr=df[df["Purpose"]=="ST_1st_Fabr"]

      df_2ed_Fabr=df[df["Purpose"]=="ST_2ed_Fabr"]

      df_Block_Asse=df[df["Purpose"]=="ST_Block_Asse"]

      df_Module_Asse=df[df["Purpose"]=="ST_Module_Asse"]

      df_Erection=df[df["Purpose"]=="ST_Erection"]

      df_Plate_Cut=df[df["Purpose"]=="ST_Plate_Cut"]

      df_Shape_Cut=df[df["Purpose"]=="ST_Shape_Cut"]

      #獲取關鍵字集合,預制和裝配工單關鍵字為ParentID,下料工單關鍵字為DrawingID

      s_1st_Fabr_pid=set(df_1st_Fabr["ParentID"])

      s_2ed_Fabr_pid=set(df_2ed_Fabr["ParentID"])

      s_Block_Asse_pid=set(df_Block_Asse["ParentID"])

      s_Module_Asse_pid=set(df_Module_Asse["ParentID"])

      s_Erection_pid=set(df_Erection["ParentID"])

      s_Plate_Cut_dwg=set(df_Plate_Cut["DrawingID"])

      s_Shape_Cut_dwg=set(df_Shape_Cut["DrawingID"])

      #結果數(shù)據(jù)存儲在list 中

      l_result=[]

      針對于不同數(shù)據(jù)分組,其數(shù)據(jù)處理方式也會有區(qū)別,本文以一級預制和板材下料為例,將其核心代碼進行演示。

      一級預制類型工單數(shù)據(jù)處理核心代碼如下:

      for pid in s_1st_Fabr_pid:

      df_ass_pid=df_1st_Fabr[df_1st_Fabr["ParentID"]==pid]

      df_ass_pid.loc[:,("Units")] = df_ass_pid.loc[:,("Units")].map(lambda x:round(float(x.split("")[0]),1))

      df_ass_pid.loc[:,("QuantityComplete")]=df_ass_pid.loc[:,("QuantityComplete")].map(lambda x:round(float(x),1))

      s_judge = df_ass_pid.apply(lambda x: judge(x.Units, x.QuantityComplete),axis=1)

      if 0 not in s_judge.values:

      DISCIPLINE="STRUCTURE"

      CONS_PHASE="FAB_TRACK"

      SD_DOC=df_ass_pid.iloc[0]["DrawingID"]

      DWG_ID="BCP-"+df_ass_pid.iloc[0]["DrawingID"]

      ITR="TAG WO MS"

      TAG_ID=df_ass_pid.iloc[0]["ParentID"]

      QTY=1

      UNIT="each"

      COMP_TYPE="PART"

      WAREHOUSE="ST-BCP-TAG"

      LOCATION=df_ass_pid.iloc[0]["WorkPlace"].upper()

      s_result=[DISCIPLINE,CONS_PHASE,SD_DOC,DWG_ID,ITR,TAG_ID,QTY,UNIT,COMP_TYPE,WARE -HOUSE,LOCATION]

      l_result.append(s_result)

      下料類型工單數(shù)據(jù)處理核心代碼如下:

      for dwg in s_Plate_Cut_dwg:

      df_cut_dwg=df_Plate_Cut[df_Plate_Cut["DrawingID"] ==dwg]

      df_cut_dwg.loc[:,("Units")] =df_cut_dwg["Units"].map(lambda x:round(float(x.split("")[0]),1))

      df_cut_dwg.loc[:, ("QuantityComplete")] =df_cut_dwg["QuantityComplete"].map(lambda x:round(float(x),1))

      s_judge=df_cut_dwg.apply(lambda x:judge(x.Units,x.QuantityComplete),axis=1)

      if 0 not in s_judge.values:

      nestinglist=set(df_cut_dwg.iloc[0]["NestingList"].split(","))

      for nesting in nestinglist:

      DISCIPLINE="STRUCTURE"

      CONS_PHASE="FAB_TRACK"

      SD_DOC=df_cut_dwg.iloc[0]["DocumentID"]

      DWG_ID="BCP-"+df_cut_dwg.iloc[0]["DrawingID"]

      ITR="TAG WO MS"

      TAG_ID=nesting.split(":")[0]

      QTY=int(nesting.split(":")[1])

      UNIT="each"

      COMP_TYPE="PART"

      WAREHOUSE="ST-BCP-TAG"

      LOCATION=df_cut_dwg.iloc[0]["WorkPlace"].upper()

      s_result = [DISCIPLINE, CONS_PHASE, SD_DOC,

      DWG_ID, ITR, TAG_ID, QTY, UNIT,COMP_TYPE, WARE

      HOUSE,LOCATION]

      l_result.append(s_result)

      if pd.isnull(df_cut_dwg.iloc[0]["ExcessMaterialList"])==

      False:

      #if","in df_cut_dwg.iloc[0]["ExcessMaterialList"]:

      ExcessMaterialList = set(df_cut_dwg.iloc[0]["Excess-

      MaterialList"].split(","))

      #else:ExcessMaterialList=set({df_cut_dwg.iloc[0]["Ex

      cessMaterialList"]})

      for excessmaterial in ExcessMaterialList:

      DISCIPLINE="STRUCTURE"

      CONS_PHASE="FAB_TRACK"

      SD_DOC=df_cut_dwg.iloc[0]["DocumentID"]

      DWG_ID="BCP-"+df_cut_dwg.iloc[0]["DrawingID"]

      ITR="TAG WO MS"

      TAG_ID=excessmaterial

      QTY=1

      UNIT="each"

      COMP_TYPE="PART"

      WAREHOUSE="ST-BCP-TAG"

      LOCATION = df_cut_dwg.iloc[0]["WorkPlace"].upper()

      s_result = [DISCIPLINE, CONS_PHASE, SD_DOC,DWG_ID, ITR, TAG_ID, QTY,UNIT, COMP_TYPE, WAREHOUSE,LOCATION]

      l_result.append(s_result)

      插件集成在PCMS-PLUS 網(wǎng)站中,該功能用戶通過網(wǎng)站進行報表上傳和入庫清單下載。插件語言選型為Python,網(wǎng)站框架選型為Django+HTML5。

      圖1 網(wǎng)站頁面截圖

      5 結語

      本文給出了基于PCMS 系統(tǒng)的海洋工程浮體專業(yè)半成品管理功能實現(xiàn)的原理和應用方法的演示,該功能可用于解決PCMS 系統(tǒng)推廣應用中的一些相關問題,具有一定的實際意義。用Python 語言實現(xiàn)的插件程序則有助于讀者更好地理解和把握該功能的實現(xiàn)過程。用網(wǎng)站界面實現(xiàn)的半成品材料數(shù)據(jù)管理流程有助于用戶操作易懂,簡化操作步驟,對管理員來說易于維護。

      猜你喜歡
      浮體半成品下料
      浮體結構沉浮過程周圍水流特性研究
      人民長江(2023年6期)2023-07-25 12:24:14
      裝飾石材半成品板補膠、定厚技術操作(二)
      石材(2022年2期)2022-05-25 13:04:26
      裝飾石材半成品板補膠、定厚技術操作(一)
      石材(2022年1期)2022-05-23 12:48:16
      物探船硬浮體陣列自擴變量分析與應用
      超大型浮體結構碰撞損傷研究
      半成品飯菜成新寵
      食品界(2020年4期)2020-05-03 14:00:07
      有限流動水域浮體受力及側傾研究
      鉬系列產(chǎn)品包裝鐵桶下料系統(tǒng)自動化的研究與設計
      廢樹脂料斗定量法計量驗證試驗
      科技視界(2016年27期)2017-03-14 15:33:44
      鋁電解槽下料過程對電解質(zhì)溫度場的影響
      台北县| 尼玛县| 奉节县| 景宁| 翁源县| 白水县| 永城市| 巩义市| SHOW| 梁河县| 张掖市| 洱源县| 天水市| 拉孜县| 白河县| 西畴县| 四川省| 渭南市| 广德县| 礼泉县| 洪雅县| 阳谷县| 乾安县| 徐水县| 吴旗县| 武宣县| 顺昌县| 镇坪县| 大悟县| 青田县| 都兰县| 延津县| 兴隆县| 开江县| 辽源市| 石棉县| 建水县| 嘉定区| 汝城县| 班戈县| 云龙县|