網絡化操作和遠程控制成為很多企業(yè)和科研機構鉆研的方向,要實現(xiàn)對現(xiàn)場設備進行管理和控制,就需要與這些設備進行通訊連接,進行相關數據交換,以達到管理、控制和監(jiān)控的目的。同樣嵌入式領域中,為了達到遠程監(jiān)控,也必須基于網絡。在水下或者惡劣環(huán)境作業(yè)的機械手,在特定的時候需要遠程控制。網絡遠程控制機械手進行作業(yè)成為了可能。
在遠程控制中,通信是值得討論的技術問題。傳統(tǒng)的通信只是局限于脫離網絡的通信,如兩個 PC 機之間通信,或者是上位機為 PC 機,下位機為單片機。在遠程控制機械手系統(tǒng)中,采用的是基于 Internet 的遠程串口通信,遠程串行通訊是指客戶端與下位機或通訊對象之間通過串口進行的遠距離通訊,而傳統(tǒng)的遠程通訊只是它其中的一部分,通過客戶端傳送指令給下位機至控制部件,從而實現(xiàn)遠程監(jiān)控。
1、遠程串口通訊系統(tǒng)的基本構架及實現(xiàn)
(一)基本構架概述
在軟件系統(tǒng)體系結構中,C/S 和 B/S 是當今世界開發(fā)模式技術架構的兩大主流技術。
C/S 模式采用的是兩層體系結構,即客戶端和服務器,通過該架構可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務合理分配到 Client 端和 Server 端來實現(xiàn),客戶端進行顯示界面和事務處理,服務器進行數據處理和應答請求處理。在客戶端需要安裝客戶端軟件才能訪問服務器。不但軟件升級不便,而且也增加了客戶端的負載和投資成本。
B/S(Browser/Server)結構即瀏覽器和服務器結構。它是隨著 Internet 技術的興起,對 C/S 結構的一種變化或者改進的結構。在這種結構下,用戶工作界面是通過瀏覽器來實現(xiàn),極少部分事務邏輯在前端(Browser)實現(xiàn),但是主要事務邏輯在服務器端(Server)實現(xiàn), 數據處理則由數據庫服務器進行,形成所謂三層結構。這樣就大大簡化了客戶端電腦載荷,減輕了系統(tǒng)維護與升級的成本和工作量,降低了用戶的總體成本,但僅在 B/S 模式下還不能直接實現(xiàn)與被控對象進行數據通訊。
基于 B/S 模式實現(xiàn)與被控對象進行數據通訊的遠程串行通訊采用四層體系結構,增加了一個控制層,瀏覽器端為表示層,WEB 服務器為功能層,數據庫服務器為數據層,控制層為通過 WEB 服務器傳送指令到控制服務器,控制服務器作為上位機,通過串口控制下位機,直到控制執(zhí)行部件。這里不僅增加了控制層,而且對功能層和數據層也都進行了擴展。這種體系結構即具有 B/S 模式的優(yōu)良特性,又增加了控制服務功能,充分利用了現(xiàn)有的網絡資源和工業(yè)現(xiàn)場資源,并且使兩者有機地結合在一起,達到了與被控設備通過串口進行遠程通訊的目的。表示層、功能層、數據層和控制層既有一定的相互聯(lián)系又具有相對獨立性,各層是通過 Internet 相連接,通過 HTTP 協(xié)議和串口通訊協(xié)議進行信息通訊。如圖 1 所示
(二)遠程串口通訊各部件的功能及實現(xiàn)
?。?)瀏覽器端:用戶通過瀏覽器登陸 web 服務器,通過輸入用戶名和密碼,和數據庫中的數據比較驗證通過后,成為合法的用戶,然后在相應的表單中輸入控制數據。按提交按鈕后,數據傳送到 web 服務器。瀏覽器端再作為顯示端,能夠顯示遠程執(zhí)行部件的反饋位置。
?。?)WEB 服務器:能夠接收瀏覽器端發(fā)送過來的控制數據,并處理相應的數據后,把數據發(fā)送給控制服務器,或者直接作為控制服務器,通過串口把數據發(fā)送給執(zhí)行部件。
?。?)數據庫服務器端:存放合法用戶的用戶名和密碼,以進行檢驗。同時,在發(fā)送執(zhí)行數據時,如果需要特定的轉換數據,也可直接到數據庫中獲取。實現(xiàn)系統(tǒng)的數據處理,并把運行結果反饋給 web 服務器。
(4)控制服務器:作為直接通過串口發(fā)送命令給執(zhí)行部件的上位機,或者直接由 web 服務器本身擔任。接收 web 服務器從瀏覽器端接收過來的數據。通過串口通訊協(xié)議及握手信號,把數據發(fā)送給下位機。
?。?)下位機:通過串口通訊協(xié)議接收控制服務器(上位機)的執(zhí)行數據,再通過相應的驅動電路,帶動執(zhí)行部件工作。
(6)執(zhí)行部件:按照傳送過來的指令進行工作,并通過傳感器把當前執(zhí)行部件的位置和姿態(tài)化作數據再通過串口回送到控制服務器,直至到達瀏覽器端,使得用戶不在執(zhí)行部件的現(xiàn)場也可以遠程控制并得到部件執(zhí)行之后的效果
在瀏覽器中,登陸驗證后,通過 HTTP 協(xié)議,把數據傳送給 web 服務器,再傳給控制服務器??刂品掌髯鳛樯衔粰C,打開串口,通過通訊協(xié)議把數據發(fā)送給下位機。下位機根據通訊協(xié)議,收到上位機發(fā)送過來的數據,并啟動 D/A 轉換器,控制執(zhí)行部件。同時通過傳感器把執(zhí)行部件的姿態(tài)反饋給上位機。下位機可以為單片機、DSP、ARM 等微處理器。
2、遠程控制作業(yè)機械手系統(tǒng)的實現(xiàn)
基于 web 的機械手的遠程控制,在高溫、水下等惡劣的工作環(huán)境下,需要遠程控制機械手實行操作。在遠程通過瀏覽器輸入操縱數據,通過網絡傳送給主控機,主控機采用一般的 PC 機,主控機通過串口把數據發(fā)送給下位機,該作業(yè)機械手系統(tǒng)中采用 89C51 單片機作為直接控制計算機?,F(xiàn)場通過監(jiān)控設備把作業(yè)機械手的姿態(tài)反饋到遠程控制機,同時通過傳感器采集現(xiàn)場數據返回到控制機。圖 2 為遠程控制作業(yè)機械手的系統(tǒng)示意圖。
在瀏覽器端登陸主控機擔當的服務器,取得合法身份驗證之后,發(fā)送數據。主控機收到信息后,通過串口把數據發(fā)給直接控制機 89C51。
?。ㄒ唬?單片機系統(tǒng)的硬件組成部分
?。?) 以 89C51 為微處理器的為核心,擴展 RAM6254、鎖存器、時鐘電路、復位電路等。
?。?) 串口通訊電路:主控機向 89C51 傳送數據時,采用串口通信,常用的串行通信總線接口是美國電氣協(xié)會 EIA 制定的 RS-232C。鑒于單片機串行口 TXD,RXD 均為 TTL 電平,而 PC 機配置的是 RS-232C 標準串行接口,在應用時,必須進行電平轉換。在作業(yè)機械手控制系統(tǒng)中,采用 MAX232 作為接口轉換芯片。
?。?) 數模轉換電路:通過串口,主控機把機械手的動作指令數據發(fā)送給 89C51,89C51 通過總線把數據發(fā)送給 D/A 轉換電路數據端口,在該系統(tǒng)中采用 DA0832 數模轉換芯片來實現(xiàn)。
?。?) 驅動電路:機械手的作業(yè)動力來自液壓系統(tǒng),采用伺服閥來實現(xiàn)對機械手的回路控制,為驅動伺服閥,設計相應的驅動電路
?。?) 模數轉換電路:用角度電位計和位移傳感器采集機械手的實際操作數據,傳感器標定之后,采集的位移量和角度模擬信號要轉換數字信號傳送給 89C51,再向上發(fā)送,該系統(tǒng)中采用 AD0809 模數轉換芯片來實現(xiàn)。
?。ǘ?主控機與單片機軟件系統(tǒng)的實現(xiàn)
?。?) 主控機程序
主控機由 PC 機擔任,用 VC++開發(fā)操縱界面,通過串口控件 MSComm 對串口通訊協(xié)議進行串口初始化,從后臺數據庫 SQLServer 中提出從 WEB 發(fā)送的控制機械手的數據,控制機械手各個關節(jié)的執(zhí)行的角度量,同時等待接收 89C51 回送回來的數據。軟件系統(tǒng)的流程圖如圖 3 所示。
?。?) 89C51 單片機主程序
89C51 作為直接控制計算機,用 C 語言來編寫主程序,初始化串口,分配內存緩沖區(qū)存放接收數據,開中斷,等待外部以中斷形式進行數據的發(fā)送和接收。89C51 的主程序流程圖如圖 4 所示。
(3) 89C51 中斷處理子程序
中斷子程序中首先清除中斷標志,然后判斷是接收還是發(fā)送引起的中斷,根據相應的中斷源進行處理。89C51 中斷處理子程序的流程圖如圖 5 所示。
3、 結束語
本文作者創(chuàng)新點在于把 89C51 單片機與機械手的作業(yè)聯(lián)系起來,通過網絡遠程通信達到了遠程控制機械手實驗室的實現(xiàn),為遠程控制作業(yè)的研究提供了一個具體的實例參考,目前該系統(tǒng)實現(xiàn)了網上發(fā)送數據到主控機,存儲在數據庫中,需要手工在主控機調動數據來實現(xiàn)對機械手的控制。能夠完全脫離人的介入,直接通過網絡來控制作業(yè)還在進一步的研究中。實驗應用和市場證明,在網絡現(xiàn)代化的今天和未來,遠程通信必將出現(xiàn)在未來的人類生活中,有可觀的研究意義和實用價值。