<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

人機界面簡單編程實例分享

jf_78858299 ? 來源:中潤高科機器人 ? 作者:中潤高科機器人 ? 2023-04-14 15:11 ? 次閱讀

人機界面簡介

人機界面是指人和機器在信息交換和功能上接觸或互相影響的領域或稱界面所說人機結合面,信息交換,功能接觸或互相影響,指人和機器的硬接觸和軟觸,此結合面不僅包括點線面的直接接觸,還包括遠距離的信息傳遞與控制的作用空間。

人機結合面是人機系統中的中心一環節,主要由安全工程學的分支學科安全人機工程學去研究和提出解決的依據,并過安全工程設備工程學,安全管理工程學以及安全系統工程學去研究具體的解決方法手段措施安全人機學。它實現信息的內部形式與人類可以接受形式之間的轉換。

凡參與人機信息交流的領域都存在著人機界面。大量運用在工業與商業上,簡單的區分為“輸入”(Input)與“輸出”(Output)兩種,輸入指的是由人來進行機械或設備的操作,如把手、開關、門、指令(命令)的下達或保養維護等,而輸出指的是由機械或設備發出來的通知,如故障、警告、操作說明提示等,好的人機接口會幫助使用者更簡單、更正確、更迅速的操作機械,也能使機械發揮最大的效能并延長使用壽命,而市面上所指的人機接口則多界狹義的指在軟件人性化的操作接口上。

人機界面的使用方法

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

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

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

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

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

人機界面的編程簡介

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

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

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

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

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

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

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

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

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

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

寫程序

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

程序調試

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

人機界面簡單編程實例

1.原理

AcTIveX控件的妙處在于,控件與應用程序總是能融洽地交互。AcTIveX控件提供了三種與應用程序交互的基本機制:屬性(Property)、方法(Method)和事件(Event)。用戶由此三部分來控制控件并開發程序。

屬性是描述控件的當前狀態,并影響控件的顯示和行為,屬性值存儲在控件的變量中。方法為定義在控件內的函數(FuncTIon),方法的使用與控件所提供的功能有關,通常會影響控件本身或其行為,大多數方法的作用也會受到控件當時屬性的影響。事件是在某些特定情況時,控件所產生的通知事件,事件被傳遞給控件應用程序以執行程序中與此事件連接的函數(Event handler)。

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

我們假設把一個程序分成兩部分:可視部分(前臺顯示操作的界面)和不可視部分(后臺工作的線程)。本文程序的顯示界面非常簡單,僅有一個作圖控件及一個退出按鈕,后臺工作是使用一個虛擬的PCI—9112多功能數據采集卡(不需要安裝真正的板卡)產生采樣數據。

程序流程見圖1,在程序的開始,調用PCI—9112控件的方法StartContAI來激活連續的AI, 當采樣完成時,會自動激活PCI—9112控件的事件AiHalfReady 0,在事件響應函數中,通過調用作圖控件的方法PlotChart 0,把采集到的數據傳送給作圖控件。

這樣,我們就能不斷地在屏幕上看到采樣數據,直到程序退出。整個程序只有兩條語句需要鍵盤輸入,其余工作都是通過鼠標點擊來完成的。從這個程序您可以感受到用DAQBench的ActiveX控件來做數據采集程序是多么的簡單容易。

圖片

**圖1 程序原理圖**

**2.編程**

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

**2.1 程序框架的建立**

使用Visual C++的MFC AppWizard來建立一個基于對話框的程序框架。

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

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

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

**2.2 加載DAQBench控件**

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

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

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

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

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

**2.3 程序設計**

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

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

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

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

圖片

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

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

圖片

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

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

void

CMZRDlg::OnAiHalfReadyPci9112ctrl1(VARIANT FARScaledData,VARIANT FARBinaryCodes)

{//TODO:Add your control notification handler code here

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

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

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

BOOL CMZRDlg::OnInitDialog()

{CDialog::OnInitDialog();

(1) 選擇Project》》 Add To Project 》》Components And Controls?項目,然后,在接著出現的對話框中,使用鼠標雙擊Registered ActiveX Controls目錄條目。這樣就會打開一系列計算機上已經安裝和注冊的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。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PC
    PC
    +關注

    關注

    9

    文章

    1967

    瀏覽量

    152974
  • 人機界面
    +關注

    關注

    5

    文章

    503

    瀏覽量

    43819
  • 機器
    +關注

    關注

    0

    文章

    756

    瀏覽量

    40545
收藏 人收藏

    評論

    相關推薦

    人機界面設計在工業設計中的應用

    好的人機界面美觀易懂、操作簡單且具有引導功能,使用戶感覺舒適、愉快,從而提高使用效率。界面可以分為硬界面和軟界面,也可以分為廣義的和狹義的
    發表于 01-21 15:43 ?2425次閱讀

    簡單人機界面實驗

    簡單人機界面實驗 一、實驗目的單片機的人機界面指單片機系統和使用人員間交換信息的設備。鍵盤和顯示器件是最基本的,但也是
    發表于 03-23 10:50 ?1330次閱讀
    <b class='flag-5'>簡單人機界面</b>實驗

    人機界面設計與應用

    本專題為你介紹人機界面設計及相關應用。內容包括人機界面、人機交互的含義與區別,人機界面硬件選型、開發軟件下載,人機界面技術資料,
    發表于 11-30 13:53
    <b class='flag-5'>人機界面</b>設計與應用

    人機界面設計案例分析

    本文開始對人機界面的定義進行了詳細的介紹,其次闡述了人機界面的設計原則和人機界面的設計過程,最后對人機界面設計的三個案例進行了分析。
    發表于 03-12 10:25 ?3.2w次閱讀

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

    本文開始介紹了人機界面的概念和人機界面的使用方法,其次闡述了人機界面編程以及分析了編程的難點和技術解決方案,最后介紹了
    發表于 04-02 17:05 ?2.3w次閱讀

    人機界面發展的特點都有哪些

    ,在工業自動化應用中具有重要作用。 人機界面功能包括:數據的輸入與顯示、系統或設備的操作狀態方面的實時信息顯示、在HMI上設置觸摸控件可把HMI作為操作面板進行控制操作、報警處理及打印等。此外,新一代工業人機界面還具有簡單
    的頭像 發表于 02-23 15:32 ?2648次閱讀

    什么是人機界面?

    人機界面(Human Machine Interface,HMI)通常是指自動化系統與用戶之間進行可視化信息交互的媒介。在工業自動化系統中,HMI通常與可編程序控制器、通用變頻器、智能設備和裝置
    的頭像 發表于 10-30 13:27 ?4890次閱讀

    人機界面之定時功能

    人機界面接口實例,RPGA與單片機無縫連接,親自創作,版權所有
    發表于 02-08 10:59 ?0次下載

    人機界面是什么意思_人機界面的特征

    人機界面(Human-Computer Interface,簡稱HCI)是指人與計算機之間進行交互的界面。它包括了人類和計算機之間的任何通訊方式,從基本的輸入輸出設備(如鍵盤、鼠標和顯示器)到語音
    發表于 03-15 17:02 ?3741次閱讀

    人機界面編程用什么語言_人機界面設計方法原則

    人機界面編程使用的語言和技術有很多,其中比較常見的包括以下幾種:   C++:C++是一種高級編程語言,可以用于開發各種應用程序和操作系統,也可以用于開發人機界面。   J
    發表于 03-16 15:29 ?2060次閱讀

    人機界面的應用

    人機界面的應用 HMI是人機界面的簡寫,它為PLC控制系統、I/O模塊或者其他控制系統提供一個人性化的操作界面,而人機界面則通過RS232、485、MODBUS、CAN總線等協議與這些
    發表于 04-14 11:02 ?347次閱讀

    人機界面編程是什么

    人機界面編程任務就是設計一個人機交互界面,在該界面上可以實現輸入,并能顯示機器的運行狀態及對輸入信息指令的響應結果。好的
    發表于 04-14 15:31 ?946次閱讀

    人機界面編程用什么語言 怎么用c++編寫人機界面程序

    人機界面編程一般使用 HMI 軟件進行編寫。常見的 HMI 軟件有 WinCC、ProTool、GP-Pro EX 等,這些軟件提供了圖形化編程界面,使得
    的頭像 發表于 04-15 16:23 ?3968次閱讀

    人機界面是什么意思

    可用性 人機界面必須具有良好的可用性,即能夠滿足用戶的需求,易于操作和理解。一個好的人機界面應該是直觀、簡單、易懂、易記、易于學習和使用。 2. 易學性 人機界面的設計應該注重易學性
    發表于 07-03 14:13 ?936次閱讀

    什么是人機界面?人機界面跟觸摸屏有什么區別?

    人機界面與人們常說的“觸摸屏”有什么區別?從嚴格意義上來說,兩者是有本質上的區別的。因為“觸摸屏”僅是人機界面產品中可能用到的硬件部分,是一種替代鼠標及鍵盤部分功能,安裝在顯示屏前端的輸入設備
    的頭像 發表于 10-25 08:07 ?1292次閱讀
    什么是<b class='flag-5'>人機界面</b>?<b class='flag-5'>人機界面</b>跟觸摸屏有什么區別?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>