關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于RS422A現(xiàn)場總線的溫控網(wǎng)絡(luò)控制系統(tǒng)

基于RS422A現(xiàn)場總線的溫控網(wǎng)絡(luò)控制系統(tǒng)

作者: 時間:2009-09-02 來源:網(wǎng)絡(luò) 收藏
 該軟件主要實(shí)現(xiàn)方式如下:

本文引用地址:http://m.butianyuan.cn/article/163597.htm

  在重載的void CRs422AnetView::OnDraw(CDC* pDC)函數(shù)里面調(diào)用自定義函數(shù)StartOfSystem(pDC),后者打開并配置好串口,啟動通信線程,設(shè)置記時器等。其主要代碼如下:

  void CRs422AnetView::StartOfSystem(CDC *pDC)

 ?。?/p>

  ……

  m_hCom=CreateFile(m_sPort, GENERIC_READ | GENERIC_WRITE, 0, NULL,

  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,NULL);

  if(m_hCom==INVALID_HANDLE_VALUE)

  return FALSE;

  DCB dcb;

  if(!GetCommState(m_hCom, dcb)) return FALSE;

  dcb.fBinary=TRUE;

  dcb.BaudRate=m_nBaud;

  dcb.ByteSize=m_nDataBits;

  dcb.fParity=TRUE;

  dcb.Parity=EVENPARITY;

  dcb.StopBits=ONESTOPBIT;

  return SetCommState(m_hCom, dcb);

  ……//以上為打開并配置串口代碼

  SetTimer(1,5000,NULL); //啟動定時器,定時間隔為5妙

  CwinThread*m_pThreadd=AfxBeginThread(CommProc,this->GetDocument(), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); // 創(chuàng)建并掛起線程

  if(m_pThreadd==NULL)

 ?。?/p>

  CloseHandle(m_hCom);

  return FALSE;

  }

  else

 ?。?/p>

  m_bConnected=TRUE;

  m_pThreadd->ResumeThread(); // 恢復(fù)線程運(yùn)行

 ?。?/p>

  ……

  }

  UINT CommProc(LPVOID pParam)為輔助通信線程,該線程完成設(shè)定值以及動態(tài)數(shù)據(jù)的讀取,其程序流程圖如下所示:

  void CRs422AnetView::OnTimer(UINT nIDEvent)為響應(yīng)計時器消息的函數(shù),定時被觸發(fā),本程序中定時間隔為5秒。在該函數(shù)里,主要是恢復(fù)輔助通信線程以及調(diào)用數(shù)據(jù)顯示程序p定時刷新數(shù)據(jù)等。

 ?。?) 歷史紀(jì)錄瀏覽進(jìn)程設(shè)計

  歷史紀(jì)錄的瀏覽是為了對過去生產(chǎn)過程的回顧,可將產(chǎn)品的質(zhì)量和過程的設(shè)定結(jié)合起來進(jìn)行分析,對以后的生產(chǎn)提供參考,以便能提高產(chǎn)品的生產(chǎn)質(zhì)量。這個進(jìn)程提供了一定的查詢功能,能將歷史紀(jì)錄用曲線的方式回放出來,能將重要的過程鎖定下來,也能刪除過程紀(jì)錄。

五. 結(jié)束語

  本文介紹的系統(tǒng)已經(jīng)在運(yùn)行了較長時間,系統(tǒng)運(yùn)行穩(wěn)定可靠,充分發(fā)揮了管理的便捷優(yōu)點(diǎn),提高了生產(chǎn)效率。顯然,對于一些中、小規(guī)模的測控系統(tǒng),采用是一個很好的選擇。


上一頁 1 2 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉