首页 > 方案案例 > 正文

C/S模式的筒并捻车间生产信息监测系统

2009-08-28 08:58:32  来源:万方数据

摘要:结合纺织厂筒并捻车间信息化建设的现状和需求。借助企业内部局域网构建了系统的网络拓扑结构,利用计算机网络技术、串口通信技术、数据库技术,实现了系统的功能模块和数据库的设
关键词: 生产信息化 监测系统

  近年来,随着计算机技术、网络技术、通信技术的发展,信息技术在纺织企业得到了广泛应用,已从一般事务的处理上升到生产过程的监控,实现了生产管理的信息化,提高了工作效率,降低了劳动成本,使得在纺织企业中大规模地应用计算机进行网络化管理成为了可能。但是,对筒并捻车间而言,生产管理仍旧停留在人工管理的传统模式,各类生产数据的计算、统计以及大部分报表的实现均靠手工计算,加之在工业现场同一车间不同的机型混合在一起,其多品种、多机台、车间分散的特点给车间的信息化管理带来了很大困难,使得生产管理的信息化很长时间不能得以实现。

  为了适应现代化生产管理的要求,企业生产管理者越来越关心每个生产现场的投入与产出、节能与降耗、增产与增收,为此,针对车间的实际需求,研制了一种基于局域网的筒并捻车间牛产信息监测系统,实现对纺织厂筒并捻车间机台生产数据的实时采集、整理、存储、监控和分析,以达到对设备检查、设备保养、设备停机、工艺质量控制、车间现场控制等的全面管理,为企业生产决策提供准确、及时、全面的数据分析和管理平台。

  1 系统目标

  1)提高生产效率和管理水平,促进车间生产信息化的发展,减少劳动力成本;

  2)实现产量、质量数据的统计、分析,为车间主任、企业生产管理者提供数据依据;

  3)将企业生产计划的制订、执行以及完成情况实现在线监测;

  4)实现各类报表的统计、分析、导入、导出功能;

  5)实现企业各部门之间生产数据的共享共用、使生产管理达到规范化和标准化。

  2 系统的总体设计

  2.1 体系结构设计

  系统的体系结构由上位机(车间主计算机)和下位机(筒并捻机台监测器)两部分组成,经总线将两者相连形成二级集散式结构,如图1所示。

\

  图1 系统体系结构

  本系统中,上位机与车间其他部门的计算机通过局域网形成可靠的客户/服务器(C/S)结构模式,这种结构实现了功能的分布、生产数据的集中。服务器端管理软件的主要功能是:①检索ERP系统中的生产计划、生产指标以及品种等信息;②监测筒并捻机的实时运转状态;③对生产数据的采集、存储,然后以曲线、车间分布图和报表的形式给生产管理者提供生产数据;④对生产数据的管理、统计、分析以及生产计划的调度和各类报表的打印。客户端管理软件的主要功能是当拥有权限后,借助局域网与上位机相连接,远程监控所有机台的运行状态及生产数据,也可实现生产参数、工艺等信息的网上录入、查询、统计和打印。

  监测器被安装在每个机台的控制箱内,用于采集、存储机台的产量及停台信息,并通过总线接受上位机系统的运行参数校正,并向上位机系统回传运行参数及监测器本身的运行状态信息。

  2.2 网络环境的选择

  服务器端(上位机)的操作系统采用企业内部网中应用广泛的Windows NT操作系统,它支持TCP/IP、IPX/SPX网络协议,具有可移植、多用户、安全性较高以及容错能力较强等特点。采用SQL Server 2005作为数据库管理系统,使用ADO(ActiveX Data Object)连接数据库,提供对数据库的访问。客户端操作系统为Windows 2000/XP,前端开发工具选用Vi sual C++.NET2005。这种方案更符合筒并捻车间地理位置分布不规则的现状。

  2.3 系统功能设计

  根据车间生产管理方面的实际需要,数据的组织始终以质量指标为主线,采用模块化程序设计方法,把整个系统功能分为7个模块:系统管理模块、基础数据设置模块、计划管理模块、工艺管理模块、生产监控模块、产量质量管理模块、产品跟踪管理模块,每个子模块完成相应的管理功能。各模块之间的关系如图2所示。

\

  图2 系统功能模块

  3 系统的实现

  3.1 数据库设计

  系统数据库中的数据表主要有工艺参数表、工序常数表、机台信息表、产量表、质量表、台账表、设备利用表、用户表、各工序计算公式表以及密码权限表等,其中与产量、质量有关的数据表之间主要以“品种信息”建立关系,所有表中最重要的是产量表、工艺参数表和机台信息表,因为筒并捻车间机型较多、车间分布不规则,同种机型生产的品种不一定相同,同一机台生产的品种可以不同,而且一个品种对应多道工序,一道工序也可对应多个品种数据,因此在数据库建模阶段,采用ERwin建模工具对系统数据库中各个数据表之间的逻辑结构进行了设计与优化。

  系统中的生产数据主要有两类:实时数据和历史数据,两类数据都存储在同一个SQL Server数据库,但采用不同的数据表。一类是实时产量数据表,其数据由数据采集模块采集完一个周期的机台生产数据后,按照生产数据链表中暂存的机台生产数据,开始更新实时产量数据表中的数据,其主要用来为客户端的远程在线监测提供实时基础数据;另一类是历史数据表,主要管理诸如品种号数、品种名称、停车时间、停车次数、轮班产量、小组产量、台账等常永久性产量数据,其由实时监控系统在轮班交接班时负责归档并写入,是整个系统数据库的主体,为以后的历史产量的查询、数据的统计与分析提供基础数据。

  3.2 多线程技术的应用

  由于本监测系统对车间的主计算机而言,任务比较繁重,既要实时采集监测器的生产数据、图形显示、数据存储、报表打印以及其他人机交互等功能,又要为合法的客户端的远程在线监测提供实时数据,满足他们生产管理的需要。因此,在系统开发过程中,为了使接收到的数据得到及时处理和系统响应其他用户的并发操作,利用VC++.NET的Windows API串行端口通信编程技术和多线程技术,创建了一个工作者线程(数据采集主线程)和多个用户界面线程。将数据采集功能写成了工作者线程,让其在后台自动运行,循环不间断地采集监测器中的生产数据,专门负责后台数据采集,计算、存储,并将采集的数据送入数据库,只有应用程序通知数据采集主线程停止的时候,它才立刻停止并退出循环采集的线程,否则一直运行;对于多个用户界面而言,线程操作系统会将CPU时间划分成若干时间片,并按一定的优先级将时间片分配给各线程,用来实现以机台车间分布图、数据列表、曲线的形式实时绘制、刷新生产数据及其他用户界面操作。

  在本系统中使用了AfxBegin Thread(ThreadProe,&dwParam)方法创建线程。其中ThreadProc指向线程函数,pParam为传递给线程函数的参数。终止线程则使用AfxEnd Thread(exitcode)函数。实现过程如下:

  1)利用MFC AppWizzard完成程序的框架,在此过程中,主线程自动生成。

  2)编写辅助线程的过程函数,即采集线程的捕获标志信号的程序。

  3)为采集线程与主线程通信自定义一个消息,在程序的头文件中完成:

  #define WM_FRAMEOVER WM_USER+1

  4)编写上述消息WM—FRAMEOVER的消息处理函数,其原形为:

  Void CMyApp∶∶OnFrameOver()

  {…… //处理程序}

  5)在程序(丰线程)的初始化函数里创建并启动采集线程。

  pCollectionThread=AfxBeginThread

  (CollectionThreadProc,m_hWnd,THREAD_PRIORITY_NORMAL,0,CREATE SUSPENDED,NULL);

  其中pCollectionThread是线程类CWinThread指针,其定义为:CWinThread *pCollectionThread;在启动主采集线程时,设置线程的相对优先级为THREAD_PRIORITY_NORMAL。

  6)在主采集线程中,当捕获到帧数据结束标志信号后,发送消息给主线程,其实现代码如下:

  if(……)////////如果捕获到标志信号

  PostMessage(HWND(pParam),WM_FRAMEOVER,0,0);////发送消息给主线程

  HWND(pParam)表示发送消息所到的目的地,WM_FRAMEOVER为发送消息的名称,也就是步骤3)中为采集线程和主线程通信而自定义的消息。

  7)用户界面线程与服务器主采集线程的同步。为了使所有机台的生产数据得到及时采集和多用户的并发操作得到及时响应,在多线程问必须采取措施来保证线程的同步,有效防止因竞争资源而引起系统的不稳定或死机现象。为此,在系统设计过程中,为服务器端应用程序中建立一个动态数据表,让数据表暂存在后台,并将采集到的数据暂存在其中,每当采集完一个周期的机台数据后对数据表中的数据执行更新操作,以保证数据的实时性。由于动态数据表中的每条数据(一个数组)是读写2个线程所需要共阿访问的数据,其中服务器端的主采集线程写数据到该数据表中,多用户界面线程只从该数据表中读取数据。这2个线程的同步是利用数据转存的方法来实现的。代码如下:

  pCol1ectionThread->SuspendThread ();

  for(i=0;i<128;i++)

  {framedatabak[i]=framedata[i];}

  pCollectionThread->ResumeThread ();

  若服务器主采集线程挂起,则不会写数据到动态数据表中,利用一个for循环,将framedata数组(动态数据表中的每条数据)的内容转存到数组framedatabak中,然后恢复采集线程。多用户界面线程需要对牛产数据进行处理时,对数组framedatabak进行操作,避免了2个线程同时操作同一条数据而引起的冲突,以达到2个线程同步的目的。

  8)终止线程。系统启动之后就用F列语句启动工作者线程:

  pThread=AfxBeginThread(workThread_circleCollect,this);

  在启动了数据采集线程之后,需要设置线程的成员变量m_bAutoDelete为FALSE,这样设置的目的是在线程退出之后不让系统自动删除线程对象,在主线程中就可以查询到线程当前的状态,以便于判断线程是在运行还是已经退出。工作者线程可以使用AfxEndThread函数或者return语句正常退出,退出时可以设定线程的退出代码,其与用户界面线程不同的是工作者线程没有消息循环,凶此不能通过投递wM QUIT消息使得工作者线程退出。要强行退出用户界面线程,最坏的情况下町以调用TerminateThread实现,但TerminateThread不是终止线程的好办法,因为用户界面线程在退出前没有机会清理它的堆栈,也不会通知它所依附的DLL将要退出,使得系统引发出共享冲突的错误。

  本系统对采集线程退出的优化过程为:当一个用户界而线程A需要终止另一个用户界而线程B时,它将某个同步对象设置为有信号状态。B线程在执行的过程中会检查这个同步对象的状态,一旦该对象为有信号状态,就可以用return或者AfxEndThread终止自己。实现过程如下列代码:

  UINT workThread_circleCollect(LPVOID pParam)

  {

  while(1)//循环采集

  {//采集机台状态、当班数据等

  ……

  if(pApp->IsForceOuit())//测试是否需要退出线程

  {

  return-1;

  }

  //链表指向下一个节点

  iter++;

  if(iter==globalMonitor.end())

  {

  iter=globalionitor.begin();

  }

  }//while(1)的结束

  return ();

  }

  应用程序类CwhjtApp定义了一个公有成员函数,分别用来设置信号量和查询信号量的状态。m_hEvent是事件类的同步对象,为了使用该对象,在类的头文件中增加文件包含预处理语句:

  #incude “afxmt.h”

  void ForceQuit()//设置信号量

  {

  SetEvent(m_hExit);

  };

  BOOL IsForceQuit ()//查询信号量状态

  {

  return(WaitForSingleObject(m_hExit,0)==WAIT_OBJECT_0):

  };

  WaitForSingleObject将使得线程等待某个同步对象有信号,上式第二个参数值为0表示测试m_hExit的状态后立即返回。如果在指定的时间范围内,该同步对象有信号,则返回WAIT_OBJECT_0,否则返回WAIT_TIMEOUT。

  3.3 多串口通信技术

  由于一部分新型机台有通信接口,并配备了相应的通信协议,需配备相应的转换电路来实现牛产数据的采集;还有一部分机型虽有通信接口,但是生产商并没有提供通信协议,需开发相应的监测器和通讯协议;更有一部分机台既没有通信接口也没有通信协议,即使设计了监测器和通信协议,其产量脉冲信号、停机信号的采集点和计数方式不同,其监测器和通信协议也不能通用。如果针对不同的串口采用不同的协议与对应监测部件进行通信,可以很好地解决问题,但是给系统硬件的后期维护带来了不便,加之在工业现场往往不同机型的机台混放在一起,采取这种方法不利于系统的拓展和升级。为此,自定义了一种通用通信协议,如表1所示,利用单串口多协议的通信方法很好地解决了此问题,结果表明方案足可行的。

\

  表1 自定义通信协议格式

  在表1中,STX为报文起始符,YS为机台唯一标识,MD为传输的机台类型,ST为正文开始符,ID为通信端口中监测器的唯一地址标识码,0P为报文操作符;PR为报文操作命令,DATA为数据区,ETX为报文结束符,上位机与监测器之间传输的所有数据均为十六进制的ASCII码形式,其中STX、ETX分别表示05H、0DH。YS的取值范围由00H到0FH。和校验是2个16进制ASCII码,其值为从STX开始到数据区DATA所有数据求和的最后两位,主要用来校验数据监测器回送的数据是否正确。

  在上位机与监测器构成的主从式多机通信系统中,整个通信过程都由上位机发起,当上位机开始采集监测器中的生产数据之前,首先向监测器发送一帧地址信息,当相应的监测器接收到地址帧后,将其与本地地址进行比较,判断是否一致,若与本监测器地址相符,则回送通信成功的心答信号,并进入通信状态,否则,继续监听上位机卜的指令。当成功建口通信机制后,上位机自上而下向临测器发送机台生产计划参数(包括机台所在组岗、机犁、品种号数、班次、日期、端口、监测器ID等),当监测器收到指令后自下而上回送机台的生产数据(包括机台停机次数、停机时间、当班产量、轮班产量等),然后上位机对采集到的生产数据进行校验,将校验成功的数据进行保存和终端显示。在这种网络模式下每个监测器都具有唯一的地址与其对应,不会监听其他监测器对上位机的响应,更不会对其他监测器产生错误的响应。

  4 系统功能及特点

  4.1 系统功能

  4.1.1 基础数据管理

  建立和维护系统使用的丰要生产参数,包括机台信息、在机品种、机台岗位的维护、通信参数、系统通信功能模块的调试、机台运行效率标准、停车原因、产量完成指标、单包重量的设置等。

  4.1.2 计划管理

  该模块主要负责从纺织企业ERP系统接收企业的品种月生产计划,并按工艺由生产及物料计划生成日生产计划清单,在月初将该日计划的诸如品种、单产、效率、转速等信息发送给底层监测器。若生产工艺或生产计划有所变化,甚至其他意外情况发生时,可通过本模块对生产信息进行调度。

  4.1.3 工艺管理

  根据生产调整、维护和管理生产线工艺流程及工序组织方案,建立生产工艺库,适应多种类型产品的生产。

  4.1.4 生产监控

  主要用于监控生产计划的执行情况和机台实时运转状况。整个生产计划执行过程中,各个环节的执行情况均以图形的形式反映在系统监测界面上,实现管理人员对生产过程的可视化管理。

  4.1.5 产量质量管理

  主要功能包括:①将采集的生产数据进行查询、统计、分析以及低效机台、台账、设备利用等信息的录入等,能够准确、及时地掌握在机产品的牛产完成情况,并编制、打印各部门生产和管理所需的各种报表;②根据ERP系统提供的API接口,自动检索生产参数与采集的数据立即形成各种产量质量报表;③能随时查询或打印机台的累计班、日、月运转效率、车速、单机的运转与停机记录等。

  4.1.6 产品跟踪管理

  主要为整理车间、质量部门、企业生产管理者提供成品质量综合分析功能,包括:①根据ERP系统的生产参数和品种信息,以及生产计划指标快速形成图、表、报表,以便分析各项技术指标;②将实际制造过程测定的结果与企业制定的目标及客户的要求进行比较,形成各类管理决策所需的图形、报表。

  4.2 系统特点

  系统采用C/S结构,实现了机台生产数据和运转状态在局域网内的远程在线监测;为ERP系统提供了良好的集成接口;将系统功能分布各个客户端,提高了系统可靠性和实时性;易于系统移植和跨操作系统运行。

  5 系统应用情况

  本监测系统在某纺织厂的筒并捻车间成功运行以来,系统运行稳定、数据采集准确,使用效果良好,主要功能满足了筒并捻车间生产管理、产量质量的监测报表的统计分析及质量方面的管理要求,提高了,车间的生产管理效率,降低了产量差错率,并使企业生产效率提高20%,劳动力成本降低10%,实现了车间生产管理的网络化和信息化。

  6 结 语

  C/S模式的筒并捻车间生产信息监测系统为纺织企业的生产管理构建了统一的信息平台,实现了生产数据的共享共用,提高了生产效率,降低了繁重的手工计算及统计分析工作,而且生产数据准确、及时,为企业管理层快速、有效地决策提供了数据依据,提高了企业的质量管理水平,进一步促进了纺织企业生产信息化的发展。


第三十八届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。