<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Windows CE設備與PLC串行通信的實(shí)現

Windows CE設備與PLC串行通信的實(shí)現

作者: 時(shí)間:2012-03-26 來(lái)源:網(wǎng)絡(luò ) 收藏

2.2 雙方通信程序的設計

根據對控制系統的機械、電氣、開(kāi)關(guān)量等控制要求,上下位機之間要就多種不同的數據、指令進(jìn)行交互。并且這些數據、指令的數據位的長(cháng)度不同。舉其中的機器狀態(tài)、機器參數、控制命令三種常見(jiàn)的指令為例。機器狀態(tài)要求下位機不間斷發(fā)送的機器的實(shí)時(shí)狀態(tài),一般包含數據量不大。機器參數往往是在開(kāi)機發(fā)送或者重新設置了機器的參數時(shí)發(fā)送,機器參數的數據個(gè)數較多,但發(fā)送的次數較少??刂泼?,只有操作者通過(guò)控制面板上的操作時(shí)才會(huì )發(fā)送,它發(fā)送的內容也不多,發(fā)送頻率也較低。但由于使用Fx2n 的RS數據通信時(shí),在每次進(jìn)行通信時(shí),必須知道本次要接收內容的個(gè)數。如果把不同類(lèi)型的數據采用定長(cháng)結構的發(fā)送方式,程序設計起來(lái)較為簡(jiǎn)單,但是其中包含了大量的無(wú)用數據,發(fā)送的效率較低。所以在進(jìn)行通信時(shí),定義了下面的通信的協(xié)議形式:

本次通信標志

下次發(fā)送的個(gè)數

本次發(fā)送內容

結束標志

其中協(xié)議中具體含義如下表所示:

協(xié)議內容

含義

本次通信標志

AA:機器狀態(tài)

AF:機器參數

AC:控制命令

下次發(fā)送的個(gè)數

用于確定下次接收的個(gè)數

本次發(fā)送內容

DATA

結束標志

FF

表2 通信協(xié)議的格式

這樣,通過(guò)在本次通信中加入下次通信的個(gè)數,在PLC端可以通過(guò)程序判定確定下次發(fā)送內容的個(gè)數,進(jìn)行處理。這樣可以提高發(fā)送的效率,保證數據的實(shí)時(shí)性。具體的發(fā)送流程如下圖所示。

圖3 通信流程圖

2.3 對數據接收緩沖區的處理

通過(guò)研究Windows CE提供的驅動(dòng)程序代碼可以看出,驅動(dòng)程序通過(guò)維護內部的軟件緩沖區來(lái)保障當應用程序不能及時(shí)響應數據到來(lái)時(shí),數據會(huì )先保存在驅動(dòng)程序的數據緩沖區中,而不會(huì )發(fā)生數據丟失的現象。但是對于實(shí)時(shí)響應要求很高系統來(lái)說(shuō)就是有害的。這樣最新到來(lái)的數據不能被應用程序及時(shí)處理,而被堆放到了緩沖區的后部等待前面的數據處理完成后才能被處理,降低系統的實(shí)時(shí)性。為了減少驅動(dòng)程序數據緩沖區對系統實(shí)時(shí)性的影響,可以通過(guò)在的程序中加入對串行API函數 PurgeComm的調用來(lái)及時(shí)清除緩沖區的內容,以保證新到的數據及時(shí)被應用程序處理,提高通信的實(shí)時(shí)性。

3 總結

本文詳細分析了在Windows CE下進(jìn)行的特點(diǎn),并設計了Windows CE與PLC進(jìn)行的程序流程和通信格式。實(shí)現了通過(guò)串行通信連接的由Fx2n PLC與PC104模塊組成的上下位機控制系統,整套系統已經(jīng)成功的應用到了高檔的電氣和運動(dòng)控制。產(chǎn)品經(jīng)過(guò)了用戶(hù)的長(cháng)期檢驗和國家的技術(shù)鑒定,合作企業(yè)三年內已經(jīng)取得近600多萬(wàn)元的經(jīng)濟效益。充分證明了整個(gè)系統結構的可行性和可靠性。并且可以通過(guò)借助Windows CE的可移植性和強大的網(wǎng)絡(luò )功能以及PLC通用性等特點(diǎn),把這種通過(guò)串行通信連接構成的上下位機結構方式應用推廣到其它類(lèi)似的機電一體化產(chǎn)品中的控制系統應用之中。

參考文獻:

[1] Microsoft Corporation, Platform Builder for Windows CE 5.0 Help [OL], 2004.

[2] Douglas Boling, Programming Windows CE [M], 2001.

[3] Mitsubishi Electric Corporation, FX2n series Programmable Controller User's Manual [M], 2001.

[4] 田書(shū)峰,李欣.單片機與三菱PLC無(wú)協(xié)議串行通訊的實(shí)現[J],微計算機信息,2005,(10).[5] 陳向群,王雷等,Windows CE.NET 系統分析及實(shí)驗教程[M],機械工業(yè)出版社,2002.


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>