• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于B/S結(jié)構(gòu)的Java串口通信

    2014-04-29 19:32:58吳曉燕王飛吳海坤
    電子世界 2014年21期

    吳曉燕 王飛 吳海坤

    【摘要】本文介紹的是數(shù)字糧庫信息化軟件系統(tǒng)的智能通風模塊,系統(tǒng)建設(shè)了一個綜合性多功能的糧庫信息化管理網(wǎng)絡平臺。平臺系統(tǒng)基于B/S結(jié)構(gòu),實現(xiàn)在線業(yè)務處理、信息發(fā)布、智能控制的目的。其中通風模塊的通風狀態(tài)檢測,通過串口發(fā)送指令控制通風設(shè)備,接收串口指令顯示通風設(shè)備狀態(tài)。系統(tǒng)在Java程序中使用comm.jar開發(fā)包編程實現(xiàn)串口通信。

    【關(guān)鍵詞】智能通風;狀態(tài)監(jiān)控;Java串口通信

    引言

    Java由于具有開放性、平臺無關(guān)性和面向?qū)ο蟮忍匦?,使之成為一個理想的軟件開發(fā)平臺[1]。因此智能通風[2]模塊與下位機的通信方式選擇RS232串口通信。本文使用Java開發(fā)基于B/S結(jié)構(gòu)的智能通風狀態(tài)監(jiān)控串口通信程序,具有很強的實用意義。

    1.智能通風結(jié)構(gòu)模式

    智能通風模塊的物理結(jié)構(gòu)為B/S(Browser/Server)模式,即瀏覽器/服務器模式,用戶可聯(lián)網(wǎng)通過Web瀏覽器訪問系統(tǒng),連接服務器對各通風設(shè)備進行監(jiān)控維護。

    服務器通過串口與通風設(shè)備進行通信,其流程如圖1所示。進入頁面,發(fā)送狀態(tài)查詢數(shù)據(jù)幀查詢通風設(shè)備狀態(tài)。若超過T0時間則提示響應失敗。在T0時間內(nèi)設(shè)備有響應則分析返回數(shù)據(jù)幀顯示各通風設(shè)備的狀態(tài)。用戶點擊通風設(shè)備圖標,發(fā)送操作數(shù)據(jù)幀,在T0時間內(nèi)通風設(shè)備進行響應,并返回數(shù)據(jù)。如果通風設(shè)備操作成功則提示操作成功,否則提示操作失敗。若超過T0時間則提示響應失敗。

    圖1 程序流程圖

    2.通風設(shè)備通信協(xié)議

    智能通風通信協(xié)議[3]以幀為基本單元傳輸?shù)?,每幀由幀頭、裝置地址、報文命令碼、報文長度、正文、累加和及結(jié)束符等組成。每個域由一定字節(jié)組成。其中讀寫寄存器的通信協(xié)議采用Modbus協(xié)議。其命令幀格式如圖2所示。

    圖2 讀寫寄存器幀數(shù)據(jù)格式

    3.智能通風設(shè)備監(jiān)控

    智能通風設(shè)備監(jiān)控模塊如圖 3所示,通過選擇倉號顯示該倉號通風設(shè)備的狀態(tài),通風設(shè)備有通風窗、軸流風機、離心風機和空調(diào)等。點擊圖中通風設(shè)備圖標可控制設(shè)備的開關(guān)。

    4.Java串口通信技術(shù)實現(xiàn)

    Sun的J2SE沒有直接提供串行通訊協(xié)議的開發(fā)包,而是以獨立的jar包形式發(fā)布的comm.jar[4],稱之為Java(tm)Communications ?API,是J2SE的標準擴展。提供對RS-232串行端口通訊的支持。

    Java讀寫串口過程主要是調(diào)用Javax.comm包中的comm API函數(shù)。在Javax.comm包中串口的輸入輸出操作是數(shù)據(jù)流形式,在初始化串口波特率和數(shù)據(jù)位的同時,將輸入輸出流和該串口建立一個映射,串口的輸入輸出操作就直接反映在輸入流和輸出流上。通過CommPort類的getInputStream()和getOutputStream()方法即可分別取得端口的輸入流和輸出流。

    串口操作主要包括初始化串口、讀寫串口和關(guān)閉串口等操作。初始化串口操作SB.Initialize()打開串口并配置串口,如果初始化成功返回1,否則返回-1。打開串口需確定串口號和打開方式。

    首先使用javax.comm. CommPortIdentifier類確定是否有可用的通信端口以及為IO操作打開通信端口。其中g(shù)etPortIdentifier 對象得到系統(tǒng)端口列表,open方法可以返回一個CommPort對象。open方法有兩個參數(shù),第一個是String,通常設(shè)置為應用程序的名字。第二個參數(shù)是時間,即開啟端口超時的毫秒數(shù)。當端口被另外的應用程序占用時,將拋出PortInUseException異常。

    接著使用setSerialPortParams方法配制串口靜態(tài)成員變量波特率、數(shù)據(jù)位、數(shù)據(jù)停止位和奇偶校驗。

    讀寫操作使用SB.WritePort(SendMsg)和RevMsg=SB.ReadPortX()函數(shù)中使用in=serialPort.getInputStream()從端口讀取數(shù)據(jù)以及out=serial-

    Port.getOutputStream()往端口寫數(shù)據(jù)。

    5.結(jié)束語

    本文介紹了智能化糧庫系統(tǒng)中的通風模塊,模塊通過發(fā)送接收串口通信數(shù)據(jù)包進行監(jiān)控通風設(shè)備狀態(tài)以及控制通風設(shè)備開關(guān)閉合。系統(tǒng)使用Java的Comm.jar開發(fā)包實現(xiàn)串口通信比較簡單,可移植性好,具有一定的實用性。

    參考文獻

    [1]周海濤,高興鎖,江曉峰.基于java數(shù)據(jù)采集串口通信的設(shè)計和實現(xiàn)[J].微計算機信息,2006(4):141-142.

    [2]陳德發(fā),秦維平,馬飛.智能通風技術(shù)在高大平房倉中的應用[J].糧油倉儲科技通訊,2014,30(1):29-31.

    [3]錢偉青,張茂青,宦洪才,彭芳.基于Modbus協(xié)議的智能通風系統(tǒng)[J].電氣時代,2006(8):110-112.

    [4]伍祥生,王克宏.javax.comm API規(guī)范及其功能[J].微型機與應用,1999,18(6):38-40.

    作者簡介:吳曉燕(1988—),女,安徽安慶人,碩士,從事Java開發(fā)和雷達監(jiān)控設(shè)計工作。

    阿克| 茌平县| 泰顺县| 咸宁市| 平乡县| 溧水县| 洛宁县| 江华| 怀仁县| 广昌县| 武冈市| 屏东市| 伊通| 华容县| 句容市| 普兰店市| 乾安县| 徐水县| 南岸区| 双鸭山市| 密山市| 客服| 北辰区| 英吉沙县| 孝义市| 斗六市| 荥经县| 峡江县| 财经| 岑溪市| 阳东县| 大悟县| 广丰县| 富宁县| 福清市| 青河县| 涟源市| 恩平市| 济源市| 文成县| 婺源县|