微嵌组态人机界面(HMI)与单片机通信及数据保存的应用
 我们做开发很多时候,涉及到单片机控制的产品都需要用到一个显示界面(正确称为人机界面最为合适,简称HMI),然而,单单显示又是不够的,很多单片机主板采集到的模拟量,数字量等数据需要进行保存功能,人机界面与单片机断电之后,等下次设备再次开机的时候,又需要把之前的数据以一定的表格,曲线显示出来,这种功能称之为断电数据保存功能。解决的方案有2种: 1.单片机主板里面集成EEROM等掉电存储芯片。这种是最为传统的解决方案,优点在于一般的单片机工程师都能够想到,缺点是成本比较高,增加编程的难度,尤其是数据量大的时候,芯片的价格也相应增长。如果是用在数据量比较少的场合,用单片机里面的EEROM就可以了。 2.选择带有数据保存功能的人机界面,更复杂的还有配方等功能。这种方案的优势很明显,节约成本,单片机主板设计简单,编程也方便,存储容量更大,还可以时时把相关采集数据以excel等文件的格式复制到U盘。 现在就做个例程,介绍如何把单片机采集的各路数据进行保存,整改,对比,复制到U盘等等。 该工程应用实例是基于测控行业的一种仪器设计的,模拟量采集有16路,涉及到精确的数据我们可以采用32位有符号数表示。 相关步骤如下: 1.安装相应的嵌入式组态软件,这里以微嵌组态软件为例,它可以提供工业标准的Modbus RTU协议和简单的自由协议接口函数。 安装好组态软件之后,打开软件点击 “新建”,如下图:
 2.选择人机界面HMI的型号,这里选择WQT_T8048_070(800*480),点击下面的新增按钮,表示新增与人机界面连接的设备串口
 这里选用工业标准的Modbus RTU协议作为与单片机连接的协议,当然也可以选择自由协议(free protocol)。点击下一步,进入工程描述状态,这些根据个人情况填写,填写之后点击确定进入画面编辑状态。
 3.再点击菜单栏的设置菜单进入“配方管理器”
 4.进入配方界面之后点击“新增”,输入配方的名称。
 在“写配方到设备”选择HMI 的LD寄存器地址 20000处,“从设备读配方”同样也是选择HMI的LD寄存器20000处,因为本人机界面的数据保存功能寄存器是从LD20000到LD30000. 数据 那里选择32位有符号数,然后新增,因为是16路数据采集功能,所以是 16*2*5(2是因为32有符号数,5等下解释)=160,新增到RW161 .然后点击确定,点击确定配方界面。
 5.建立配方数据表格,这个可以在人机界面元件中找到 配方表格
 具体的属性设置如下:在“控制”界面的“配方条目索引”选择 你刚才定义的配方名称即可 在表格显示中增加列数,分别是公差尺寸,公差上限,公差下限,标准差下限,标准差上限这5列。
 如何保存这些数据呢?我们要在旁边添加一个保存数据按钮,称为多功能按钮,再增加一个备份按钮,步骤设置属性如下:
 当然为了安全清楚的把数据保存到U盘,可以用一个指示灯指示U盘保存数据情况
 至于如何将单片机采集到的数据保存到HMI的LD20000到LD30000这些寄存器,需要用到一些简单的宏指令编写,也是简单的C语言而已,这些就是如何保存数据的大概步骤。
|