1 创建一个波形显示工程
创建一个波形显示工程
波形、数值、按钮控件使用说明
www.vibesic.com
sales.cn@vibesic.com.cn
86-755-2646-2657
86-755-2645-2675
波形、数值、按钮控件的使用
2
2 创建一个波形显示工程
修订历史
版本 日期 说明
V1.0 2010/03/28 创建文档
V1.1 2010/05/12 修改排版
V2.0 2010/06/12 使用最新 HMIDesigner 版本创建
V2.1 2010/10/27 增加视频演示
V2.2 2010/11/01 修改主控 MCU代码
波形、数值、按钮控件的使用
3
3 创建一个波形显示工程
目 录
项目背景........................................................................................................................................... 4
项目
规划
污水管网监理规划下载职业规划大学生职业规划个人职业规划职业规划论文
........................................................................................................................................... 4
波形........................................................................................................................................... 4
数值........................................................................................................................................... 4
按钮........................................................................................................................................... 4
整体风格设计 ................................................................................................................................... 5
HMIDesigner 设计流程 .................................................................................................................... 6
主控 MCU 操作 .............................................................................................................................. 10
主控 MCU 的类型................................................................................................................... 10
主控 MCU 流程与 VSD 的交互命令规划 .............................................................................. 11
主控 MCU 操作库................................................................................................................... 11
PC 下实现示例 ....................................................................................................................... 11
视频演示......................................................................................................................................... 14
免责声明......................................................................................................................................... 15
波形、数值、按钮控件的使用
4
4 创建一个波形显示工程
项目背景
在采集、测控测量的项目中一般都需要使用波形图以及显示当前的各种平均量等。在本
示例中将使用波形、数值、按钮控件完成一个波形显示的人机界面设计。
本项目需要通过主控 MCU 向 VSD 发送波形中需要显示的值,以及数值控件中需要显示
的数值。
本项目在 VM8048-7TVSD 模组中实现,分频率为 800x480 像素。
项目规划
采集一个压力传感器的压力值,压力传感量 0-10MPa,采集时间 3.5 分钟以内。压力传
感器 AD 值输出 0-4096。
根据当前的需求:主体采用 VSD 中的波形控件完成,辅以数值框用来显示采集的时间,
使用按钮控件用来与主控 MCU 通信。
波形
VM8048 中屏幕高度为 480 个像素,0-4096 的数据全部显示,超出了范围,同时波形控
件中支持图像方法,不支持图像缩小,因此将 0-4096 缩小 10 倍为 0-409.6,取整为 0-410;
在纵向使用 410 个像素。最大采集时间为 3.5 分钟,共 210 秒,在横向 800 个像素中可以使
用 630 个像素显示时间轴。
即波形窗体为 410x630 像素。
数值
本项目中可以从波形显示中确认采集时间,但是为了更为直观的显示采集的进行时间,
设计一个数值用来显示采集时间。
按钮
本项目中通过触摸屏作为人机界面的输入,主控 MCU 收到触摸屏的指令后采集数据并
送给 VSD 模组显示。因此本项目中添加《开始采集》《结束采集》《设置》三个按钮。为了
简单示意,暂时只实现《开始采集》/《结束采集》两个按钮。同样《开始采集》《结束采集》
两个指令可以在同一个按钮上实现,修改主控 MCU 的代码即可。
波形、数值、按钮控件的使用
5
5 创建一个波形显示工程
整体风格设计
基于以上的项目规划,可以设计需要的画面,整体显示的风格,用户可以自由设计和定
义,也可以交由专业的 UI 设计公司来做。
示例当中设计了两款图片,可以从其中选择一个即可。图片使用在 VSD 中之后,将 VSD
显示的每一个图像,我们又称为“画面”,但是在设计的初期其实是同一个概念,在很多说
明中将混合使用“图片”和“画面”两个词汇。
图片 1
图片 2
示例工程当中采用图片 2 作为主画面。
波形、数值、按钮控件的使用
6
6 创建一个波形显示工程
HMIDesigner 设计流程
以下将详细介绍 HMIDesigner 中的实现流程。
1. 启动 HMIDesigner 设计软件,并新建方案。
a) 定义方案名称,以及工程名称,分别为“8048 波形示例”,“波形”;方案与工
程的区别请参考名词解释。
b) 选择板卡类型,选择通信的串口,选择保存路径。
2. 设置工程属性。
a) 点击“工程”选项卡
b) 选中“波形”工程
c) 点击“属性”选项卡,在其中设置当前工程的属性:
i. 波特率:此处的串口波特率为工程实现完成后与主控 MCU 之间通信的串口波
特率,支持从 2400到 115200各种波特率。本项目与主控 MCU通信采用 115200,
因此选择 115200 速率。
ii. 支持触摸屏:本工程支持触摸屏选择“Ture”
iii. 触摸屏模式:触摸屏模式选择“C”。
到此工程属性设置完毕。
3. 添加图片
a) 选择《资源》/《导入图片》命令,弹出对话框,选择在“整体风格”章节中设计
好的图片 2;
b) 使用的图片已经在资源栏目中,选择可以预览。
波形、数值、按钮控件的使用
7
7 创建一个波形显示工程
4. 创建画面:
a) 工程默认打开时会创建一个画面“Page1”,本项目仅需要一个画面进行显示。因
此无需再创建画面。
5. 设置画面
在《工程》选项卡中选中画面 1“Page1”,然后点击《属性》选项卡,设置“Page1”
的属性
a) 点击背景图,选择导入的图片文件,《确认》后,图片“02”将作为背景图在“Page1”
中显示。
波形、数值、按钮控件的使用
8
8 创建一个波形显示工程
6. 添加并设置波形控件
a) 选择“波形图”控件
b) 点击“光标”让鼠标在选取模式
c) 双击波形区域
d) 修改“波形图”属性。
“波形”控件的主要设置如下属性:
X 轴放大因子
波形颜色
波形数量(一个波形控件最多可以显示 4 条波形)
数据个数
波形、数值、按钮控件的使用
9
9 创建一个波形显示工程
位置等。
可以按照下图参数;
7. 添加并设置数值控件
8. 添加并设置按钮控件
波形、数值、按钮控件的使用
10
10 创建一个波形显示工程
重启 VSD 模组后,即运行当前的设计。
9. 设置完毕之后,点击《编译》/《编译》命令,对所有设置进行编译,如果有设置错误
的地方软件将自动提醒。编译成功后保存当前工程。
10. 联机:
点击《编译》/《联机》命令,进行联机测试。联机成功则弹出对话框“联机测试正常,
可以进行后续操作”。
下载:
点击《编译》/《下载》命令,将设计下载当 VSD 中。
11. 下载:
点击《编译》/《下载》命令,将设计下载当 VSD 中。
12. 重启 VSD 模组后,即运行当前的设计。
主控 MCU 操作
在本项目中使用主控 MCU 进行控制,VSD 模组本身作为从设备,因此在章节中将对主
控 MCU 的程序设计进行说明。
使用各种 VSD 的板卡模块作为人机界面时,主控 MCU 对于人机界面的操作只有当前的
各种数据,不包括各种图形图像信息,图形图像的信息由 HMIDesigner 已经全部设计完成。
主控 MCU 的类型
主控 MCU 可以是具有串口通信能力的任何 MCU.
波形、数值、按钮控件的使用
11
11 创建一个波形显示工程
主控 MCU 流程与 VSD 的交互命令规划
通过设备的工作过程规划主控 MCU 与 VSD 的交互过程。
VSD 启动完成后,主动向主控 MCU 发送指令,声明 VSD 进入工作状态(VSD 准
备好)。此时第一条声明有可能主控 MCU 并未接收到,因为无法确认主控 MCU 与
VSD 各自的启动时间。
主控 MCU 监控其他设备都启动完成后(不包括 VSD 板卡),向 VSD 发送测试指
令,VSD 收到测试指令后回应,则双方建立通道成功。
主控 MCU 进入等待状态,等待触摸屏按下“开始采集”命令。
主控 MCU 收到采集指令后,采集数据并向 VSD 发送数据。
主控 MCU 收到触摸屏按下“停止采集”命令后,即停止数据采集。
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
以上流程,VSD 的动作有:
1、主动发送启动正常指令,向主控 MCU 声明。
2、响应主控 MCU 的状态查询。
3、发送按键键值。
4、更新各个控件的数值。
主控 MCU 的指令有:
1、VC_SayHello:询问 VSD,如果准备后则建立通道;
2、VH_WaveUpdate:更新波形;
3、VH_ NuboxUpdate:更新“采集时间”数值框;
4、响应 VSD 发送的按键键值,并产生相应动作。
主控 MCU 操作库
VSD 中将所有人机界面的操作都封装成函数库,用户对于各种显示的操作仅仅通过调用
相应的库函数即可完成。
HMIDesigner 设计软件在当前的工程下自动生成一个名为“vmcu_dfn.h”的.h 文件。同
时用户我们还提供“vcmd.c”和“vcmd.h”两个文件。
其中对于 VSD 的控制部分(即主控 MCU 的发送部分)完全为标准函数,用户直接调用
即可,用户仅需要修改 vcmd.c 文件中的 VC_UartTxByte 函数而符合自己当前选定的 MCU 即
可。
用户需要修改主控 MCU 的接收(即 VSD 的发送过来的数据)函数,以满足当前系统的
设计。
PC 下实现示例
本项目通过 PC 机模拟用户的主控 MCU 来实现设计。
修改 VC_UartTxByte 函数,支持标准 PC;
void VC_UartTxByte(U8 TxByte){
波形、数值、按钮控件的使用
12
12 创建一个波形显示工程
while(!(0x20 & inportb(COM_PORT+5)));
outportb(COM_PORT+0,Byte);
}
修改串口终端函数,支持标准 PC。
void interrupt int_com(...)
{
static unsigned char datanum=0;
while((inportb(COM_PORT+5) & 0x01)!=0)
{
donot=1;//MaskIRQ7();
datanum=inportb(COM_PORT);
if ((HeadCnt==0) && (datanum == 0xa5)){
HeadCnt=1;
}
else if ((HeadCnt==1)&&(datanum == 0xa5)){
bufptr = 0;
HeadCnt =2;
}
else if ((HeadCnt==2))
HeadCnt = 3;
else if ((HeadCnt==3))
HaveData = 1;
if ( HeadCnt >= 2 ){
commbuf[bufptr]=datanum;
if ( bufptr > 32 ) bufptr = 0;
else
bufptr++;
}
donot=0;
}
outportb(0x20,0x20);
}
使用随机数模拟主控 MCU 采集好的数据,做主控 MCU 主程序
void main(int argv, char *argc[]){
定义变量
初始化
主循环
while(1){
if(HaveData){//如果有串口中断
printf(" %x %x %x \n",commbuf[0],commbuf[1],commbuf[2]);
if ( commbuf[2] == 0x71 )//VSD 发送来的对于波形更新函数的响应
波形、数值、按钮控件的使用
13
13 创建一个波形显示工程
Rspond = 1;
else if ( commbuf[1] == 0xA3) //VSD 发送过来的按键键值标识
ProtocolID = commbuf[2];
printf("ID %x Rspd %x",ProtocolID,Rspond);
HaveData = 0;
HeadCnt = 0;
switch( ProtocolID){
case 0x01:
for(ii=0;ii<4;ii++)
{
SendData.iData = rand()%410;//准备数据(模拟的采集数据)
Wave[ii*2] = SendData.half.hh;
Wave[ii*2+1] = SendData.half.ll;
}
if( Rspond)
{
tcnt++;
printf("tcnt %x \n",tcnt);
delay(200);
VH_NuboxUpdate(VH_NUBOX_NumericBox1,tcnt);//更新采集时间
delay(200);
VH_WaveUpdate(VH_WAVEG_OscilloGraph1,8,Wave);//更新波形,
每次更新 8 个样点,本函数每次可以更新 1-410 个样点,任意选择。
printf("SendOk.. ");
Rspond = 0;
}
break;
case 0x02:
Rspond = 1;
break;
default:
break;
}
}
}
}
通过以上的修改即完成了本项目主控 MCU 的工作。
整个操作过程中用户无需了解各种
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
,指令等,仅仅修改通过相应的函数进行操作。
始终关心实际系统当中的采集样点,其他工作都交由 VSD 完成。
完整的测试代码请联系销售人员。
波形、数值、按钮控件的使用
14
14 创建一个波形显示工程
视频演示
本设计示例提供有视频演示。
波形、数值、按钮控件的使用
15
15 创建一个波形显示工程
免责声明
本文档提供有关 VSD 产品的信息。本文档并未授予任何知识产权的许可,并未以明示
或者暗示,或以禁止发言或其他方式授予任何知识产权许可。除本公司在其产品的销售条款
和条件中声明的责任之外,本公司概不承担任何其他责任。本公司对产品的销售和/或使用
不做任何明示或暗示的担保,包括产品的对特定用途适用性、适销性或对任何专利权、版权
或者其他知识产品的侵权责任等,均不作担保。本公司可能随时对产品规格和产品描述作出
修改,恕不另行通知。
该系列产品可能包含某些设计缺陷或错误,一经发现将收入勘误表,并因此可能导致产
品与已出版的规格书有所差异。如客户索取,可提供最新的勘误表。
项目背景
项目规划
波形
数值
按钮
整体风格设计
HMIDesigner设计流程
主控MCU操作
主控MCU的类型
主控MCU流程与VSD的交互命令规划
主控MCU操作库
PC下实现示例
视频演示
免责声明