小型车间信息化管理系统
2012-02-15盛卫锋王耀庭
盛卫锋,王耀庭
(江南大学 机械工程学院,江苏 无锡 214122)
20世纪90年代以来,电子信息技术的飞速发展所导致的重大变化之一就是全球经济一体化与全球市场的形成。这既推动社会生产力迅速发展,又给企业的生存和发展带来严酷的挑战。这主要表现在:传统的“相对稳定”的市场变化为“动态多变”的全球市场;卖方市场不断向买方市场转变;多品种小批量生产比例增大,市场变得越来越“零碎”;产品生命周期越来越短,升级换代越来越迅速;独占性技术(知识)构成了产品的主要价值;顾客的个性化要求越来越高;跨国公司的垄断性更明显,企业的兼并、重组更激烈,更动荡;环保意识、绿色制造呼声更强[1]。
面对如此激烈的市场竞争环境,欧美企业已基本实现了车间信息化及整个企业的信息化改造。我国国有大型企业也已进行了车间信息化改造,实现了车间管理的信息化。而中小型私有企业由于资金等因素制约,大多未能实现车间的信息化管理,但随着最近几年企业用人成本的提升以及社会对企业产品质量要求的提高,很多中小企业开始了车间信息化升级。开发一款小型企业的信息化管理系统,可以方便于管理人员及时了解和反馈每台机器的工作状况和生产情况,及时处理生产中出现的一些问题,同时实现机床检测参数及机床加工信息的实时反馈及管理。
1 系统构成
文中设计的中小型压铸车间的信息化管理系统,可以实现上层数据库系统与底层控制器的数据交换,数据库将底层控制器传输上来的信息进行存储整理分析,根据分析结果发送控制信息,为机床的生产提供指导。如图1所示,系统主要包括上层数据库系统,底层控制器和通信网络3个部分。
1)上层数据库系统
上层数据库系统为车间信息数据库管理程序,能够实现将上传数据的功能名称、信息时间、工人姓名、工艺和物料等加工信息和底层控制器上传的机床检测参数进行存储、显示,对接收的数据进行分析处理,根据处理的结果检测机床工作是否正常,将信息反馈到底层控制器,告知现场操作工人。此外,数据库系统还能够实现对数据进行统计、制表、保存、复制、打印和传输。
2)底层控制器
底层控制器是由微处理器、键盘、液晶显示屏等组成的控制系统,包括与机床的通讯接口、与上层数据库系统的通讯接口以及报警装置等。现场工人可以通过按键设置,将机床加工信息(包括姓名、模具、设备、工艺和物料等),以及接收机床本身检测提供的加工状态(温度、压力等参数)实时上传给数据库;同时控制器还可以接收来自上层的命令,提示工人做出相应操作。
3)通信网络
通讯网络实现上层数据库与底层控制器的数据通信。通信系统要求能够稳定高效的通信,并且还应考虑现场的工作环境和布网的成本等因素,综合考虑各种因素选择CAN工业总线通信协议。CAN总线具有多主工作方式、非破坏性总线仲裁技术、具有点对点和一点对多点和全局广播等工作方式、提供远程数据请求、高效的短帧结构、高可靠性、总线配置灵活等优点[2]。
2 数据库系统
2.1 数据库结构介绍
目前世界上比较流行的数据库项目大多采用三层体系结构设计,典型的三层体系结构包括表示层(界面层)、业务逻辑层和数据访问层。使用三层体系结构的系统层与层之间的耦合度低,层内部聚合度高,使得系统的维护变得更加的容易[3]。
表示层:主要是指与用户交互的界面,用于显示数据和接收用户的输入,将用户输入的数据传递到业务逻辑层,一般不包含任何实际的业务处理
业务逻辑层:是表示层和数据访问层之间的桥梁,它代表应用程序的核心功能,负责处理数据层的数据,实现具体的业务逻辑,通常为一个类库。
数据访问层:主要实现对数据的操作,将数据库中的数据提供给业务逻辑层,同时将业务逻辑层处理过的数据存储到数据库中。
2.2 数据库结构设计
三层体系架构搭建好之后要实现三层之间的数据传递一般有两种方法:创建实体层使用其中的实体类在三层之间传递数据;使用数据集在三层之间传递数据。本设计使用创建实体层使用实体类的方法,因为实体类是一个比较容易控制的对象,具有面向对象的基本特征,可以自由的在其中添加行为等。实体类消除了关系数据和对象之间的差异,便于操纵关系数据,能更好的发挥分层的作用,更好的进行复用和扩展,增强灵活性[4]。
根据要处理数据种类的不同,本系统使用SQL Server 2005构建了包含两个表的数据库。两个表分别是机床加工信息表(WorkInfo)和机床检测参数表(ProcessInfo)。机床加工信息表包含序列号、机床编号、时间、员工编号、员工姓名、模具、设备、工艺、铝水和物料10个键。机床检测参数表包含序列号、机床编号、时间、温度、压射力、压射速度和压射时间7个键。
数据库程序采用.NET Framework 3.5中新增的LINQ,简化三层体系结构的搭建,C#利用LINQ to SQL创建一个通用实体类,实现在3个模块之间使用对象进行数据传递和负责操作数据库,辅助数据访问层操作数据库。利用LINQ创建的三层体系结构如图2所示,其中的DataLinq层就是实体层和数据模型层的组合[5-6]。
图2 LINQ三层体系结构简图Fig.2 The sketch schematic of the LINQ three-tier architecture
下面介绍各层的具体创建:
数据库通用类:使用C#可以轻松的使用LINQto SQL创建一个DataLinq层来组织数据库通用类,DataLinq层包含一个DataContext类和若干个实体类,DataContext类用来查询数据库、检索数据记录和更新数据库,包含了每一个表的属性[4]。每一个表对应一个实体类,这些实体类包含了强类型属性集合,映射到数据库中对应的字段。将已经连接好的数据库的WorkInfo表和ProcessInfo表拖到WSDataLinq.dbml文件中,生成解决方案,数据库通用类即设计完成,创建了WorkInfo和ProcessInfo两个实体类,实现数据在三层之间的传输。
数据访问层:数据访问层通过一个类库实现,在解决方案中新建一个“类库”项目WSDAL,向其中添加对DataLinq层的引用,使数据访问层能够使用数据库通用类[4],在该命名空间中创建两个类DALWorkInfo和DALProcessInfo,使用该两个类的方法分别对表WorkInfo和表ProcessInfo进行数据操作。两个类中分别包含对表中相应键的查询方法,以表中添加相应的记录的方法和获取表序列号最大值的方法等。
业务逻辑层:业务逻辑层的设计方法与数据访问层相似,都是通过添加类库和引用,然后创建对应WorkInfo表和ProcessInfo表的两个类,实现对两个表的操作。两个层不同的是数据访问层通过WSDataLinqDataContext类实例对象直接操作数据库,而业务逻辑层通过创建数据访问层类的实例对象,调用其方法实现相应的操作。业务逻辑层需要使用数据访问层实例化的对象,因此需要添加对数据访问层的引用。业务逻辑层中创建的两个类分别为BLLWorkInfo类和BLLProcessInfo类。两个类通过写相应的函数设计与数据访问层相应的数据操作方法。
表示层:表示层主要是指与用户交互的界面。三层体系结构中,表示层并不对数据实现具体的操作,表示层对数据的操作将通过业务逻辑层实现,表示层通过创建业务逻辑层相应表的对应类实例化的对象,采用相应实例的相应方法实现数据操作。
下面以查找模具3为例,介绍数据库条件查询中三层体系结构的流程。如图3所示。
图3 数据查询流程图Fig.3 The flow schematic of the data query
2.3 具体功能模块设计
数据库要求能够实现数据的接收存储和实时显示,条件查询,报表输出打印。分析上述要求,数据库系统主要实现了打印相关操作、CAN Bus相关操作、实现两张表之间的切换以及对相应表的查询功能和报警。根据主要功能,菜单栏包含3个主菜单项:文件、机床信息表和CAN Bus设置。文件菜单包括打印设置、打印预览、打印和退出菜单项;机床信息表包括机床加工信息表、机床检测参数表和报警菜单项;CAN Bus设置菜单包括连接、启动、复位、断开和参数设置菜单项。
机床信息表菜单包含了一些与表格相关的操作,包括实现表格切换和发送报警信息窗口。为实现数据的实时显示,程序采用2个DataGridView控件分别显示数据库WorkInfo表和ProcessInfo表中的全部内容或符合查询条件的查询结果。在显示数据库相应表的内容的同时,每个表的查询功能设计在表的左上方,数据的查询条件通过下拉类表进行选择。报警菜单用于显示报警窗口,在使用者发现底层控制器传输上来的机床加工信息与要求不同时或机床检测的参数发生偏差时,在报警窗口中选择不符合要求的机床编号,向底层控制器发送报警信息。
数据库系统通过周立功公司的USBCAN-I与CAN Bus总线进行数据交换。USBCAN-I设备提供数据通信软件,并且提供可以用于二次开发的DLL文件,可以自己设计通信系统。CAN Bus设置菜单分别设计了连接、启动、复位、断开和参数设置五个菜单,分别用于CAN Bus的初始化和连接断开等操作。这些指令都可以通过DLL文件提供的函数方便快捷的设计。CAN Bus参数设置窗口设计如图所示,包括了CAN Bus通信所必需的设备索引号、第几路CAN、验收码、屏蔽码、定时器0,1、滤波方式、模式、发送格式、帧格式、帧类型、帧ID等的设计。
2.4 数据库的接受与存储流程
图4 数据存储流程图Fig.4 The flow schematic of the data storage
数据库系统采用间隔查询的方式读取CAN总线数据,在程序中添加一个时钟控件,根据相同规模大小设计间隔时间。当程序中CAN Bus连接成功后,时钟控件工作,在时钟控件的响应事件中系统不断检测CAN Bus总线是否有数据。当有数据时系统对数据进行读取,对读取到的数据进行解包,根据帧ID所代表的含义,确定数据为WorkInfo表数据还是ProcessInfo表数据,然后创建相应表的DataLinq实例化结构体,将CAN Bus帧的8位数据所存储的信息存入相应键中。由于CAN Bus数据帧存储信息太少,底层控制器每条信息都是分两次传递,因此在接收到后一条信息后,结构体赋值完成,将结构体作为参数调用业务逻辑层数据插入的方法将读取的数据插入到数据库表的最后一条。
具体的数据存储流程图如图4所示。
3 结 论
随着最近几年我国用人成本的不断提高和招工困难度的增加,越来越多的中小型企业开始了生产信息化改造,由于受资金的制约,它们基本不会选择价格昂贵的全套MES信息控制系统。所以很多的企业选择自己研发或购买一些简单的车间数据库管理系统。本系统完全满足了中小企业生产信息化的需求,是一个简单实用的车间数据库管理系统,实现生产过程中的数据传输、存储、管理和对机床加工的控制要求。
[1]顺德市人民政府.顺德市企业信息化总体规划与实施方案[EB/OL].[2002-02-26].http://max.book118.com/html/2001/1028/687060.shtm.
[2]李真花,崔健.CAN总线轻松入门与实践[M].北京:北京航空航天大学出版社,2011.
[3]国家863中部软件孵化器.C#从入门到精通[M].北京:人民邮电出版社,2010.
[4]Portugal P,Carvalho A.A model based on a stochastic petri net approach for dependability evaluation of controller area networks[J].FACInternational Conference, Solitons&Fractals,2006,14(6):105-157.
[5]Agarwal V V,Huddleston J.C#2008数据库入门经典[M].沈洁,杨华,译.北京:清华大学出版社,2009.
[6]柳盛,王国全,沈永林.C语言通用范例开发金典[M].北京:电子工业出版社,2008.