姜作飛 閆廣利 孫佳隆
摘 要:自動(dòng)化集裝箱碼頭TOS-ECS集成缺乏成熟的接口標(biāo)準(zhǔn),規(guī)范的接口有利于降低軟件開發(fā)維護(hù)的時(shí)間和成本。該文對(duì)TOS-ECS接口技術(shù)進(jìn)行研究,首先介紹自動(dòng)化集裝箱碼頭的軟件系統(tǒng)架構(gòu),然后介紹目前TOS與ECS接口通信的主流實(shí)現(xiàn)技術(shù),并對(duì)各類接口技術(shù)進(jìn)行分析比較,總結(jié)接口數(shù)據(jù)內(nèi)容與格式,最后介紹數(shù)據(jù)庫(kù)設(shè)計(jì)原則,描述數(shù)據(jù)庫(kù)建表、測(cè)試數(shù)據(jù)準(zhǔn)備、AnyLogic仿真測(cè)試等接口設(shè)計(jì)與驗(yàn)證過(guò)程,為TOS和ECS開發(fā)者在設(shè)計(jì)接口時(shí)提供參考。
關(guān)鍵詞:自動(dòng)化集裝箱碼頭;設(shè)備控制系統(tǒng);接口;數(shù)據(jù)庫(kù)
中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)志碼:A
0 引言
自動(dòng)化集裝箱碼頭具有作業(yè)效率高、安全可靠性高、環(huán)境污染小、節(jié)約人力等優(yōu)點(diǎn),是目前各集裝箱碼頭的發(fā)展趨勢(shì)。自動(dòng)化集裝箱碼頭實(shí)現(xiàn)自動(dòng)化作業(yè),離不開碼頭操作系統(tǒng)(TOS)和設(shè)備控制系統(tǒng)(ECS)的密切配合,作為2個(gè)獨(dú)立的異構(gòu)系統(tǒng),TOS與ECS的信息交換依賴于接口通信。規(guī)范的接口有利于降低各種自動(dòng)化軟件開發(fā)維護(hù)的時(shí)間和成本、提高軟件兼容性。然而,作為傳統(tǒng)行業(yè),自動(dòng)化碼頭中相關(guān)的軟件技術(shù)較為封閉,行業(yè)標(biāo)準(zhǔn)也并不成熟,該文對(duì)主流接口技術(shù)進(jìn)行介紹,并闡述數(shù)據(jù)庫(kù)方式接口的設(shè)計(jì)原則、設(shè)計(jì)過(guò)程。
1 軟件系統(tǒng)架構(gòu)
碼頭自動(dòng)化系統(tǒng)通常包括TOS(碼頭操作系統(tǒng))、上層ECS(設(shè)備調(diào)度管理系統(tǒng))、下層ECS(設(shè)備控制系統(tǒng))、遠(yuǎn)程控制系統(tǒng)、通信交互單元、單機(jī)控制系統(tǒng)、自動(dòng)化裝卸設(shè)備,完整的系統(tǒng)架構(gòu)圖如圖1所示。
其中ECS是監(jiān)控和控制自動(dòng)化碼頭設(shè)備級(jí)所有事件和過(guò)程的軟件,特別是在協(xié)調(diào)不同類型自動(dòng)化設(shè)備之間的交互時(shí),ECS是碼頭軟件環(huán)境中必不可少的一部分。ECS一般由自動(dòng)化供應(yīng)商或裝卸設(shè)備制造商提供。TOS軟件負(fù)責(zé)整個(gè)碼頭的邏輯控制,包括關(guān)鍵功能,象船舶計(jì)劃、集裝箱庫(kù)存維護(hù)、工作指令生成和閘口操作。TOS軟件通常由商業(yè)公司或碼頭運(yùn)營(yíng)商自己提供。TOS負(fù)責(zé)根據(jù)最高效的作業(yè)順序發(fā)布任務(wù)指令,告知ECS箱區(qū)作業(yè)任務(wù)的起點(diǎn)、終點(diǎn)。ECS根據(jù)TOS指令自動(dòng)規(guī)劃?rùn)C(jī)械設(shè)備的運(yùn)行路線并控制設(shè)備運(yùn)行,指揮設(shè)備完成作業(yè),同時(shí)反饋相關(guān)作業(yè)任務(wù)的操作狀態(tài)及結(jié)果給TOS。ECS與TOS的關(guān)系和制造企業(yè)的MES(制造執(zhí)行系統(tǒng))與ERP(企業(yè)資源計(jì)劃系統(tǒng))的關(guān)系類似。
由于系統(tǒng)提供者商業(yè)戰(zhàn)略、技術(shù)特點(diǎn)、開發(fā)人員數(shù)量等因素的不同,TOS、ECS的功能范圍會(huì)有差別,象Navis的TOS包括設(shè)備調(diào)度優(yōu)化功能,煙臺(tái)華東電子將調(diào)度優(yōu)化抽象為ATEC軟件,ABB的ECS可以支持設(shè)備選擇、路徑選擇。
2 主流TOS-ECS接口技術(shù)
2.1 TOS-ECS接口通信架構(gòu)方式
目前全球市場(chǎng)應(yīng)用最廣泛的自動(dòng)化集裝箱碼頭ECS和TOS軟件產(chǎn)品分別來(lái)自TBA和Navis,國(guó)內(nèi)有較好應(yīng)用案例的是振華重工和煙臺(tái)華東電子有限公司。Navis的TOS產(chǎn)品N4基于J2EE開發(fā),支持關(guān)聯(lián)數(shù)據(jù)庫(kù)或JMS異步消息方式的ECS接口,提供數(shù)據(jù)庫(kù)接口與TBA的ECS產(chǎn)品TEAMS對(duì)接,提供JMS接口與卡爾瑪?shù)腅CS產(chǎn)品TLS對(duì)接。振華重工從2006年開始開發(fā)ECS配套軟件,并在廈門遠(yuǎn)海碼頭項(xiàng)目中首次應(yīng)用,遠(yuǎn)海項(xiàng)目采用消息隊(duì)列+WebService技術(shù)實(shí)現(xiàn)與煙臺(tái)華東電子CiTOS的接口通信,ECS調(diào)用TOS的WebService服務(wù)獲取任務(wù)信息,TOS調(diào)用ECS的WebService服務(wù)獲取ECS返回的結(jié)果信息。煙臺(tái)華東電子提取TOS和ECS的部分功能做成ATEC產(chǎn)品,ATEC提供了多種接口方式與ECS對(duì)接:WebService、HTTP接口、socket、消息隊(duì)列。PEMA(港口設(shè)備生產(chǎn)協(xié)會(huì))聯(lián)合控制系統(tǒng)提供商、TOS提供商和港機(jī)制造商象ABB、Siemens、Navis、TBA、Kalmar等成立接口標(biāo)準(zhǔn)化小組,并于2014年完成TOS與ECS接口規(guī)范文檔,文檔中提出現(xiàn)有系統(tǒng)中ECS接口架構(gòu)方案分為消息傳遞和共享數(shù)據(jù)庫(kù)2種。
綜上所述,ECS接口通信架構(gòu)方式主要分為共享數(shù)據(jù)、遠(yuǎn)程服務(wù)調(diào)用(WebService)、消息中間件(MQ,即Message Queue)3類。
2.2 各通信架構(gòu)方式比較分析
2.2.1 數(shù)據(jù)庫(kù)共享數(shù)據(jù)方式
2個(gè)系統(tǒng)A、B通過(guò)連接同一個(gè)數(shù)據(jù)庫(kù),操作同一張表來(lái)實(shí)現(xiàn)數(shù)據(jù)交換。當(dāng)系統(tǒng)A請(qǐng)求系統(tǒng)B處理數(shù)據(jù)時(shí),系統(tǒng)A插入一條數(shù)據(jù),系統(tǒng)B查詢讀取系統(tǒng)A插入的數(shù)據(jù)進(jìn)行處理,反之亦然。
優(yōu)點(diǎn):使用同一數(shù)據(jù)庫(kù),交互簡(jiǎn)單;方便記錄狀態(tài)、時(shí)間戳等。
缺點(diǎn):要避免數(shù)據(jù)表無(wú)限擴(kuò)大。2套系統(tǒng)同時(shí)操作可能發(fā)生沖突,象行鎖、表鎖和查詢等待。
2.2.2 WebService
WebService是一種跨編程語(yǔ)言和跨操作系統(tǒng)的遠(yuǎn)程調(diào)用技術(shù),通過(guò)本地客戶端調(diào)用遠(yuǎn)程服務(wù)器上的方法,來(lái)實(shí)現(xiàn)軟件系統(tǒng)之間的互聯(lián)互通。
優(yōu)點(diǎn):跨平臺(tái)、跨語(yǔ)言。
缺點(diǎn):請(qǐng)求應(yīng)答及同步調(diào)用時(shí),存在堵塞問(wèn)題,客戶端發(fā)送請(qǐng)求后,要等待服務(wù)端返回信息。
2.2.3 消息隊(duì)列
消息隊(duì)列MQ的應(yīng)用場(chǎng)景是交互雙方“生產(chǎn)”和“消費(fèi)”的速度或穩(wěn)定性等性能不一致,作為抽象層,消息隊(duì)列彌合雙方的差異,多用于構(gòu)建分布式互聯(lián)網(wǎng)應(yīng)用。消息隊(duì)列常用的公共名詞包括消息(Message)、話題(Topic)、生產(chǎn)者(Producer)和消費(fèi)者(Consumer)。
消息隊(duì)列與WebService相比,多了Broker集群,生產(chǎn)者把指定話題的消息發(fā)布到Broker集群,Broker集群會(huì)對(duì)消息做持久化,消費(fèi)者從Broker集群訂閱指定話題的消息。TOS-ECS接口會(huì)維護(hù)TOS請(qǐng)求隊(duì)列與ECS結(jié)果隊(duì)列2個(gè)隊(duì)列服務(wù),TOS請(qǐng)求隊(duì)列的生產(chǎn)者在TOS,消費(fèi)者在ECS,ECS結(jié)果隊(duì)列生產(chǎn)者在ECS,消費(fèi)者在TOS。
優(yōu)點(diǎn):1)實(shí)現(xiàn)系統(tǒng)解耦。2)以異步方式運(yùn)行,提高系統(tǒng)響應(yīng)速度。3)實(shí)現(xiàn)削峰,并發(fā)量大時(shí)允許消息隊(duì)列積壓。
缺點(diǎn):1)多了一個(gè)消息隊(duì)列系統(tǒng),系統(tǒng)可用性降低。2)系統(tǒng)復(fù)雜性增加,象需要考慮一致性問(wèn)題、重復(fù)消費(fèi)問(wèn)題。
通過(guò)對(duì)3種通信方式的優(yōu)缺點(diǎn)分析,可以發(fā)現(xiàn)使用數(shù)據(jù)庫(kù)方式實(shí)現(xiàn)相對(duì)簡(jiǎn)單,消息隊(duì)列方式適合高并發(fā)場(chǎng)景,WebService方式需要在通信雙方分別開發(fā)不同接口、存在同步調(diào)用阻塞問(wèn)題。自動(dòng)化集裝箱碼頭真實(shí)生產(chǎn)場(chǎng)景中TOS與ECS系統(tǒng)交互數(shù)據(jù)量小,采用數(shù)據(jù)庫(kù)方式是最佳選擇。
2.3 TOS-ECS接口數(shù)據(jù)內(nèi)容與格式
TOS發(fā)往ECS的是作業(yè)指令,ECS發(fā)往TOS的是作業(yè)狀態(tài)和設(shè)備狀態(tài)。
(1)作業(yè)指令:主要包括新作業(yè)指令、取消或更新作業(yè)指令、翻箱命令、重試命令等。作業(yè)指令可以指定裝卸設(shè)備,也可以不指定裝卸設(shè)備??梢园错樞虬l(fā)布多條工作指令來(lái)創(chuàng)建作業(yè)列表,要么針對(duì)特定裝卸設(shè)備,要么由裝卸設(shè)備自由選擇作業(yè)列表。
(2)作業(yè)狀態(tài):包括啟動(dòng)/結(jié)束一條具體任務(wù)、激活一條任務(wù)、接近抓箱/放箱位置、集裝箱抓箱/放箱動(dòng)作、OCR識(shí)別集裝箱、請(qǐng)求取箱/放箱位置(象翻箱動(dòng)作)、集裝箱落位(象OCR拍攝平臺(tái))、鎖頭仍處于閉合狀態(tài),等待進(jìn)一步動(dòng)作、任務(wù)指令錯(cuò)誤等。
(3)設(shè)備狀態(tài):裝卸設(shè)備報(bào)告他們的常規(guī)狀態(tài),不管他們是否在執(zhí)行作業(yè)。象定時(shí)“心跳”監(jiān)控、裝卸設(shè)備位置和可用性信息、請(qǐng)求新的作業(yè)命令。
傳輸?shù)臄?shù)據(jù)可以是ASCII字符或二進(jìn)制數(shù)據(jù)的形式。PEMA標(biāo)準(zhǔn)提供了3種實(shí)現(xiàn)方案:XML,SQL,二進(jìn)制消息。數(shù)據(jù)格式、通信協(xié)議也可以自定義,象ABB公司定義了AALP(ABB應(yīng)用層協(xié)議),規(guī)定好消息頭、消息體,通過(guò)Socket通信方式收發(fā)數(shù)據(jù),按AALP開發(fā)的TOS軟件可以與ABB的設(shè)備控制系統(tǒng)通信。
3 TOS-ECS數(shù)據(jù)庫(kù)接口設(shè)計(jì)
3.1 數(shù)據(jù)庫(kù)設(shè)計(jì)原則
自動(dòng)化集裝箱碼頭裝卸作業(yè)流程主要包括裝船作業(yè)、卸船作業(yè)、提箱作業(yè)、收箱作業(yè)、移箱作業(yè)。生產(chǎn)作業(yè)過(guò)程包括岸橋裝卸、水平搬運(yùn)、場(chǎng)橋堆碼3個(gè)環(huán)節(jié)。TOS-ECS接口數(shù)據(jù)庫(kù)設(shè)計(jì)要覆蓋所有作業(yè)流程、作業(yè)環(huán)節(jié)必要的交換信息。TOS與ECS交互的內(nèi)容需要包括堆場(chǎng)地圖信息、作業(yè)任務(wù)、作業(yè)任務(wù)狀態(tài)、裝卸設(shè)備狀態(tài)。堆場(chǎng)地圖信息包括所有場(chǎng)箱位的集裝箱信息。作業(yè)任務(wù)要指定抓箱位置、放箱位置、要操作的集裝箱編號(hào)。作業(yè)任務(wù)狀態(tài)保存作業(yè)執(zhí)行進(jìn)度。裝卸設(shè)備狀態(tài)包括設(shè)備控制模式、設(shè)備位置。即數(shù)據(jù)庫(kù)至少要包括堆場(chǎng)地圖表,作業(yè)任務(wù)表,設(shè)備狀態(tài)表。
(1)堆場(chǎng)地圖表:按實(shí)際堆場(chǎng)規(guī)格保存每一個(gè)場(chǎng)箱位的集裝箱信息,以箱區(qū)號(hào)、貝號(hào)、排號(hào)、層號(hào)為主鍵,集裝箱信息包括集裝箱編號(hào)、類型、重量、箱門朝向。
(2)作業(yè)任務(wù)表:以任務(wù)編號(hào)為主鍵,當(dāng)前執(zhí)行狀態(tài)(新建、開始、完成、錯(cuò)誤、取消等)、集裝箱編號(hào)、作業(yè)的起點(diǎn)位置、終點(diǎn)位置、起點(diǎn)類型、終點(diǎn)類型,優(yōu)先級(jí)、執(zhí)行本條作業(yè)任務(wù)的裝卸設(shè)備編號(hào)、集裝箱在拖車上的位置和箱門朝向。
(3)裝卸設(shè)備狀態(tài)表:以設(shè)備編號(hào)為主鍵,當(dāng)前設(shè)備執(zhí)行的作業(yè)任務(wù)編號(hào),設(shè)備操作模式、機(jī)械狀態(tài),設(shè)備的位置。
此外數(shù)據(jù)庫(kù)設(shè)計(jì)還包括以下要點(diǎn):表之間的外鍵引用關(guān)系,各字段取值范圍、命名規(guī)則、編號(hào)規(guī)則,各字段讀寫權(quán)限分配,數(shù)據(jù)類型,表及字段命名要與行業(yè)術(shù)語(yǔ)一致,各表必須包括創(chuàng)建時(shí)間、更新時(shí)間字段。
3.2 數(shù)據(jù)庫(kù)接口設(shè)計(jì)與驗(yàn)證過(guò)程
結(jié)合某碼頭實(shí)際數(shù)據(jù)進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)及接口測(cè)試,以下是接口設(shè)計(jì)、驗(yàn)證的過(guò)程。
(1)數(shù)據(jù)庫(kù)建模:采用PowerDesigner工具建模,完成表名、字段名、數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度、主鍵、外鍵引用、字段是否為空的定義,然后導(dǎo)出Oracle SQL文件,用SQL Developer導(dǎo)入Oracle數(shù)據(jù)庫(kù),完成數(shù)據(jù)庫(kù)的創(chuàng)建。
(2)測(cè)試數(shù)據(jù)準(zhǔn)備:測(cè)試數(shù)據(jù)依據(jù)實(shí)際項(xiàng)目的堆場(chǎng)布局、設(shè)備配置來(lái)設(shè)計(jì),象箱區(qū)數(shù)量、貝位數(shù)、排數(shù)、層數(shù)、設(shè)備數(shù)量,根據(jù)作業(yè)流程設(shè)計(jì)不同的測(cè)試數(shù)據(jù)。不同表的測(cè)試數(shù)據(jù)分別填在Excel文件不同的Sheet中。為簡(jiǎn)化數(shù)據(jù)導(dǎo)入工作,用Winform實(shí)現(xiàn)一個(gè)導(dǎo)入工具。用NPOI類庫(kù)操作Excel,從文件中讀入各Sheet頁(yè)各單元格內(nèi)容。Oracle.ManagedDataAccess.dll操作Oracle數(shù)據(jù)庫(kù)。Excel文件sheetname與數(shù)據(jù)庫(kù)表名稱一致,表頭與數(shù)據(jù)庫(kù)表的各字段名一致,讀取各Sheet各單元格內(nèi)容,按字段名及表名拼接為SQL語(yǔ)句,執(zhí)行SQL語(yǔ)句導(dǎo)入數(shù)據(jù)庫(kù)。導(dǎo)入前禁用外鍵,完成導(dǎo)入后再啟用外鍵,均在代碼中用SQL實(shí)現(xiàn)。
(3)仿真驗(yàn)證:采用AnyLogic仿真工具進(jìn)行多智能體仿真,繪制堆場(chǎng)、船舶、岸橋、AGV、場(chǎng)橋智能體模型,并為智能體添加相關(guān)屬性、方法,編寫業(yè)務(wù)邏輯代碼,與Oracle數(shù)據(jù)庫(kù)連接,用數(shù)據(jù)驅(qū)動(dòng)仿真模型執(zhí)行作業(yè)任務(wù),并用圖表展示測(cè)試結(jié)果。
4 結(jié)語(yǔ)
設(shè)計(jì)良好的TOS-ECS接口對(duì)自動(dòng)化集裝箱碼頭的軟件集成具有非常關(guān)鍵的作用。該文首先介紹了自動(dòng)化碼頭軟件架構(gòu),然后總結(jié)了目前主流的接口技術(shù),并對(duì)各種接口技術(shù)進(jìn)行分析比較,最后介紹了TOS-ECS數(shù)據(jù)庫(kù)設(shè)計(jì)原則、接口設(shè)計(jì)與驗(yàn)證過(guò)程。
參考文獻(xiàn)
[1]楊宇華,張氫,聶飛龍.集裝箱自動(dòng)化碼頭發(fā)展趨勢(shì)分析[J].中國(guó)工程機(jī)械學(xué)報(bào),2015,13(6):571-576.
[2]周曉霞,姚彥龍,吳洲.基于貝加萊PCC架構(gòu)的自動(dòng)化碼頭調(diào)度管理與控制系統(tǒng)[J].自動(dòng)化博覽,2016(5):104-107.
[3]陳怡璇.“不安分”的程序員——訪上海振華重工電氣有限公司副總經(jīng)理葉軍[J].上海國(guó)資,2014(12):90-92.
[4]何鋼,張耀周,李鋒.集裝箱自動(dòng)化碼頭關(guān)鍵技術(shù)[J].港口科技,2017(2):6-13,18.
[5]劉峰,鄂海紅. 基于海量數(shù)據(jù)的消息隊(duì)列的性能對(duì)比與優(yōu)化方案[J].軟件,2016,37(10):33-37.