999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Java的計算機與PLC串口通信研究

2012-04-12 00:00:00邢卓巖
消費電子 2012年18期

摘要:本文對Java實現串行通信的理論進行了分析,給出了一種基于Java語言的計算機與PLC串口通信方案。

關鍵詞:Java;串口通信;計算機;PLC

中圖分類號:TN91 文獻標識碼:A 文章編號:1674-7712(2012)20-0020-01

Java是一種面向對象的,支持網絡通信的程序設計語言,該語言不僅具有C++和Smalltalk語言的諸多優點,還能夠進行網絡通信、實現并發程序設計、對多媒體數據進行控制等,這些特點都決定了Java語言具有強健的魯棒性。再者,Java對不同平臺具有良好的支持性能,可以通過一次編譯實現跨平臺通信和數據傳輸。這個特性幾號了解決了控制程序移植困難的問題,減少了開發周期,降低了開發難度。

PLC的抗干擾能力強、可靠性高、便于應用和集成,因此被應用在許多領域。通過PLC在分布式系統和數據采集系統中實現串行通信已經得到了廣泛的應用。

本文就利用Java語言實現計算機與PLC的串口通信進行了研究。

一、基于Java的串口通信技術

(一)Java本地調用技術。將Java與硬件系統進行關聯需要使用Java本地調用技術,也就是JNI技術。該技術通過Java虛擬機實現與用其他語言編寫的應用程序和庫的相互操作,其作用可以表示為兩者之間的中介。

(二)Javax.comm類庫。串口通信是計算機與其他外部設備進行數據傳輸的主要方式,但是不能直接利用Java語言實現串口通信的編程控制,因此需要借助其他語言如匯編、C/C++等實現對硬件的控制,在此之上利用JNI技術實現對串行通信的控制。雖然過程可能比較繁瑣,但是SUN公司提供了javax.comm類庫,通過該庫調用合適的API即可通過Java實現串口的通信。該庫提供有四個接口,六個類,三個層次。

其中上層類中的CommPortIdentifier可以使應用程序用方法和驅動器對可用的通信端口進行查找,選擇某一端口后打開該端口利用通過其他類庫,如底層類庫等,進行通信。

類CommPort則是一個用來描述底層系統定義的有效通訊端口抽象類,通過該類可以控制通信端口實現傳輸的方法。

底層類中的兩個類庫分別提供串行或并行通訊接口,分別定義通信所需的基本功能的方法。

由于驅動層類不直接提供使用,故本文不做討論。

具體通信流程為:搜索系統中的可用端口,選中其中一個可用端口創建傳輸對象,然后將該對象投射到某一類型的物理通訊設備中,標注該端口打開,就可以通過調用不同的方法進行數據的讀寫和傳遞,使用完畢后關閉該端口。

二、PLC串行通信

(一)通信協議。上位機與PLC之間的通信需要使用到通信協議,實現一次數據或命令的傳輸被稱為一個數據幀或者命令幀,PLC接收到相應的幀后對上位機進行反饋。

一個完整的幀結構包含如下幾個部分:協議幀結構標志、PLC判別節點號、識別碼、正文、FSC幀檢查碼、終止符等。

(二)通信順序。具體的通信順序如下:首先上位機完成定界符的設定后對其控制的PLC設備發送控制幀,然后PLC在接收到定界符后向上位機進行反饋確定兩者之間開始通信,上位機接收到PLC發送的反饋定界符后開始傳輸數據幀;當PLC向上位機發送數據時,同樣需要先發送定界符并確認返回定界符,然后才能開始進行數據傳輸,數據傳輸完畢后以終止符結尾。

三、網絡中的基于Java控制技術的多PLC通信技術

本文使用一臺上位機同時對多個PLC設備進行控制,鑒于上位機只有RS-232接口,故在硬件配置中需要使用RS-232與RS-485的轉換器,通過該轉換器實現利用RS-485網絡對PLC設備的遠程控制。

系統的軟件部分流程為首先進行程序初始化工作,然后與控制設備進行連接,連接成功后通過命令幀或者數據幀實現上位機與不同PLC之間的數據通信和遠程控制。

打開串口代碼為:

try{

PortId=CommPortIdentifier.getPortIdentifiers(PortName);

try{

serialPort=().portld.open(“Serial_Communication”,2000);

}catch(PortInUseException e)

{return InitFail};

}try{

In=SerialPort.getInputStream();

Out=SerialPort.getOutputStream();

}catch(IOException e)

{return InitFail};

串口配置代碼為:

try

{serialPort.setSerialPortParams(9600,//傳輸波特率為9600

SerialPort.DATABITS_16,//數據位為16位

SerialPort.STOPBITS_2,//停止位為2位

SerialPort.PATITY_NONE);//無數據校驗

}catch(UnsupportedCommOperation Exception e)

{return InitFail};

本系統使用監聽的方式實現數據傳遞,該方式的好處在于響應速度快、實時性高。監聽法是緩存區存儲了新的數據時,端口會根據存儲狀態的改變而產生變化,監聽器將監聽結果傳遞給應用程序,應用程序對不同數據進行相應的處理,完成數據的傳輸和狀態的監控。

四、結語

應用Java實現計算機與PLC的串行通信具有非常廣泛的應用,其對分布式控制系統設計、現場設備的數據采集與遠程控制等都具有現實指導意義。這種通信方式簡單可靠,投資少,速度快,具有可觀的應用前景。

參考文獻:

[1]吳興軍,胡漢春.Java實現計算機與OMRON PLC串口通信[J].工業儀表與自動化裝置,2010,1.

[2]王峰,鄭曉麗,陸金桂.基于Java的PC與Simens S7-200 PLC的通信[J].交通與計算機,2005,3.

主站蜘蛛池模板: 国产毛片高清一级国语 | 精品少妇三级亚洲| 在线无码av一区二区三区| 婷婷亚洲视频| 日韩东京热无码人妻| 国产在线视频自拍| 东京热一区二区三区无码视频| 欧美第一页在线| 萌白酱国产一区二区| 国产在线视频导航| 99re视频在线| 成人午夜免费观看| 99热这里只有免费国产精品| 亚洲av无码人妻| 免费A级毛片无码免费视频| 一本视频精品中文字幕| 国产SUV精品一区二区6| 亚洲欧美不卡视频| 广东一级毛片| 国产午夜不卡| 日韩无码黄色| 久久国产黑丝袜视频| 亚洲国产天堂久久综合226114| 激情综合图区| 欧美色伊人| 色哟哟色院91精品网站| 日韩高清中文字幕| 视频一区视频二区中文精品| 99久久精品国产精品亚洲| 久久国产精品国产自线拍| 在线视频精品一区| 色哟哟国产精品| a级毛片在线免费观看| 视频一本大道香蕉久在线播放| 日本在线亚洲| 亚洲色图欧美在线| 岛国精品一区免费视频在线观看| 国产网站免费| 99久久人妻精品免费二区| 免费国产无遮挡又黄又爽| 永久毛片在线播| 国产99欧美精品久久精品久久| 在线免费观看AV| 国产91视频免费观看| 国产原创演绎剧情有字幕的| 中国一级特黄大片在线观看| 国产精品深爱在线| 亚洲天堂啪啪| 国语少妇高潮| 色婷婷亚洲综合五月| 国产欧美日韩精品综合在线| 久久久精品无码一区二区三区| 狠狠五月天中文字幕| 综合网天天| 国产欧美视频在线观看| 制服丝袜亚洲| 欧洲熟妇精品视频| 美女被操91视频| 日本高清免费不卡视频| 久久久久人妻一区精品色奶水| 欧美亚洲一区二区三区导航| 99视频精品全国免费品| 国产成人在线小视频| 久视频免费精品6| 国产第八页| 精品少妇人妻一区二区| 精品无码日韩国产不卡av| 亚洲欧洲日产无码AV| 视频二区亚洲精品| 成人一区专区在线观看| 丁香婷婷激情网| 久久免费视频6| 国产91视频观看| 国产自无码视频在线观看| 91成人在线观看| 欧美色视频网站| 免费高清自慰一区二区三区| 成人免费一区二区三区| 国产欧美日韩91| 四虎国产精品永久一区| 欧美午夜网| AV老司机AV天堂|