當前位置:主頁 > 房產 > 財經新聞 > 正文

數控銑床Internet遠程控制的一種實現_4

未知 2019-11-15 14:24

  因特網的分布廣泛使得建設基于因特網的遠程控制系統成為一種可能。基于因特網的遠程控制的特點有以下幾點:

涩情五月  傳輸通道是因特網。使用的協議是tcp/ip協議。因此, 對于采用因特網技術開發出來的遠程控制技術,可以在采用tcp/ip協議的網絡上使用, 一般不需要修改。

  系統開發周期短、充分利用了現有的網絡資源; 維護費用小。

涩情五月  具有很高的靈活性, 實現了真正的無處不在的遠程控制。

涩情五月  基于因特網的遠程控制技術是不斷發展的技術。隨著因特網技術的發展, 基于因特網的遠程控制技術也在不斷的發展。

  存在不確定的時延問題。由于網絡有限帶寬和不確定路由造成的大且變化的網絡時延, 網絡阻塞也可能造成的數據包丟失。

  目前, 基于因特網的機器人控制系統普遍都采用了客戶/服務器(c/s)網絡模型, 通過網絡發出控制命令。

遠程控制的實現方法

  建立遠程控制的構架, 使的在任何一臺連接到因特網的電腦上都可以通過瀏覽器控制異地數控銑床的工作狀態。

涩情五月  為了實現以上功能, 首先得建立一個本地控制函數, 此函數功能以動態鏈接庫形式表現出來。其次,以網頁的形式設計一個控制銑床的頁面。設計一個服務器上運行的servlet, 通過動態鏈接庫調用本地函數,把遠程控制的命令轉化為控制指令。

  筆者用jbuilder建立servlet,接受網頁信息和調用類函數;建立一個本地函數。用frontpage設計網頁。用c++builder編寫一個本地函數的動態鏈接庫dll,它能快速調用advantech驅動軟件包,實現對底層數字量i/o卡的控制。

系統總體設計

  基于internet的數控銑床的遠程控制系統的結構如圖1所示。這是一個典型的三層b/s結構。

  第一層是前臺即瀏覽器。用戶通過瀏覽器訪問該系統而無需安裝任何軟件。 用戶在網頁上輸入控制銑床的運動信息比如:

  x軸、y軸、z軸三方向的進給、停止, 主軸的轉動以及停止。

涩情五月  第二層servlet是運行在jbuilder自帶的服務器tomcat4.0上的小程序。servlet負責調用本地函數,并把瀏覽器傳送的信息轉化成本地函數指令。

涩情五月  第三層是數控銑床的本地控制系統。本地控制系統執行本地函數的發出的命令, 并將自己的狀態返回給本地函數,本地函數把這些狀態信息傳遞給servlet。本系統中由bordland c++builder 進行遠程控制,建立了一個dll動態的鏈接庫,調用本地函數。本地函數是jbuilder建立的類函數, 此函數的功能由dll實現。

  數控教學銑床的工作臺是由步進電機實現控制的。采用信號發生器發出的給定脈沖(cp)控制步進電機的旋轉步數,dir的高低電平來控制電機的正反轉。

  可以改變脈沖頻率來調節銑床進給的快慢。

軟件的設計

  c++builder撰寫動態鏈結函式庫dll建立dll專案的方式和一般應用程式大致相同。使用dll有兩種方式:明確呼叫和不明確呼叫。

涩情五月  不明確呼叫即靜態調用法。該方法是利用鏈結一個記載輸入函式的函式庫檔案(lib), 來進行鏈結, 如此系統會自動將該dll載入,同時在使用完畢后將其釋放, 不必由使用者(也就是呼叫它的函式)來進行載入及釋放的動作。所謂明確呼叫(explicited linked)是使用loadlibrary函式來載入dll。使用freelibrary函式來釋放dll。使用明確呼叫的優點在于,可以完全控制該dll的載入及釋放, 最有效地利用系統資源。在本系統中我們采用此種方式:

  static{system.loadlibrary(project9);} //調用系統加載庫

java與 c++的連接方法

涩情五月  jbuilder是java的開發工具,而c++builder是c的開發工具。java連接c++的方法是,先將c++語言所編寫的程序構造成動態鏈接函數庫(dll), 再由java程序調用 dll庫中的函數,使得dll庫中函數被java看作是方法(method)。dll我們在前面已經介紹過。不過這種方法是直接用其他編程語言所提供,而不是java所編寫, 所以將其方法稱為原生方法(native method)。我們采用的是jni方法來進行兩者之間的接口。

  javasoft公司提出了jni的標準接口。它使運行于java虛擬機上的java代碼與用其他語言編寫的庫和應用程序能夠相互調用。jni允許本地方法建立、使用和更新java對象,調用java方法和引用java類。也允許java代碼調用c、c++、assembly等語言編成的程序和庫。

實現步驟

  開發環境: 操作系統為 windows2000平臺java applet的開發工具為borland jbuilder8,本地方法的開發工具為bordland c++builder 6。

  jnijava native interface specification(java本地接口規范)jni是一種編程接口,下面將按步驟介紹使用jni的方法。

  ava類中要用本地代碼實現的方法用native修飾, 構造類初始化器裝入實現本地方法的庫。

  譯 java類, 并用javah工具生成 c++語言頭文件, jsvah為jdki1.2帶的一個工具。

涩情五月  編寫本地代碼并編譯成project5.dll,放入winnt的system32目錄下, 以使java vm能找到這個庫。

涩情五月  servlet rvlet為服務器端的java的小程序,與運行在客戶端的applet程序相對應,他們都是運用java語言編寫的程序。servlet沒有main方法,只有一些特定的方法用于啟動, 執行, 和退出。它可以與運行在客戶端的applet程序進行交互,也可以直接與客戶端的html頁面交互。servlet是對支持java的服務器的一般擴充,最常見的用途是擴展web服務器,提供非常安全的、可移植的、易于使用的cgi替代品。servlet完全運行在java虛擬機上,由于在服務器端運行, 因此它不依賴于瀏覽器的兼容性。

涩情五月  在《form》標記中調用servlet。html格式使用戶能在 web頁面(即從瀏覽器)上輸入數據, 并向 servlet提交數據。遠程控制頁面如圖2所示。

結束語

  以有代表性的數控銑床控制機構為研究對象,從理論和實現方法上對基于因特網的遠程控制系統進行了研究。運用c++builder、jbuilder實現了跨平臺的操作,最終完成數控教學銑床的遠程控制。

標簽