0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

人機(jī)界面簡(jiǎn)單編程實(shí)例分享

jf_78858299 ? 來源:中潤(rùn)高科機(jī)器人 ? 作者:中潤(rùn)高科機(jī)器人 ? 2023-04-14 15:11 ? 次閱讀

人機(jī)界面簡(jiǎn)介

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

人機(jī)結(jié)合面是人機(jī)系統(tǒng)中的中心一環(huán)節(jié),主要由安全工程學(xué)的分支學(xué)科安全人機(jī)工程學(xué)去研究和提出解決的依據(jù),并過安全工程設(shè)備工程學(xué),安全管理工程學(xué)以及安全系統(tǒng)工程學(xué)去研究具體的解決方法手段措施安全人機(jī)學(xué)。它實(shí)現(xiàn)信息的內(nèi)部形式與人類可以接受形式之間的轉(zhuǎn)換。

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

人機(jī)界面的使用方法

明確監(jiān)控任務(wù)要求,選擇適合的HMI產(chǎn)品;

在PC機(jī)上用畫面組態(tài)軟件編輯“工程文件”;

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

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

連接HMI和工業(yè)控制器(如PLC、儀表等),實(shí)現(xiàn)人機(jī)交互。

人機(jī)界面的編程簡(jiǎn)介

單片機(jī)實(shí)現(xiàn)的項(xiàng)目人機(jī)界面相對(duì)簡(jiǎn)單。若為LED顯示,應(yīng)根據(jù)LED的位數(shù)選取簡(jiǎn)單、明燎、用戶一看便知的提示符;顯示的數(shù)據(jù)位數(shù)應(yīng)充分考慮用戶提出的技術(shù)要求。

分析編程的難點(diǎn)和技術(shù)解決方案

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

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

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

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

因?yàn)閽呙桄I盤的過程就是遍歷每個(gè)按鍵,識(shí)別抖動(dòng),識(shí)別按鍵是否松開等過程;除此之外還要延遲合適的時(shí)間,以便再次讀取鍵值。顯示過程也要遍歷每個(gè)數(shù)碼管或液晶字符;其中查表過程,送顯示過程都要用到比較復(fù)雜的循環(huán)遍歷算法。

(3)數(shù)字鍵和功能鍵的區(qū)分

是數(shù)字鍵就送顯示,是功能鍵就轉(zhuǎn)相應(yīng)的功能子程序,把兩者結(jié)合起來就構(gòu)成比較復(fù)雜的散轉(zhuǎn)程序。MCS51單片機(jī)有現(xiàn)成的散轉(zhuǎn)子程序可供參閱,PIC可以參照MCS51的散轉(zhuǎn)子程序套用。

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

寫程序

在上面的準(zhǔn)備工作完成后,就可以著手編寫程序。因?yàn)橛辛嗣鞔_的程序流程,有了充足的資料,可能遇到的難點(diǎn)基本上找到了解決方法;這樣,事先準(zhǔn)備得比較充分,即使在以后的程序編寫過程中遇到困難,也較易解決。這樣就可以節(jié)省很多時(shí)間,以便靜下心來認(rèn)真按照方案和流程編寫程序。另外,一般寫完1個(gè)功能程序就進(jìn)行調(diào)試,通過后再編寫另外1個(gè)功能代碼,這樣可以防止全部代碼編寫完畢后再調(diào)試可能帶來的相互影響,從而可以搞清楚到底是哪部分程序有問題。

程序調(diào)試

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

人機(jī)界面簡(jiǎn)單編程實(shí)例

1.原理

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

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

以下舉例說明,如何運(yùn)用DAQBench控件建立人機(jī)界面,以及使用ADLINK的數(shù)據(jù)采集設(shè)備的AcTIveX控件進(jìn)行模擬信號(hào)的處理。

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

程序流程見圖1,在程序的開始,調(diào)用PCI—9112控件的方法StartContAI來激活連續(xù)的AI, 當(dāng)采樣完成時(shí),會(huì)自動(dòng)激活PCI—9112控件的事件AiHalfReady 0,在事件響應(yīng)函數(shù)中,通過調(diào)用作圖控件的方法PlotChart 0,把采集到的數(shù)據(jù)傳送給作圖控件。

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

圖片

**圖1 程序原理圖**

**2.編程**

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

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

使用Visual C++的MFC AppWizard來建立一個(gè)基于對(duì)話框的程序框架。

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

在Step 1對(duì)話框選擇[Dialog based]選項(xiàng), 點(diǎn)Finish》》點(diǎn)0K。

這樣,應(yīng)用程序向?qū)?huì)構(gòu)建一個(gè)新的項(xiàng)目和程序的框架,并自動(dòng)在對(duì)話框編輯器中打開程序?qū)υ捒颉?/p>

**2.2 加載DAQBench控件**

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

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

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

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

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

**2.3 程序設(shè)計(jì)**

將控件添加到控件工具欄之后,就可以在設(shè)計(jì)應(yīng)用程序的用戶界面時(shí)使用控件了。開發(fā)者可以使用對(duì)話框編輯器將控件放置在對(duì)話框上。具體操作步驟如下:

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

單擊Controls工具條底部的DChart按鈕,并通過鼠標(biāo)點(diǎn)擊把它放在對(duì)話框中,ActiveX控件可以象標(biāo)準(zhǔn)Windows控件一樣插入對(duì)話框,并可調(diào)整位置與大小。

選擇Controls工具條底部的PCI—9112按鈕,把它放在對(duì)話框中適當(dāng)?shù)奈恢?,右鍵點(diǎn)擊對(duì)話框中的PCI—9112控件,在打開的菜單中選擇屬性(Properties),就會(huì)出現(xiàn)一個(gè)帶有各種不同屬性字段的屬性頁(yè)對(duì)話框。通過屬性頁(yè)對(duì)話框,你可以對(duì)這個(gè)特定的控件進(jìn)行設(shè)置,具體數(shù)值見表1。

圖片

**表1 控件NuDAQ PCI-9112 Control屬性設(shè)置**

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

圖片

**表2 對(duì)話框中相應(yīng)控件變量的**

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

void

CMZRDlg::OnAiHalfReadyPci9112ctrl1(VARIANT FARScaledData,VARIANT FARBinaryCodes)

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

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

在初始化函數(shù)中啟動(dòng)數(shù)據(jù)采集函數(shù):

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

BOOL CMZRDlg::OnInitDialog()

{CDialog::OnInitDialog();

(1) 選擇Project》》 Add To Project 》》Components And Controls?項(xiàng)目,然后,在接著出現(xiàn)的對(duì)話框中,使用鼠標(biāo)雙擊Registered ActiveX Controls目錄條目。這樣就會(huì)打開一系列計(jì)算機(jī)上已經(jīng)安裝和注冊(cè)的ActiveX控件清單。選擇并插入需要的ActiveX控件到您的項(xiàng)目和控件工具欄中。

/TODO :Add extra initialization here VARIANT Filename;

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

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

2.4 程序測(cè)試

通過按Ctrl_F5鍵直接在Developer Studio中運(yùn)行程序,運(yùn)行結(jié)果如圖2所示。

圖片

**圖2 運(yùn)行結(jié)果**

開發(fā)環(huán)境:本文假設(shè)您已經(jīng)安裝了Visual C++6.0和DAQBench和PCIS—OCX。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PC
    PC
    +關(guān)注

    關(guān)注

    9

    文章

    2049

    瀏覽量

    153809
  • 人機(jī)界面
    +關(guān)注

    關(guān)注

    5

    文章

    521

    瀏覽量

    44054
  • 機(jī)器
    +關(guān)注

    關(guān)注

    0

    文章

    773

    瀏覽量

    40661
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人機(jī)界面設(shè)計(jì)在工業(yè)設(shè)計(jì)中的應(yīng)用

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

    簡(jiǎn)單人機(jī)界面實(shí)驗(yàn)

    簡(jiǎn)單人機(jī)界面實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康膯纹瑱C(jī)的人機(jī)界面指單片機(jī)系統(tǒng)和使用人員間交換信息的設(shè)備。鍵盤和顯示器件是最基本的,但也是
    發(fā)表于 03-23 10:50 ?1380次閱讀
    <b class='flag-5'>簡(jiǎn)單人機(jī)界面</b>實(shí)驗(yàn)

    人機(jī)界面設(shè)計(jì)與應(yīng)用

    本專題為你介紹人機(jī)界面設(shè)計(jì)及相關(guān)應(yīng)用。內(nèi)容包括人機(jī)界面人機(jī)交互的含義與區(qū)別,人機(jī)界面硬件選型、開發(fā)軟件下載,人機(jī)界面技術(shù)資料,
    發(fā)表于 11-30 13:53
    <b class='flag-5'>人機(jī)界面</b>設(shè)計(jì)與應(yīng)用

    hmi人機(jī)界面包括什么_hmi人機(jī)界面設(shè)計(jì)

     HMI是Human Machine Interface的縮寫,即“人機(jī)接口”,也叫人機(jī)界面。HMI人機(jī)界面是系統(tǒng)和用戶之間進(jìn)行交互和信息交換的媒介,它實(shí)現(xiàn)信息的內(nèi)部形式與人類可以接受形式之間的轉(zhuǎn)換。凡參與
    發(fā)表于 12-05 17:26 ?2.7w次閱讀
    hmi<b class='flag-5'>人機(jī)界面</b>包括什么_hmi<b class='flag-5'>人機(jī)界面</b>設(shè)計(jì)

    人機(jī)界面設(shè)計(jì)案例分析

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

    人機(jī)界面簡(jiǎn)單編程實(shí)例介紹

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

    什么是人機(jī)界面

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

    人機(jī)界面之定時(shí)功能

    人機(jī)界面接口實(shí)例,RPGA與單片機(jī)無縫連接,親自創(chuàng)作,版權(quán)所有
    發(fā)表于 02-08 10:59 ?0次下載

    人機(jī)界面是什么意思_人機(jī)界面的特征

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

    人機(jī)界面編程用什么語(yǔ)言_人機(jī)界面設(shè)計(jì)方法原則

    人機(jī)界面編程使用的語(yǔ)言和技術(shù)有很多,其中比較常見的包括以下幾種:   C++:C++是一種高級(jí)編程語(yǔ)言,可以用于開發(fā)各種應(yīng)用程序和操作系統(tǒng),也可以用于開發(fā)人機(jī)界面。   J
    發(fā)表于 03-16 15:29 ?2262次閱讀

    人機(jī)界面的應(yīng)用

    人機(jī)界面的應(yīng)用 HMI是人機(jī)界面的簡(jiǎn)寫,它為PLC控制系統(tǒng)、I/O模塊或者其他控制系統(tǒng)提供一個(gè)人性化的操作界面,而人機(jī)界面則通過RS232、485、MODBUS、CAN總線等協(xié)議與這些
    發(fā)表于 04-14 11:02 ?482次閱讀

    人機(jī)界面編程是什么

    人機(jī)界面編程任務(wù)就是設(shè)計(jì)一個(gè)人機(jī)交互界面,在該界面上可以實(shí)現(xiàn)輸入,并能顯示機(jī)器的運(yùn)行狀態(tài)及對(duì)輸入信息指令的響應(yīng)結(jié)果。好的
    發(fā)表于 04-14 15:31 ?1129次閱讀

    人機(jī)界面編程用什么語(yǔ)言 怎么用c++編寫人機(jī)界面程序

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

    人機(jī)界面是什么意思

    可用性 人機(jī)界面必須具有良好的可用性,即能夠滿足用戶的需求,易于操作和理解。一個(gè)好的人機(jī)界面應(yīng)該是直觀、簡(jiǎn)單、易懂、易記、易于學(xué)習(xí)和使用。 2. 易學(xué)性 人機(jī)界面的設(shè)計(jì)應(yīng)該注重易學(xué)性
    發(fā)表于 07-03 14:13 ?1240次閱讀

    人機(jī)界面應(yīng)具備的特性是什么

    人機(jī)界面(Human-Machine Interface,簡(jiǎn)稱HMI)是人與機(jī)器之間進(jìn)行信息交流和控制的媒介。一個(gè)優(yōu)秀的人機(jī)界面能夠提高工作效率、降低操作難度、增強(qiáng)用戶體驗(yàn)。本文將從多個(gè)方面探討人機(jī)界面
    的頭像 發(fā)表于 07-01 14:24 ?465次閱讀