李 蓓
Super-ID系統即超聲波定位系統,簡稱S-ID系統,是利用超聲波對移動物體所在的三維位置進行實時準確、并且非接觸性地檢測和定位的高性能系統。三維實現的超聲波定位系統,比以往系統更加直觀和精確。
S-ID系統是通過實時檢測、控制現場作業對象的移動狀況,從而,具體且準確地指導作業現場人員的操作,實現對存儲貨位過程中無差錯管理的系統。系統通過監測作業狀態,從而改善設備的位置和布局,提高作業效率和倉庫利用率,無需人工的貨位確認,徹底排除了人為過失。
一、基于.NET的超聲波定位系統的關鍵技術介紹
(一)系統技術簡介
S-ID技術的原理是在固定的三個空間坐標上設置三個超聲波接收點,即受信機,被測物(發信機)間斷發射超聲波,通過測量三個接收點超聲波到達的時間,換算為距離,從而得到被測物的空間坐標。系統構成圖如圖1所示。

利用鋰電池供電。每隔一定時間向受信機發送超聲波,當收到受信機發回的紅外線后,再發送超聲波。
2受信機
在接收到發信機發送的超聲波后,將位置信息傳回控制器,然后發送紅外線,確定收到信息,此時發信機再發送超聲波。
3控制器
控制程序通過控制器可以向發信機和受信機發送指令,也可以通過控制器接收來自發信機和受信機的信息。然后將信息發送給上位PC進行處理。

(二)3D編程技術
1D3D
D3D通過HAL(硬件抽象層)提供設備獨立;HAL是由設備制造商提供的設備指定接口,D3D直接使用顯示硬件來工作,程序才能不需要和HAL交互。應用程序使用D3D暴露的一系列接口和方法而不是HAL提供的機制來使用顯示設備。設備制造商在WINDOWS的各個平臺上(XP,2000,98等)實現32位編程。HAL可以是顯示驅動器的一部分,或和設備驅動器通過一個驅動器生產商定義的接口來通訊的獨立DLL(動態鏈接庫)。
D3D HAL由芯片制造商、主板生產商或OEM實現。HAL僅僅實現設備依賴的代碼并不競爭的執行。如果硬件沒有執行一個功能,HAL就不會將其作為硬件功能來報告。另外。HAL并不驗證參數,D3D在調用HAL之前執行參數驗證。在微軟DirectX 9。HAL可以有三種不同的頂點處理模式:軟件頂點處理、硬件頂點處理和同一個設備上的混合頂點處理。純設備模式是HAL設備的變量。純設備類型僅僅支持硬件頂點處理,并僅僅允許應用程序查詢狀態的一個小的子集。另外,純設備僅僅在有最小化容量級別的適配器上使用。
2OpenGL
OpenGL是用于開發簡捷的交互式二維和三維圖形應用程序的最佳環境,任何高性能的圖形應用程序,從3D動畫、CAD輔助設計到可視化仿真,都可以利用OpenGL高質量、高性能的特點。OpenGL已成為獨立于應用平臺的圖形標準,一個典型的OpenGL應用程序可以在任何平臺上運行一只需要使用目標系統的OpenGL庫重新編譯一下。
OpenGL非常接近硬件,是一個圓形與硬件的接口,包括了100多個圖形函數用來建立三維模型和進行三維實時交互。QpenGL強有力的圖形函數不要求開發人員把三維物體模型的數據寫成固定的數據格式,也不要求開發人員編寫矩陣變換、外部設備訪問等函數。大大地簡化了編寫三維圖形的程序。由于微軟在Windows中包含了OpenGL,所以OpenGL可以與Visual系列開發工具緊密接臺,簡單快捷地實現有關計算和圖形算法,并保證算法的正確性和可靠性。簡單地說。OpenGL具有建模、變換、色彩處理、光線處理、紋理影射、圖像處理、動畫及物體運動模糊等功能。

OpenGL的作用機制是客戶(client)/控制器(sever)機制,即客戶(用OpenGL繪制景物的應用程序)向控制器(即OpenGL內核)發布OpenGL命令,控制器則解釋這些命令。大多數情況下,客戶和控制器在同一機器上運行。正是OpenGL的這種客戶/控制器機制,OpenGL可以十分方便地在網絡環境下使用。因此Windows NT下的OpenGL是網絡透明的。OpenGL圖形庫被封裝在一個動態鏈接庫內(OpenGL,DLL)。受客戶應用程序調用的QpenGL函數都先在OpenGL32.DLL中處理,然后傳給控制器Winsrv.DLL。OpenGL的命令再次得到處理并且直接傳給Win32的設備驅動接口(De-vice Drive Interface。DDI),這樣就把經過處理的圖形命令傳送給視頻顯示驅動程序。
而在三維圖形加速卡的GLINT圖形加速芯片的加速支持下,兩個附加的驅動程序被加入這個過程中。一個OpenGL可安裝驅動程序(Installable Client Driver,ICD)被加在客戶這一邊,一個硬件指定DDI (Hard—ware-specific DDI)被加在控制器這邊,這個驅動程序與Win32 DDI是同一級別的。
(三)3DSTATE引擎介紹
3DSTATE 3D圖形引擎是一套3D圖形開發環境,其為通用3D軟件開發提供了所有的底層支持。使用此開發環境開發3D軟,件,用戶不必了解引擎的工作原理,只需將精力放在自身軟件的邏輯處理上,剩下的工作將由引擎來完成。
13D STATE3D引擎的特性
(1)高性能
3D STATE 3D引擎可獲得較高的FPS(Frames Per Second)值,它在渲染速度(FPS)已接近硬件的理論值。它的畫面質量屬藝術級的,引擎內部還帶有許多特效制作函數,用它們可制作出諸如半透明彩色板、爆炸、水下、水面波紋、3D動畫、燈光、影子等特效。
(2)新技術
引擎在渲染速度和圖像質量上具有高于其它基于PC機上的引擎的性能。使用3D STATE的3D引擎使得向任意程序添加3D內容變得簡單。
(3)簡單易用
在引擎SDK中,沒有任何新的數據結構和類,都只是基本的APl函數,綜合使用這些API函數。即可在較短的時間里開發出高性能的8D程序來。
(4)完全的自我控制
在引擎中,只需通過其API函數在位或字節級別上控制引擎的各方面行為,且在使用本引擎時,仍然可以繼續使用其他引擎。
(5)通用性
引擎可用于任何需要3D內容的程序。且針對戶內和戶外式的程序都做過了優化處理。
(6)完整的開發工具包
引擎的開發包中。附帶以下工具:
SDK:在用戶所熟悉的開發環境中,可以使用它的API函數集對3D世界進行完整的控制。
World Builder:用它可以通過簡單的鼠標拖放操作直接設計出復雜的3D世界。
Terrain Builder:用它可將位圖直接轉換
為真實的3D地形。
World Text Editor:用它可直接編輯3D世界文件。
World Viewer:用它直接可以打開并看到3D世界文件的內容,便于對世界文件的修改。
(7)DLL技術
由于3D STATE的3D圖形引擎采用DLL技術,當引擎版本升級時,用戶只需用新的DLL替換老的DLL即可,而不需要重新編譯程序。
2.3DSTATE3D引擎基礎
(1)3D坐標系
3D坐標系表示為:X軸——其正方向從屏幕里指向屏幕外;Y軸一其正方向從左指向右:z軸——其正方向從下指向上;原點——為(0.0.0)此坐標系也就是引擎中的世界坐標系,它屬于絕對坐標系。所有其它坐標系將相對于此坐標系定義,如組的坐標系、目標的坐標系以及攝像機的坐標系,他們都是相對坐標系。在實際使用時,使用相對坐標系往往比絕對坐標系更方便。
(2)句柄
在引擎中,所有目標均有一個句柄(DWORD值),用它來標識一個特定的目標。所有面向特定目標操作的APl函數均接收這個句柄,以確定要操作的對象。引擎API函數中,幾乎各組API中均有一個函數STATEZ_is(…),我們可用此函數來判定給定的句柄是否指定類型目標的標識。
(3)編輯器模式(Editor Mode)與觀察者模式(Viewer Mode)
引擎有兩種運行模式,即編輯器模式和觀察者模式。這兩種模式的選用由世界文件加載函數STATE_engine_load_world在啟動引擎時一次性設置。并且不可實時切換,缺省為觀察者模式。引擎運行時可由STATE engine_is_editor mode來識別正在運行的模式。
二、基于.NET的超聲波定位系統的實現
(一)設備與控制器之間的技術連接
1C/S模型
即客戶端,服務器模型,是一種非對稱式編程模式。對于這種模式而言,其中一部分需要作為服務端,用來響應并為客戶提供固定的服務;另一部分則作為客戶端用來向服務端提出請求或要求某種服務。在實際應用中,程序可以同時包含客戶端和服務端。在此系統中。服務端即控制器。
2連接方式
服務器套接口連接中,考慮采用賦給控制器專用端口(50D3)來實現連接。在建立了與控制器套接口的連接后,應用程序會打開客戶端的配置文件,對數據庫信息進行讀取。在與控制器建立連接時,如果連接未成功,則結束連接請求,并提示連接失敗;若連接成功,就會對客戶端消息進行處理并等待控制器的響應。
(二)數據庫操作實現
系統實現中的應用程序頁面與數據庫之間的操作主要是通過DataTable完成的。DataTable是ADO,NET中的一個類,可用于在程序中以臨時表的形式填充數據。程序員可以對DataTable進行定制,通過Spread表格工具實現數據庫數據的在線編輯、更新、刪除,以及對顯示數據進行排序、打印等,這些都方便了系統編程工作。
(三)系統流程
系統的主要工作包括:入庫管理、出庫管理、庫存管理等。
入庫作業流程包括:設備連接、確定入庫明細、進行入庫操作、完成入庫。如圖2所示。
出庫作業流程包括:設備連接、確定出庫明細、進行出庫操作、完成出庫。
(四)系統功能實現
1系統界面
當用戶初次使用本系統時,需要分別對控制器、發信機、受信機進行設置,此時系統會把這些值存入數據庫中,下次使用時,上一次設置的值即為默認值。點擊默認設置以后,用戶需要確定要進行的操作。即入庫作業或出庫作業,選擇后下拉菜單和文本框被激活,可以通過它們確定貨物的種類及數量,點擊“OK”,進入作業監控界面。如圖3所示。
2連接界面
用戶輸入欲連接控制器的IP地址及端口號。然后點擊“Connect”按鈕,如已連接,則提示已連接控制器;如連接成功,則提示連接成功并返回系統界面;如未連接成功,則提示連接失敗;若點擊“Close”按鈕,則關閉與控制器的連接。如圖4所示。
3發信機界面
用戶輸入要使用的發信機數量,發送時間間隔。點擊“Set”按鈕確定。然后逐一設置發信機地址,以“Finish”按鈕完成設置。如圖5所示。
4受信機界面
先設置受信機地址,然后該地址所對應的受信機會自動在下面的下拉菜單中出現,在下拉菜單中選擇受信機,并逐一設置坐標,以“Finish”按鈕完成設置。如圖6所示。
5在庫管理界面
用戶可以通過此界面查詢、修改或刪除貨物。如圖7所示。
(1)查詢
在文本框中輸入一個貨物名稱。然后意擊“Search”按鈕,如存在。則在表格中顯示其明細;如不存在,則提示貨物不存在;若直接點擊“Search”按鈕,則在表格中顯示所有貨物明細。
(2)修改
在表格中有內容的情況下,修改內容,然后點擊“Modify”按鈕,如修改成功,則提示修改成功并修改數據庫;否則修改失敗。
(3)刪除
在文本框中輸入一個貨物名稱,然后點擊“Delete”按鈕,如該貨物存在,則提示是否確定要刪除,選擇“是”,則刪除,選擇“否”。則返回;如該貨物不存在,則提示貨物不存在。或者在表格中有內容的情況下,選擇一行,然后點擊“Delete”按鈕。也可進行刪除操作。
6作業監控界面
用戶可以利用光標鍵或鼠標控制鏡頭在三維空間內的移動,也可以單擊鼠標左鍵切換跟蹤對象,或單擊鼠標右鍵切換自由移動和跟蹤兩種視角。在屏幕左上角顯示了當前兩個發信機的坐標(兩發信機在圖中分別以紅、藍兩種顏色色塊表示)和用戶要的貨物,在此例中為一臺顯示器,當發信機移動到顯示器位置時,會彈出提示,詢問是否要入庫,選擇“是”,則操作完成,同時修改數據庫,程序返回系統設置界面;如選擇“否”,則繼續監控作業,如圖8所示。出庫情況與此相同,不再贅述。
研究與開發超聲波定位系統,必將豐富和完善物流管理系統的業務功能,簡化庫存管理工作程序,大大提高工作效率,改善工作質量,對促進物流信息化建設具有一定的應用價值。