中小型机械加工企业生产数据实时采集系统研究

2011-01-20 06:49杜海军曹郁辉
湖北工业职业技术学院学报 2011年3期
关键词:线程上位串口

杜海军,曹郁辉

(1.十堰职业技术学院机电工程系;2.十堰职业技术学院党委工作部,湖北十堰442000)

0 引言

在机械行业生产加工的过程中,为了及时掌握生产现场的各个设备及各个工序的生产运行情况,需要对生产现场的各个设备及各个工序所产生的各种实时数据进行采集、处理和记录。十堰市的中小工业企业多是以汽配加工生产为主,如果在这些企业里采用现代化的信息技术对生产数据进行实时采集、传输、记录并及时对数据进行统计、分析、处理,实现对生产计划的合理安排,就可以提高工厂生产的技术含量,提高生产管理的现代化水平。我们将这种采用计算机来实现生产数据实时采集、实时处理的信息系统称之为生产数据采集系统,它是现代化工厂制造执行系统中一个必不可少的功能模块。

1 生产数据采集系统的结构

本文所介绍的应用于机械工业生产的数据采集系统主要由以下一些硬件构成:一台性能较好的微型计算机、多台生产数据采集终端机和通讯电路。系统采用的控制结构是上、下位机控制方式,上位机由微型计算机构成,多台现场数据采集终端组成了下位机,一般下位机采用C51单片机系统构成的终端机控制各个工序的传感器,对生产数据进行实时采集;也可以是由自动加工设备中可编程控制器PLC取得现场各工序的运行情况。

对于自动化程度较高的机械加工企业,现场数据采集终端一般都是采用PLC构成,这样比较适合于生产现场环境。一般由一台微型计算机构成上位机,上位机主要有两个作用:一方面利用自带的RS422总线网络与各个数据采集终端进行联结,使系统的数据采集通信得到构建;另一方面,由于生产现场和厂级网络管理系统的网络体系结构和协议的不同,使得由数据采集终端采集到的这些生产现场数据,常常无法与整个工厂的管理系统连接,而上位机的存在和设置解决了这个问题。上位机通过LAN网络与数据服务器及厂级管理系统进行连接,这样就实现了生产现场和厂级管理系统的双向通信。该生产数据采集系统结构图如图1所示。

图1 生产数据采集系统结构图

2 数据采集系统的程序设计

数据采集系统程序的具体设计过程如下:首先,对用户需求进行充分地了解,进而对生产数据采集系统的结构进行选择;然后根据系统的结构选择适合本系统的开发平台和开发工具,程序设计采用至上而下的开放方式,首先确定系统的基本功能,然后设计软件的功能模块和接口程序,这样可以提高系统的开发效率。本系统的软件要实现三个方面的功能,一是软件要实现系统上位机与数据采集终端的通信;二是要实现系统上位机和厂级管理系统的生产任务调度系统模块进行联络;三是实现厂级管理系统对系统数据服务器的访问。

2.1 软件开发平台及数据库选择

本系统选择VB和C#作为开发平台,这两种程序设计语言可以方便地为网络程序提供开发支持,同时具有强大的数据库处理能力,它们可以支持多种数据库格式,方便地实现对本地或网络数据库的基本操作。通过这两种工具的任意一种,我们可以将生产数据实时地显示在网页中,达到任何时刻都可以通过网页进行观看实时生产数据的效果。对于系统中使用的数据库的选择,由于SQL Server2000具有客户/服务器结构,能有效地支持多个客户机通过网络对数据库的访问,简单易用,并与VB和C#有良好的协同工作能力。因此我们根据企业的实际情况和发展的需要,采用SQL Server2000作为系统数据库。

2.2 串口通信在C#中的实现

上位机与数据采集设备的通信是通过串行总线RS422进行的。我们用采用开发工具中的MSComm控件[1]来实现串口通信操作。MSComm控件常用的数据处理通信的方式如下:

(1)事件驱动方式

事件驱动方式是常用的对串行端口交互作用进行处理的方法,它在处理串口通讯方面效率比较高。在工业领域的许多情况下,当生产现场有事件发生时,需要对系统发出处理通知,例如,在系统的串口缓冲区之中有字符存在时,或者Request T o Send(RTS)和CarrierDetect(CD)出现变化时,都会引发OnComm事件。这样采用事件驱动方式,系统程序就可以利用On-Comm事件对相关情况进行处理。

而且MSComm控件的OnComm事件还可以对系统的通信错误进行检查和处理,系统的开发者还可以自行编写OnComm事件的处理函数,进行二次开发,达到自己需要的控制方式。事件驱动方式的优点是对相关系统控制程序的响应处理比较及时,系统的可靠性和稳定性比较高。

(2)查询方式

所谓查询方式是指系统在采集工作状态时,采用主动的方式进行采集,在对实时要求不高的情况之下,查询方式更为经济和便捷。对于工作现场的每个关键流程,我们都可以利用检查CommEvent属性的方式来确定当前的工作状况,对于出现的问题,可以通过自己编写的程序进行处理。如果工序流程较为简单,并且是自保持的,这种方式成本很低,而且易于实现。例如,如果检查某个工序是否按要求进行工作,只要检查该工序CommEvent属性的值是否为特定值就可以了。这种方式对硬件的要求非常简单。

2.3 程序当中的多线程处理技术

由于在工作现场,所有的数据采集终端的数据都是通过上位机进行采集和处理的。因此,要想使系统的数据采集功能达到效率高、实时性强和可靠性高的特点,多线程处理技术就必须在系统中得到应用,这样才能实现上位机与多台终端机进行实时通信。

如果用户需要同时对多个任务进行处理,也必须采用多线程的处理方式。在本数据采集系统之中,上位机与下位机既要采用串行通信的方式,又要对采集终端传过来的数据进行实时显示,同时还要与厂级管理系统主机进行联网,因此只能利用多线程技术来处理。

在Windows系统的一个进程之中,一般由一个或多个线程组成。这些线程对于该进程的所有资源进行共享,这些资源包括:信号标识、打开的文件和动态分配的内存等等。使用同一个32位地址空间对一个进程内的所有线程进行地址分配,而由系统调度程序对这些线程的执行进行控制,什么时候执行线程及哪个线程可执行都要由相关的调度程序来控制和决定。优先级别高的线程,可以被优先执行。在具有多处理器的机器上,多个线程往往通过调度程序放到不同的处理器上进行处理和运行,这样可以使系统的运行状态更加平稳,也使采集系统的运行效率得到极大的提高。

因此我们利用串口通信函数及Windows多线程控制技术,来实现整个系统的运行。程序设计方式是:利用Windows的多线程技术,在辅助线程之中监视相关的串口,依靠事件驱动程序对采集到的数据进行储存和接收,同时向主线程发送消息。根据此消息,主线程对接收到的数据进行相关处理。与此同时,串口读写操作依靠重叠读写操作运行在系统的后台[2]。

2.4 数据分析与处理

在进行数据库设计时我们要考虑到机械加工企业的特点。我们采用生产工艺信息数据来设计表和表的结构。程序使用ADO技术访问数据库,对数据库的数据进行相关的编辑和访问,这些操作是利用ADODB组件来完成的。

在对系统的数据库进行设计时需要注意:(1)系统的数据库一定要具备充足和有效的存储空间,能够对大量的实时采集数据进行存放。(2)数据操作时间应该尽可能的短,避免死锁的发生并可以提高系统的访问效率。(3)在对数据进行处理时,由于各个子线程对系统数据库的交叉访问操作,因此,需要通过设置保护的方式实现系统资源独占操作,防止出现数据不同步情况。

图2 数据库结构图

3 结语

由于在机械行业生产加工的过程中,生产中产生的各种数据具有多样性、随机性和突发性的特点,因此,在对生产环节的数据采集系统进行设计之前必须进行详细周到的调研。在实现全部采集系统的设计过程中,也需要对一些技术性难题进行考虑,如:机械加工的环境复杂,需要系统具有较高的可靠性,且数据采集系统之中的多线程也往往存在互斥与同步的问题。本文在对数据采集系统设计时,对这些问题进行了充分的考虑,使得设计的数据采集系统在进行相关生产数据采集时具有可靠性高和实时性强的特点,应用本文设计的数据采集系统将会对中小型机械加工企业生产管理的自动化和集成化具有非常大的推进和促进的作用。

[1]王生胜,肖 静.基于MSComm的实时监控上位机程序的设计[J].可编程控制器与工厂自动化,2007(6):89.

[2]何新军,熊幸明.基于多线程技术的PLC与PC通讯在电机测控系统中的实现[J].机床电器,2004(2):33.

猜你喜欢
线程上位串口
浅谈AB PLC串口跟RFID传感器的通讯应用
特斯拉 风云之老阿姨上位
浅谈linux多线程协作
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
以新思路促推现代农业上位
基于并行控制的FPGA多串口拓展实现
基于上下文定界的Fork/Join并行性的并发程序可达性分析*