APP下载

触摸屏通用组态软件设计

2017-05-18肖儿良石纪奎简献忠

电子科技 2017年5期
关键词:控件图标触摸屏

肖儿良,石纪奎,简献忠

(上海理工大学 光电信息与计算机工程学院,上海 200093)

触摸屏通用组态软件设计

肖儿良,石纪奎,简献忠

(上海理工大学 光电信息与计算机工程学院,上海 200093)

针对目前触摸屏组态软件存在的组态过程复杂及通用性较差的问题,提出了一种基于界面的触摸屏组态软件设计方法。利用Visual C#开发平台,实现触摸屏通用组态软件的设计。在上位机进行组态软件界面编辑、组态文件编译以及与下位机数据的交互的基础上,基于PC机实现了触摸屏工作状态的模拟仿真。在STM32F103硬件平台上验证了组态软件设计的曲线显示控件。实验与仿真结果表明,基于界面的组态软件设计方法的正确性和便捷性,为触摸屏组态软件设计提供了一种新的思路。

组态软件;触摸屏;Visual C#;模拟仿真;STM32F103

在组态软件出现之前,工业控制一般采用ASIC、C、Fortran等标准语言实现一些控制逻辑和控制算法,使用这种方式工作量大,开发周期长,如果需要修改或增加新功能,必须进入开发环境重新配置。这一般需要精通开发环境,并且熟悉该工程逻辑的工程师来完成。为解决这个问题,学者们设想有这样一种软件——即使对编程语言不是很熟悉也能使用它进行控制系统的开发,对于工控技术人员简单易用 ,这促使了组态软件[1-2]的产生。

目前国内外学者对触摸屏组态软件进行了广泛研究[3-4]。文献[3]介绍了德国西门子公司的一种触摸屏组态软件WinCC flexible,这类国外软件功能完备性、产品包装、市场推广等方面具有一定优势,但存在软件对应配套设备,价格昂贵,技术服务不方便,通用性不高的缺点。文献[4]提出了基于图元的触摸屏组态软件设计,该组态界面由各种基本图形及由基本图形组合的开关、仪表、阀门等大量部件组成,组态过程复杂,且只适用于某一领域。

针对目前触摸屏组态软件存在的组态过程复杂及通用性较差的缺陷,本文基于Visual C#开发平台,提出基于界面的组态软件设计思路。该软件具有组态便捷、功能完备、界面友好、各行业通用的优势。采用在界面背景图片的基础上利用搭积木的方式制作现场控制过程和控制界面,实现各类复杂控制界面的制作。最后通过曲线控件示例验证了本文触摸屏组态软件设计思路的正确性。

1 组态系统整体设计

目前Windows环境下触摸屏组态软件的开发工具主要包括Qt,C++Builder和Visual Studio等。相较于前两者,美国微软公司的Visual Studio支持用户多种不同的程序语言进行开发,且库函数丰富,大幅缩短了对可视化程序的开发周期,降低了难度。

本文采用Visual Studio 2010集成开发环境,基于Visual C#进行开发,实现触摸屏上位机组态软件设计,系统的整体结构框图如图1所示。

图1 组态系统整体结构

根据系统整体结构图的思路,在上位机进行组态软件的设计,设计流程如图2所示。整体实现思路如下:在计算机上完成系统组态界面设计后,编译生成组态文件的二进制代码文件,并通过串口或SD卡将生成的组态界面文件下载到触摸屏硬件存储器或进行在线(含离线)仿真。

图2 上位机组态软件设计流程图

2 组态软件设计

触摸屏组态软件设计主要包括界面编辑模块、文件管理模块和串口通信模块的设计,触摸屏组态软件设计界面如图3所示。

图3 触摸屏组态软件设计界面框图

2.1 界面编辑模块

界面编辑包括界面背景图片编辑及控件属性编辑,背景图片制作只需具备一定的美工基础,就可以实现各种复杂的界面及部件,可采用常用格式的图片作为界面背景(jpg,bmp和gif等),本文采用24位真彩色bmp图像作为触摸屏界面背景,为便于界面组态文件的下位机内存分配,命名方式采用数字ID+字符串的形式。界面设计中用.net FrameWork SDK封装的ListView组件作为界面的索引区, TabControl组件中各TabPage 选项卡对应各界面编辑区,组件Panel作为各控件属性窗口的容器。由于本文各复杂部件及按钮均在界面背景图片制作,故触摸屏组态软件界面设计中不必利用Graphic类封装复杂的工程部件,只需利用开发平台封装的Button类绑定属性窗口的方法即可实现各种类型控件的设计,大幅降低了开发的难度。

2.2 文件管理模块

2.2.1 控件信息文件

进行组态的控件可分为两类,即触控类控件和变量显示类控件(以控件信息中第3个字节区分:0x01表示触控类,0x02表示显示类)。 (1)触摸屏(下位机)可以通过触控类控件信息实现界面的切换,变量的增减,键盘的操作等,触控的种类不同触发液晶屏不同的事件;(2)显示类控件即触摸屏界面上可以改变其状态的量,可以利用串口指令或者触控类控件改变显示控件的属性中的元素值,触摸屏根据显示变量的属性显示相应的内容。触控类及显示类控件公有信息格式如表1和表2所示。

表1 触控类控件格式说明

表2 显示类控件格式说明

界面编辑完成后,在界面工作区按照界面ID以及控件的Tabindex属性,使用foreach()在控件属性容器中检索对应的控件属性窗口,并将控件的属性信息利用.net Visual C#提供的BinaryWriter类写到控件配置文件中。若在编译生成组态文件工程中,触控类控件有重叠或者显示类控件变量地址发生冲突,设置有报警提示,用户可以根据提示信息修改相应控件的属性设置,待编译无误后,进行组态系统的调试。

组态文件采用分立式文件结构,不仅包含背景图片文件、控件信息文件、变量初始化文件,还有硬件配置文件(主要包括串口通信协议、串口通信波特率以及组态工程分辨率),图标文件(自定义),字库文件(字库提取软件生成)等。其中,变量初始化文件用于存放显示类控件数据初始值,存储地址与显示类控件信息中数据变量地址属相对应。为便于多个点阵字库文件的下位机内存分配,命名方式采用数字ID+字符串的形式。

2.2.2 图标文件

为方便下位机中各种小图标及艺术字的使用,自定义了一种格式的图标文件,图标文件中每个小图标分为文件头和图标像素信息两部分,每个图标文件文件头由8 Byte组成,具体格式如表3所示;像素信息采用rgb565格式,由24位真彩bmp图片转化得到,为便于工程中可能使用的多个图标文件的下位机内存分配,命名方式采用数字ID+字符串的形式。在这里图标生成工具可转化图标尺寸最大为256×256,图标ID最小的图标像素数据首地址为0×1 000,所以图标文件中最多可以压缩0×1 000/8=512个16位色小图标。

表3 图标文件头格式说明

2.3 串口通信模块

串口通信模块实现PC机与触摸屏数据的交互,上位机与触摸屏的串口通信采用RS232[5]通信,串口每次数据传送采用10个位:即1个起始位,8个数据位,1个停止位。串口通信所用指令全部为16进制格式。触摸屏串口通信每条指令构成数据帧,数据帧有5个数据块组成,即帧头+数据长度+功能码+数据+CRC(Cyclical Redundancy Check)校验位。CRC校验位不包含帧头、功能码和数据长度,只针对数据,采用ANSI CRC16格式。串口指令的帧头及串口通信波特率可以在组态文件中的硬件配置信息文件中设置,CRC校验位也可通过硬件配置信息文件设置为不启用,串口通信指令结构如表4所示。

表4 串口通信指令帧格式

串口指令集按照功能码可分为4大类:(1)功能码为0xA1表示写变量空间,数据格式为变量地址+变量数据;(2)功能码为0xA2表示读变量空间,数据格式为变量地址+读取长度(Byte),触摸屏返回数据格式为变量地址+读取长度(Byte)+数据;(3)功能码为0xA3表示写寄存器,数据格式为设备地址+数据;(4)功能码为0xA4表示读寄存器,数据格式为设备地址+读取长度(Byte),触摸屏返回数据格式为设备地址+读取长度(Byte)+数据。

3 实验验证

实验验证硬件开发平台采用ST公司的STM32F103ZET6[6]作为MCU,其片上存储资源包括:64 kB SRAM、512 kB Flash。另开发平台外扩有 SPI Flash芯片,主要用于存储组态工程 的资源文件,Flash 芯片型号为 W25Q64,该芯片的容量为64 Mbit,即 8 MB。编译器版本为Keil 3.80A,使用STM32 3.5.0固件库程序。

这部分主要通过曲线显示控件来验证本文组态软件设计的正确性,为快速验证设计效果,还设计了触摸屏组态的模拟仿真,大幅降低了对组态工程调试的难度。上位机组态软件设计的曲线显示控件属性由32 Byte组成,具体定义如表5所示。

表5 曲线显示控件结构

这里曲线显示控件数据变量地址(即片内SRAM偏移地址)设为0x0020,曲线显示区域坐标坐上角坐标(x1,y1),右下角坐标(x2,y2),曲线颜色设为F800(红色),控件区域表示最小值max和最大值min,这里分别设为0和1 000,由此可以计算得到曲线放大倍数为k= (max-min)/ (y2-y1),横坐标间隔设为10,即曲线上两个相邻点横坐标相隔10个像素点。则串口数据在触摸屏实际坐标为:x=x1+10×i;y=y2-y/k。其中,i为串口采集的数据点序号,y为数据点数值。PC机模拟仿真效果及触摸屏工作实际效果如图4和图5所示。

图4 上位机模拟仿真界面

图5 触摸屏工作界面

4 结束语

本文基于Visual C#平台完成了适用于触摸屏的通用组态软件设计, 实现了上位机组态软件界面编辑、组态文件编译以及与下位机数据的交互。实验表明该组态软件操作简单、用户界面友好、图形组态功能丰富、可裁剪性强,为包含复杂部件的控制界面的组态提供了一种新方法。模拟仿真了触摸屏组态工程,使用户不必将上位机生成的组态工程文件下载到触摸屏,即可快速验证设计效果,方便设计和调试,节省了大量的重复开发。

[1] 王亚民,陈青.组态软件设计与开发[M].西安:西安电子科技大学出版社,2003.

[2] 聂虹.基于PLC及组态王的自动售货机监控系统设计[J].电子科技,2012(12):122-124.

[3] 王刚,施江锋. PLC和WinCC flexible在智能化自动售货机中的应用[J].自动化与仪器仪表,2015(3):42-43.

[4] 殷飞,丁维明.组态软件设计中的模式研究[J].计算机测量与控制,2005(3):298-300.

[5] 刘禹辰,张仁杰,刘虎,等.STM32与上位机Modbus协议的通信方法[J].电子科技,2015,28(10):27-30.

[6] 周立功.ARM微控制器基础与实践[M].北京:北京航空航天大学出版社,2005.

[7] 孙纪坤,张小全.嵌入式 Linux 系统开发技术详解[M].北京:人民邮电出版社,2006.

[8] 孙琼.嵌入式 Linux 应用程序开发详解[M].北京:人 民 邮 电 出 版 社,2006.

[9] 周立功.ARM 嵌入式 Mini GUI 初步与应用程序开发范例[M].北京:北京航空航天大学出版社,2006.

[10] 左娇.面向工控领域的组态软件的画面组态实现[J].物联网技术,2014(3):79-81.

[11] 北京昆仑通态自动化软件科技有限公司.MCGS嵌入版用户指南[M].北京:北京昆仑通态自动化软件科技有限公司,2010.

[12] 王书平.组态软件若干关键技术研究[D].西安: 西安电子科技大学,2012.

[13] 张飞.基于SVG标准的电力系统图形编辑器设计与开发[D].北京:华北电力大学,2009.

[14] 汤沛.图形组态系统的设计开发[D].南京:南京信息工程大学,2008.

[15] Marcin Jamro,Bartosz Trybus.IEC 61131-3 programmable human machine interfaces for control devices[M].Poland:Sopot Press,2013.

Design of Universal Configuration Software for Touch Panel

XIAO Erliang,SHI Jikui,JIAN Xianzhong

(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

The method of designing the universal configuration software is proposed which based on interface, with regard to the problem of reducing difficulty of the configuration process and improving the versatility of the software. On the basis of the design of editing interface, compiling configuration file, the data interaction of PC and the touch panel at platform of Visual C#, a simulation and debugging on PC about the working status of touch screen is performed. An experimental verification of curve control is presented on the STM32F103 hardware platform. The verification and simulation results show that this method based on interface design is correct and convenient, which provides a new way to design configuration software for touch panel.

configuration software; touch panel; Visual C#; simulation and debugging; STM32F103

2016- 07- 04

上海计算物理研究所基金资助项目(30133020001)

肖儿良(1969-),男,博士。研究方向:嵌入式系统等。石纪奎(1990-),男,硕士研究生。研究方向:嵌入式系统。简献忠(1969-),男,博士。研究方向:新能源等。

10.16180/j.cnki.issn1007-7820.2017.05.045

TP319

A

1007-7820(2017)05-165-04

猜你喜欢

控件图标触摸屏
基于.net的用户定义验证控件的应用分析
PLC和触摸屏在卫生间控制系统的应用
Android手机上那些好看的第三方图标包
浅析投射式多点触控电容触摸屏
关于.net控件数组的探讨
皮肤“长”出触摸屏
图标
中国风图标设计
有意思的厕所图标
触摸屏项目移植在自动化系统升级中的应用