久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

嵌入式智能人機(jī)界面與PLC的通訊


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

case 子對(duì)話框1標(biāo)志:
子對(duì)話框1.ProcData(inBuffer,i); //不同對(duì)話框中對(duì)命令應(yīng)答的處理,ProcData為處理函數(shù)名;
break;
......

......

5.3各子對(duì)話框發(fā)送寫命令
    各個(gè)子對(duì)話框根據(jù)需要,采用定時(shí)器的形式,定時(shí)向PLC發(fā)送命令。以O(shè)MRON PLC為例,在發(fā)送命令時(shí),根據(jù)OMRON PLC的通訊協(xié)議,還需對(duì)發(fā)送的命令字符串加校驗(yàn)碼。這些程序代碼為:
void 子對(duì)話框1類::OnTimer(UINT nIDEvent) 

......
strcpy(m_szCmd,"@00RR00000001"); //OMRON PLC的命令字符串;
GenXor(m_szCmd,result); //進(jìn)行校驗(yàn)碼計(jì)算,調(diào)用 GenXor 函數(shù);
sprintf(szTailer,"%02X*\r",result); //OMRON PLC通訊協(xié)議以“*\r”結(jié)尾;
strcat(m_szCmd,szTailer); //形成完整的通訊協(xié)議命令字符串;
WriteFile(m_hComm, m_szCmd, strlen(m_szCmd),&dwWriten,NULL);
//將命令字符串寫入串口;
......

以下為上面所調(diào)用的計(jì)算校驗(yàn)碼的代碼:
void GenXor(LPCSTR strSource,char& result) //為計(jì)算校驗(yàn)碼的函數(shù),進(jìn)行異或運(yùn)算:

result=0; //為校驗(yàn)碼賦初值;
int len=strlen(strSource); //命令協(xié)議字符串的長(zhǎng)度;
for(int i=0;iresult︿=strSource[i>; //按位進(jìn)行異或;

5.4顯示界面處理
    最后,讀線程讀到的數(shù)據(jù),交由對(duì)應(yīng)的子對(duì)話框進(jìn)行處理。要對(duì)這些數(shù)據(jù)進(jìn)行分析,并以動(dòng)畫,柱狀圖,趨勢(shì)曲線等表現(xiàn)出來(lái)。以所連接的為OMRON PLC為例,其代碼為:

void子對(duì)話框1類: ProcData(char *buffer, int len)

......sscanf(buffer+7,"%04X",&wData); //根據(jù)OMRON PLC的命令規(guī)約,從應(yīng)答中將需要的數(shù)據(jù)取出到變量wData中;
....... //對(duì)獲得的變量值根據(jù)需要進(jìn)行處理,如以文字或動(dòng)畫等形式在子對(duì)話框中進(jìn)行顯示;

在進(jìn)行界面處理時(shí),有一些技巧,如動(dòng)畫顯示時(shí),可以用一個(gè)定時(shí)器控制圖片的輪番顯示。(在本系統(tǒng)中動(dòng)畫是通過(guò)CbitmapButton這個(gè)控件進(jìn)行顯示的。)
switch(m_iImage) // m_iImage為定義的動(dòng)畫顯示標(biāo)志;

case 1: //顯示第一幅圖片,同時(shí)將動(dòng)畫顯示標(biāo)志置為2;
CBitmapButton控件變量.LoadBitmaps(圖片標(biāo)志1);
m_iImage=2;
break;
case 2: //顯示第二幅圖片,同時(shí)將動(dòng)畫顯示標(biāo)志置為1;
CBitmapButton控件變量.LoadBitmaps(圖片標(biāo)志2);
m_iImage=1;
break;

    在顯示實(shí)時(shí)曲線時(shí),采用循環(huán)數(shù)組的方式,在內(nèi)存中開辟一定大小的空間,使讀上來(lái)的數(shù)形成一個(gè)循環(huán)數(shù)組,在界面上動(dòng)態(tài)的顯示出來(lái)。
    本系統(tǒng)中以20個(gè)模擬量為一個(gè)數(shù)組大小,也就是實(shí)時(shí)趨勢(shì)曲線一直顯示20個(gè)點(diǎn)的信息,但因?yàn)槭褂昧搜h(huán)數(shù)組的技術(shù),所以看上去很有動(dòng)感。
    void 子對(duì)話框類::循環(huán)數(shù)組函數(shù)(int ivalue) // ivalue為從命令應(yīng)答中解析出來(lái)的有效數(shù)據(jù);

int index=(m_iBegin+m_iCount)%20; //計(jì)算循環(huán)數(shù)組的下標(biāo),初始從0開始;
m_aryvalue[index>=ivalue; //為循環(huán)數(shù)組賦值;
m_iCount++; //循環(huán)數(shù)組的個(gè)數(shù)加1;
if(m_iCount>20) //判斷個(gè)數(shù)是否超過(guò)20個(gè),如是,將下一個(gè)數(shù)組下標(biāo)從1開始,依此類推;

m_iCount=20;
m_iBegin=(m_iBegin+1)%20;

......

    通訊是本系統(tǒng)的關(guān)鍵。我們的實(shí)踐證明,以上四步是實(shí)現(xiàn)整個(gè)監(jiān)控系統(tǒng)基本之要點(diǎn)。
6.結(jié)論 
    隨著嵌入式操作系統(tǒng)的興起,各組態(tài)軟件的開發(fā)商也紛紛開發(fā)出了嵌入式版的組態(tài)軟件。但在實(shí)際應(yīng)用中我們發(fā)現(xiàn)有許多企業(yè),他們的生產(chǎn)控制流程比較固定,需要的人機(jī)界面的數(shù)量又比較大,對(duì)他們來(lái)說(shuō),按這里介紹的方法,針對(duì)企業(yè)自身的生產(chǎn)工藝特點(diǎn)進(jìn)行開發(fā),提供給用戶的是最終的運(yùn)行系統(tǒng),不需要用戶再進(jìn)行組態(tài)的二次開發(fā)。這樣的系統(tǒng)對(duì)這樣的用戶來(lái)說(shuō),從時(shí)間,價(jià)格或性能上來(lái)說(shuō)都比較適合。本系統(tǒng)在鷺島公司研發(fā)的LEODO嵌入式工業(yè)控制人機(jī)界面上經(jīng)過(guò)了測(cè)試運(yùn)行,證明其運(yùn)行速度較快,比較穩(wěn)定。效果很好,比較適合工業(yè)現(xiàn)場(chǎng)使用。當(dāng)然LEODO品牌的人機(jī)界面也內(nèi)置了一套簡(jiǎn)明實(shí)用,畫面資源豐富的ET組態(tài)軟件,用戶可根據(jù)實(shí)際情況決定自己用高級(jí)語(yǔ)言開發(fā),還是用組態(tài)軟件開發(fā)。
    總之,可以看出,人機(jī)界面利用Microsoft eMbedded C++開發(fā)應(yīng)用程序,與在Windows系統(tǒng)下用Microsoft Visual C++開發(fā)程序,有許多相象的地方。借助這個(gè)軟、硬件平臺(tái),多數(shù)用戶完全可以開發(fā)出適合自己需要的應(yīng)用程序。

COPYRIGHT(C) 2011 廈門永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號(hào)) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門市海滄區(qū)興港六里17號(hào)2607室 郵編:361009 聯(lián)系人:翟先生