|
【开源】DWIN智能屏DGo开源框架
1.背景介绍: 通常我们设计开发一个产品时,与用户交互部分的功能是最重要也是最繁琐的,采用PLC或单片机+触摸屏实现,成本高,体积较大。偶然机会在淘宝发现的迪文的串口DGUS智能屏,通过串口和单片机或PLC通讯实现用户界面的交互,是个非常好的设计模式。采用智屏能大幅度降低开发成本和周期,又给用户提供友好的图形中文界面。
经过一段时间的研究发现,GUI设计简单高效,通过CPU OS核与单片机或PLC串行通讯实现数据交互编程很方便,实际开发中我们既要设计单片机/PLC程序还要完成CPU OS协调控制程序实现与GUI OS的数据交互和用户操作指令的传达,增加了开发过程,降低了开发的速度。能不能建立一个统一开发框架实现单片机或PLC数据映射到DGUS OS的存储器中,GUI的用户操作指令或数据修改指令映射到单片机或PLC中,简化设计开发过程,提高开发速度,DGo框架就出现了…。
2.DGo框架说明
通过串口采用ModBus RTU Master通讯协议,将单片机或PLC设备的数据同步到DWin屏的存储0x1000以上的空间中。
3.通讯配置、开发及测试环境介绍 通讯配置: 通讯接口:串口2 9600,n,8,1 通讯协议:ModBus RTU Master 实现功能码 3 6 16
开发环境: Keil C51或 TKStudio
测试环境: 智能屏: EKT043 开发板 DGUS T5L固件版本:V4.0 20201207 DWIN Tools 版本: 7.6.23
4.例子说明
将保持寄存器中的前10个数据,同步到 0x1100 存储器中三个参数的地址为 0x1001 ~ 0x1003,按钮命令地址为 0x1000。 框架功能:第0页默认位通讯状态画面:
0首页通讯状态画面:上电显示2s。当通讯正常时,显示第一页画面。 任何时候通讯失败,系统自动切换到0页,通讯恢复后自动切换到第一页。
框架功能:第一页主画面,由三个可修改参数、4个按钮和10个数据中状态:
按钮: <修改参数1>:通过功能码 6,参数1的数值同步到第9个数据; <修改参数1-3>:通过功能码 16,参数1~参数3的数值同步到 7~9; <修改参数1-3带命令>:通过功能码 6,参数1~参数3的数值和命令的高8位同步到 0~3; <换页>:发送用户指令实现换页。
框架功能图:
5.程序介绍
循环任务:配置一条或多条循环执行通讯任务,获取设备的数据。目前只支持功能码3。
配置任务列表在文件 taskdefine.h 中:
循环策略:500ms循环执行。执行函数在 userTask.c 中:
命令任务:根据用户操作触摸屏下达的指令执行。该任务列表的第0个任务系统占用,用于配置用户操作命令字在DGUS中的起始地址和随后参数的个数(地址跟随在命令字后)。系统自动获取指定命令地址的数值状态,当非零时,执行命令并将命令地址内容清零。
配置任务列表在文件 taskdefine.h 中:
用户操作命令:执行函数在 userTask.c 中:
DGo框架开发流程: 首先确认需求: (1)如果只显示设备的状态信息,只要配置循环任务获取相关数据就可以了。 (2)如果还要修改设备中的参数,那就配置一个或多个命令任务,在GUI界面中用户操作相应的按键时执行指定的命令任务。 (3)如果当设备的状态信息中某个数据有变化,需要界面切换显示窗口,那就在循环策略中完成。
大部分的项目只需要前两步的配置就可以完成了。欢迎大家交流分享!
6.举个例子
Modbus串行通信协议在工业领域被广泛使用,市面上的大部分有通讯功能的仪表和主流PLC都提供了该功能接口。 例如:将10个锅炉的温度数据集中显示,锅炉的温控仪表提供ModBus RTU Slave接口,数据地址从3开始了连续2个字,我们设置温控仪表的通讯参数为:9600,n,8,1 通讯地址依次从1到10,然后在DGo框架配置10个循环任务将数据映射到DGUS存储器中就可以了。 第一步:配置循环任务。 struct TX_CYCLIC_STRUCT code CyclicTaskList[]={ { {1,3,2,0x1010}, {2,3,2,0x1012}, {3,3,2,0x1014}, {4,3,2,0x1016}, {5,3,2,0x1018}, {6,3,2,0x101a}, {7,3,2,0x101c}, {8,3,2,0x101e}, {9,3,2,0x1020}, {10,3,2,0x1022}, {0,0,0,0} }; 将循环策略中的代码删除 void CycleStrategy() { } 第二步:编译DGo框架程序。 第三步:设计GUI界面将 数据变量显示 组件的变量地址配置为存储器对应的地址。
第四步:将DGo框架程序和GUI界面程序下载到智能屏中,完成!
ModBus RTU 通讯协议规范:
TKStudio IDE集成开发环境,比Keil的 uVision5 好用! 提取码:zd6q 复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V3的分享
TKStudio IDE集成开发环境,在设备库中添加DWin T5 芯片方法,如下图:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|