您好, 登录| 注册|
论坛导航
您好, 登录| 注册|
子站:
论坛首页    电源技术综合区
  •  发帖
  • 收藏

【工程师6】+实践类+DGUS屏人机交互控制
阅读: 10100 |  回复: 70 楼层直达

2019/08/01 12:54:33
1
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

QQ截图20160321155901  【活动进行中……】礼遇感恩节!参与顶楼  免费送仪器

QQ截图20160321155901   【风采汇】参与有奖!获奖作品分享大赛



    一波未平一波又起,【第六届】我是工程师技术原创大赛开始了,就是那么六六六!

    作为触摸屏的人机交互控制,大家会想到经常用的平板,比如一些机器人控制,都是用平板来做人机交互,就是通过触摸控制,机器人完成相应

的动作,还有最最常见的自动取款机等等,不过这些大部分都基于linux系统下通过GUI软件来做图形界面的,这次尝试一下利用组态软件来做人机

交互,这个组态软件在PLC控制当中应用最多的,看看组态软件在DGUS屏上是怎么应用的

     最终的产品是mini-PLC

    一 、mini-PLC整体功能

         1.整体电源采用24V开关电源供电

         2.单片机型号为STM32F103ZE,100个引脚

         3.通讯采用RS232和485,协议在27楼

         4.采用串口转以太网模块连接电脑,上位机软件实时监控并控制,11路AD采样输入,都可以通过拨码开关来控制,16路开关量输入(监控设备的开关状态),17路开关输出(通过继电器控制,带指示灯),EEPROM存储一些设定参数,模拟量DAC输出

     二、整体软件功能

         1.使用了三个串口,第一个串口负责和迪文屏通信,第二个串口负责和串口转以太网模块通讯,第三个串口负责485通讯

         2.使用了三个通用定时器中断,滴答定时器中断,

         3.RTC时钟

         4.AD和DA转换

         5.看门狗

         6.采用嵌入式实时操作系统ucos2,多任务执行

2019/08/01 17:17:37
2
电源网-fqd
电源币:5059 | 积分:15076 主题帖:520 | 回复帖:5103
LV11
统帅
快更新 更新
2019/08/03 08:32:36
3
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
马上更新啊
2019/08/07 23:45:58
4
liuxiaofei126
电源币:0 | 积分:0 主题帖:9 | 回复帖:82
LV6
团长
这个是啥触摸屏?
2019/08/09 10:42:42
5
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
DGUS屏
2019/08/10 18:01:38
6
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

既然是人机交互 ,光有上位机软件是不行的,必须结合下位机才可以

这次是通过232串口和单片机通讯的,单片机采用STM32F103

2019/08/11 12:01:07
7
heiha88
电源币:1 | 积分:1 主题帖:5 | 回复帖:33
LV4
连长
这个图形界面平时用的消费类设备一样?
2019/08/11 12:11:42
8
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
有的是基于GUI软件做的,比如用QT,还有就是好多医疗设备用组态软件较多
2019/08/11 12:17:37
9
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

准备用这个7寸触摸屏开开发

2019/08/12 17:05:08
14
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

 DGUS 是迪文图形应用服务软件的简称,是基于K600+内核迪文屏所设计的智慧型人机界面系统软件。使用搭载DGUS软件的迪文屏,可帮助用户零代码快速开发全图形触摸屏人机界面。

与传统的LCM通过时序或指 令控制显示不同,DGUS屏采用直接变量驱动显示方式,所有的显示和操作都是基于预先设置好的变量配置文件来工作的,整个开发过程通过PC软件来设计完成触控和变量配置文件。

2019/08/12 17:42:35
15
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

整体的功能挺多的

2019/08/30 21:27:33
29
gxg1122
电源币:1812 | 积分:17 主题帖:176 | 回复帖:1678
LV10
司令
这种DGUS屏的开发图形界面的设计难度怎么样?优势是什么了?
2019/08/31 12:21:03
30
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

这个主要是降低嵌入式中图形界面的开发难度,比起其他GUI软件,比如QT方便多了,特别是难度大大降低

2019/08/11 23:06:32
11
heiha88
电源币:1 | 积分:1 主题帖:5 | 回复帖:33
LV4
连长
感觉图形界面开发比普通的单片机难多了
2019/08/12 12:44:21
13
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
都是嵌入式这块,一个是软件,一个是硬件,
2019/11/24 22:04:12
42
heiha88
电源币:1 | 积分:1 主题帖:5 | 回复帖:33
LV4
连长
图形界面开发这块主要是好多控件?
2019/08/11 21:42:25
10
gxg1122
电源币:1812 | 积分:17 主题帖:176 | 回复帖:1678
LV10
司令
7寸led的驱动,这个难点是软件设计的组态控制。期待更新。
2019/08/12 11:45:33
12
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
看看这个软件控件是怎么添加上去的,就是采用不同的变量图标,后续详细介绍
2019/08/12 18:14:45
16
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

软件的基本操作,举一个简单的例子

比如一个开和关按钮,一个运行状态

我们触摸开是,键值为1

2019/08/12 18:21:42
17
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

我们触摸关时,键值为0

2019/08/12 18:27:59
18
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

这个是一个变量图标的运行状态,右边是0和1的两个状态,对应不同的图标

2019/11/11 13:08:41
38
keyhei66
电源币:61 | 积分:3 主题帖:1 | 回复帖:10
LV2
班长
软件实用性怎么样
2019/11/12 14:20:53
39
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
个人感觉这个DGUS软件非常方便的
2019/08/13 11:12:07
19
三撅
电源币:11 | 积分:0 主题帖:15 | 回复帖:14
LV4
连长

串口屏开发很简单不过迪文的屏幕,协议太恶心

尝试一下大彩串口屏吧,你回喜欢上用的

2019/08/13 11:28:05
20
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
楼上也是 用这屏的额,通过屏和SD卡给单片机烧录程序可以吗
2019/12/06 12:28:16
58
三撅
电源币:11 | 积分:0 主题帖:15 | 回复帖:14
LV4
连长
以STM32为例,他的下载有SWD方式,JTAG方式,串口方式,SWD和JTAG的协议很复杂,屏做不了,串口方式也不行,串口屏主要是为快速开发用的,显示分辨率不高
2019/08/14 13:53:27
21
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
协议这块没啥吧,大彩的可以了解了解
2019/08/14 18:15:55
22
liuxiaofei126
电源币:0 | 积分:0 主题帖:9 | 回复帖:82
LV6
团长
串口屏原理都类似?
2019/08/16 18:05:45
23
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
通讯这块都差不多,主要是协议不一样
2019/08/16 23:04:49
24
薄浩楠
电源币:83 | 积分:7 主题帖:4 | 回复帖:53
LV5
营长
这个触摸屏组态用的在线模式还是离线模式呀
2019/08/19 08:35:32
25
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
PLC上用的组态屏有这两种模式?这个好像没有说明
2019/08/23 16:29:18
26
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

首先我们基本配置一下

配置通信波特率、帧头的两个字节,暂时不启用校验

2019/08/23 16:45:37
27
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

看看通讯协议

没有校验的话通讯过程就8个字节

比如

 ① 显示整数数据 1005A A5 05 82 5420 0064

含义:0x5A 0xA5:

帧头;0x 05:

数据长度为 82 53 00 00 64 这 5 个字节;

0x 82:写操作;

0x 5420:变量地址;0x 0064:

数据 100。整数范围:-32768 到 32767,占 2 字节。

2019/08/24 11:43:27
28
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

实际上就是变量地址和数据

和单片机差不多,向变量地址里写数据

串口发送:5AA50483000004 

这是一条读系统变量接口Device_ID的帧开头:0x5AA5

数据长度:0x04

从变量空间指定开始地址读取指定长度:0x83

开始地址:0x0000读取数据字长度0x04

收到:5A A5 0C 83 00 00 04 96 57 16 20 27 17 10 25 

帧开头:0x5AA5数据长度:0x0C83 00 00 04 和发送相同Device_ID 96 57 16 20 27 17 10 25 

串口发送:5AA50483001401 显示当前页面ID开始地址:0x0014读取数据字长度0x01

 一个字长此处表示两个字节收到:5A A5 06 83 00 14 01 00 05 

当前页面:0x0005串口发送:5AA50483003101 

读取当前背光亮度值收到:5A A5 06 83 00 31 01 5A 64 

 读取当前背光亮度值0x64表示最大值

2019/09/02 12:47:33
31
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

大家可以看到上面的工程界面中,都需要背景图的,这个图就需要用软件来设计了

由于这屏的分辨率是800*480,需要转换一下

2019/09/02 12:49:36
32
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

这里选择转换的分辨率

选择转换就可以了

2019/09/11 18:21:55
33
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

对于图像编辑这块,可以分享一个简单的软件Adobe Fireworks CS6

2019/09/15 08:07:58
34
liuxiaofei126
电源币:0 | 积分:0 主题帖:9 | 回复帖:82
LV6
团长
这个和PS相比有啥不一样
2019/09/18 11:31:58
35
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
功能几乎差不多,这个就是简单一点
2019/10/18 14:54:15
36
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

DGUS软件这块后续实际应用再介绍

这是PLC的硬件主控图

基本参数

1.11路AD采样输入,全部光耦隔离

2.232通讯

3.485通讯

4.24C02存储

5.1DAC转换

6.16路开关量输入

7.17路开关输出

2019/11/11 12:49:14
37
keyhei66
电源币:61 | 积分:3 主题帖:1 | 回复帖:10
LV2
班长
stm32也可以做PLC?
2019/11/12 14:21:39
40
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
PLC里面本身就是有单片机控制的,stm32当然可以
2019/11/13 12:43:34
41
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

这是PLC的驱动电路这块

采用传统的ULN2003和三极管驱动

每路都有开关指示灯

AD采样可以用拨码开关

多路工业接口

2019/11/25 21:33:24
43
liuxiaofei126
电源币:0 | 积分:0 主题帖:9 | 回复帖:82
LV6
团长
stm32都可以做PLC,不知道性能咋样
2019/11/26 13:40:19
44
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
大型的工程上,肯定不行,对于一些小型的PLC,控制外设,读取一些模拟量和开关量还是绰绰有余的
2019/11/30 13:10:26
45
liuxiaofei126
电源币:0 | 积分:0 主题帖:9 | 回复帖:82
LV6
团长
有机会在PLC也试试软件这块
2019/12/02 14:40:47
46
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
但是PLC这块水太深了
2019/12/02 15:54:45
47
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

       对于PLC和外设状态实时监控这块,使用了串口转以太网模块USR-TCP232-T2

图形基本原理

2019/12/04 09:51:36
49
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

串口转以太网模块需要用AT配置

这是规格书可以参考

/upload/community/2019/12/04/1575424270-92664.pdf

2019/12/04 21:12:44
51
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
这是实物,可以看看
2019/12/05 12:43:29
53
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

我们使用了以下几个引脚

Link 引脚为 T2 建立通讯连接的状态指示引脚,建立通讯连接时,此管脚会输出低电平,无连接建立则输 出高电平。当 T2 处于 TCP 模式时,建立通讯连接后,Link 引脚会自动拉低,否则处于拉高状态。当 T2 处于 UDP 模式时,Link 引脚一直处于拉低状态。USR-TCP232-T2 产品中“Link”备用引脚,可作 Link 指示

2019/12/03 22:20:32
48
heiha88
电源币:1 | 积分:1 主题帖:5 | 回复帖:33
LV4
连长
单片机这么多中断,优先级的话,也会有所影响把
2019/12/04 21:04:28
50
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
就因为影响,才用了嵌入式实时操作系统
2019/12/04 21:21:34
52
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

这是电机驱动板

2019/12/06 09:29:55
57
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

这是驱动板成品

这是主控板

2019/12/06 17:30:05
59
三峡土老帽
电源币:549 | 积分:0 主题帖:5 | 回复帖:24
LV3
排长

在低温下RTC工作正常不?

2019/12/07 21:01:12
60
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长
这个单片机的RTC低温可以正常工作的
2019/12/05 14:28:05
54
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

     在这简单分享一下UCOS实时操作系统

     任务的结构--任务控制块首先这个任务控制块是非常的大的,这里面使用很多的宏定义,估计是可以让使用者使用的时候按需配置。所以这里只是整理一些必须要用到的功能,不常用的不讲,讲了就会变成一本书了。

           (1)任务的关键   OS_STK  ==  任务的堆栈,用于保存任务的信息,最主要的是保存在程序的运行的SP指针。任务切换的实质就是SP指针的变化,通过SP指针的变化,可以跳转到你想要去的任何的一块不受保护的地址去。

           (2)任务的链表: struct os_tcb   *OSTCBNext; 指向下一个任务,此处使用链表是可以通过指针访问下一个任务的内容,可以使用这个双向链表放置到某些队列当中,实现同优先级的多任务。

           (3)事件控制块:OS_EVENT        *OSTCBEventPtr; 是一个技术组件,用于后面的消息和消息队列,邮箱和信号量等的设计。

2019/12/05 15:46:35
55
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

首先对OS初始化

2019/12/05 16:13:35
56
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

然后建立任务

一是创建任务函数

二是关闭OS中断

三是打开OS中断

这个我们在stm32程序中也见过,用过软件定时器的坛友明白,临界中断的关闭和打开

可以看一下

2019/12/07 22:07:28
61
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

       前面说了实时操作系统的初始化,创建任务,还少一个心跳,就是实时操作系统的时钟节拍

我们采用stm32内核的滴答定时器作为1ms心跳

1.先使能滴答定时器中断

所以在设定滴答定时器初始化函数时,只需设定:

就能满足uCOS-II想要的节拍时间了。

2.中断服务

  

2019/12/08 00:10:45
62
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

     底层程序这块就介绍到这

     介绍一下触摸屏主界面

    

1.RTC实时显示

2.温度、压力等信息上传

3.主要是切换到其他界面控制

4.外设状态上传

   

2019/12/08 00:14:14
63
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

  针对其他界面介绍。其他界面都有 主界面按钮切换,这是PLC的外设状态实时上传

2019/12/08 00:19:18
64
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

较复杂的外设参数设定,主要是烘干这块

热泵参数设定

2019/12/08 00:22:41
65
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

外设的开停机控制

2019/12/08 00:44:08
66
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

    其他页面不一一介绍了

    开始组装调试,上下两块板子采用铜柱对接,排针电气连接

   

2019/12/08 17:14:58
67
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

最后需要把工程文件放到SD卡里,SD卡开插到触摸屏板子上

我们上电就可以加载我们的图像界面了

2019/12/08 17:16:29
68
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

最后就是这个mini-PLC图,已经上电了

2019/12/08 21:30:09
69
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

上传视频,功能演示,优酷链接

2019/12/08 22:08:51
70
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

这是主函数,非常简洁标准的

创建了几个任务,发送任务,接受任务,多任务的看门狗设计

2019/12/08 22:26:46
71
lihui710884923
电源币:483 | 积分:1 主题帖:155 | 回复帖:521
LV9
军长

最后总结

     DGUS屏的PLC,巧妙的利用通用的STM32单片机,实现了非常智能化的工程控制,比如电磁阀,压缩机,风机,抽湿风机等设备

     实现双重控制和监控,一是现场用DGUS屏的PLC,二是通过PLC的串口转以太网模块连接电脑,坐在办公室也可以实时控制监控各个设备状态

     

客服热线
服务时间:周一至周五9:00-18:00
微信关注
免费技术研讨会
获取一手干货分享

互联网违法不良信息举报

Reporting Internet Illegal and Bad Information
editor@netbroad.com
400-003-2006