智能制造系统上位机软件设计与实现

2018-12-14 09:05:06 现代电子技术2018年24期

李周利 韩路平

关键词: 智能制造; 线程同步; 实时处理; 软件设计; 数据存储; 程序阻塞

中图分类号: TN705?34 文献标识码: A 文章编号: 1004?373X(2018)24?0125?03

Design and realization of upper computer software for intelligent manufacturing system

LI Zhouli, HAN Luping

(School of Electronic Engineering, Xian Shiyou University, Xian 710065, China)

Abstract: In an intelligent manufacturing control system, the status data and process data need to be saved for analytical processing to obtain the real?time running status of each subsystem. In allusion to the problems of large amount of processing data, much more burst data, and the low processing speed of data storage and extraction, an upper computer software design is proposed for intelligent manufacturing system. Relevant drive and application programs are compiled for the Windows CE 7.0 operating system by using the Embedded Visual C++. The modes of multiple threads, thread synchronization and asynchronous threads are comprehensively adopted to design the software of the data processing system, so as to realize functions of real?time data reception, storage, processing and display of various communication networks. The test results show that the method can effectively resolve the data packet loss problem and the application program blocking problem occurring when there exist busy tasks, which perfectly achieves real?time processing and analysis functions.

Keywords: intelligent manufacturing; thread synchronization; real?time processing; software design; data storage; program blocking

某全自动智能制造的控制系统具有高度自动化和高智能化的优点,在劳动成本和资源节省上有很大优势。其在欧美和日本得到普遍认可,在国内正处于引进消化和研发测试阶段[1]。某全自动智能制造的控制系统由控制各个执行机构的下位机各系统和主要负责人机交互和数据处理的上位机系统两部分组成。其中上位机是一个实时系统,采集数据量和处理数据量比较大,系统中又需同时处理多个任务,需要设计多线程使得多个任务可以并行处理来完成要求的任务。在常见的多线程应用设计中,如GPRS终端虽然也使用多线程技术来接收数据,但是没有大数据的存储和处理的要求[2],有的专注于数据采集[3],有的专注于数据存储[4]。而上位机系统要完成数据采集和下发、数据存储、数据提取和处理、数据分析及结果显示和人机交互等环节的任务,同时在人机交互中要求对操作响应具有最优先处理权。系统任务多又有实时处理的要求,采用多线程技术能够避免某因一项任务长时间占用CPU时间而造成的数据丢失、人机交互界面反应迟钝等问题。

1 智能制造控制系统

某全自动智能制造控制系统框架如图1所示,其中上位机系统基于ARM处理器和Windows CE嵌入式操作系统[5?6]。上位机系统由CAN通信模块、RS 485通信模块、SQLite数据库模块[7]、数据处理模块和人机交互界面等功能模块组成。主要功能为:采集下位机生产数据和突发报警数据;给下位机下发参数;部分命令的下发;数据的保存和数据库管理;实时数据和历史数据的分析处理;各类数据的界面显示;折线图和柱状图;人性化的人机交互。

2 上位机系统软件关键要求及实现方法

2.1 关键要求

在每個模块都有多个任务需要完成,因此设计23个线程。其中CAN通信模块2个线程,RS 485通信模块2个线程,数据库管理模块4个线程,数据处理分析模块2个线程,定时器模拟线程12个和1个主线程。主线程负责处理用户输入、响应用户系统消息和命令,并负责调度各子线程。12个定时器模拟线程和主线程配合完成12个数据处理结果显示页面资源的管理并及时响应用户点击事件完成数据刷新和更新。进入主页面默认先打开PAGE_01页面的线程Thread_PAGE_01,用于提取数据并按要求定时更新页面数据;当用户切换进入下一个页面时,首先关闭线程Thread_PAGE_01,并打开将要进入页面对应线程Thread_PAGE_XX(XX:01~12)。利用线程同步这样就保证只有一个页面占用显示屏等资源。切换过程流程图如图2所示,其中主线程负责响应用户切换命令并控制线程的开启和关闭,其他12个线程负责按要求分组提取更新数据。

2.2 实现方法

一个应用程序是由一个进程和若干线程组成,进程是计算机上的执行实例,线程是程序的执行分支,一个线程可以执行一个任务,多线程的应用使得在一个应用程序中可以并行处理多个任务。每一个应用程序即进程需要至少一个主执行线程,该线程是系统在调用应用程序时自主创建的,不需要用户手动创建。可以根据系统的要求建立多个线程,这样就可以在一个进程中并行处理各个任务。在一个进程中的多个线程共享进程的变量和其他资源,这样对各线程间的数据传递提供方便[8]。

为了多个线程能够协调地完成所规定的任务,需要采用线程同步。EV C++的MFC提供了四种线程同步的方式:第一种是事件方法;第二种是信号灯方法;第三种是临界区方法;第四种是互斥量方法。系统在数据显示模块使用临界区的方法,在数据通信模块采用事件方法。在整个系统运行过程中通过对线程的创建、挂起、唤醒、结束等操作来完成线程管理。

3 软件各功能模块的设计

3.1 CAN通信模块

PC机上只有一个CAN通道接口资源,为了完成数据的实时收发又能避免冲突在此引入线程同步,实现方法如图3所示。接收数据线程Thread_CAN_Read和下發数据线程Thread_CAN_Write对该通道的占有需要建立互斥量,来避免冲突。 CAN通信是多主的通信方式,下位机之间也有相互通信,上位机的CAN节点需要等待总线空闲状态时才能下发数据,所以CAN数据下发线程用来下发数据直到数据下发成功[9],下发线程的实现过程如图4所示。CAN接收数据线程用于在整个生产过程中接收实时生产数据和突发报警数据,实现方法与发送线程类似,只是接收线程在机器的整个正常运行过程中都处于工作状态。

3.2 数据库管理模块

数据库管理模块主要完成两个任务:数据的解析和存储;历史数据的提取和解析。用于保存的数据来自界面设置的数据和CAN接收到的各类数据,由于CAN接收数据是实时进行的,所以保存数据也需要实时保存完成。为了提高数据存储的可靠性,首先将接收到的数据放在CAN缓存中,然后将缓存中的数据转移到两个公用缓存的其中一个里面,数据库管理线程在这两个数据缓存器中提取数据,当取完一个时清空干缓存区,再提取下一个缓存区的数据,同时将CAN结束缓存里面的数据向空的公用缓存中存放。 数据库管理模块的第二个功能是实时进行数据分类处理,将历史数据解析的结果一直保留,每次只更新最新一个时间段的数据,这样避免了数据的重复处理,提高数据库数据管理效率[10]。

3.3 其他模块的设计

上位机的RS 485模块是RS 485总线中的主节点,主要负责将变频器设置参数发送给指定的变频器,并得到设置成功后的反馈信息。其工作过程和CAN通信类似。数据处理模块主要功能是处理分析数据并得到最终计算结果,因为每个页面都需要1万~30万条处理结果,切换页面时在进行解析分组计算会耗费大量时间,故设计线程在后台把数据处理完毕并将结果保存等待提取。其他辅助模块包括:主调度模块,主要完成各模块的管理任务;实时监控模块,主要用来监控系统实时运行状态;报警模块,主要用来对报警故障的排除进行指导;下位机各系统监控界面等。

4 软件设计结果

软件画面包括主调度界面、通信显示界面(见图5),实时监控界面(见图6)、运行信息画面、各单元历史数据比较页面、生产设置界面、报警界面等42个界面。本文中只给出几个相对具有代表性的画面通信显示界面和实时监控界面。接收到下位机数据后它的原始数据会立即显示在数据接收显示画面中,后台进行数据解析和存储,并通过算法线程处理,将最终处理结果显示在实时监控画面上。

5 结 语

本文介绍全自动智能制造系统的上位机软件的开发过程,在嵌入式操作系统Windows CE中利用多线程,在模块内部使用线程同步技术,在模块之间使用异步线程技术,使数据处理效率大大提高,很好地满足整个系统对实时性、稳定性的要求。多线程的编程技术使得软件可以在多种运行模式下切换自如,满足处理实时数据的要求,对整个智能制造系统的正常可靠运行有重要意义。

参考文献

[1] 徐惠君,张志,刘延华.转杯纺纱机的高速化、智能化及自动化发展[J].纺织导报,2014(1):40?43.

XU Huijun, ZHANG Zhi, LIU Yanhua. Development of rotor spinning machinery: high?speed, intelligent and automatic [J]. China textile leader, 2014(1): 40?43.

[2] 朱峰.基于数据流和精确定位的多线程行人探测系统[J].电视技术,2016,40(5):121?128.

ZHU Feng. Precise positioning multithreading predestrian detection system based on data stream [J]. Video engineering, 2016, 40(5): 121?128.

[3] 张万君,李静阳,牛敏杰,等.坦克火控系统故障的多线程数据采集方法[J].兵器装备工程学报,2016,37(11):44?48.

ZHANG Wanjun, LI Jingyang, NIU Minjie, et al. Multithread fault data acquiring method for tank fire control system [J]. Journal of ordnance equipment engineering, 2016, 37(11): 44?48.

[4] 胡晓峰,张亮红,刘文怡,等.VC多线程流水线在数据存储系统中的设计与实现[J].电子器件,2016,39(4):964?967.

HU Xiaofeng, ZHANG Lianghong, LIU Wenyi, et al. Design and implementation of data storage system based on VC multithreading and pipelining [J]. Chinese journal of electron devices, 2016, 39(4): 964?967.

[5] Microsoft Corporation. Building a localized platform in Microsoft Windows CE platform builder 3.0 [EB/OL]. [2000?06?01]. https://msdn.microsoft.com/en?us/library/ms834426.aspx.

[6] Microsoft Corporation. Introducing Microsoft Windows CE 3.0 [EB/OL]. [2001?01?03]. https://msdn.microsoft.com/en?us/library/ms834413.aspx.

[7] 沈文伟,杨建华,陈叶富,等.嵌入式数据库SQLite在可视嗅觉系统中的应用[J].仪器仪表学报,2010,31(6):1289?1293.

SHEN Wenwei, YANG Jianhua, CHEN Yefu, et al. Application of embedded database SQLite in smell?seeing system [J]. Chinese journal of scientific instrument, 2010, 31(6): 1289?1293.

[8] 王孟禄,李浩,张镭.基于多线程和队列操作的TCM上位机系统设计[J].河南大学学报(自然科学版),2016,46(1):96?101.

WANG Menglu, LI Hao, ZHANG Lei. Upper computer system design of TCM based on multithreading and queue operations [J]. Journal of Henan University (Natural science), 2016, 46(1): 96?101.

[9] 张梁,王景存,梅镖.基于CAN总线的中控主机的系统设计[J].计算机测量与控制,2016,24(2):264?266.

ZHANG Liang, WANG Jingcun, MEI Biao. A center control computer system based on CAN bus [J]. Computer measurement & control, 2016, 24(2): 264?266.

[10] 马林.基于SQLite的个人通信录管理系统的设计与实现[D].长春:吉林大学,2015.

MA Lin. Design and implementation of personal address book management system based on SQLite [D]. Changchun: Jilin University, 2015.