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.

主站蜘蛛池模板: 伊人91在线| 欧美性猛交一区二区三区| 欧美亚洲欧美| 欧美日韩国产一级| 永久免费精品视频| 国产在线精彩视频二区| 国产va在线| 2021无码专区人妻系列日韩| 韩日免费小视频| 国产成人精品免费视频大全五级 | 蜜桃臀无码内射一区二区三区 | 好紧太爽了视频免费无码| 尤物成AV人片在线观看| 97超碰精品成人国产| 暴力调教一区二区三区| 香蕉国产精品视频| 亚洲av成人无码网站在线观看| 中文字幕在线观看日本| 91精品啪在线观看国产| 成人国产小视频| 亚洲制服丝袜第一页| 99久久人妻精品免费二区| 亚洲日韩每日更新| 五月天综合网亚洲综合天堂网| 在线a网站| 黄色网在线免费观看| 人妻精品久久久无码区色视| 在线视频一区二区三区不卡| 亚洲Av综合日韩精品久久久| 亚洲AⅤ无码国产精品| 久久a毛片| 国产视频自拍一区| 亚洲一区二区三区麻豆| 国产成人艳妇AA视频在线| 国产精品免费p区| 啊嗯不日本网站| 五月天久久综合| 久久精品这里只有国产中文精品 | 狠狠五月天中文字幕| 国产无码性爱一区二区三区| 国产三级国产精品国产普男人| 五月天香蕉视频国产亚| 国产精品嫩草影院av| 欧美中文字幕在线二区| 玩两个丰满老熟女久久网| 久久久久久高潮白浆| 久久天天躁狠狠躁夜夜躁| 国产欧美中文字幕| AV天堂资源福利在线观看| 波多野结衣一区二区三视频| 欧美精品1区2区| 亚洲精品国产综合99久久夜夜嗨| 日本三区视频| 亚洲欧洲日产无码AV| 专干老肥熟女视频网站| 婷婷午夜天| 色综合久久88| 久久女人网| 国产成人高清在线精品| 制服丝袜一区二区三区在线| a亚洲天堂| 蜜臀AVWWW国产天堂| 亚洲无码视频一区二区三区| 99精品在线看| 成人免费网站在线观看| 直接黄91麻豆网站| 亚洲天堂区| 婷婷色一区二区三区| 国内精品视频区在线2021| 亚洲精品久综合蜜| 国产00高中生在线播放| 欧洲熟妇精品视频| 亚洲国产欧美国产综合久久 | 亚洲五月激情网| 亚洲第一成网站| 日韩欧美中文| 欧美亚洲日韩中文| 国产亚洲视频中文字幕视频| 久久免费成人| 成人精品在线观看| 精品一区二区三区自慰喷水| 中文字幕资源站|