日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式硬件

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

1、引言

  嵌入式系統(tǒng) (Embedded System)被定義為:以應用為中心,以計算機技術為基礎,軟件硬件可裁剪,適應對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統(tǒng)。

  隨著工業(yè)自動化的發(fā)展,基于PLC,單片機等設備的自動化系統(tǒng),自動化設備越來越普及,幾乎遍布所有自動化領域,與之相應的人機交互系統(tǒng)也應運而生,并得到同步發(fā)展。基于嵌入式技術的工業(yè)人機界面是人機交互系統(tǒng)中一顆耀眼的明星。高可靠, 壽命,體積小,高性能,多線程,多任務,強實時等特點使嵌入式工業(yè)人機界面越來越受到自動化系統(tǒng)集成商,自動化設備制造商的青睞。它能夠理想,生動地顯示PLC,單片機等工業(yè)設備上的數(shù)據(jù)信息,功能強大,使用方便。它作為PLC等控制設備的上端設備在用戶和機器之間架設了一條橋梁。該產品目前廣泛應用在工業(yè)自動化系統(tǒng),醫(yī)療,金融等行業(yè)的自動化設備。

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

  當今,已發(fā)展有多種嵌入式操作系統(tǒng),如Linux, VxWorks,WinCE.net等,完全可在其上開發(fā)出圖文并茂、界面友好的應用,以滿足監(jiān)控系統(tǒng)的種種要求。只是由于嵌入式技術相對是一門新興的領先技術,涉足的人相對還比較少,所以這樣的應用目前還比較少。本文介紹的嵌入式監(jiān)控系統(tǒng)算是一個實例吧。

  2、系統(tǒng)組成

  我們所開發(fā)的這套嵌入式監(jiān)控系統(tǒng),上位機是沈陽鷺島資訊科技有限公司開發(fā)的嵌入式智能工業(yè)控制人機界面(以下簡稱人機界面)。其嵌入式工業(yè)控制器是以Geode X86為核心處理器,包括網(wǎng)絡通訊,數(shù)據(jù)通信,大尺寸觸摸屏及液晶顯示的硬件平臺,在其上運行 WinCE操作系統(tǒng)。提供20個通用IO點供用戶使用,物理層支持ProfiBus等現(xiàn)場總線,支持16位真彩TFT LCD顯示,有64M SDRAM內存,64M FLASH閃存,據(jù)有USB接口,10/100M Ethernet網(wǎng)絡通訊接口,以及串口,并口,VGA口等通用接口。

  下位機用日本OMRON公司的PLC,或SIMENS PLC,或施耐德NEZA PLC,或日本三菱公司的 PLC,等等當前比較流行的PLC,當然溫控表,單片機,智能模塊等工業(yè)現(xiàn)場控制設備也可以。

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

  人機界面的操作系統(tǒng)采用了微軟的WinCE.net。WinCE.net是為各種嵌入式系統(tǒng)和產品設計的一種緊湊,高效,可伸縮的操作系統(tǒng)(OS),主要面向各種嵌入式系統(tǒng)和產品。其多線程、多任務、完全搶占式的特點是專門針對資源有限而設計的。OEM開發(fā)商可根據(jù)自己硬件組成的特點對WinCE.net進行選擇裁剪,從而配置出穩(wěn)定高效并且是特有的WinCE.net操作系統(tǒng)和相應的SDK開發(fā)包。在應用上,WinCE.net支持超過1000個公共Microsoft Win32 API和幾種附加的編程接口,用戶可利用它們來開發(fā)應用程序。另外,微軟為開發(fā)WinCE.net應用程序的人員提供了與Visual C++類似、支持MFC的Microsoft eMbedded Visual C++語言。下面我們將介紹一下開發(fā)過程的細節(jié)問題。

  3、軟件流程

  應用程序開發(fā)是在個人計算機上進行的。個人計算機的操作系統(tǒng)為WINDOWS 2000。應用程序的開發(fā)平臺是Microsoft eMbedded Visual C++集成開發(fā)環(huán)境。

  在應用程序開發(fā)時,還可以利用微軟提供的測試模擬器(Emulator)。有了它可做到,即使沒有人機界面,也可進行程序調試。

  開發(fā)最終生成的可執(zhí)行文件,可使用Microsoft eMbedded Visual c++開發(fā)環(huán)境提供的下載功能,通過串口或局域網(wǎng),下載給人機界面。

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

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

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

  這個應用的執(zhí)行流程框圖為:

 

  圖1 執(zhí)行流程框圖

 4、畫面構成

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

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

  5、通訊實現(xiàn)

 人機界面提供的串口是符合通用標準的。WinCE.net下的串口通訊與Windows下的串口通訊原理相同。都是應用程序不直接控制硬件,而是通過操作系統(tǒng)提供的設備驅動程序,來進行數(shù)據(jù)傳遞。

  WinCE.net 是Win 32編程。串口在Win 32中是作為文件來進行處理的,不是直接對端口進行操作。對于串行通信,Win 32 提供了相應的文件I/O函數(shù)與通信函數(shù)。

  但是也要注意WinCE.net所能支持的API函數(shù)只是Window API函數(shù)的子集。Windows有的,WinCE.net下不一定能使用。同時,WinCE.net字符集類似于Windows NT而不同于Windows 9x,它是基于Unicode的。這也是開發(fā)程序過程中從WINDOWS轉到WinCE.net的程序員遇到問題最多的地方。另外在Windows下常用的一些通訊控件如MSComm等在WinCE.net下就不能正確使用了。

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

  5.1 打開串口

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

  BOOL CMainDlg::OnInitDialog()
  {
  ......
  m_hComm=CreateFile(_T("COM1:"),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,0); //打開串口的操作,需要注意
  WinCE.net系統(tǒng)與Windows系統(tǒng)表達方式的細微不同,WinCE.net需要在串口后加上冒號;
  SetupComm(m_hComm,1024,1024); //初始化串口的輸入,輸出緩沖區(qū)參數(shù);

  SetCommState(m_hComm,&m_dcb) ; //配置串口參數(shù);m_dcb為設置好的參數(shù)結構;
  ......
  SetCommTimeouts(m_hComm,&timeout); //設置通訊超時時間參數(shù);

  PurgeComm(m_hComm,PURGE_TXCLEAR|PURGE_RXCLEAR);
  //清空輸入,輸出緩沖區(qū)的字符,為開始接受數(shù)據(jù),進入監(jiān)控狀態(tài)做好準備;
  ......
  }

  5.2 讀串口線程

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

  BOOL CMainDlg::OnInitDialog()
  {
  ......
  ReadFile(m_hComm,inBuffer+iBufLen,INBUFFERLEN-iBufLen,&dwBytes,NULL); //從串口讀數(shù)據(jù);
  iBufLen+=dwBytes;
  for(int i="0";i{
  if(inBuffer[i]=="r") //以連接的設備為OMRON PLC為例,其通訊協(xié)議規(guī)定應答應當以"r"結尾;
  inBuffer[i]=0; //字符串結束標志;
  switch(m_iDlgType) // m_iDlgType為代表不同對話框的標志變量;
  {
  case 子對話框1標志:
  子對話框1.ProcData(inBuffer,i); //不同對話框中對命令應答的處理,ProcData為處理函數(shù)名;
  break;
  ......
  }
  ......
  }

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

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

  void 子對話框1類::OnTimer(UINT nIDEvent)
  {
  ...... 
  strcpy(m_szCmd,"@00RR00000001"); //OMRON PLC的命令字符串;
  GenXor(m_szCmd,result); //進行校驗碼計算,調用 GenXor 函數(shù);
  sprintf(szTailer,"%02X*r",result); //OMRON PLC通訊協(xié)議以“*r”結尾;
  strcat(m_szCmd,szTailer); //形成完整的通訊協(xié)議命令字符串;
  WriteFile(m_hComm, m_szCmd, strlen(m_szCmd),&dwWriten,NULL);
  //將命令字符串寫入串口;
  ......
  }
  以下為上面所調用的計算校驗碼的代碼:
  void GenXor(LPCSTR strSource,char& result) //為計算校驗碼的函數(shù),進行異或運算:
  {
  result=0; //為校驗碼賦初值;
  int len="strlen"(strSource); //命令協(xié)議字符串的長度;
  for(int i="0";iresult^=strSource[i]; //按位進行異或;
  }

  5.4 顯示界面處理

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


  void子對話框1類::ProcData(char *buffer, int len)
  {
  ......sscanf(buffer+7,"%04X",&wData); //根據(jù)OMRON PLC的命令規(guī)約,從應答中將需要的數(shù)據(jù)取出到變量wData中;
  ....... //對獲得的變量值根據(jù)需要進行處理,如以文字或動畫等形式在子對話框中進行顯示;
  }
  在進行界面處理時,有一些技巧,如動畫顯示時,可以用一個定時器控制圖片的輪番顯示。(在本系統(tǒng)中動畫是通過CbitmapButton這個控件進行顯示的。)
  switch(m_iImage) // m_iImage為定義的動畫顯示標志;
  {
  case 1: //顯示第一幅圖片,同時將動畫顯示標志置為2;
  CBitmapButton控件變量.LoadBitmaps(圖片標志1);
  m_iImage=2;
  break;
  case 2: //顯示第二幅圖片,同時將動畫顯示標志置為1;
  CBitmapButton控件變量.LoadBitmaps(圖片標志2);
  m_iImage=1;
  break;
  }

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

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

void 子對話框類::循環(huán)數(shù)組函數(shù)(int iValue) // iValue為從命令應答中解析出來的有效數(shù)據(jù);
  {
  int index=(m_iBegin+m_iCount)%20; //計算循環(huán)數(shù)組的下標,初始從0開始;
  m_aryValue=iValue; //為循環(huán)數(shù)組賦值;
  m_iCount++; //循環(huán)數(shù)組的個數(shù)加1;
  if(m_iCount>20) //判斷個數(shù)是否超過20個,如是,將下一個數(shù)組下標從1開始,依此類推;
  {
  m_iCount=20;
  m_iBegin=(m_iBegin+1)%20;
  }
  ......
  }

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

 6、結論

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

 

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

  隨著嵌入式操作系統(tǒng)的興起,各組態(tài)軟件的開發(fā)商也紛紛開發(fā)出了嵌入式版的組態(tài)軟件。但在實際應用中我們發(fā)現(xiàn)有許多企業(yè),他們的生產控制流程比較固定,需要的人機界面的數(shù)量又比較大,對他們來說,按這里介紹的方法,針對企業(yè)自身的生產工藝特點進行開發(fā),提供給用戶的是最終的運行系統(tǒng),不需要用戶再進行組態(tài)的二次開發(fā)。

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

  總之,可以看出,人機界面利用Microsoft eMbedded C++開發(fā)應用程序,與在Windows系統(tǒng)下用Microsoft Visual C++開發(fā)程序,有許多相象的地方。借助這個軟、硬件平臺,多數(shù)用戶完全可以開發(fā)出適合自己需要的應用程序。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉