在很多时候,涉及到单片机控制的产品都需要用到一个显示界面(正确称为人机界面最为合适,简称HMI),然而,单单显示又是不够的,很多单片机主板采集到的模拟量,数字量等数据需要进行保存功能,人机界面与单片机断电之后,等下次设备再次开机的时候,又需要把之前的数据以一定的表格,曲线显示出来,这种功能称之为断电数据保存功能。解决的方案有2种:
1.单片机主板里面集成EEROM等掉电存储芯片。这种是最为传统的解决方案,优点在于一般的单片机工程师都能够想到,缺点是成本比较高,增加编程的难度,尤其是数据量大的时候,芯片的价格也相应增长。如果是用在数据量比较少的场合,用普通的STC等单片机就可以了,因为单片机里面集成了EEROM,存储量至少是 1K以上的。
2.选择带有数据保存功能的人机界面,更复杂的还有配方等功能。这种方案的优势很明显,节约成本,单片机主板设计简单,编程也方便,存储容量更大,还可以时时把相关采集数据以excel等文件的格式复制到U盘。
现在就做个例程,介绍如何把单片机采集的各路数据进行保存,整改,对比,复制到U盘等等。
该工程应用实例是基于测控行业的一种仪器设计的,模拟量采集有16路,涉及到精确的数据显示,我们采用32位有符号数表示(这个可以在人机界面编程的时候设计,步骤有说到)。
相关步骤如下:
1.安装相应的嵌入式组态软件,这里以广州市微嵌计算机科技有限公司(www.wqlcd.com)的组态软件为例,因为涉及单片机开发的,它可以提供工业标准的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语言而已,这些就是如何保存数据的大概步骤。
技术支持QQ企业QQ:800005447
关于单片机与人机界面通讯的资料下载: