午夜三级做爱黄片,午夜福利小视频,午夜国产成人精品,午夜黄色在线视频 - www.atkqc.com

由于操作過于頻繁踱蠢,請點擊下方按鈕進行驗證淋话!

嵌入式智能人機界面與PLC的通訊

【編者按】隨著工業(yè)自動化的發(fā)展膀捷,基于PLC关噪,單片機等設(shè)備的自動化系統(tǒng)骑篙,自動化設(shè)備越來越普及蜕提,幾乎遍布所有自動化領(lǐng)域,與之相應(yīng)的人機交互系統(tǒng)也應(yīng)運而生靶端,并得到同步發(fā)展谎势。


1、引言

近年來杨名,“嵌入式”一詞越來越多的被人們提及脏榆,嵌入式產(chǎn)品被應(yīng)用到各行各業(yè)猖毫。與嵌入式相關(guān)的技術(shù)如嵌入式產(chǎn)品,嵌入式系統(tǒng)的研究等也被列為“十五”家發(fā)展的重點方向须喂。

嵌入式系統(tǒng)(Embedded System)被定義為:以應(yīng)用為中心吁断,以計算機技術(shù)為基礎(chǔ),軟件硬件可裁剪坞生,適應(yīng)對功能仔役、可靠性、成本翁写、體積惠所、功耗嚴(yán)格要求的專用計算機系統(tǒng)。

隨著工業(yè)自動化的發(fā)展汰检,基于PLC算换,單片機等設(shè)備的自動化系統(tǒng),自動化設(shè)備越來越普及六呼,幾乎遍布所有自動化領(lǐng)域,與之相應(yīng)的人機交互系統(tǒng)也應(yīng)運而生尘腕,并得到同步發(fā)展刨税。基于嵌入式技術(shù)的工業(yè)人機界面是人機交互系統(tǒng)中一顆耀眼的明星摸马。高可靠筏所,壽命,體積小五逢,高性能蜀悯,多線程,多任務(wù)竹观,強實時等特點使嵌入式工業(yè)人機界面越來越受到自動化系統(tǒng)集成商镐捧,自動化設(shè)備制造商的青睞。它能夠理想臭增,生動地顯示PLC懂酱,單片機等工業(yè)設(shè)備上的數(shù)據(jù)信息,功能強大誊抛,使用方便列牺。它作為PLC等控制設(shè)備的上端設(shè)備在用戶和機器之間架設(shè)了一條橋梁。該產(chǎn)品目前廣泛應(yīng)用在工業(yè)自動化系統(tǒng)拗窃,醫(yī)療瞎领,金融等行業(yè)的自動化設(shè)備。

隨著越來越多的工程項目采用了嵌入式人機界面随夸,相應(yīng)的九默,用戶對與嵌入式硬件配套使用的監(jiān)控系統(tǒng)(SupervisoryControlandDataAcquisition震放,SCADA)等應(yīng)用軟件的需求也在增加。這也正是本文所要討論的問題荤西。這里講的嵌入式監(jiān)控系統(tǒng)澜搅,其硬件為嵌入式智能人機界面;其軟件為嵌入式操作系統(tǒng)饲肪,另加自己開發(fā)的應(yīng)用程序屋犯。本文后面主要介紹這個監(jiān)控應(yīng)用程序,重點介紹應(yīng)用程序中通訊部分的實現(xiàn)原理塔苦。

當(dāng)今滑期,已發(fā)展有多種嵌入式操作系統(tǒng),如Linux医窖,VxWorks账阳,(暫不可見)等,完全可在其上開發(fā)出圖文并茂蔽树、界面友好的應(yīng)用狡氏,以滿足監(jiān)控系統(tǒng)的種種要求。只是由于嵌入式技術(shù)相對是一門新興的領(lǐng)先技術(shù)碗挟,涉足的人相對還比較少伍毙,所以這樣的應(yīng)用目前還比較少。本文介紹的嵌入式監(jiān)控系統(tǒng)算是一個實例吧竞谒。

2丐重、系統(tǒng)組成

我們所開發(fā)的這套嵌入式監(jiān)控系統(tǒng),上位機是沈陽鷺島資訊科技有限公司開發(fā)的嵌入式智能工業(yè)控制人機界面(以下簡稱人機界面)杆查。其嵌入式工業(yè)控制器是以GeodeX86為核心處理器扮惦,包括網(wǎng)絡(luò)通訊,數(shù)據(jù)通信亲桦,大尺寸觸摸屏及液晶顯示的硬件平臺崖蜜,在其上運行WinCE操作系統(tǒng)。提供20個通用IO點供用戶使用客峭,物理層支持ProfiBus等現(xiàn)場總線纳猪,支持16位真彩TFTLCD顯示,有64MSDRAM內(nèi)存桃笙,64MFLASH閃存氏堤,據(jù)有USB接口,10/100MEthernet網(wǎng)絡(luò)通訊接口搏明,以及串口鼠锈,并口,VGA口等通用接口星著。

下位機用日本OMRON公司的PLC购笆,或SIMENSPLC坐署,或施耐德NEZAPLC,或日本三菱公司的PLC挥挚,等等當(dāng)前比較流行的PLC玻岳,當(dāng)然溫控表,單片機卜伟,智能模塊等工業(yè)現(xiàn)場控制設(shè)備也可以别孵。

控制對象(比如鍋爐等)的工作由上述控制設(shè)備(各種PLC等)控制;而控制對象的狀態(tài)則用人機界面及在其上開發(fā)的應(yīng)用程序進行監(jiān)控米原。

人機界面的操作系統(tǒng)采用了微軟的(暫不可見)葛窜。(暫不可見)是為各種嵌入式系統(tǒng)和產(chǎn)品設(shè)計的一種緊湊,高效虹悄,可伸縮的操作系統(tǒng)(OS)珊侍,主要面向各種嵌入式系統(tǒng)和產(chǎn)品。其多線程场魏、多任務(wù)豹谎、完全搶占式的特點是專門針對資源有限而設(shè)計的。OEM開發(fā)商可根據(jù)自己硬件組成的特點對(暫不可見)進行選擇裁剪筝闹,從而配置出穩(wěn)定高效并且是特有的(暫不可見)操作系統(tǒng)和相應(yīng)的SDK開發(fā)包媳叨。在應(yīng)用上,(暫不可見)支持超過1000個公共MicrosoftWin32API和幾種附加的編程接口丁存,用戶可利用它們來開發(fā)應(yīng)用程序。另外柴我,微軟為開發(fā)(暫不可見)應(yīng)用程序的人員提供了與VisualC++類似解寝、支持MFC的MicrosofteMbeddedVisualC++語言。下面我們將介紹一下開發(fā)過程的細節(jié)問題艘儒。

3聋伦、軟件流程

應(yīng)用程序開發(fā)是在個人計算機上進行的。個人計算機的操作系統(tǒng)為WINDOWS2000界睁。應(yīng)用程序的開發(fā)平臺是MicrosofteMbeddedVisualC++集成開發(fā)環(huán)境觉增。

在應(yīng)用程序開發(fā)時,還可以利用微軟提供的測試模擬器(Emulator)翻斟。有了它可做到逾礁,即使沒有人機界面,也可進行程序調(diào)試访惜。

開發(fā)最終生成的可執(zhí)行文件栗柴,可使用Microsofte Mbedded Visualc++開發(fā)環(huán)境提供的下載功能,通過串口或局域網(wǎng)净彼,下載給人機界面憎材。

工作時未蚕,PLC等工控設(shè)備運行它的控制程序,而人機界面則運行這個下載的可執(zhí)行文件投墩。兩者通過串口進行通訊辛啰,但通訊的主動方為人機界面。人機界面依監(jiān)控要求彰畅,向PLC等發(fā)送通訊命令迂奋,PLC則作相應(yīng)的應(yīng)答。

 人機界面從PLC上收到應(yīng)答的數(shù)據(jù)后潜路,在觸摸屏上向膏,以圖表、動畫罚午,文字等的界面顯現(xiàn)出來逞迟,供用戶觀察。還可把這些數(shù)據(jù)進行存貯恕沫、打印监憎,甚至于向ERP等管理信息系統(tǒng)傳送。

如須對PLC或控制對象進行干預(yù)婶溯,也可在人機界面的觸摸屏上鲸阔,通過觸摸鍵或觸摸鼠標(biāo),向PLC發(fā)送命令或數(shù)據(jù)迄委,以實現(xiàn)相應(yīng)的控制褐筛。

4、畫面構(gòu)成

一般的工程監(jiān)控畫面有:文字顯示叙身,生產(chǎn)工藝流程顯示(包括動畫渔扎,柱狀圖顯示等),報警信轿,人員操作晃痴,趨勢曲線等等。我們的系統(tǒng)架構(gòu)是做一個基于主對話框的程序财忽。再將這些不同的畫面用子對話框表現(xiàn)出來倘核。

主對話框負(fù)責(zé)初始化串口,打開串口怎窿,啟動讀串口線程等侧缔;而各子對話框則定時或根據(jù)需要向串口發(fā)送各種命令,通過主對話框的線程讀回命令的應(yīng)答喻透,再在子對話框中以一定的形式提供給用戶鳄砸,以供監(jiān)控現(xiàn)場作業(yè)。這其中主要的技術(shù)就是串口通訊。下面我們重點講述通訊的實現(xiàn)惧圆。

5往茄、通訊實現(xiàn)

人機界面提供的串口是符合通用標(biāo)準(zhǔn)的。(暫不可見)下的串口通訊與Windows下的串口通訊原理相同瘦镶。都是應(yīng)用程序

不直接控制硬件乘占,而是通過操作系統(tǒng)提供的設(shè)備驅(qū)動程序,來進行數(shù)據(jù)傳遞澳坟。

(暫不可見)是Win32編程笔畜。串口在Win32中是作為文件來進行處理的,不是直接對端口進行操作孤殿。對于串行通信呐粘,Win32提供了相應(yīng)的文件I/O函數(shù)與通信函數(shù)。

但是也要注意(暫不可見)所能支持的API函數(shù)只是WindowAPI函數(shù)的子集转捕。Windows有的作岖,(暫不可見)下不一定能使用。同時五芝,(暫不可見)字符集類似于WindowsNT而不同于Windows9x痘儡,它是基于Unicode的。這也是開發(fā)程序過程中從WINDOWS轉(zhuǎn)到(暫不可見)的程序員遇到問題最多的地方枢步。另外在Windows下常用的一些通訊控件如MSComm等在(暫不可見)下就不能正確使用了沉删。

本監(jiān)控系統(tǒng)采用API函數(shù)實現(xiàn)串口通訊。以下分幾個問題介紹串口通訊及整個系統(tǒng)的實現(xiàn)醉途。

5.1打開串口

首先是打開串口矾瑰,這是串口通訊的第一步。其代碼為:

BOOLCMainDlg::OnInitDialog()

{

......

m_hComm=CreateFile(_T(“COM1:“)隘擎,GENERIC_READ|GENERIC_WRITE殴穴,0,NULL嵌屎,OPEN_EXISTING鸯流,0胯挚,0)滴督;//打開串口的操作,需要注意

(暫不可見)系統(tǒng)與Windows系統(tǒng)表達方式的細微不同咨桶,(暫不可見)需要在串口后加上冒號瘫碾;

SetupComm(m_hComm,1024椎敞,1024)奴爷;//初始化串口的輸入,輸出緩沖區(qū)參數(shù)配籽;

SetCommState(m_hComm擂门,&m_dcb)秩旬;//配置串口參數(shù);m_dcb為設(shè)置好的參數(shù)結(jié)構(gòu)自畔;

......

SetCommTimeouts(m_hComm淘客,&timeout);//設(shè)置通訊超時時間參數(shù)杨匕;

PurgeComm(m_hComm着饥,PURGE_TXCLEAR|PURGE_RXCLEAR);

//清空輸入惰赋,輸出緩沖區(qū)的字符宰掉,為開始接受數(shù)據(jù),進入監(jiān)控狀態(tài)做好準(zhǔn)備赁濒;

......

5.2讀串口線程

其次是啟動讀串口線程轨奄,它讓讀串口程序不停地在后臺運行,而不影響前臺程序的工作流部。與此有關(guān)的代碼為:

BOOLCMainDlg::OnInitDialog()

{

......

ReadFile(m_hComm戚绕,inBuffer+iBufLen,INBUFFERLEN-iBufLen枝冀,&dwBytes舞丛,NULL);//從串口讀數(shù)據(jù)果漾;

iBufLen+=dwBytes球切;

for(inti=”0“;i{

if(inBuffer[i]==”\r“)//以連接的設(shè)備為OMRONPLC為例绒障,其通訊協(xié)議規(guī)定應(yīng)答應(yīng)當(dāng)以”\r“結(jié)尾晃烟;

inBuffer[i]=0;//字符串結(jié)束標(biāo)志场恬;

switch(m_iDlgType)//m_iDlgType為代表不同對話框的標(biāo)志變量翠柄;

{

case子對話框1標(biāo)志:

子對話框(暫不可見)cData(inBuffer,i)吝寒;//不同對話框中對命令應(yīng)答的處理皿完,ProcData為處理函數(shù)名;

break办煞;

......

}

......

}

5.3各子對話框發(fā)送寫命令

各個子對話框根據(jù)需要狈馏,采用定時器的形式,定時向PLC發(fā)送命令害恋。以O(shè)MRONPLC為例缘说,在發(fā)送命令時,根據(jù)OMRONPLC的通訊協(xié)議,還需對發(fā)送的命令字符串加校驗碼劣零。這些程序代碼為:

void子對話框1類::OnTimer(UINTnIDEvent)

{

......

strcpy(m_szC

md钟助,”@00RR00000001“);//OMRONPLC的命令字符串掏秩;

GenXor(m_szCmd绘证,result);//進行校驗碼計算哗讥,調(diào)用GenXor函數(shù)嚷那;

sprintf(szTailer,”%02X*\r“杆煞,result)魏宽;//OMRONPLC通訊協(xié)議以“*\r”結(jié)尾;

strcat(m_szCmd决乎,szTailer)队询;//形成完整的通訊協(xié)議命令字符串;

WriteFile(m_hComm构诚,m_szCmd蚌斩,strlen(m_szCmd),&dwWriten范嘱,NULL)送膳;

//將命令字符串寫入串口;

......

}

以下為上面所調(diào)用的計算校驗碼的代碼:

voidGenXor(LPCSTRstrSource斤间,char&result)//為計算校驗碼的函數(shù)穆烹,進行異或運算:

{

result=0;//為校驗碼賦初值稿棚;

intlen=“strlen”(strSource)败何;//命令協(xié)議字符串的長度;

for(inti=“0”采缎;iresult^=strSource[i]诺骏;//按位進行異或;

}

5.4顯示界面處理

最后敌菩,讀線程讀到的數(shù)據(jù)基恩,交由對應(yīng)的子對話框進行處理。要對這些數(shù)據(jù)進行分析喷总,并以動畫樟闽,柱狀圖植西,趨勢曲線等表現(xiàn)出來柳卒。以所連接的為OMRONPLC為例,其代碼為:

void子對話框1類::ProcData(char*buffer,intlen)

{

......sscanf(buffer+7列疗,“%04X”滑蚯,&wData);//根據(jù)OMRONPLC的命令規(guī)約抵栈,從應(yīng)答中將需要的數(shù)據(jù)取出到變量wData中告材;

.......//對獲得的變量值根據(jù)需要進行處理,如以文字或動畫等形式在子對話框中進行顯示古劲;

}

在進行界面處理時斥赋,有一些技巧,如動畫顯示時产艾,可以用一個定時器控制圖片的輪番顯示疤剑。(在本系統(tǒng)中動畫是通過CbitmapButton這個控件進行顯示的。)

switch(m_iImage)//m_iImage為定義的動畫顯示標(biāo)志闷堡;

{

case1://顯示第一幅圖片隘膘,同時將動畫顯示標(biāo)志置為2;

CBitmapButton控件變量.LoadBitmaps(圖片標(biāo)志1)杠览;

m_iImage=2弯菊;

break;

case2://顯示第二幅圖片牺缰,同時將動畫顯示標(biāo)志置為1田蕴;

CBitmapButton控件變量.LoadBitmaps(圖片標(biāo)志2);

m_iImage=1醋咒;

break寂齐;

}

在顯示實時曲線時,采用循環(huán)數(shù)組的方式尺笼,在內(nèi)存中開辟一定大小的空間肃逐,使讀上來的數(shù)形成一個循環(huán)數(shù)組,在界面上動態(tài)的顯示出來林下。

本系統(tǒng)中以20個模擬量為一個數(shù)組大小袄肩,也就是實時趨勢曲線一直顯示20個點的信息,但因為使用了循環(huán)數(shù)組的技術(shù)腋芜,所以看上去很有動感再副。

void子對話框類::循環(huán)數(shù)組函數(shù)(intiValue)//iValue為從命令應(yīng)答中解析出來的有效數(shù)據(jù);

{

intindex=(m_iBegin+m_iCount)%20花炭;//計算循環(huán)數(shù)組的下標(biāo)躬拢,初始從0開始;

m_aryValue=iValue见间;//為循環(huán)數(shù)組賦值聊闯;

m_iCount++工猜;//循環(huán)數(shù)組的個數(shù)加1;

if(m_iCount>20)//判斷個數(shù)是否超過20個菱蔬,如是篷帅,將下一個數(shù)組下標(biāo)從1開始,依此類推拴泌;

{

m_iCount=20魏身;

m_iBegin=(m_iBegin+1)%20;

}

......

}

通訊是本系統(tǒng)的關(guān)鍵蚪腐。我們的實踐證明箭昵,以上四步是實現(xiàn)整個監(jiān)控系統(tǒng)基本之要點。

6回季、結(jié)論

總之宙枷,本監(jiān)控系統(tǒng)軟件的基本架構(gòu)可以以下面這幅圖直觀的表示出來:

圖2 監(jiān)控系統(tǒng)軟件的基本架構(gòu)

隨著嵌入式操作系統(tǒng)的興起,各組態(tài)軟件的開發(fā)商也紛紛開發(fā)出了嵌入式版的組態(tài)軟件茧跋。但在實際應(yīng)用中我們發(fā)現(xiàn)有許多企業(yè)昏个,他們的生產(chǎn)控制流程比較固定,需要的人機界面的數(shù)量又比較大捉肄,對他們來說乃屈,按這里介紹的方法,針對企業(yè)自身的生產(chǎn)工藝特點進行開發(fā)常苍,提供給用戶的是最終的運行系統(tǒng)兼英,不需要用戶再進行組態(tài)的二次開發(fā)。這樣的系統(tǒng)對這樣的用戶來說鸵丸,從時間喳牌,價格或性能上來說都比較適合。

本系統(tǒng)在鷺島公司研發(fā)的LEODO嵌入式工業(yè)控制人機界面上經(jīng)過了測試運行贪焊,證明其運行速度較快玲院,比較穩(wěn)定。效果很好惦肴,比較適合工業(yè)現(xiàn)場使用淡早。當(dāng)然LEODO品牌的人機界面也內(nèi)置了一套簡明實用,畫面資源豐富的ET組態(tài)軟件耳标,用戶可根據(jù)實際情況決定自己用高級語言開發(fā)醇坝,還是用組態(tài)軟件開發(fā)。

總之次坡,可以看出呼猪,人機界面利用MicrosofteMbeddedC++開發(fā)應(yīng)用程序,與在Windows系統(tǒng)下用MicrosoftVisualC++開發(fā)程序砸琅,有許多相象的地方宋距。借助這個軟轴踱、硬件平臺,多數(shù)用戶完全可以開發(fā)出適合自己需要的應(yīng)用程序乡革。


聲明:本網(wǎng)站所收集的部分公開資料來源于互聯(lián)網(wǎng),轉(zhuǎn)載的目的在于傳遞更多信息及用于網(wǎng)絡(luò)分享摊腋,并不代表本站贊同其觀點和對其真實性負(fù)責(zé)沸版,也不構(gòu)成任何其他建議。本站部分作品是由網(wǎng)友自主投稿和發(fā)布兴蒸、編輯整理上傳视粮,對此類作品本站僅提供交流平臺,不為其版權(quán)負(fù)責(zé)间歌。如果您發(fā)現(xiàn)網(wǎng)站上所用視頻胃磷、圖片、文字如涉及作品版權(quán)問題鹅址,請第一時間告知裤困,我們將根據(jù)您提供的證明材料確認(rèn)版權(quán)并按國家標(biāo)準(zhǔn)支付稿酬或立即刪除內(nèi)容,以保證您的權(quán)益妨谦!聯(lián)系電話:010-58612588 或 Email:editor@mmsonline.com.cn巡雄。

網(wǎng)友評論 匿名:

分享到