wqlcdchen
级别: 探索解密
精华主题: 0
发帖数量: 8 个
工控威望: 124 点
下载积分: 554 分
在线时间: 8(小时)
注册时间: 2012-05-14
最后登录: 2012-10-30
查看wqlcdchen的 主题 / 回贴
楼主  发表于: 2012-05-22 12:58
微嵌组态人机界面(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处,从设备读配方同样也是选择HMILD寄存器20000处,因为本人机界面的数据保存功能寄存器是从LD20000LD30000.
数据 那里选择32位有符号数,然后新增,因为是16路数据采集功能,所以是 16*2*52是因为32有符号数,5等下解释)=160,新增到RW161 .然后点击确定,点击确定配方界面。



5.
建立配方数据表格,这个可以在人机界面元件中找到 配方表格


具体的属性设置如下:在控制界面的配方条目索引选择 你刚才定义的配方名称即可
                             
在表格显示中增加列数,分别是公差尺寸,公差上限,公差下限,标准差下限,标准差上限这5列。



如何保存这些数据呢?我们要在旁边添加一个保存数据按钮,称为多功能按钮,再增加一个备份按钮,步骤设置属性如下:


当然为了安全清楚的把数据保存到U盘,可以用一个指示灯指示U盘保存数据情况


至于如何将单片机采集到的数据保存到HMILD20000LD30000这些寄存器,需要用到一些简单的宏指令编写,也是简单的C语言而已,这些就是如何保存数据的大概步骤。
微嵌科技!