(图片来源网络,侵删)
作为触摸屏的人机交互控制,大家会想到经常用的平板,比如一些机器人控制,都是用平板来做人机交互,就是通过触摸控制,机器人完成相应的动作,还有最最常见的自动取款机等等,不过这些大部分都基于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,多任务执行既然是人机交互 ,光有上位机软件是不行的,必须结合下位机才可以这次是通过232串口和单片机通讯的,单片机采用STM32F103准备用这个7寸触摸屏开开发DGUS 是迪文图形应用服务软件的简称,是基于K600+内核迪文屏所设计的智慧型人机界面系统软件使用搭载DGUS软件的迪文屏,可帮助用户零代码快速开发全图形触摸屏人机界面与传统的LCM通过时序或指 令控制显示不同,DGUS屏采用直接变量驱动显示方式,所有的显示和操作都是基于预先设置好的变量配置文件来工作的,整个开发过程通过PC软件来设计完成触控和变量配置文件整体的功能挺多的软件的基本操作,举一个简单的例子比如一个开和关按钮,一个运行状态我们触摸开是,键值为1我们触摸关时,键值为0这个是一个变量图标的运行状态,右边是0和1的两个状态,对应不同的图标首先我们基本配置一下配置通信波特率、帧头的两个字节,暂时不启用校验看看通讯协议没有校验的话通讯过程就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 字节实际上就是变量地址和数据和单片机差不多,向变量地址里写数据串口发送: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表示最大值大家可以看到上面的工程界面中,都需要背景图的,这个图就需要用软件来设计了由于这屏的分辨率是800480,需要转换一下这里选择转换的分辨率选择转换就可以了对于图像编辑这块,可以分享一个简单的软件Adobe Fireworks CS6DGUS软件这块后续实际应用再介绍这是PLC的硬件主控图基本参数1.11路AD采样输入,全部光耦隔离2.232通讯3.485通讯4.24C02存储5.1DAC转换6.16路开关量输入7.17路开关输出这是PLC的驱动电路这块采用传统的ULN2003和三极管驱动每路都有开关指示灯AD采样可以用拨码开关多路工业接口对于PLC和外设状态实时监控这块,使用了串口转以太网模块USR-TCP232-T2图形基本原理串口转以太网模块需要用AT配置这是实物,可以看看我们使用了以下几个引脚Link 引脚为 T2 建立通讯连接的状态指示引脚,建立通讯连接时,此管脚会输出低电平,无连接建立则输 出高电平当 T2 处于 TCP 模式时,建立通讯连接后,Link 引脚会自动拉低,否则处于拉高状态当 T2 处于 UDP 模式时,Link 引脚一直处于拉低状态USR-TCP232-T2 产品中“Link”备用引脚,可作 Link 指示这是电机驱动板这是驱动板成品这是主控板在这简单分享一下UCOS实时操作系统任务的结构--任务控制块首先这个任务控制块是非常的大的,这里面使用很多的宏定义,估计是可以让使用者使用的时候按需配置所以这里只是整理一些必须要用到的功能,不常用的不讲,讲了就会变成一本书了(1)任务的关键 OS_STK == 任务的堆栈,用于保存任务的信息,最主要的是保存在程序的运行的SP指针任务切换的实质就是SP指针的变化,通过SP指针的变化,可以跳转到你想要去的任何的一块不受保护的地址去(2)任务的链表: struct os_tcb OSTCBNext; 指向下一个任务,此处使用链表是可以通过指针访问下一个任务的内容,可以使用这个双向链表放置到某些队列当中,实现同优先级的多任务(3)事件控制块:OS_EVENT OSTCBEventPtr; 是一个技术组件,用于后面的消息和消息队列,邮箱和信号量等的设计首先对OS初始化然后建立任务一是创建任务函数二是关闭OS中断三是打开OS中断这个我们在stm32程序中也见过,用过软件定时器的坛友明白,临界中断的关闭和打开可以看一下前面说了实时操作系统的初始化,创建任务,还少一个心跳,就是实时操作系统的时钟节拍我们采用stm32内核的滴答定时器作为1ms心跳1.先使能滴答定时器中断所以在设定滴答定时器初始化函数时,只需设定:就能满足uCOS-II想要的节拍时间了2.中断服务底层程序这块就介绍到这介绍一下触摸屏主界面1.RTC实时显示2.温度、压力等信息上传3.主要是切换到其他界面控制4.外设状态上传针对其他界面介绍其他界面都有 主界面按钮切换,这是PLC的外设状态实时上传较复杂的外设参数设定,主要是烘干这块热泵参数设定外设的开停机控制其他页面不一一介绍了开始组装调试,上下两块板子采用铜柱对接,排针电气连接最后需要把工程文件放到SD卡里,SD卡开插到触摸屏板子上我们上电就可以加载我们的图像界面了最后就是这个mini-PLC图,已经上电了这是主函数,非常简洁标准的创建了几个任务,发送任务,接受任务,多任务的看门狗设计最后总结DGUS屏的PLC,巧妙的利用通用的STM32单片机,实现了非常智能化的工程控制,比如电磁阀,压缩机,风机,抽湿风机等设备实现双重控制和监控,一是现场用DGUS屏的PLC,二是通过PLC的串口转以太网模块连接电脑,坐在办公室也可以实时控制监控各个设备状态
0 评论