亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2019-05-17 07:42:38吳濤曹紀(jì)慧
        現(xiàn)代計(jì)算機(jī) 2019年10期
        關(guān)鍵詞:管理

        吳濤,曹紀(jì)慧

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

        0 引言

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

        1 PCMS系統(tǒng)

        1.1 系統(tǒng)簡(jiǎn)介

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

        1.2 工單和工單類型

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

        2 半成品管理

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

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

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

        表1 半成品完成狀態(tài)跟蹤報(bào)表的表結(jié)構(gòu)

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

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

        4 半成品管理

        4.1 半成品管理原理

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

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

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

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

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

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

        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"]

        #獲取關(guān)鍵字集合,預(yù)制和裝配工單關(guān)鍵字為ParentID,下料工單關(guān)鍵字為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"])

        #結(jié)果數(shù)據(jù)存儲(chǔ)在list 中

        l_result=[]

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

        一級(jí)預(yù)制類型工單數(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)站進(jìn)行報(bào)表上傳和入庫(kù)清單下載。插件語(yǔ)言選型為Python,網(wǎng)站框架選型為Django+HTML5。

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

        5 結(jié)語(yǔ)

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

        猜你喜歡
        管理
        棗前期管理再好,后期管不好,前功盡棄
        《水利建設(shè)與管理》征訂啟事
        聆聽兩會(huì)
        ——關(guān)注自然資源管理
        2020年《水利建設(shè)與管理》征稿函
        運(yùn)行管理
        管理就是溝通
        加強(qiáng)土木工程造價(jià)的控制與管理
        如何加強(qiáng)土木工程造價(jià)的控制與管理
        解秘眼健康管理
        “這下管理創(chuàng)新了!等7則
        雜文月刊(2016年1期)2016-02-11 10:35:51
        久久男人av资源网站无码| 日本精品免费看99久久| 亚洲人成自拍网站在线观看| 999久久久无码国产精品| 国产精品久久1024| 日本在线中文字幕一区| 国产高清成人午夜视频| 亚洲av中文无码乱人伦在线播放| 麻豆AⅤ无码不卡| 亚洲一码二码在线观看| 中文字幕乱码熟女人妻在线| 国产一区二区女内射| 亚洲精品第一国产麻豆| 中文字幕久区久久中文字幕| 国产日本精品一二三四区| 少妇下蹲露大唇无遮挡| 亚洲国产精品自产拍久久蜜AV| 中文字幕日本五十路熟女| 色天使久久综合网天天| 久无码久无码av无码| 亚洲国产AⅤ精品一区二区不卡| 国产免费成人自拍视频| 女人脱了内裤趴开腿让男躁| 久久久久99精品成人片试看| 久草久热这里只有精品| 视频在线观看一区二区三区| 亚洲小说区图片区另类春色| 免费国产一级片内射老| 在线观看一区二区蜜桃| 亚洲a∨无码一区二区三区| 国产精品无需播放器| 国产人妖一区二区av| 日韩乱码人妻无码系列中文字幕| 黑人玩弄漂亮少妇高潮大叫| 最新国产成人综合在线观看| 亚洲中文字幕精品久久a| 蜜臀色欲av在线播放国产日韩| 无码免费人妻超级碰碰碰碰| 亚洲国产综合一区二区| 久久理论片午夜琪琪电影网| 韩国19禁主播深夜福利视频|