隋美娥
(青島港灣職業技術學院 信息與電氣工程學院,山東青島,266404)
輪胎式龍門起重機,簡稱輪胎吊,作為港口集裝箱堆場裝卸的主要設備之一,其工作效率直接關乎海側的橋吊和集卡的協同作業,影響船舶進出港的效率。以青島前灣集裝箱碼頭有限公司二期堆場為例,如圖1所示。由于地理位置限制,部分堆場區域較小,而輪胎吊體積大、成本高,通常堆場配置的輪胎吊數量小于堆場分區數[1]。

圖1 青島前灣集裝箱碼頭有限公司二期堆場圖
多輪胎吊在箱區間調度,經常會出現輪胎吊轉動輪胎90度實現轉場的需求。輪胎吊轉場緩慢,每次轉場都要花費8~10min,為了節能減排,在實際調度中,為使輪胎吊移動距離和轉場次數較少,調度員通常會就近安排輪胎吊進行作業。而目前,輪胎吊只有在工作時根據PLC傳回的信號才知道所在的場區,如果輪胎吊停機,調度室無法得知其位置,對現場實時調度造成很大困擾。為進一步提高生產效率,降低生產成本,方便輪胎吊的實時調度管理,使管理者可以在電子地圖上遠程監視集裝箱堆場內所有輪胎吊的工作狀態和位置,成為亟待解決的問題。
本文為解決上述問題,利用Arduino Mega2560單片機結合定位模塊,設計實現了輪胎吊實時位置監測顯示,并進行了實際硬件測試。
測控系統單元安裝在每一個輪胎吊的駕駛室上,監控系統運行于原來的箱控室內,監控系統以無線通訊的方式與每一個運動的測控單元保持數據雙向傳輸。堆場箱區與輪胎吊定位示意圖如圖2所示。在箱控室內的操作人員可以通過監控系統遠程讀取目標輪胎吊的位置信息,同時,可實時發送控制命令或作業任務至輪胎吊駕駛室。當無新的作業任務下達時,監控系統實時讀取輪胎吊的位置和狀態信息,并將整個工作區的輪胎吊位置顯示在電子地圖上。當有新的作業任務時,操作人員可以利用監控系統的人機交互功能,向系統下達裝載任務。監控系統可以根據作業目標箱區的位置和各輪胎吊的實時位置和狀態,根據設定的目標要求計算出最佳的調度方案[2]。

圖2 堆場箱區與輪胎吊定位示意圖
測控系統的主要任務為通過LCD顯示屏和上位機軟件進行輪胎吊位置信號的實時顯示。這里,要完成控制系統任務,主要分定位檢測,控制處理,顯示監視等功能,其系統整體框圖如圖3所示。通過GPS天線收集衛星信號,GPS模塊獲得衛星數據并進行解析,從而得到經度、維度、時間等重要信息,通過上位機接口與高德地圖進行連接,從而獲得可視化的地理信息[3]。

圖3 系統整體設計框圖
(1)定位模塊:輪胎吊的位置和狀態關乎調度的有效性和科學性,因此,輪胎吊的定位研究是本項目的主要內容之一。室外的運動物體的定位方式大多是基于GPS或北斗系統,GPS差分的定位方式精準,但需要建立專用的基站,價格貴成本高。另外,單GPS模塊的價格根據定位精度不同也有很大的差別,為最大程度的降低成本,本項目擬采用中科微電子ATGM336H的射頻基帶一體化導航芯片,體積小,功耗低,定位模塊標稱定位精度為2 5mCEP,意思有50%的概率能定在半徑為2 5m的圓內,可以滿足現場需求。且此模塊支持 BDS(北斗衛星導航系統)+GPS(美國全球定位系統)雙模聯合定位。多模聯合定位與單 GPS 定位相比,可有效改善惡劣環境,如小區、高架等的衛星遮擋問題,使得定位更準確,定位率更高[4]。
(2)控制模塊:控制處理采用Arduino系列的Mega2560單片機,其具有54路數字輸入輸出端口,可實現串口通信,增加了兩個管腳SDA和SCL支持I2C接口,方便與GPS進行通信及后續的顯示電路連接。
(3)顯示模塊:顯示單元主要完成經緯度的顯示,這里,為使控制系統接線簡單,這里,采用帶I2C總線的LCD1602液晶屏,不需要占用太多接口,后續隨著項目復雜度提高,顯示的信息增多,可以再將其替換為TFT144 128×128液晶顯示屏。
本項目硬件電路主要用到的模塊為,單片機Mega2560,定位模塊ATGM336H,帶I2C總線的LCD1602液晶屏,項目所需要用到的管腳和他們之間的連接,如表1所示,這里,Mega2560的RXD(IO0)與定位模塊的TXD連接,而定位模塊的RXD在實物連接時可以不接,但在Proteus時需連接到Mega2560的TXD(IO1)端口。帶I2C總線的LCD1602液晶顯示屏,利用芯片PF8574和LCD1602組成,集成之后,只需4根線(VCC,GND,SDA,SCL)就可以完成顯示,其中,SCL為時鐘控制線,SDA為數據線,分別接到Mega2560的SCL(IO21),SDA(IO20),其硬件接線圖如圖4所示。

表1 模塊管腳線路連接

圖4 基于Mega2560的GPS定位系統硬件接線圖
軟件的設計內容包括串口通訊模塊,GPS數據的提取算法,GPS數據的保存,GPS位置的顯示。其中,GPS信號的定位檢測以及如何在LCD上顯示相應的經緯度信息,其軟件的控制程序流程圖,如圖5所示。

圖5 GPS信號讀取顯示程序流程圖
2.3.1 GPS 信號讀取及解析
本設計選用GPRMC格式的數據作為定位數據,主要包括定位狀態判斷,經緯度數據的提取,數據的記錄及實時顯示。為方便說明將GPRMC格式簡介如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>
(1)標準定位時間(UTC time)格式:時時分分秒秒 秒秒秒(hhmmss sss)。
(2)定位狀態,A = 數據可用,V = 數據不可用。
(3)緯度,格式:度度分分 分分分分(ddmm mmmm)。
(4)緯度區分,北半球(N)或南半球(S)。
(5)經度,格式:度度分分 分分分分。
(6)經度區分,東(E)半球或西(W)半球
對于本設計,用到第2~6組數據,當第2組數據為字符A時,說明當前定位是有效的,此時第3~6組數據分別是緯度信息和經度信息。在程序實現時,定義Save Data 的struct結構體將需要保存的數據進行定義,如下所示:
struct {
char GPS_Buffer[80];
bool isGetData; //是否獲取到GPS數據
bool isParseData; //是否解析完成
char UTCTime[11]; //UTC時間
char latitude[11]; //維度
char N_S[2]; //N/S
char longitude[12]; //經度
char E_W[2]; //E/W
bool isUsefull; //定位信息是否有效
}Save_Data;
第3組數據為維度(latitude),第4組數據為維度分區(N_S),第5組數據為經度(longitude),第6組數據為經度分區(E_W)。如果第2組數據是字符V時,說明當前是無效定位。
2.3.2 LCD 顯示經緯度信息
完成經緯度的提取后,這一組數據被保存到電腦中的一個文件中,同時,這組數據經相應的轉換后,被映射到地圖的相應的位置上,這樣就實現了實時在線的可視顯示。LCD1602實現經緯度顯示的部分代碼如下所示:
lcd setCursor(0,0); // LCD的第一行
lcd print("LAT:"); // LCD 顯示“LAT:”
lcd print(Save_Data latitude);//GPS 的緯度值
lcd print(Save_Data N_S); //GPS 的維度分區
lcd setCursor(0,1); // LCD的第二行
lcd print("LGT:"); // LCD 顯示“LGT:”
lcd print(Save_Data longitude);// //GPS 的經度值
lcd print(Save_Data E_W); //GPS 的經度分區
delay(10); //延時
為了驗證設計方案的有效性,搭建了實物硬件電路并進行了測試,實驗場所為學校實驗室,圖6為實際硬件電路與實驗效果圖。通過實際硬件測試,LCD屏幕上可以準確顯示當前位置的經緯度信息,將當時實際的經緯度與高德地圖的API接口連接,可以實時顯示其地理位置,很好的解決了定位問題。

圖6 實際硬件電路與實驗效果圖
本項目利用BDS+GPS雙模定位模塊和Mega2560單片機,解決了當前輪胎吊實時調度時,無法準確獲知其具體位置的難題,采用虛擬仿真和硬件實物兩種不同載體,分別驗證了文中所述方法的有效性,為一步調度員進行優化調度奠定基礎。