18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> PLC基礎及應用 >> 正文

人機界麵簡單編程實例介紹

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2021-06-06

  人機界麵簡介

  人機界麵是指人和機器在信息交換和功能上接觸或互相影響的領域或稱界麵所說人機結合麵,信息交換,功能接觸或互相影響,指人和機器的硬接觸和軟觸,此結合麵不僅(jin) 包括點線麵的直接接觸,還包括遠距離的信息傳(chuan) 遞與(yu) 控製的作用空間。人機結合麵是人機係統中的中心一環節,主要由安全工程學的分支學科安全人機工程學去研究和提出解決(jue) 的依據,並過安全工程設備工程學,安全管理工程學以及安全係統工程學去研究具體(ti) 的解決(jue) 方法手段措施安全人機學。它實現信息的內(nei) 部形式與(yu) 人類可以接受形式之間的轉換。凡參與(yu) 人機信息交流的領域都存在著人機界麵。大量運用在工業(ye) 與(yu) 商業(ye) 上,簡單的區分為(wei) “輸入”(Input)與(yu) “輸出”(Output)兩(liang) 種,輸入指的是由人來進行機械或設備的操作,如把手、開關(guan) 、門、指令(命令)的下達或保養(yang) 維護等,而輸出指的是由機械或設備發出來的通知,如故障、警告、操作說明提示等,好的人機接口會(hui) 幫助使用者更簡單、更正確、更迅速的操作機械,也能使機械發揮最大的效能並延長使用壽命,而市麵上所指的人機接口則多界狹義(yi) 的指在軟件人性化的操作接口上。

  人機界麵的使用方法

  明確監控任務要求,選擇適合的HMI產(chan) 品;

  在PC機上用畫麵組態軟件編輯“工程文件”;

  測試並保存已編輯好的“工程文件”;

  PC機連接HMI硬件,下載“工程文件”到HMI中;

  連接HMI和工業(ye) 控製器(如PLC、儀(yi) 表等),實現人機交互。

人機界麵簡單編程實例介紹

  人機界麵的編程簡介

  用單片機實現的項目人機界麵相對簡單。若為(wei) LED顯示,應根據LED的位數選取簡單、明燎、用戶一看便知的提示符;顯示的數據位數應充分考慮用戶提出的技術要求。

  分析編程的難點和技術解決方案

  即使1個(ge) 熟練的編程人員,編程過程中會(hui) 遇到一些困難。為(wei) 了能比較順利地完成程序設計,應根據程序所完成的功能和程序流程對整個(ge) 程序的框架分析一下,並根據自己掌握的技能定位整個(ge) 程序的難點,然後找到最佳的算法。例如對於(yu) 稍微大一點的項目,鍵盤掃描和顯示部分的程序編製應該是單片機編程的難點。

  (1)無論是鍵盤掃描還是顯示過程都和硬件部分息息相關(guan)

  送片選信號選取鍵盤就必須搞清單片機芯片是高電平選通還是低電平選通;選通鍵盤後,還需要讀回鍵盤的狀態。對讀回的鍵盤狀態還要進行防抖處理;若鍵盤抖動,放棄讀回的數據,重新讀鍵盤狀態;若確定為(wei) 鍵盤按下,才能對按鍵值進行處理;處理後的鍵值送顯示或作為(wei) 其它使用。由此可知以上的每一過程都和硬件電路打交道。

  (2)鍵盤掃描和顯示牽涉到的算法比較複雜

  因為(wei) 掃描鍵盤的過程就是遍曆每個(ge) 按鍵,識別抖動,識別按鍵是否鬆開等過程;除此之外還要延遲合適的時間,以便再次讀取鍵值。顯示過程也要遍曆每個(ge) 數碼管或液晶字符;其中查表過程,送顯示過程都要用到比較複雜的循環遍曆算法。

  (3)數字鍵和功能鍵的區分

  是數字鍵就送顯示,是功能鍵就轉相應的功能子程序,把兩(liang) 者結合起來就構成比較複雜的散轉程序。MCS51單片機有現成的散轉子程序可供參閱,PIC可以參照MCS51的散轉子程序套用。

  以上3點都是單片機編程的難點部分,在編程之前都應該找出來仔細分析。通過分析,將所有可能成為(wei) 難點之處都一一找出並找出相應的算法,在以後的程序編寫(xie) 過程中也相應地比較順利。

  寫(xie) 程序

  在上麵的準備工作完成後,就可以著手編寫(xie) 程序。因為(wei) 有了明確的程序流程,有了充足的資料,可能遇到的難點基本上找到了解決(jue) 方法;這樣,事先準備得比較充分,即使在以後的程序編寫(xie) 過程中遇到困難,也較易解決(jue) 。這樣就可以節省很多時間,以便靜下心來認真按照方案和流程編寫(xie) 程序。另外,一般寫(xie) 完1個(ge) 功能程序就進行調試,通過後再編寫(xie) 另外1個(ge) 功能代碼,這樣可以防止全部代碼編寫(xie) 完畢後再調試可能帶來的相互影響,從(cong) 而可以搞清楚到底是哪部分程序有問題。

  程序調試

  程序的調試過程是1個(ge) 比較複雜的過程,有些需要高度的技巧和一定的方法。一般的編程軟件都提供單步、單步越過、斷點、運行到光標處等基本方法,一般掌握這幾種基本方法就可以解決(jue) 絕大部分問題。經過長時間的調試實踐之後自然就可以掌握一定的調試技巧,即熟能生巧。

  人機界麵簡單編程實例

  1、原理

  ActiveX控件的妙處在於(yu) ,控件與(yu) 應用程序總是能融洽地交互。AcTIveX控件提供了三種與(yu) 應用程序交互的基本機製:屬性(Property)、方法(Method)和事件(Event)。用戶由此三部分來控製控件並開發程序。屬性是描述控件的當前狀態,並影響控件的顯示和行為(wei) ,屬性值存儲(chu) 在控件的變量中。方法為(wei) 定義(yi) 在控件內(nei) 的函數(FuncTIon),方法的使用與(yu) 控件所提供的功能有關(guan) ,通常會(hui) 影響控件本身或其行為(wei) ,大多數方法的作用也會(hui) 受到控件當時屬性的影響。事件是在某些特定情況時,控件所產(chan) 生的通知事件,事件被傳(chuan) 遞給控件應用程序以執行程序中與(yu) 此事件連接的函數(Event handler)。

  以下舉(ju) 例說明,如何運用DAQBench控件建立人機界麵,以及使用ADLINK的數據采集設備的AcTIveX控件進行模擬信號的處理。

  我們(men) 假設把一個(ge) 程序分成兩(liang) 部分:可視部分(前台顯示操作的界麵)和不可視部分(後台工作的線程)。本文程序的顯示界麵非常簡單,僅(jin) 有一個(ge) 作圖控件及一個(ge) 退出按鈕,後台工作是使用一個(ge) 虛擬的PCI—9112多功能數據采集卡(不需要安裝真正的板卡)產(chan) 生采樣數據。程序流程見圖1,在程序的開始,調用PCI—9112控件的方法StartContAI來激活連續的AI, 當采樣完成時,會(hui) 自動激活PCI—9112控件的事件AiHalfReady 0,在事件響應函數中,通過調用作圖控件的方法PlotChart 0,把采集到的數據傳(chuan) 送給作圖控件。這樣,我們(men) 就能不斷地在屏幕上看到采樣數據,直到程序退出。整個(ge) 程序隻有兩(liang) 條語句需要鍵盤輸入,其餘(yu) 工作都是通過鼠標點擊來完成的。從(cong) 這個(ge) 程序您可以感受到用DAQBench的AcTIveX控件來做數據采集程序是多麽(me) 的簡單容易。

  人機界麵簡單編程實例介紹

  圖1 程序原理圖

  2、編程

  以下將以逐步推進(step by step)的方式,說明如何在微軟的Visual c++6.0下,運用DAQBench的ActiveX控件來完成數據采集的應用。

  2.1 程序框架的建立

  使用Visual C++的MFC AppWizard來建立一個(ge) 基於(yu) 對話框的程序框架。

  通過File》》New菜單命令建立一個(ge) 新的項目,其會(hui) 打開New的對話框。在Projects頁麵中,選擇[MFC AppWizard(exe)]項目類型,在Project name中輸入項目名稱:MZR 點0K。

  在Step 1對話框選擇[Dialog based]選項, 點Finish》》點0K。

  這樣,應用程序向導會(hui) 構建一個(ge) 新的項目和程序的框架,並自動在對話框編輯器中打開程序對話框。

  2.2 加載DAQBench控件

  把需要的ActiveX控件添加到控件工具欄(Control Toolbar)的步驟如下:

  (2) 選擇繪圖ActiveX控件(文件名)DAQBench DChart Control—(ADLINK),單擊Insert按鈕,在隨後的對話框中使用鼠標點選OK,接受缺省的類名和文件名。

  (3) 選擇數據采集ActiveX控件(文件名)NuDAQ PCI—9112 Control—(ADLINK),單擊Insert按鈕,單擊確定按鈕,單擊OK按鈕,接受缺省的類名和文件名。

  (4) 添加完畢,返回Components And Controls Gallery對話框,單擊Close按鈕。

  這樣,就在對話框編輯器的控件工具欄中,加進了繪圖控件DAQBench DChart Control和數據采集控件NuDAQ PCI—9112 Control,可以方便地將控件加入到對話框中。

  2.3 程序設計

  將控件添加到控件工具欄之後,就可以在設計應用程序的用戶界麵時使用控件了。開發者可以使用對話框編輯器將控件放置在對話框上。具體(ti) 操作步驟如下:

  刪除窗體(ti) 上帶TODO消息的靜態文本控件,並刪除確定按鈕。

  單擊Controls工具條底部的DChart按鈕,並通過鼠標點擊把它放在對話框中,ActiveX控件可以象標準Windows控件一樣插入對話框,並可調整位置與(yu) 大小。

  選擇Controls工具條底部的PCI—9112按鈕,把它放在對話框中適當的位置,右鍵點擊對話框中的PCI—9112控件,在打開的菜單中選擇屬性(Properties),就會(hui) 出現一個(ge) 帶有各種不同屬性字段的屬性頁對話框。通過屬性頁對話框,你可以對這個(ge) 特定的控件進行設置,具體(ti) 數值見表1。

  

  表1 控件NuDAQ PCI-9112 Control屬性設置

  在用戶使用控件編寫(xie) 程序之前,要先為(wei) 該控件設定一個(ge) 變量名稱。下麵為(wei) 作圖控件和采樣控件設定相應變量:通過快捷鍵Ctrl+W,打開MFC Class Wizard對話框,在Member Variables標簽中將Class name設置為(wei) CMZRDlg,通過Add Variables?按鈕給其中的控件標識號添加變量,變量的定義(yi) 見表2。

  

  表2 對話框中相應控件變量的

  定義(yi) PCI—9112控件的事件處理函數,通過快捷鍵Ctrl+W,在MFC Class Wizard窗口中,按下Message Maps 標簽並在Object Ids字段中選IDC_PCI9112CTRLI控件,在Messages字段中選AiHalfReady,單擊Add Function按鈕,添加數據采集控件的AiHalfReady消息響應函數,接受缺省的函數名,單擊Edit Code按鈕以定位到該函數,在其中加入下列代碼:

  void

  CMZRDlg::OnAiHalfReadyPci9112ctrl1(VARIANT FAR*ScaledData,VARIANT FAR*BinaryCodes)

  {

  //TODO:Add your control notification handler code here

  m_Chart.PlotChart(ScaledData);// 將ScaledData中的采樣數據傳(chuan) 遞給作圖控件。

  }

  在初始化函數中啟動數據采集函數:

  定位到對話框初始化函數void CMzRDlg::OnInitDialog(),在其結尾return TRUE;語句之前加入下列語句

  BOOL CMZRDlg::OnInitDialog()

  {

  CDialog::OnInitDialog();

  (1) 選擇Project》》 Add To Project 》》Components And Controls?項目,然後,在接著出現的對話框中,使用鼠標雙擊Registered ActiveX Controls目錄條目。這樣就會(hui) 打開一係列計算機上已經安裝和注冊(ce) 的ActiveX控件清單。選擇並插入需要的ActiveX控件到您的項目和控件工具欄中。

  /TODO :Add extra initialization here VARIANT Filename;

  m_Pci9112.StartContAI(Filename);//激活連續

  return TRUE; //return TRUE unless you set the focus to a control

  }

  2.4 程序測試

  通過按Ctrl_F5鍵直接在Developer Studio中運行程序,運行結果如圖2所示。

  

  圖2 運行結果

  開發環境:本文假設您已經安裝了Visual C++6.0和DAQBench和PCIS—OCX。

  DAQBench和PCIS—OCX這兩(liang) 個(ge) 軟件可從(cong) 淩華公司的網站(http://www.adlinktech.com/download area/software.htm)下載。

Tags:人機界麵,plc  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    最新推薦
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢