劉亞菲 王玉龍 陳儉新
(中國船舶集團(tuán)公司第七一三研究所 河南省鄭州市 450015)
隨著智慧倉儲管理監(jiān)控系統(tǒng)中各設(shè)備信息化、智能化以及機(jī)電一體化的快速發(fā)展,倉儲管理人員能夠獲取到越來越多的人員信息、物資信息、設(shè)備信息以及作業(yè)過程信息等。在這個(gè)龐大的信息體系當(dāng)中,僅用單一的圖表或文字無法清晰表達(dá)多維度數(shù)據(jù)之間的關(guān)系,管理人員需要依靠經(jīng)驗(yàn),并且具備較強(qiáng)的數(shù)據(jù)分析能力,才能進(jìn)行正確的數(shù)據(jù)解讀和管理監(jiān)控。同時(shí),在倉庫、物資及相關(guān)出入庫作業(yè)較為復(fù)雜的情況下,通過數(shù)據(jù)表格傳達(dá)的信息相對割裂、關(guān)聯(lián)性較弱,管理人員無法同時(shí)對多點(diǎn)、多倉、多貨的倉儲系統(tǒng)進(jìn)行直觀高效的管理監(jiān)控。
可視化技術(shù)是利用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將分散的數(shù)據(jù)轉(zhuǎn)換成直觀的圖形或圖像,并進(jìn)行交互處理的理論、方法和技術(shù)。大多數(shù)人對視覺的響應(yīng)遠(yuǎn)勝于文本,大腦處理視覺信息的速度約為文本的6萬倍,數(shù)據(jù)可視化正是利用人類天生的技能,來提高數(shù)據(jù)處理的能力和效率。通過數(shù)據(jù)可視化設(shè)計(jì),能夠?qū)⒑A啃畔R集到一個(gè)平臺,根據(jù)數(shù)據(jù)之間的關(guān)系將信息表示成易于用戶理解的圖形圖像,并對其進(jìn)行高效的數(shù)據(jù)統(tǒng)計(jì)和分析。因此,本文運(yùn)用C++編程語言以及Qt開發(fā)框架,結(jié)合可視化技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了一種智慧倉儲管理監(jiān)控系統(tǒng)可視化架構(gòu)。
本文通過對智慧倉儲管理監(jiān)控系統(tǒng)進(jìn)行顆粒度分析、元素提取、場景分類、管理監(jiān)控需求等方面進(jìn)行深入分析,構(gòu)建了一種智慧倉儲管理監(jiān)控系統(tǒng)可視化設(shè)計(jì)架構(gòu),如圖1所示。本架構(gòu)由數(shù)據(jù)支撐體系、圖形部件庫、信息集成場景和信息智能化應(yīng)用四個(gè)部分組成。
圖1:智慧倉儲管理監(jiān)控系統(tǒng)可視化設(shè)計(jì)架構(gòu)
3.1.1 功能概述
本文通過對倉儲管理監(jiān)控系統(tǒng)進(jìn)行顆粒度分析,提取出該系統(tǒng)涉及的數(shù)據(jù)元素,并對這些基本元素的物理參數(shù)和邏輯參數(shù)進(jìn)行總結(jié)和分類,分析各個(gè)數(shù)據(jù)元素的結(jié)構(gòu)以及它們之間的關(guān)系,從而形成一套智慧倉儲管理監(jiān)控系統(tǒng)的數(shù)據(jù)支撐體系。數(shù)據(jù)模型的建立流程如圖2所示。
圖2:數(shù)據(jù)模型建立流程
3.1.2 功能實(shí)現(xiàn)
智慧倉儲管理監(jiān)控系統(tǒng)各元素?cái)?shù)據(jù)模型的建立過程如下。
(1)確定數(shù)據(jù)及其相關(guān)過程:基于倉儲管理監(jiān)控系統(tǒng)的使用需求和業(yè)務(wù)邏輯,明確倉儲管理人員需要感知的信息并落實(shí)到實(shí)體,例如人員、倉庫、物資、包裝物、叉車、貨架、電梯等,并對這些實(shí)體進(jìn)行概念建模;
(2)定義數(shù)據(jù):將各個(gè)實(shí)體細(xì)化成具體的表,定義數(shù)據(jù)的類型、大小和默認(rèn)值等,不斷完善表結(jié)構(gòu)內(nèi)容,對實(shí)體進(jìn)行邏輯建模。例如包裝物與貨架相關(guān)表結(jié)構(gòu)如圖3所示。
圖3:包裝物與貨架相關(guān)表結(jié)構(gòu)
通過包裝物類型數(shù)據(jù)表,可以獲取每種包裝物的長、寬、高、重量等物理參數(shù);通過貨架信息及貨架放置區(qū)域輪廓表,可以獲取每種貨架能夠貯存的包裝物類型、貨架層數(shù)以及貨架的擺放位置信息;
(3)數(shù)據(jù)完整性檢查:根據(jù)倉儲管理監(jiān)控系統(tǒng)的業(yè)務(wù)規(guī)則,在具體建模過程中對數(shù)據(jù)進(jìn)行驗(yàn)證檢查,不斷完善和修正,以防關(guān)鍵性參數(shù)發(fā)生缺漏;
(4)定義操作過程:通過數(shù)據(jù)庫工具將創(chuàng)建的各個(gè)數(shù)據(jù)庫對象生成相應(yīng)的SQL代碼,同時(shí)根據(jù)不同的業(yè)務(wù)需求,對數(shù)據(jù)進(jìn)行合并或拆分,并在操作過程中進(jìn)行安全檢查和數(shù)據(jù)備份;
(5)選擇數(shù)據(jù)存儲技術(shù):根據(jù)業(yè)務(wù)邏輯將實(shí)體與實(shí)體之間的關(guān)系進(jìn)行數(shù)據(jù)庫層次的邏輯化,進(jìn)而生成倉儲管理監(jiān)控系統(tǒng)的物理模型。
3.2.1 功能概述
基于各個(gè)實(shí)體對象的數(shù)據(jù)模型和接口,本文結(jié)合圖形學(xué)知識,運(yùn)用Qt的圖形繪制QPainter類,將各個(gè)實(shí)體對象自定義成二維圖形項(xiàng),構(gòu)建了一個(gè)用于管理大量圖形項(xiàng)的可視化部件庫,主要包括倉庫、物資、包裝物、叉車、貨架、電梯等部件。
3.2.2 功能實(shí)現(xiàn)
QPainter類具有繪圖所需的畫筆(QPen)、畫刷(QBrush)、字體(QFont),以及一系列能夠針對不同形狀、不同參數(shù)的繪制函數(shù),因此,本文通過重載QWidget::paintEvent()函數(shù),進(jìn)行各個(gè)圖形部件的繪制,具體流程如下:
(1)根據(jù)各個(gè)實(shí)體對象的圖形化部件特點(diǎn),確定參數(shù)對象(包括繪圖類型、對象輪廓坐標(biāo)集合、角度等);
(2)將參數(shù)對象存入適當(dāng)?shù)臄?shù)據(jù)集合中(例如鏈表等);
(3)在QWidget::paintEvent()函數(shù)中遍歷數(shù)據(jù)集合;
(4)根據(jù)參數(shù)對象進(jìn)行圖形繪制和更新。
3.3.1 功能概述
在智慧倉儲管理監(jiān)控系統(tǒng)中,不同的實(shí)體對象之間可能存在一定的關(guān)聯(lián),無法單獨(dú)割裂而存在。因此,為了消除信息孤島,減少倉儲管理人員對數(shù)據(jù)的理解成本,本文通過可視化信息集成,運(yùn)用Qt的圖形化視圖框架(TheGraphic View Framework),將相關(guān)聯(lián)的圖形化部件集成在同一個(gè)圖形化場景模型中,為倉儲管理人員提供多個(gè)場景模型的圖形化信息展示。
3.3.2 功能實(shí)現(xiàn)
Qt具有良好的封裝機(jī)制、高度模塊化以及擴(kuò)展性,具備豐富的應(yīng)用程序接口。其中,圖形化視圖框架提供了一個(gè)基于圖形項(xiàng)的圖元管理與交互平臺,主要由場景(QGraphicsScene類)、視圖(QGraphicsView類)和圖元(QGraphicsItem類)三個(gè)部分組成。
其中,場景是用于存儲和管理圖元對象的容器,能夠?qū)⑹录鞑サ矫恳粋€(gè)圖形項(xiàng);視圖用于將場景中的內(nèi)容可視化,是整個(gè)圖形化視圖框架的對外交互接口,可以連接多個(gè)視圖到同一個(gè)場景來為相同的數(shù)據(jù)集提供多個(gè)視口;圖元即圖形項(xiàng),是場景中最基本的元件,能夠存儲自定義的數(shù)據(jù)。圖形視圖框架中的事件都是先由視圖進(jìn)行接收,然后傳遞給場景,再由場景傳遞給相應(yīng)的圖形項(xiàng),如圖4所示。
圖4:圖形化視圖框架的事件傳遞
因此,通過圖形化視圖框架,可以管理大量的二維圖形項(xiàng),并且實(shí)現(xiàn)與圖形項(xiàng)之間的交互。針對智慧倉儲管理監(jiān)控系統(tǒng),本文主要設(shè)計(jì)了三種信息集成場景模型。
(1)庫存管理模型:以單個(gè)倉庫為背景,將貯存區(qū)域、物資、電梯口等圖元集成在庫存管理模型中,實(shí)現(xiàn)物資大小、物資數(shù)量、物資分布、庫位大小、庫位數(shù)量、庫位分布以及庫位占用情況等信息的可視化;
(2)出入庫模型:以倉儲廠房剖面為背景,將倉庫、電梯通道、叉車、物資等圖元集成在出入庫模型中,實(shí)現(xiàn)物資出入庫進(jìn)度等信息的可視化;
(3)運(yùn)輸作業(yè)模型:以貨物裝車區(qū)為背景,將物資、叉車、貨車、物資存放區(qū)等圖元集成在運(yùn)輸作業(yè)模型中,實(shí)現(xiàn)物資分配情況、物資轉(zhuǎn)運(yùn)及裝車進(jìn)度等信息的可視化。
3.4.1 功能概述
“全局性的東西,不能脫離局部而獨(dú)立”,針對智慧倉儲管理系統(tǒng)的特點(diǎn),本文設(shè)計(jì)了兩種圖形化展示方式:全局瀏覽、局部瀏覽。通過全局瀏覽,用戶可以從宏觀角度查看集成化模型的信息,掌握集成化模型的整體態(tài)勢;通過局部瀏覽,用戶可以獲取各個(gè)對象的具體細(xì)節(jié)和狀態(tài),例如具體的庫存擺放和運(yùn)輸裝貨進(jìn)度等。
同一個(gè)實(shí)體的物理數(shù)據(jù)可能具備多種展現(xiàn)方式,根據(jù)集成化場景的應(yīng)用需求,以及智能化無人化裝備快速發(fā)展的趨勢,我們可以獲取到越來越多的設(shè)備數(shù)據(jù)和中間過程數(shù)據(jù)。因此本文通過運(yùn)用Qt-3D模塊,給用戶提供多樣化的數(shù)據(jù)接口和立體化展現(xiàn)形式。
同時(shí)本文根據(jù)倉儲管理需求,設(shè)計(jì)了多樣化的數(shù)據(jù)統(tǒng)計(jì)分析模塊,讓倉儲管理人員能夠根據(jù)自己的需要利用數(shù)據(jù)統(tǒng)計(jì)分析的手段提煉出有效的數(shù)據(jù)價(jià)值。
3.4.2 功能實(shí)現(xiàn)
(1)全局/局部瀏覽。在自定義控件中,可以直接獲取到鼠標(biāo)事件,因此自定義控件可以根據(jù)獲取到的鼠標(biāo)事件發(fā)出相應(yīng)的信號,通過監(jiān)聽該控件,即可對其進(jìn)行放大、縮小、平移、旋轉(zhuǎn)等操作。
(2)數(shù)據(jù)三維展示。OpenGL是一個(gè)跨平臺、用于渲染3D圖形的標(biāo)準(zhǔn)API,具有較好的兼容性,支持不同操作系統(tǒng)之間的共享和移植,對硬件設(shè)備沒有特殊限制,對用戶來講十分便利。本文利用Qt開發(fā)框架中的QtOpenGL模塊,通過繼承QGLWidget類、重新實(shí)現(xiàn)該類的三個(gè)虛函數(shù),其用法如表1所示,來執(zhí)行典型的OpenGL任務(wù)。
表1:QGLWidget中三個(gè)虛函數(shù)的用法
(3)數(shù)據(jù)智能分析。數(shù)據(jù)可視化具備多種類型的圖表,例如餅圖、折線圖、柱狀圖、散點(diǎn)圖、樹圖等,常用圖表的作用如表2所示。
表2:常用圖表的作用
本文利用可視化展示手段,分析智慧倉儲管理監(jiān)控系統(tǒng)的數(shù)據(jù)分析需求,設(shè)計(jì)了數(shù)據(jù)智能分析模塊,其流程圖如圖5所示。
圖5:數(shù)據(jù)智能分析模塊流程圖
本文將常用的倉儲數(shù)據(jù)分析模型錄入數(shù)據(jù)智能分析模塊,根據(jù)使用需求將其通過特定的圖表類型輸出。若系統(tǒng)內(nèi)不包含倉儲管理人員所需的數(shù)據(jù)分析模型,可以通過新增模型來構(gòu)建新的數(shù)據(jù)分析模型,新增模型的主要參數(shù)包括:待分析的數(shù)據(jù)參數(shù)、數(shù)據(jù)分析公式、輸出結(jié)果的圖表類型等。
通過本文設(shè)計(jì)的智慧倉儲管理監(jiān)控系統(tǒng)可視化架構(gòu),不僅能將孤立的數(shù)據(jù)用直觀的圖形化方式展示,而且對數(shù)據(jù)進(jìn)行了智能化統(tǒng)計(jì)和分析。
另外,本可視化架構(gòu)具有較強(qiáng)的擴(kuò)充性和應(yīng)用推廣性。在擴(kuò)充性方面,可依據(jù)不同的廠房結(jié)構(gòu)和出入庫流程,進(jìn)行圖形控件庫和集成化場景的擴(kuò)充和定制,形成一套完備的智慧倉儲管理監(jiān)控系統(tǒng)可視化平臺;在應(yīng)用推廣方面,通過不同數(shù)據(jù)模型的構(gòu)建,本文提出的可視化架構(gòu)可應(yīng)用于倉儲物流管理、機(jī)場行李調(diào)度、自動(dòng)停車裝置、大樓電梯運(yùn)行監(jiān)控等多元化場景。
綜上,本文提出的可視化架構(gòu)能夠輔助倉儲管理人員更加全面地掌握系統(tǒng)動(dòng)態(tài)、及時(shí)發(fā)現(xiàn)異常信息并加以控制、減少倉儲管理人員的數(shù)據(jù)統(tǒng)計(jì)工作量,為進(jìn)一步提高倉儲管理效率奠定了堅(jiān)實(shí)基礎(chǔ)。