人机界面简单编程实例分享

发布者:DazzlingSpirit最新更新时间:2025-09-22 来源: elecfans关键字:人机界面  编程 手机看文章 扫描二维码
随时随地手机看文章

人机界面简介

人机界面是指人和机器在信息交换和功能上接触或互相影响的领域或称界面所说人机结合面,信息交换,功能接触或互相影响,指人和机器的硬接触和软触,此结合面不仅包括点线面的直接接触,还包括远距离的信息传递与控制的作用空间。


人机结合面是人机系统中的中心一环节,主要由安全工程学的分支学科安全人机工程学去研究和提出解决的依据,并过安全工程设备工程学,安全管理工程学以及安全系统工程学去研究具体的解决方法手段措施安全人机学。它实现信息的内部形式与人类可以接受形式之间的转换。

凡参与人机信息交流的领域都存在着人机界面。大量运用在工业与商业上,简单的区分为“输入”(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。


关键字:人机界面  编程 引用地址:人机界面简单编程实例分享

上一篇:HMI的基本类型
下一篇:plc是什么的简称 plc工作原理

推荐阅读最新更新时间:2026-03-23 04:15

人机界面产品中有操作系统吗?
人机界面(触摸屏一体机)该产品由硬件和软件组成。硬件部分包括处理器、显示单元、输入单元、通信接口、数据存储单元等。HMI软件一般分为两部分,即运行在HMI硬件上的系统软件和运行在PC Windows操作系统上的屏幕组态软件。 连接可编程序控制器(PLC)、变频器、直流调速器、仪表等工业控制设备,利用显示屏显示,通过输入单元(如触摸屏、键盘、鼠标等)写入工作参数或输入操作命令,实现人与机器信息交互的数字设备,由硬件和软件两部分组成。 任何人机界面产品都有系统软件部分。系统软件运行在人机界面的处理器上,支持多任务处理。处理器需要一个小的操作系统管理系统软件来运行。基于平板电脑的高性能人机界面产品普遍采用WinCE、Linux等
[嵌入式]
基于STM32构建高性能低功耗的中文人机界面系统
在全站仪应用于飞机的测量过程中,常会涉及到计算,以满足不同的应用环境与测量要求,以往的方式是测量后期编辑软件在计算机上实现,现代测量迫切需要一种便携式手持计算系统,来完成实时的测量要求,而这一系统中中文人机界面成为一种事实上的行业标准。实现显示汉字的TFT液晶和可输入数字的小键盘已成为智能设备必不可少的组成部分。同时作为便携式设备基本要求的低功耗特性也贯穿于中文人机界面的设计始终。这种低功耗中文人机交互界面需要在选取处理器和具体元器件上有特殊考虑。微功耗、高性能应作为选择相关器件的首要要求。本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通过选择合适的液晶模块,构建了一个高性能低功
[单片机]
基于STM32构建高性能低功耗的中文<font color='red'>人机界面</font><font color='red'>系统</font>
PLC和人机界面组合的控制系统研究
引言     抢答器是一种广泛应用在各种智力竞赛中的一种典型电气控制产品,目前,市场上的抢答器,种类繁多,功能各异,控制方法也不相同。     本文采用了一种新的控制方式,用PLC和人机界面组合实现抢答器控制系统的控制。PLC结构简单,功能强大,通用性好,抗干扰能力强,可以提高系统的可靠性,稳定性;人机界面是一种连接人和机器的桥梁,用户可以自由的组合文字、按钮、图形、数字等来处理,监控和管理可能变化的信息,人员和设备的信息交流、数据修改、故障处理等都很方便。将二者结合更可以提高系统的性能。 1 抢答器的控制要求     1)该抢答器为六组选手提供按钮进行抢答,选手若回答主持人提出的问题时,需抢先按下各自的抢答按钮。
[嵌入式]
基于STM32的便携式人机界面系统
在全站仪应用于飞机的测量过程中,常会涉及到计算,以满足不同的应用环境与测量要求,以往的方式是测量后期编辑软件在计算机上实现,现代测量迫切需要一种便携式手持计算系统,来完成实时的测量要求,而这一系统中中文人机界面成为一种事实上的行业标准。实现显示汉字的TFT液晶和可输入数字的小键盘已成为智能设备必不可少的组成部分。同时作为便携式设备基本要求的低功耗特性也贯穿于中文人机界面的设计始终。这种低功耗中文人机交互界面需要在选取处理器和具体元器件上有特殊考虑。微功耗、高性能应作为选择相关器件的首要要求。本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通过选择合适的液晶模块,构建了一个高性能低
[单片机]
基于STM32的便携式<font color='red'>人机界面</font><font color='red'>系统</font>
Android会是未来人机界面系统的选择吗?
       人总是很难预料的,谁也说不准他们将如何与产品将交互。也许跟你预料的一样,人们会采用与测试时候相同的方法操作应用程序,也有可能把关闭窗口的按钮错认为是拷贝的按钮,最终沮丧地不停敲着键盘。     为了把系统的人机界面(Human Machine Interface,HMI)做的尽可能直观并节省用户的时间,很多设计师基于知名的操作系统如微软的Windows设计人机界面。Windows伴随着很多人长大,他们了解如何操作鼠标操、、最小化窗口和启动程序。     当采用Windows作为应用的外观的时候,这个应用的学习曲线会显著下降,用户操作不顺利或错误的情况也很可能会减少。而直到最近,用户和开发者都熟悉的操作系统都还
[手机便携]
基于人机界面及伺服控制器的卷烟系统
 MK9-5/PA8-5 型卷接机组是我国引进较早数量较多的烟草设备之一,为英国莫林斯(MOLINS)公司70年代产品。其电气系统设计复杂,电气逻辑、模拟控制是以两组 8088A微处理器为核心并由51块外露式专用电子线路板组成。由于该电气系统运行多年,设备老化,故障率相当高,给厂家造成许多不必要的损失。我厂在结合其现场实际情况并且经过大量调查研究后决定选用性价比极好的富士人机界面和可编程控制器及伦茨伺服控制器进行彻底改造该系统。   一、硬件组成   1、人机界面   选用富士UG220H-LC4,5.7寸STN单色八级灰度,可以与26个厂家的PLC直接通讯(正是由于其兼容性强才决定选用此产品),其编程方式简单易学,既使无专业
[工业控制]
基于<font color='red'>人机界面</font>及伺服控制器的卷烟<font color='red'>系统</font>
基于嵌入式系统arm2210开发板的移动机器人人机界面设计
  摘要: 移动机器人人机界面为移动机器人的运动控制提供直观的路径图形、运动速度和角度、障碍物信息等。通过arm2210的串口uart0接收中心处理器pc104的运动信息,利用东芝公司的液晶控制器t6963c驱动stn液晶屏yl240128a,以及zlg/gui软件包提供的基本绘图和菜单操作函数设计了基于嵌入式系统arm2210开发板的移动机器人人机界面,并利用arm2210的i2c器件zlg7290提供的i2c接口功能和键盘中断信号实现菜单选择,具有很强的实用性。   引言   嵌入式系统以其高性能、低功耗、低成本的优点,已经在很大程度上改变了人们的生活。如,mp3播放器、智能手机、数码相机产品等已经渗入人们生活的各个方面。
[安防电子]
柯马推出全新基于AI算法的创新元语言软件程序MI.RA/DEXTER,简化复杂机器人系统编程,优化人机交互体验
   得益于基于人工智能()算法的创新元语言,.RA/Dexr优化了操作员和机器人系统之间的交互   不同于传统的语言,该无需特定的IT或编程知识即可使用    通过简化机器人应用程序的编程,降低成本并简化部署    MI.RA/Dexter和Racer-5 COBOT用于新菲亚特500纯电汽车信息娱乐系统的自动化和质量控制   Grugliasco(都灵),2021年12月15日 — 柯马推出一款基于 AI(人工智能)算法的强大软件程序MI.RA/Dexter,该程序可在优化工业操作的同时,使人机交互变得更加容易。MI.RA/Dexter是一种元语言,代表了柯马对简易自动化的承诺。它通过将人类
[机器人]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved