西安电子科技大学学位论文独创性(或创新性)声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在.导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人签名:醐掣一西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。(保密的论文在解密后遵守此规定)本学位论文属于保密,在年解密后适用本授权书。本人签名:日期导师签名:日期j摘要近年来,制造型企业的信息化发展和管理水平都有了极大的提高。尽管在企业大量应用和开发了面向不同领域的各种信息化系统,但如何向上级领导和企业管理者更好地展示企业总体的信息化成果和管理水平,从企业宏观整体的角度迸。·◆行所蓑心信息的挖掘提取,以便实现所需异构信息的可视化和量化‘,帮助企业管..·理者分析和决策,.一直成为企业新的信息化发展需求。本文主要是针对企业生产管理领域的信息进行可视化和量化。.论文主要探讨了生产管理方面的基本理论和技术,包括ERP理论、MES理论和信息可视化理论等;主要研究了生产管理可视化系统的总体设计和详细设计,包括系统结构和功能的设计、系统网络体系结构的选择、系统采用的开发技术、系统软件代码的编制和设计等;重点克服了系统数据库中数据信息可视化方面的关键技术:数据可视化技术、工艺加工流程简图生成技术、可视化数据挖掘技术。本软件系统以企业现有基础数据库为立足点,借用SQLSERVER2000数据库管理软件,运用BorlandC++Builder这一可视化集成开发工具,最终开发了一套生产管理可视化软件系统,实现了本项目生产管理子模块的功能需求,满足企业的实际信息化需求,并得以在企业成功应用且取得了较好的评价。关键词:生产管理企业资源计划制造执行系统信息可视化AbstractInrecentyears,theinformatizationdevelopmentandmanagementofmanufacturingenterpriseshasbeenimprovedtremendously.Although,agreat.variety.ofinformationsystemsfacinggreatly,ithasbecomehowtoaon:differentfieldshavebeenappliedanddeveloped一:newdemandofinformatizationdevelopmentinenterprisethatbettershowthegeneralinformatization-achievements-andmanager,andextractthemanagementlevelalltheycareforsuperiorleadershipandbusinessinformationaboutfrom.amacroscopicperspective,SOthatitrealizesthedesiredheterogeneousinformationvisualizationdecide.Thispaperfocusmainlyfieldofproductiononandquantification,andhelpstheadministratortoanalyseandtheinformationvisualizationandquantificationinthethebasictheoryandtechniquesofthen,management.Itdiscussesmainlyproductionmanagement,includingitstudymainlyonEREMESandinformationvisualization;andtheoveralldesignanddetaileddesignofproductionmanagementasvisualizationsystem,suchthedesignofsystem’Sstructureandfunction,theselectionofsystemnetworkarchitecture,theadopteddevelopmenttechnology,thecompilinganddesignofsoftwarecodeandSOon;themostimportantiSthreekeytechniquesisovercomeintheprocessofdatabaseinformationvisualizing:thedatavisualizationtechnology,thegeneratingtechniqueofprocessflowdiagram,thevisualDataminingtechnique.AUinall,asetofsoftwaresystemofproductionmanagementonvisualizationwasdevelopedeventuallybasedexistingdatabaseandinenterprise,byuseofthedatabasemanagementsoftwareSQLSERVER2000thevisualintegratedfunctionalrequirementsofdevelopmenttoolsBorlandC++Builder,whichrealizedtheproductionmanagementmodule,satisfiedtheactualsuccessfullydemandandcallbeappliedandreceivedconsiderablerecognitionforbusinessmanagement·Keyword:ProductionmanagementEnterpriseresourcesplanningManufacturingexecutionsystemInformationvisualization目录第一章绪论………………………………………………………………….11.1研究背景……..:……:…………………………………………:j……………..:….1+·.1.2研究目的和意义…。j…一j…:…:…………………………………k…;.:…………:..21.3制造业生产管理信息可视化国内外应用研究现状………一:………:…………..21.4本文的研究内容及章节安排……………………………………………………一5第二章生产管理及信息可视化基本理论………………………………··72.1引言………………………………………………………………………………72.2生产管理理论和技术概述………………………………………………………72.3企业资源计划(EI冲)………………………………………………………….82.3.1ERP的内涵……………………………………………………………………8ERP理论的形成……………………………………………………………..9ERP系统的功能构成………………………………………………………102.3.22.3.32.4制造执行系统(MES)………………………:……………………………………132.4.12.4.22.4.32.5MES的形成和内涵…………………………………………………………13MES在生产管理系统的定位分析…………………………………………14MES功能模型………………………………………………………………16ERP与MES的关系……………………………………………………………..172.6信息可视化………………………………………………………………………182.6.1信息可视化的产生过程…………………………………………………….182.6.2信息可视化技术的主要特点………………………………………………….192.6.4信息可视化实现方式………………………………………………………一202.7小结……………………………………………………………………………………………………….21第三章生产管理可视化系统总体设计…………………………………233.1引言……………………………………………………………………………………………………….233.2系统的设计原则………………………………………………………………..233.3系统总体结构和功能设计……………………………………………………..253.4软件体系结构选择……………………………………………………………一283.4.1软件体系结构概述…………………………………………………………一283.4.2本软件体系结构选择……………………………………………………….303.5系统开发工具…………………………………………………………………..3l3.6系统数据库管理系统……………………………………………………………323.7系统数据库分析…………………………………………………………………343.8系统开发技术……………………………………………………………………373.8.1面向对象技术……………………………………………………………...…373.8.2BDE数据库访问技术…………:……….=.…………………………………38...3.9,J、结。………….:…………………..:……j…………………………………………………....…...….40:第四章生产管理可视化系统开发关键技术………...……”.…………414.1引’言…川……………………。..j………...…………………………....。…_……………。……….414.2数据可视化技术………………………………………………………………一414.3工艺加工流程简图生成技术……………………………………………………444.3.1企业流程图……………………………………………………………………444.3.2工艺流程图………………………………………………………………….454.3.3工艺加工流程简图生成技术……………………………………………….464.4可视化数据挖掘技术……………………………………………………………474.4.1产品交付与计划执行子模块中数量信息的明确与提取…………………484.4.2车间设备利用状况信息的获取……………………………………………504.4.3车间各类作业计划信息的获取…………………………………………….514.4.4.数据库中信息分类提取的处理。…………………………………………534.5小结……………………………………………………………………………………………………….56第五章生产管理可视化系统详细设计与实现………………………··575.1引言……………………………………………………………………………..575.2软件用户界面设计……………………………………………………………。575.3企业概况模块实现……………………………………………………………..605.4生产管理模块实现………………………………………………………………615.4.1功能………………………………………………………………………………………………….625.4.2操作示例及功能展示………………………………………………………625.4.3代码设计和实现…………………………………………………………….635.5小结……………………………………………………………………………………………………….66第六章总结与展望………………………………………………………676.1总结……………………………………………………………………………………………………….676.2展望……………………………………………………………………………。68致谢…………………………………………………………………………………………69参考文献……………………………………………………………………71在读期间的研究成果……………………………………………………..75第一章绪论第一章绪论1.1研究背景随着信息技术的飞速发展和计算机技术的普遍应用,世界正从传统工业经济社会向现代信息经济、知识经济社会迈进。信息化已成为一个新的时代潮流,奔腾向前,开辟人类的新时代。而社会经济信息化的基础就是企业的全面信息化,在进入新世纪以来,特别是我国加入WTO以后,企业的信息化已经得到了普遍的认同和大量的应用,越来越多的企业已经意识到面对外部环境的激烈竞争时,不仅需要优质的产品和服务,还需要多样化和瞬息万变的市场反应能力,要做到这一点,就需要丰富信息资源及信息化管理。制造业作为我国国民经济的支柱产业,是我国国内信息化最早的行业,企业的信息化实践较为丰富。同时,由于制造业庞杂的业务系统和复杂的行业特征,对于信息化的要求也更为复杂和曲折,信息化建设始终保持着平稳而相对保守的应用增长。所以,在企业信息化建设中,研究制造类企业的信息化最具典型性。在我国企业信息化的进程中,国有大型企业信息化水平发展很快。其中,92.5%的企业建设了企业内部办公网络;76.3%的企业建设了企业级财务管理软件;73.8%的企业建设了企业外部宣传网站;36.5%的企业建设了ERP(企业资源规划)系统;28.8%的企业建设了CallCenter(客服中心)系统;20%的企业建设了制造管理系统;12.5%建设了CRM(客户关系管理)系统;11.3%的企业建设了SCM(供应链管理)系纠¨。但是我国绝大多数中小企业在其信息化的进程中却举步维艰,资金不足,信息化程度很低。同国有大型企业相比,中小企业无论在信息化建设水平,还是信息化建设的环境上,都存在着很大的差距。当前,制造业中国有企业依然保持较高的增长率,而且始终以较为平稳的速度增长。此外,随着制造行业在全球范围内影响力的提高以及企业效益的提升,国有制造类企业对信息化的关注也从完全被动向主动转型。与其他中小制造企业不同的是,国有大型制造企业因其天生具有的自身优势和国家政策的倾斜,其信息化引导作用始终比较突出,此外,由国家主导的信息化过程也往往从国有制造类企业开始。因此,深入实现国有制造类企业的信息化建设,研究和解决典型国有制造类企业在信息化过程中遇到的难题,以国有企业的信息化引领作用带动其它中小企业的信息化发展显得尤为重要。一企业生产管理可视化系统研究与开发1.2研究目的和意义在现代企业中,企业信息化发展和管理水平都有了极大的提高,突出表现在企业大量应用和开发面向不同领域的各种信息化系统,如ERP、MES、CAD、CAPP、PDM、WORKFLOW等,覆盖了企业营销、采购、研发、生产、办公等各个部门,这些信息系统在解决某个技术问题或某个局部业务方面发挥了显著作用并大大提]j{!一高了企业工作效率。但是随着企业管理信息系统的不断增加,导致企业信息数据的冗余和庞大,同时也造成了信息数据的不一致性,都给企业的发展带来了不便。近年来,针对企业各个异构信息系统无法进行资源交换和共享的“信息孤岛”问题,许多企业和科研机构致力于实现异构信息系统的集成研究。这样,虽然能实现部分信息系统数据的交换和共享,但对异构信息挖掘的广度和深度不够。而且这些集成还只是针对企业某一局部范围内的需求【2】-【31,不能从企业宏观整体的角度进行信息的挖掘提取,以便实现企业所需异构信息的可视化和量化,来帮组企业分析和决策。因此,在面对企业不同领域的、众多异构信息系统时,如果需要从企业宏观的角度来了解企业的总体信息化成果和管理水平以及挖掘提取企业管理者比较关心的各个环节的实时信息时,都会出现所需信息获取的障碍。本课题是为适应某飞机制造企业新的信息化需求:向上级领导更好地展示企业总体的信息化成果和管理水平以及向企业管理层提供企业各个环节的总体状况。虽然某些信息系统可以提供简单的查询功能,但是企业领导无法从多个孤立的企业信息来源中实时、全面、准确地获取科研、生产和管理方面的信息。为此,需要开发一套简洁而又全面,适合领导思维习惯需求的软件系统。该系统提取了企业的诸多异构信息系统的信息,实现了所需异构信息的可视化和量化,在一定程度上为领导提供决策支持,也为领导与下属员工相互沟通搭建一个信息平台。1.3制造业生产管理信息可视化国内外应用研究现状在制造业信息化方面,发达国家起步较早,积累的经验也比较丰富,加上其一直以来十分重视发展制造业信息化技术,其信息化水平可说已经到了一个相当高的水平。如美国的制造企业信息技术一直处于世界前列,它的跨国公司应用信息技术实现了设计、制造、管理和经营的一体化,加强了在国际市场的垄断地位H;德国利用信息技术直接改造提升传统产业。德国机械制造、精密加工、精细化工、食品加工及汽车、钢铁、交通、能源、发电等行业都广泛地应用信息技术来提高生产效率和市场竞争力【51。我国制造业信息化起步较晚,基本是随着改革开放的开始而开始,近年来随着企业制度改革、市场环境的变化、信息技术的发展而不断发展。30多年来制造业信息化取得很好的成绩,也取得了长足的进步。但是我国第一章绪论3制造业信息化发展同发达国家相比还有较大差距,在整体的基础建设实施程度和应用层次方面都较发达国家要低。目前我国制造业信息化和先进制造技术的状况,根据科技部提供的数据,据不完全统计,我国大中型企业目前仅有15%基本实现了信息化,中小企业实现信息化的比例不到5%t61。在信息可视化方面,近年来,国际上对信息可视化专题进行了广泛而深入的研究,取得了一些理论和实际应用的成果。如欧美的两个比较有影响力的国际学_术会议:-个是从‘1.995年开始,每年十月在美国召开的“IEEEsymposiumOllInformationVisualization”;另一个是从1997年开始,电气与电工工程师学会(IEEE)每年7月在英国伦敦召开的“InternationalconferenceOnInformation。Visualization”。再如,加利福尼亚大学Berkeley分校图书馆已将一个可视化子系统投入了实际应用。亚洲地区以日本较为典型,从相关文献来看,日本不仅在可视化理论研究方面成绩显著,而且在应用研究方面也取得了不少成果【_7】.【引。信息可视化在我国许多领域已有相关理论研究和实际应用,至今,在一些单项研究和应用方面,已取得一些可喜的成果。地理信息的可视化和医学信息的可视化就是实例。但从整体来看,我国在信息可视化领域的研究与应用还处于起步阶段,与国际先进水平相比还有一定差距。信息可视化研究是零星的、分散的、还没有形成气候。,。而将可视化应用于制造业,特别是对于制造业生产管理的信息可视化方面,国内外应用研究相对较少。目前国内外就可视化的应用研究主要集中在油气勘探和矿井管理、供应链物流、交通运输监控管理、配送电等方面。如华亭煤电股份有限公司魏东、李前等人简述了最新开发的可对生产矿井的生产环境、生产过程及安全监测等信息进行综合管理和查询的三维可视化信息系统及其技术要剧9】。江苏油田分公司地质科学研究院王俐、唐思广研究了油田物探生产管理可视化系统,该系统的应用极大地提高了油田物探生产、科研管理的信息化程度【101;韩国电子和电信研究所HoonJung,KeumwooLee和WookwanChurl研究了基于GPS和GIS的可视化包裹管理系统【ll】等。而可视化在制造业领域的研究应用相对较缺乏,近年来伴随着计算机技术和可视化技术的发展,信息可视化逐步开始应用于制造型企业的生产管理信息化系统中,并扮演着越来越重要的角色。如合肥工业大学林巨广博士论文以装配生产过程为研究对象,研究了面向装配过程的可视化制造执行系统及其关键技术。并在此基础上提出了面向变速箱装配生产线的可视化制造执行系统,给出了系统的整体规划,包括系统的网络布局,功能模型、信息库模型以及实现类模型12】;中国航空工业制造工程研究所研究员林胜在介绍了MRPII驱动下的生产管理系统(PMS)和典型机加车间的基本结构、特点和不足的基础上,提出了一种适合国情的“集成制造车间"生产控制和管理技术(IMS.PCMS),增强了车间级生产计划控制4企业生产管理可视化系统研究与开发和管理的能力,并将MRPII按计划集中控制和管理生产作业运行模式转变成可视化“计划主导型",并基于车间实际情况实现滚动生产作业调度控制和管理的模式【13】。日本东京首都大学工商管理学院Kotani,S.研究了在电子看板系统中改变看板实时信息的最优方法1141:英国巴斯大学Parry,G.C.、Turner,C.E.研究了精益可视化过程管理的手段Il引。‘也有学者将可视化技术引入到制造资源计划系统中,但可视化技术在制造资源计划系统的应用主要限于订单排程和工序排程。可视化的内容主要是生产任务排程的甘特图形式显示。例如,在国外,日本Asprova公司首先推出了可视化的生产排程系统。AsprovaAPS(生产排程,AdvancedPlanningandScheduling)系统的突出特点是将排程结果图形化,并直观显示在甘特图上。实现了“可视化管理”,使从现状的进展状况到数个月以后的计划一目了然,从而可以迅速并正确地回答交货期。还可以监控设备负荷实现设备结构最优化,从而提高设备投资效率。其系统甘特图类别包括资源甘特图、订单甘特图和负荷甘特图等【16J。我国金蝶公司推出的金蝶K/3,该系统新增加了生产任务可视化排程功能,即生产任务单可视化排程子系统。金蝶K/3实现了生产任务可视化排程功能。利用甘特图和能力柱状图可视化工具,形象地显示生产任务单的工期及能力负荷和物料的需求情况,使生产人员在进行生产排程时可以综合地考虑生产任务的实际完成情况、设备产能、需要的生产材料以及销售订单的交货期情况ll¨。1999年,美国DONGH.BAEK给出了一个具有图形化界面的交互性车间计划排程器(InteractiveJobShopScheduler)。系统是使用可视化开发工具MetaCard在UNIX环境下开发的。系统可以自动运用特定的启发式规则对工序进行排程,生成工序排程,并以甘特图形式显示。该系统的不足是只限于对工序在各个机床上依一定的规则排程【181。2004年,西安石油大学的高薇提出ERP车间生产计划多层次、多时区的甘特图可视化模型。可视化的内容是车间生产计划系统的工作中心的负荷情况、设备使用情况、订单和作业信息以及生产计划进度与调整,内容比较丰割191。2007年,新加坡NationalUniversity的H.z.Jia和J.YH.Fuh等提出分布式生产环境下一种遗传算法和甘特图结合的工厂排程方案。该方案思路是在遗传算法优化的基础上进行排程,并把排程结果以甘特图形式显示出来120l。通过以上列举和分析国内外可视化技术在生产管理系统的应用研究现状,可以看出,在生产管理中,可视化技术的应用还处于开始阶段,应用范围较小,比较局限,特别是其应用在制造资源计划中,应用范围多数限于订单排程和车间的工序排程,大多数的可视化形式是甘特图,比较单一,统一的可视化框架结构也没有被提出。第一章绪论51.4本文的研究内容及章节安排本文以某航空企业的“数字化企业可视化管理系统"项目为工程背景,结合企业已应用于生产管理领域的信息化系统和项目功能需求,研究和开发了一套企业生产管理可视化系统,实现了对生产管理领域的信息进行可视化和量化。论文主要通过研究生产管理方面的基本理论和信息可视化方面的基本技术,’借助C++Builder这一可视化集成开发工具,利用功能强大的数据库查询语言SQL语句,最终实现了生产管理信息的可视化开发。本论文具体各章节安排和主要内容如下:第一章绪论。通过大量阅读相关文献资料,阐述了课题相关背景和意义,分析目前制造业信息化、先进制造技术、信息可视化、生产管理可视化的国内外应用研究现状。第二章生产管理及信息可视化基本理论。主要研究生产管理可视化系统的相关的基本理论和技术。包括先进的生产管理技术,ERP和MES的基本理论,信息可视化的基本理论和技术。‰第三章生产管理可视化系统总体设计。研究系统软件开发的总体框架规划,为后续详细设计提供指导,包括系统开发遵守的设计原则、结构层次和功能设计、软件网络体系结构的选择、数据库分析、开发工具的选择和开发技术的采用等。第四章生产管理可视化系统开发关键技术。主要研究和解决系统数据库中数据信息可视化方面的三个关键技术:数据可视化技术、工艺加工流程简图生成技术、可视化数据挖掘技术。黥第五章生产管理可视化系统详细设计与实现。本章主要是系统的具体实现和功能的具体展示,主要阐述了软件用户界面设计的重要性和设计原则,详细设计了软件的部分模块的功能、操作和程序代码,并给出图例加以说明。第六章总结与展望。对本文的工作进行总结,并对本领域更深入的研究与本课题后续研究方向提出设想。6企业生产管理可视化系统研究与开发第二章生产管理及信息可视化基本理论第二章生产管理及信息可视化基本理论2.1引言制造型企业的主要活动是生产,生产管理是企业管理中最重要的部分,是企.-业管理的核心。随着信息化技术的发展及管理水平的不断提升,信息化生产管理成为制造企业生产管理的重要手段,特别是近年来可视化技术的发展,使得生产管理信息可视化成为必要。信息可视化技术可以将企业日常生产活动的信息以直观简单、清楚醒目的图形图像表现出来,使得生产管理者快速、容易的获取生产过程中所需要的信息,以便及时对生产活动进行优化和控制,为企业决策提供帮助。2.2生产管理理论和技术概述生产管理是对企业日常生产活动的计划、组织和控制,是指与产品制造密切相关的各项管理工作。其任务就是运用组织、计划和控制等管理职能,把输入生产过程的各种生产要素,按照技术规律的要求,以最经济的方式,转换成满足社会需要的产品和劳务。生产管理涉及企业全部生产经营活动,按照管理的职能,其内容可归纳为如下几个方面:1.生产的决策和计划它主要确定企业的生产方向、规划及其具体安排,包括产品品种、数量、质量以及生产方式的决策,生产计划、生产作业计划的制定以及作业分配等。2.生产的组织和指挥它指生产的物质技术准备工作和组织工作,主要包括厂址的选择、工艺路线和工艺方法的制定、工厂布置,生产过程和劳动力的组织;生产指挥系统的组织和生产调度等等。3.生产的控制和协调它指围绕完成计划任务所进行的管理工作,主要包括生产作业控制、质量控制、物资消耗、库存控制、设备运作控制以及生产协调等。生产管理技术是在西方国家建立和发展的一种先进的管理方法和模式,自上世纪60年代美国研制出了物料需求计划(MaterialsRequirementsPlanning,MRP),MRP是一种将库存管理和生产进度计划结合一体的计算机辅助生产计划管理系统;70年代发展的制造资源计划(ManufacturingResourcesPlanning,MI冲II1,MRP8企业生产管理可视化系统研究与开发II是MRP的扩展,它将市场信息、财务信息、工程数据与生产、库存信息有效地集成,能够覆盖企业产、供、销和人、财、物各个生产经营活动环节的计算机辅助管理信息系统,它的核心仍然是MRP;进入90年代以后,它们集中地体现在企业的ERP系统中,ERP把客户需求和企业内部的制造活动与供应商的制造资源整合在一起,形成企业一个完整的供应链。生产管理的大部分工作最终要落实到车间。车间生产管理是控制交货期、质量和成本的主要环节。车间生产计划和调度在企业生产管理中起着承上启下的作用,合理的计划调度不但能提高企业的服务水平并降低库存费用,而目还能提高企业的生产能力,加深对企业生产过程机制及关键数据的理解。为此,采用制造执行系统MES可实现对车间生产管理问题的解决。‘一此外,先进的生产管理技术还包括准时化计划生产(JustInTime,JIT)、精益生产(LeanProduction,LP)、约束理论(TheoryOfConstraints,TOC)、最优化生产计划技术(OptimizedProductionTechnology,OPT)等,这些先进管理思想有很多已应用在企业的ERP系统中。而且,在现代企业中,ERP系统在企业信息化系统中处于核心地位,在生产管理领域,ERP和MES系统又占据主导地位。因此,有必要重点学习和研究ERP和MES系统的基本理论,以便加强企业的生产管理,以提高企业生产管理效率。2.3企业资源计划(ERP)2.3.1ERP的内涵ERP虽然已经广泛地应用到企业管理中,但是至今也没有一个统一的定义。世人众说纷坛,各国政府、学者、企业界人士都根据自己的角度和对ERP的认识程度,给出了许多不同的表述。文献[211给出了一个比较全面有代表性的定义。定义:ERP,即企业资源计划(EnterpriseResourcesPlanning,ERP),是指建立在信息技术基础上,以先进的、系统化的管理理念,将企业各个方面的资源充分调配和平衡,为企业决策层、管理层和操作层提供解决方案,使企业在激烈的市场竞争中赢得竞争。其中,“信息技术’’融合了IT界的观点:ERP是一种软件产品,即综合应用了客户机/服务器体系、浏览器/,i11.务器体系、关系数据库结构、面向对象技术、图形用户界面、第四代语言(4GL)、网络通讯等信息产业成果,以ERP管理思想为灵魂的软件产品。“管理理念"融合了管理界的观点:ERP是一种管理思想,即一种基于企业管理系统体系标准和制造资源计划基础上进一步发展而成的面向供应链的管理思第二章生产管理及信息可视化基本理论9想。“解决方案"融合了制造业界的观点:ERP是一种管理系统,即一种整合了企业管理理念、业务流程、基础数据、人力物力、计算机硬件和软件于一体的企业资源管理系统。2.3.2ERP理论的形成+ERP理论的形成是随着产品复杂性的增加、市场竞争的加剧以及信息全球化而产生的。ERP理论的形成与发展大致经历了五个阶段:第1阶段——订货点方法(OrderPointMethod);第1I阶段——时段式物料需求计划(MaterialRequirementPlanning,MRP),或简称时段式MRP,又称基本MRP:第1II阶段——闭环式物料需求计划,或简称闭环式MRP第Ⅳ阶段一一制造资源计划(ManufacturingResourcesPlanning,MRP),为了区别于传统的物料需求计划MRP,它简称为MRP.II;第V阶段——企业资源计划(EnterpriseResourcePlanning,ERP),或简称ERP。ERP理论形成和发展如下图2.1所示【211。I时段l企业经营特点l问题提出IlERP形成Il理论基础(I)20世纪·降低库存成本如何确定订货时//,订货点、方法40年代·降低采购费用间和订货数量?\\管理)//(手7-j\库存管理理论(II)·追求降低成本如何根据主生产/,、·库存管理理论20世纪·手工订货发展计划确定订货时/时段式\·主生产计划60年代·生产缺货频繁间、订货品种、\MRP\/』订货数量?·BOM(III)·计划偏离实际如何保证计划制f闭环式\/厂、·能力斋求计划·车问作业计划20世纪·手工完成本间定到有效实施的作业计划及时调整r/·计划、实施、70年代反馈与控制的循环(Ⅳ)·追求竞争优势如何实现管理/厂·决策技术20世纪·各子系统间缺lMRP-II、、l·系统仿真技术80年代乏联系,甚至系统一体化?·物流管理技术彼此矛盾\/·系统集成技术·追求技术、管(V)理创新如何在企业及合·事前控制20世纪·追求适应市场作伙伴范围内利·混合型生产90年代环境的快速变用一切可利用的·供应链技术化资源㈠·JIT和AM技术图2.1ERP理论的形成历程图图2.1描述了ERP的五个阶段所经历的时代、当时的企业经营特点和企业需求,以及涉及的相关理论基础。在ERP的发展历程中,所经历的各阶段具有“向上兼容性",如下图2.2所示。即第1I阶段与第1阶段的关系是:时段式MRP包含10企业生产管理可视化系统研究与开发了订货点方法的所有功能,时段式MRP是订货点方法的提升和扩展。同样,第1Ⅱ阶段与第1I阶段,第Ⅳ阶段与第Ⅲ阶段的关系、第V阶段与第Ⅳ阶段的关系也是如此。图2.2ERP发展各阶段关系2.3.3ERP系统的功能构成ERP中的企业资源包含企业的“三流"资源,即物流资源、资金流资源和信息流资源,ERP系统实质上就是对这“三流"资源进行全面集成管理的管理信息系统。ERP的功能结构如下图2.3所示。分鬈鋈源:辔旧管理l体纠傣纠:菱畜簇曩l……。+++++…~+●●’’’●●经营管理准时生产管理上j销售计划管理.1+,卜血二L.每II.1^抽j嘲!!巳七斗.色Il.11虹r;订上亡JI,二1.阜II]‘1’””I7I”””1、””I7l’””一””L—1l—一l生产计划大纲II粗能力计划能力需求计划——·+采购管理I::::::客户关系{管理库存管理质量管理设备管理工具管理人力资源管理图2.3ERP系统的功能结构其中,在图2.3中,实线框显示的是ERP系统的基本功能模块,虚线框显示的是ERP系统的扩展应用模块,中间未封闭矩形框内的部分是ERP系统功能结构第二章生产管理及信息可视化基本理论1l的核心部分:计划与控制。ERP系统的计划与控制部分分为5个层次,如下图2.4所示121卜【22】:第一层决策层第二层第三层第四层管理层第五层执行层^:图2.4ERP系统中计划于控制层次图其中,各层次内涵如下:1.第一层:也是最高层,企业经营规划。该规划是企业总目标的具体体现,是企业的高层决策者根据市场调查和需求分析、国家有关政策、企业资源能力和历史状此、同行竞争对手的情况等有关信息,制定企业未来几年内的经营对策计划。它本身又包括三层计划,如下:(1)企业战略规划,它是为企业实现长期的经营目标而制定的指导企业运营活动的总计划,主要作用是指导和帮助企业解决战略性的问题,包括经营模板、产品战略、营销战略、财务战略等(2)企业经营计划,它是在战略规划的基础上,企业围绕市场,为实现自身经营目标而进行的具体规划、安排和组织实施的一系列管理活动。它包括企业产品市场占有率、收入、利润等(3)企业销售计划,它主要指企业在一定时期内对产品销售品种及其销售量进行的计划安排。它制定企业各产品的销售目标,包括产品销售量、销售收入和交货期等。企业经营规划一般由企业委托第三方咨询公司制定,或由企业高层领导会同市场、设计、生产、财务、物料等部门共同制定。12企业生产管理可视化系统研究与开发2.第二层:生产计划大纲(ProductionPlan,PP),也称资源需求计划。该计划的任务是根据经营计划的目标,确定企业的每一类产品在未来一定时期(一般为1~3年)内,每年每月生产多少,需要哪些资源。它是对经营计划的细化。生产计划大纲的作用主要有两个:(1)用于协调满足经营计划所需求的产量与可用资源之间的差距。(2)作为下一层次计划——主生产计划的编制依据。该计划一般由企业高层领导会同市场、设计、生产、财务、物料等部门共同制定。3.第三层:主生产计划(MasterProductionSchedule,MPS)该计划以生产计划大纲为依据,以物料的独立需求和非独立需求的大部件为对象,按照时间段计划企业应生产的最终产品的数量和交货期,并在生产需求与可用资源之间做出平衡。主生产计划主要通过粗能力计划(Rough—CutCapacityPlanning,RCCP)进行验证,RCCP的运算与平衡是确认MPS的重要过程,未进行RCCP的MPS是不可靠的。MPS(经RCCP平衡)的确定步骤如下图2.5所示。图2.5主生产计划MPS的确定步骤该计划是编制ERP系统中所有其它计划的依据,是决策层的计划,一般由企业计划部门编制。4.第四层:物料需求计划(MaterialRequirememPlanning,MRP)物料需求计划MRP是ERP系统的核心,是MPS需求的进一步细化。它是根据物料清单数据、库存数据和主生产计划来模拟未来库存状况和预计未来缺件的一组技术。它将MPS排产的产品分解成各自制零部件的生产计划和采购件的采购计划,并进行需求资源和可用能力之间的进一步平衡。MRP必须通过CRP进行能力/负荷的验证,具体来讲,CRP是对MRP所涉及的物料加工所使用的工作中心第二章生产管理及信息可视化基本理论(工序)进行负荷和能力精确计算,并依此进行生产能力与生产负荷的平衡。MRP(经过CRP的平衡)的确定过程如下图2.6所示。图2.6物料需求计划MRP的确定步骤该计划属于管理层计划,一般由企业计划部门的计划员编制。5.第五层:车间作业计划(ProductionActivityControl,PAC)及采购计划。.该计划处于最底层,也是基础层。它根据由MRP生成的制造订单和采购订单t来编制工序排产计划和采购计划。该计划是ERP具体的执行和操作层,一般有企业生产车间的计划员编制。总之,ERP系统的计划与控制部分是整个ERP系统的核心和灵魂。其中的计一划是为达到一定的目标而制定的行动方案,控制是为保证计划的完成而采取的措施,计划与控制是相辅相成的。五个层次的计划与控制中,上一层次是下一层次的基础,为下一层次提供指导;下一层次保证上一层次的具体实施,并为上层次的计划提供反馈信息,起到对上层次的调整和控制作用。整个计划由粗到细,由长期、中期到短期,由一般到具体,参与计划的角色也从高级决策层到普通操作层o口2.4制造执行系统(MES)2.4.1MES的形成和内涵一、MES的形成在企业级层面上,管理系统软件领域MRP.II以及OPT系统迅速普及,直到今天各类企业ERP系统如火如荼地进行;在过程控制领域PLC、DCS得到大量应用也是取得高效的车间级流程管理的主要因素。可以说企业信息化的各个领域都企业生产管理可视化系统研究与开发有了长足的发展,但是在工厂以及企业范围信息集成的实践过程中,仍然难以解决这一瓶颈带来的各种问题:在计划过程中无法准确及时地把握生产实际状况,另一方面则在生产过程中无法得到切实可行的作业计划做指导;工厂管理人员和操作人员难以在生产过程中跟踪产品的状态数据、不能有效地控制在制品库存,而用户在交货之前无法了解定单的执行状况。产生这些问题的主要原因仍然在于生产管理业务系统与生产过程控制系统的相互分离,计划系统和过程控制系统之间的界限模糊、缺乏紧密的联系。针对这种状况,1990年11月,美国调查咨询公司AMR首次提出MES的概ExecutionSystem,MES)。二、MES的内涵20世纪90年代美国先进制造研究机构(AdvancedManufacturingResearch,简1992年MES国际联合会(ManufacturingExecutionSystemAssociation,简称MES在生产管理系统的定位分析20世纪90年代AMR在提出MES的定义的同时,给出了由计划层、执行层、念,为解决“企业信息集成问题”提供了一个被广为接受的概念模型,就是我们今天的制造执行系统(Manufacturing称AMP.)将MES定位于重点解决车间生产问题,定义为“位于上层的计划管理系统与底层的工业控制之间的面向车间层的管理信息系统",它为操作人员与管理人员提供计划的执行、跟踪以及所有资源(人、设备、物料、客户需求等方面)的当前状态信息。MESA)成立,它是以宣传MES思想和产品为宗旨的贸易联合会,并帮助其成员组织在企业界推广MES,制定了一系列研究、分析和开发计划。MESA对MES的定义为:MES能通过信息的传递,对从生产命令下发到产品完成的整个生产过程进行优化管理。当工厂有实时事件发生时,MES能及时对这些事件做出反应、报告,并利用当前的准确数据对它们进行指导和处理。同时,它还能通过双向直接通讯在企业内部和整个产品供应链中提供有关产品行为的关键任务信息心。MES系统是实施企业先进制造战略、实现车间生产管理自动化的基本技术手段【23】.1241。2.4.2控制层组成的三层企业集成模型,如下图2.7所示,它清楚地描述了MES在企业管理系统中的位置。第二章生产管理及信息可视化基本理论(控制层)图2.7生产管理系统的三层企业集成模型计划层:强调企业的计划性,以客户订单和市场需求为计划源头,充分利用企业内的各种资源,以降低库存,提高企业效益。ERP系统从生产管理的角度来看,属于企业的计划层。执行层:强调车间生产计划的执行和控制,通过MES把ERP与企业的生产现场控制有机地集成起来。控制层:强调车间作业设备的控制。主要处理来自执行层的信息,通过监控车间状态实施控制生产过程,并将生产过程中的动态数据和状态信息实时反馈给执行层。以上三层在企业生产管理中既相互独立,又紧密联系。从企业集成模型可以看出,制造执行系统MES在计划管理层与底层控制之间架起了一座桥梁,填补了两者之间的空隙。近年来,虽然一些MRPII/ERP软件试图将其车间管理的功能向下延伸,而一些底层控制软件如车间控制系统尝试向上延伸功能,尽管也增加了一些功能模块,却收效不大。ERP软件缺少足够的控制信息,无法做到与控制系统紧密相连;车间控制等控制软件又缺乏足够的管理信息,不能实现对生产的管理与控制。因此造成了企业内部的信息传递瓶颈,不能对日新月异的市场变化做出快速响应。这主要是虽然重视了计划管理和底层控制,却忽视了车间执行功能。因此对企业来说,重视执行功能可以起到事半功倍的效果。作为车间层的管理信息系统,同时又能够实时检测监控设备层的运行状况,“制造执行系统"这一概念定位更为准确,描述更为清晰。作为面向车间层的桥梁——MES,一方面接受上层的中长期计划数据和底层采集的与生产相关的实时数据;另一方面向上层计划管理系统提交生产能力、作业执行进度等涉及生产运行的数据,向底层生产控制系统发布生产指令控制及有关生产线运行需要的各种参数等,使整个生产作业管理系统得到及时修正,实现动态实时调度的目的,从而方便、可靠地将控制系统与信息系统联系在一起。16企业生产管理可视化系统研究与开发2.4.3MES功能模型MES作为面向制造的信息系统必然要与企业其它生产管理系统有密切关系,MES在其中起到了企业信息系统连接器的作用,使企业的计划管理层与控制执行层之间实现了数据的流通,它相当于一个通讯工具为其它应用系统提供生产现场的实时数据。同时MES本身也是各种生产管理的功能模块的集合,MESA组织通过其各成员的实践对其归纳了十一个功能模块。MES的功能模型如图2.8所示。图2.8MES功能模型(1)工序详细调度:通过基于有限资源能力的作业排序和调度来优化车间性(2)资源分配和状态管理:对资源分配及状态信息进行管理,包括机器设备、的要求而对资源所作的预留和调度。(3)生产单元分配:通过生产指令将物料或加工命令送到某一加工单元开始工(4)文档控制:管理和分发与产品,工艺规程,设计,或工作令有关的信息,同时也收集与工作和环境有关的标准信息。(5)产品跟踪和产品清单管理:通过监视工件在任意时刻的位置和状态来获取实际的产品可能是包含其中~个或几个功能模块。这十一个模块的功能简述如下:能。物料、劳动者等其他生产能力实体以及开始进行加工时必须具备的文档(如工艺文件等)和资源详细历史数据,指导劳动者,机器,工具和物料如何协调的进行生产,并跟踪其现在的工作状态和刚刚完工情况。对资源的管理还包括为满足生产计划序或工步的操作。每一个产品的历史纪录,该记录向用户提供产品组及每个最终产品使用情况的可第二章生产管理及信息可视化基本理论追溯性。(6)性能分析:将实际制造过程测定的结果与过去的历史一记录和企业制定的目标以及客户的要求进行比较。其输出的报告或在线显示用以辅助性能的改进和提高。(7)人力资源管理:提供按分钟级更新的员工状态信息数据(工时,出勤等),基于人员资历,工作模式,业务需求的变化来指导人员的工作。(8)维护管理:通过活动监控和指导保证机器和其它资产设备的正常运转以实现工厂的执行目标。(9)过程管理:基于计划和实际产品制造活动来指导工厂的工作流程。这一模块的功能实际上也可由生产单元分配和质量管理来实现。这里是作为一个单独的系统来实现。00)质量管理:根据工程目标来实时一记录,跟踪和分析产品和加工过程的质量,以保证产品的质量控制和确定生产中需要注意的问题。(11)数据采集:监视、收集和组织来自人员,机器和底层控制操作数据以及工序,物料信息。这些数据可由车间手工录入或由各种自动方式获取。2.5ERP与垭S的关系ERP是面向企业管理层的管理信息系统,是建立在信息技术基础上,以系统化的先进管理思想为企业决策层及员工提供决策运行手段的管理平台,以顾客驱动且面向整个供应链的企业资源规划系统。ERP系统的基本出发点是订单管理、销售预测和物料需求计划等关联问题,主要是针对企业资源计划,作历史分析和预测将来要发生的事件。它正确地回答了“需要什么、已有什么、还缺什么和何时需要"等问题。但对当前在发生的事件无法处理,比如如何获得短缺资源(即解决短缺的制造与采购过程的管理与控制等)。ERP生产计划的制定受到现有的生产能力、生产设备、原材料、生产工人和用户订货等方面的制约,计划管理人员在编制短期生产计划时,哪一项生产合同占用多大的生产能力要按照生产部门当前的实际情况做出安排。但由于上层生产计划受市场影响越来越大,计划明显不能适应市场变化。面对客户交货期的苛刻要求,面对更多产品的改型,面对订单的不断调整,企业决策者认识到计划的制订要依赖于市场和实际的作业执行状态,而不能完全以物料和库存回报来控制生产。为了解决这些问题,以ERP为主干线的管理信息化技术需要从需求向下延伸到制造执行和采购执行过程管理与控制。MES是面向车间层的管理信息系统,处于计划层和车间层操作控制系统之间的执行层,为ERP系统和控制系统提供关键联接,它在整个企业信息系统中起着承上启下的桥梁作用。MES对生产过程进行实时监视、诊断和控制,完成生产单企业生产管理可视化系统研究与开发元整合和系统优化,在生产过程层进行物料平衡、制订生产计划、实时排产、优化调度,进而对生产过程物料、能量、质量、设备、资金,甚至人力资源统一进行监测、分析、控制和优化,实现了从订单下达到产品完成整个的生产过程进行优化管理。当工厂里面有实时事件发生时,MES能对此及时作出反应、报告,并用当前的准确数据对它们进行指导和处理。这种对状态变化的迅速响应使得MES能够减少企业内部没有附加值的活动,有效地指导工厂的生产运作过程,从而使其既能提高工厂及时交货能力、.改善物料的流通性能,又能提高生产回报率。表2.1是MES和ERP在管理范围、管理对象、管理内容、管理时效四个方面的比较。一表2.1ERP和MES的比较\管理范围管理对象管理内容管理时效整个企业企业运营资源销售、采购、对计划和业务的或企业业务(如人、财、物库存、生产、管理时问区间比ERP的管理等)财务、质量、人力资源等较长生产质景、生对计划和业务的M哐S车间或生产生产现场资源产作业调度、管理时间区间比分厂的管理(如设备、工艺、物料等)生产实际反馈较长,进行实时化管理从表2.1中可以看出,ERP主要是针对资源计划,做历史分析和预测将来要发生的事件,但它对车间执行层的信息缺少足够的控制,无法对实时事件进行及时处理。MES是面向车间层的生产管理技术与实时信息系统,它通过对生产过程进行实时监视、诊断和控制,为系统提供实时信息,有效地指导工厂的生产运作过程,但它缺乏计划层的有效决策信息。对于制造型企业来说,无论是El心还是MES,其根本宗旨都在于满足客户需求的前提下,降低库存、加快资金周转、提高企业的管理水平,以提高企业对市场响应速度及生产效率,提高企业竞争力。ERP系统的计划需要MES系统为其提供有效的信息数据以便对企业计划进行指导和处理,MES系统的执行需要ERP系统为其提供计划决策信息以便车间作业过程的管理和控制。因此,ⅧS与EI心在企业的运作过程中均起着相当重要的作用,且两者之间又是相互依靠相互支撑的。2.6信息可视化2.6.1信息可视化的产生过程可视化是将抽象的事务、过程变成图形图像的表示。信息可视化作为可视化第二章生产管理及信息可视化基本理论19的一个分支,它的产生是沿着科学计算可视化、数据可视化、信息可视化的过程发展过来的。1.科学计算可视化科学计算可视化技术是指运用计算机图形学和图像处理技术,将科学计算过程中产生的数据及计算结果转换为图形或图像后在屏幕上显示出来,并进行交互处理的理论、方法和技术。实际上,随着该技术的发展,科学计算可视化的含义已经大大扩展,它不仅包括科学计算数据的可视化,而且包括工程计算数据和测量数据的可视化。2.数据可视化随着数据仓库技术、网络技术、电子商务技术等新技术的发展,可视化技术扩展到更广泛的内容,提出了数据可视化的概念,即对大型数据库或数据仓库中数据的可视化,它是可视化技术在非空间数据领域的应用,使人们不再局限于通过关系数据表来观察和分析数据信息,还能以更直观的方式看到数据及其结构关系。数据可视化技术的基本思想是将数据库中每一个数据项作为单个图元元素表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形式表示,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析。3.信息可视化信息可视化是在计算机、网络通讯技术支持下,以认知为目的,对非空间的、非数值型的和高维信息进行交互式视觉表现的理论、技术与方法。目前,对于低维、小规模的数值型数据的可视化方法与技术比较成熟,有较多的应用系统。当数据可视化面对大规模、高维度数据时,以前的数据可视化方法渐不适用,其处理方法越来越接近信息可视化。而且随着信息可视化技术的发展,其概念范畴渐有包括数据可视化的趋势,两者的界限变得模糊【25】。故本论文讨论的信息可视化包括数据可视化。2.6.2信息可视化技术的主要特点信息可视化的内涵就是将数据通过图形化、地理化形象真实地表现出来,并且找出数据背后蕴含的信息。概括起来,信息可视化有以下主要特点:1.可视性。信息可以用图象、曲线、二维图形、三维体和动画等来显示,并可对其模式和相互关系进行可视化分析。人类的可视化功能允许人类对大量抽象的信息进行分析。科学家从表面上看来是杂乱无章的大量信息中,找出其中隐藏的规律,为科学发现、工程开发、医疗诊断和业务决策等提供依据。2.多维性。可以看到表示对象或事件的信息的多个属性或变量,而信息可以按其每一维企业生产管理可视化系统研究与开发的值,将其分类、排序、组合和显示。3.交互性。用户可以方便地以交互的方式管理和开发信息。运用信息可视化相关技术能够实现对信息数据的分析和提取,然后以图形、图像、虚拟现实等易为人们所辨识的方式展现原始数据间的复杂关系、潜在信息以及发展趋势,以便人们能够更好地利用所掌握的信息资源为决策提供依据。信息可视化内涵及特点表明,信息可视化技术应包括数据库技术、数据挖掘技术、可视化的交互界面设计等技术,以完成数据可视化、模型可视化和过程可视化。。2:6.4信息可视化实现方式信息可视化主要有两种实现方式,一种是使用OpenGL、Java3D等从底层实现;另一种是使用可视化工具进行开发。目前多数信息可视化系统采用后一种方法(本项目亦是采用这一方法),以提高系统开发效率,按其自动化程度可以将可视化工具分为三类126】:1.嵌入式可视化环境目前,许多数据管理和数据生成工具中都具有一定的可视化功能。如MicrosoftExcel就具有将表格中的数据用图形方式显示的可视化能力。运用Excel专门为用户设计的向导,可以通过其提供的趋势线功能,给二维图表如条形图、柱形图、折线图、XY散点图和气泡图中的数据系列添加趋势线,显示数据系列中数据变化的趋势,可用于预测研究,当然,此类可视化功能还比较弱。2.通用可视化环境通用可视化环境包含可直接使用的可视化工具,而且也提供宏语言进行二次开发。通过其提供的数据导入功能可以将数据直接导入可视化环境,用图形方式检验数据集。如AVS/Express运用可视化编程提供了丰富的、面向对象的、多平台的开发环境,它的底层使用可视化流水线模型。它由一个可视化编程环境和一个大型的组件库组成,利用可视化编程环境对组件进行部署,完成管理、变换和数据显示。又如Maplnfo提供了一整套功能强大的工具来进行复杂的商业地图化、数据可视化和GIS功能,使用Maplnfo可以增强报表和数据表现能力,找出以前无法看到的模式和趋势,创建高质量的地图以便做出高效的决策。除此之外,通过Maplnfo公司提供的MapBasic语言可以开发出针对不同应用对象的应用程序。3.可视化组件当前,在软件开发领域,越来越多地采用组件技术来提高软件的开发效率,增强软件的互操作性。利用可视化的开发工具与其专用可视化组件结合,可以开发出可视化功能极强的应用系统,此种方法又叫集成二次开发。以GIS可视化组第二章生产管理及信息可视化基本理论件为例,目前有两种方式进行集成二次开发:(1)OLE/DDE采用OLEAutomation技术或利用DDE技术,用软件开发工具开发前台可执行应用程序,以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,利用回调技术动态获取其返回信息,实现应用程序中的地理信息可视化处理功能。(2)GIS控件利用GIS工具软件生产厂家提供的建立在OCX技术基础上的GIS功能控件,如ESRI的MapObjects、Maplnfo公司的MapX等,在Delphi、C++Builder等编程工具编制的应用程序中,直接将GIS功能嵌入其中,实现各种可视化功能。目前许多软件公司都开发了很多ActiveX控件,合理选择和运用现成的控件,可以减少开发者的编程工作量,本软件系统采用的C++Builder可视化集成开发工具,正是利用了软件已集成的现成的各种可视化控件,缩短了程序开发周期,提高了开发效率,而且编程过程更简洁,用户界面更友好,可以使程序更加灵活、简便、健壮。2.7小结本章主要研究了生产管理可视化系统的基础理论、技术和方法,为后续系统开发和研究奠定基础。首先说明生产管理在企业生产活动和企业管理中的重要性,接着介绍了先进的生产管理理论和技术,并指出企业的ERP和MES系统在企业生产管理处于核心地位,最后重点阐述了ERP系统和MES系统的基本理论以及信息可视化的基本理论和技术。22企业生产管理可视化系统研究与开发第三章生产管理可视化系统总体设计23第三章生产管理可视化系统总体设计3.1引言系统的设计阶段是在系统规划和分析的基础上,根据前期需求调研分析产生的系统方案,进一步完成系统的软件结构设计。’系统设计分为系统总体设计和详细设计两个阶段。本章主要介绍生产管理可视化系统的总体设计,其详细设计在第五章予以介绍。总体设计主要包括系统总体结构和功能设计、系统软件体系结构、数据库设计与分析、开发工具的选择和采用的开发技术等。3.2系统的设计原则本系统结合一般软件系统设计原则‘2|7】。【301和项目开发具体实践,认为本软件系统设计原则如下:一、实用性原则:企业管理信息系统的开发应用的目的就是为了应用,并从中取得实实在在的效益。所以,应用的效果既是系统开发的目的,也是系统开发结果的检验标准。在本系统开发中,始终把实用性放在第一位。为了更好地满足实用要求,我们应始终坚持开发与应用相结合的做法,不论是前提的需求调研和系统总体规划,还是后期的反复修改和完善,都与各类专业人员和管理人员密切合作,甚至与企业高层领导进行交流沟通,在其指导下结合具体应用,启迪思路,不断完整和扩充开发内容,最终才可以满足决策层、管理层的信息需求。二、简单化原则:在完成同一功能的前提下,软件应尽量采用简单、清晰的结构。简单化原则在本系统体现为两个方面:一是信息功能方面,由于本系统面向的最终对象是企业上级领导和企业高层管理者,在信息的展示上就不应该太过繁琐,尽量简单清晰,层次感明确。二是软件程序实现和用户界面设计方面,用户界面尽可能简单易操作,用户界面友好,能给用户带来赏心悦目和得心应手的美好感觉,用户界面的设计既要考虑美学效果,又要注意尊重用户的使用习惯;程序实现上能用简单的程序实现就不要用复杂的来实现,以能实现所需功能为准则。如尽量少用递归、嵌套等繁琐、复杂、易引起错误的结构;能用一维数组的地方,尽量不用二维数组,能用数据库和高级语言解决的问题,就不用汇编语言解决。24企业生产管理可视化系统研究与开发结构简单化将提高软件的可读性和易维护性,降低软件编写和调试的难度。虽然有时简单化的结构可能导致程序量的增加,但总体开发效率却会提高。三、模块化原则:所谓软件结构的模块化,是指对软件的结构进行规划,将复杂的管理软件系统逐级划分为若干模块,每个模块只用来解决相对简单的或十分简单的问题,各模块之间相对独立。这些模块通常设计成子程序或过程。模块化的软件易于编写和调试,也易于修改和扩充,有利于若干人员协同研制。模块化在本系统开发中也是体现无疑,由于本系统开发时间短、任务紧,而且工作量大,单单依靠一个人进行系统软件开发无疑是无法保质保量地完成。为此我们把整个软件系统进行“模块化”,在进行软件的方案设计和功能划分时,采用“自上而下"的原则,由上向下进行,即首先考虑总体方案,再逐级向下划分,越向下的模块,功能越具体,直到最基层的各个具体模块;但到程序编写和调试时,则采用“自下而上"的原则,由下向上进行,先将最基层的各个模块编写并基本调试好之后,再按着一定的结构,并运用接口法,逐层向上编写和联试,直至组合成完整的管理软件系统。模块化是软件设计的重要原则,确定软件的总体结构和设计系统的模块结构是软件设计的主要任务。软件只有模块化,才能实现结构简单化,才能为软件开发、调试和维护带来更大的方便。四、标准化原则:所谓标准化包括数据模型的统一,软件描述方法的统一,模块接口方法的统一和输出格式的统一等。本管理系统软件由于规模较大,需由若干人联合编写,必须进行标准化管理,才能协同一致,使研究工作顺利进行。另外,为软件的后续推广与应用,创造更好的社会效益和经济效益,必须重视标准化的原则,尽量向标准化靠拢。五、可靠性原则:所谓可靠性,是指当系统软件出现非正常情况时,软件应具有自我保护的功能。这些非正常情况包括:输入了错误的数据,或计算的中间结果出现了非法的数据,或用户的误操作等。本系统主要是为上级领导汇报企业生产、办公、科研等各个部门的工作状况,所以保证系统可靠而稳定的运行是非常必要的,避免由于用户某些误操作导致软件系统中途崩溃。其次,本软件系统的开发基于企业现有的底层数据库,系统需要对数据库进行各种操作,系统的可靠安全也是必须的。在软件开发过程中,应该采取相应的措施防止软件开发人员对企业本身数据库的损坏。如有时一个极小的对数据库的错误操作,可能造成该数据库的瘫痪,而基于此数据库的其它软件系统也无法运行,这样可能造成企业的巨大损失。第三章生产管理可视化系统总体设计25总之,可靠、安全、稳定的软件是一个应用系统的灵魂,因此,在程序设计时,应考虑到所有可能出现的情况,对软件程序进行反复的调试,这样才能保证程序运行的可靠性。六、易维护原则:软件即使调试出来,投入运行后,还必须进行维护。维护工作主要是对软件进行不断补充或完善,以及根据用户要求或运行环境的改变,对软件进行局部修改。这些工作的量很大,往往也很繁琐,持续时间很长。通常应注意以下几个方面:1.增加模块性。软件正确调试之后,要对主要模块再进行仔细分析,凡可以再分解的,应继续进行分解,以增加模块化程序,提高可维护性。2.完善信息反馈性为使程序易于维护,对反映运行状态的主要信息应有清晰的显示。在程序调试之后,要进一步优化完善此类信息的显示功能。3.提高可读性。为了既方便别人,也方便自己,便于应用和维护,软件的可读性是一个很重要的方面。为此,除了应使软件的模块规模适中、结构清晰、合理外,良好的程序注释也是必不可少的。软件正确性调试之后,应进一步完善注释信息,提高可读性。七、易扩展原则:在软件系统设计时应该考虑为系统后续扩展留有空间,也使现有系统能与业务需求同步增长,使系统规模在急剧扩张时亦不需要重新进行系统规划和设计,必要时可以为系统软件以后的推广普及进行考虑。八、经济性原则:在满足上述原则的基础上,应尽可能降低项目费用,追求最佳的性能价格比。因为合适的软件系统不仅受市场的欢迎,也给其推广普及带来丰厚的筹码。在软件设计中,一方面,应根据现有条件,合理设计系统;另一方面,系统设计中应尽量避免不必要的复杂化,各模块应尽量简洁.以便缩短处理流程、减少处理费用。3.3系统总体结构和功能设计系统的总体结构设计的任务是将信息系统合理地划分成若干功能模块,并且正确处理模块之间和模块内部的关系。系统的总体设计采用结构化的设计方法。结构化设计的基本思路是:将系统按一定的规则构成相对独立的模块,各个模块的功能尽可能简单、明确,模块之间的联系要尽可能减少。结构化设计遵循自顶向下原则,首先将整个系统视为具有某种功能的大的模块,然后按照各自的功能再分解为不同的下层模块,越下层的模块功能越简单、越具体。26企业生产管理可视化系统研究与开发本生产管理可视化系统按照上述设计方法和原则,基于分层思想的软件系统结构,结合用户实际需求,得到如下系统结构和功能模块的设计:一、系统分层结构设计系统的分层结构设计如下图3.1所示:生产管理可视化系统0△应用层企业概况看板生产管理看板么1∑么、∑图圈圉囡!i圈圈网圈丛—l△数据层图3.1生产管理可视化系统分层结构图系统的总体结构分为三个层次:数据层、业务层和应用层。数据层是本系统开发的基础,系统的开发正是基于这些最底层的数据库(ERP、MES)而进行的。底层的数据库保证了上层信息的实时、动态和准确。业务层是直接建立在数据层基础上的,业务层的某一功能一般直接基于某一数据库进行开发的,但也可基于多个数据库进行开发,如能力统计就是基于ERP和MES数据库而进行挖掘提取,这些因实际需求而定。业务层是数据层和应用层联系的纽带。应用层,有时也称界面层,是最终用户的使用界面。它是在业务层的基础上进行功能模块的集成,将业务层的某些相似功能集成后归结到特定的看板(生产管理看板、企业概况看板),当然这几个集成后的看板也可以放在同一看板上。基于这种分层架构的思想,使系统的每一个功能模块的实现都具有清晰的思路。当需求变动时,首先分析出变动所在的层次及这种改变会影响到的层次(因为各个层次的功能很明确,这一点很容易做到),然后修改相应的层即可,而不必全盘改动,从而提高了系统的易维护性。当系统中的某个模块的功能要求有所增加时,可以利用面向对象技术的继承机制,对增加的部分编写相应的实现代码即可第三章生产管理可视化系统总体设计在已实现模块的基础上添加所需扩充的功能。整个系统的模块构成可以通过数据库中的配置表来配置,从而提高了系统的可复用性和可重构性。二、系统的功能分析设计由图3.1的分层体系结构可以看出,整个系统分为两个子模块:生产管理和企业概况。这两大子模块又细分为相应更细的子模块。具体功能分析设计如下:1.企业概况这一模块应设置成用户进入软件系统主界面后首先需要了解的内容,主要是宏观展示企业人、财、物的总体状况,即使系统能够对企业人员结构、物资状况、资金占有分配、车间设备状况等内容有个全面了解。规划为四个子模块展示,分别是总体概况、企业材料、企业设备和企业人员。(1)总体概况总体概况这一模块主要是为用户预留一个接口,方便用户将自制的PPT嵌套其中。主要是向上级领导做一个近期的工作汇报。(2)企业材料企业材料主要是使用户能够了解企业库存哪些材料以及各种材料的库存数量、规格、净重等,同时能比较出各种材料占用资金的份额。(3)企业设备企业设备模块主要统计企业有哪些车间、每个车间有什么样的设备,各种设备数量多少以及设备的工作能力怎样,比如它是产能高还是低,负荷率怎样等等。(4)企业人员企业人员模块主要统计企业各个部门人员的结构状况,包括各个部门人员数量、年龄构成、学历职称状况以及各部门有哪些人员,他们的基本信息是什么等。2.生产管理生产管理是企业信息管理的重要内容,通过这一模块的展示,能让用户对企业生产经营状况有个大致了解。考虑到面向的对象特征,其展示内容要简洁清晰,思路明朗,便于理解。生产管理计划规划为产品交付、计划执行、能力统计、车间运行四个方面内容。(1)产品交付产品交付主要使用户了解企业产品供需状况,包括产品订单数量的多少,销售数量怎样,是否企业能按时、按量地完成任务,有哪些供需平衡或者不平衡。(2)计划执行计划执行主要展示产品及其零组件开始投产多少,最后又能入库多少;它们计划什么时候开工和完工,实际又是什么时候开工和完工等。并能够通过一定的对比显示相关信息。(3)能力统计企业生产管理可视化系统研究与开发能力统计主要显示各个车间、各个工作中心、各台设备的运行能力状况,包括其加工工序个数、加工工时、运行的标准机时和实际机时对比等。(4)车间运行车间运行主要展示各个车间作业计划信息,也是车间加工能力的另一种衡量,包括各个车间在一段时间内已完工了多少工单,还有多少工单需要完成,应该要完成多少工单,正在生产的工单数量是多少等。并能列出每个工单下加工的是什么零组件,每个零组件现正处于什么样的加工状态,最好能以工艺流程图的形式列出。3.4软件体系结构选择3.4.1软件体系结构概述软件体系结构是指计算机系统各组成部分之间的相互关系,它是硬件、软件、算法和语言的综合性概念。软件的体系结构表示了一个软件系统的高层结构,是一种高层次上的抽象。随着软件系统的规模和复杂性的增加,让一个系统拥有一个合适的体系结构是非常重要的。软件体系结构大体上有三种模式f30】。【33】:一、主机/终端模式这是一种较为传统的系统架构模式,其特点是一台主机连接一些终端,构成~个星型结构。所有程序都在一个主机上运行,包括数据库系统、应用程序以及负责向终端发送和接收数据的通讯设施。所有数据都存储在主机上,用户通过本地或远程终端来访问主机。主机处理系统的优势是集中式安全性和海量数据存储设备的管理能力,系统维护升级主要涉及主机。但用户端使用不够方便,缺乏个人定置,对主机的依赖性强,一旦主机发生故障,用户应用就会受到影响。对一般企业而言,系统初期投入大,运行和维护费用较高。随着计算机硬件价格的下降以及性能的提高,计算机在企业中的应用得到普及,这种早期才使用的软件体系结构逐渐从企业应用中退出。二、C/S模式(Client/Server的简称,客户机/服务器模式)1.两层C/S模式目前大多数企业管理信息系统都是使用两层体系结构来实现的。这种体系结构将应用程序分成两部分:客户端应用程序和数据库服务器。在这种模式中,显示和交互的工作由客户端应用程序完成;数据的处理和维护工作由数据库服务器完成:而业务工作由客户端应用程序和数据库服务器共同承担。两层C/S模式结构简图如下图3.2(a)所示。第三章生产管理可视化系统总体设计两层C/s在技术上很成熟,它的主要特点是交互性强、安全性好、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网,不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱且兼容性差,不能实现快速部署安装和配置,因此缺少通用性,具有较大的局限性。要求具有一定专业水准的技术人员去完成。客户端应用程序客户端应用程序/\……..g……一应用服务器弋7{}数据库服务器I数据库服务器(8)两层c/s结构(b)三层C/s结构图3.2C,s的两层和三层结构2.三层C/S模式三层C/S模式是在两层结构基础上的扩展。它将业务处理工作从数据库服务器和客户端独立出来,由新增加的应用服务器来完成,客户端只完成显示和交互的工作,数据库服务器只完成数据的处理和维护工作,如上图3.2(b)所示。和两层C/S相比,由于业务处理集中在应用服务器上,大大地减轻了维护升级工作的复杂性,简化了客户端的工作,增强了系统的灵活性和可扩充性。目前,实际应用中用三层C/S模式开发的还不太多,技术还不成熟,并且在开发工具和资源方面,不如两层结构丰富。在选择体系结构时,应根据系统的开发周期、规模和开发人员等实际情况,具体问题具体分析。三、B/S模式B/S本质上也是客户杌/服务器结构,是三层c/S结构在W曲上应用的特例。B/S体系结构的客户端是W曲浏览器,它负责实现显示和交互。应用服务器是位于Web服务器端的具有应用程序扩展功能的Web服务器,它的任务是接受用户的请求,执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,而后将数据库服务器的数据处理的结果提交给Web服务器。再由W|eb服务器传送回客户端。数据库服务器负责接受W曲服务器对数据操纵的请求,实现对数据库查询、修改,更新等功能,把运行结果提交给Web服务器。B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有企业生产管理可视化系统研究与开发成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。综上所述,各种软件体系结构都有各自的优点与缺点,在实际的应用当中需要依据具体情况选择体系结构,比如企业内部的管理系统,客户端需要各种复杂的功能模块,频繁读写数据库。数据流量大,那么C/S结构效率更高。B/S结构客户端的开发简单、负荷小,效率高,维护方便,对于远程办公等比较方便。3.4.2本软件体系结构选择目前信息系统软件开发应用最广泛的是C/S结构和B/S结构。这两种结构的主要区别如下表3.1所示124J:表3.1C/S结构和B/S结构比较对比内容C/S结构B/S结构备注可维护性不易维护易维护B/S结构只需要维护服务器端可访问性差好B/S结构可通过广域网访问速度快慢C/S体系结构网络通信量低功能好差HTML表示能力有限安全性高低B/S结构通过广域网,安全性低兼容性差好标准化程度决定了兼容性高低开发难度容易复杂C/S结构不必处理分布式应用复杂关系标准化差好HTTP、嗍、HTML等标准服务器端要求低高B/s结构所有业务逻辑在服务器端客户端要求高低c/S结构可把业务逻辑分配到客户端对于本系统,针对特定的企业环境,结合表3.1,采用两层C/S模式将更具优势,主要表现在以下几个方面:1.该企业属于严格保密的航空企业单位,企业各部门所有的计算机都通过自建的内部局域网连接,对于广域网的连接却有着严格的控制,由于B/S结构是建立在广域网基础之上的,所以不易采用。2.该系统只面向特定的用户群,且生产信息中往往包含敏感数据,而C/S体系结构对信息安全的控制能力强于B/S体系结构。第三章生产管理可视化系统总体设计3.C/S体系结构可以充分利用两端硬件环境的优势,将任务合理分配到客户端和服务器端来实现,使应用服务器运行数据负荷较轻。4.该软件系统的开发基于企业的众多数据库(如ERP、MES、PDM、BPM等)进行,数据库中数据信息量大,查询和调用数据库中的数据时要求有较好的速度。而且该软件主要用于向上级领导汇报,软件系统快速的反应尤其值得重视。所以采用C/S体系结构时,网络通信量低,只包括客户端和数据库服务器之间的通信量,完成任务的速度较快。5.考虑系统软件开发的简单化原则,加上系统开发时间上要求较紧凑,采用C/S体系结构开发者不必处理分布式应用的复杂关系,所以容易开发。本系统的两层C/S体系结构简图如图3.3所示。局域网请求服务器端客户端生产管理数据库管理系统生产管理可视化系统界面数据和结果SOLServer2000(表、视图、存储过程、用户自定义函数等)图3.3本系统的两层C/S体系结构3.5系统开发工具本系统采用Imprise(原Borland)公司的BorlandC++Builder6.0开发工具对软件系统进行开发。它是该公司继Delphi之后推出的又一个极优秀的应用开发工具。它天才地实现了C++语言和可视化开发的完美结合,从而既具有可视化随心所欲、快速高效开发的优点,又兼顾了C抖的灵活与强劲,并且还将二者的功能进行了极大的扩展和提高。它的出现使得开发人员不必在高效的底层控制与轻松的程序设计间作出艰难的抉择。新版本中组件编程技术的引人,更使C++Bullder大放光彩,成为当今应用开发工具中最优秀的一员。在众多的开发工具中,选择C++Builder原因是C++Builder一个基于C++语言的全新的可视化编程环境。由于它是面向C++的真正的RAD(RapidApplicationDevelopment,快速应用程序开发)工具之一,也是惟一提供真正基于组件的拖放式编程的RAD工具,C++Builder与Delphi有许多相似之处,但它集成了更多的Windows95控件,提供了更为详细的分类对象和强大灵活的数据库编程环境。可以使用C++Builder设计出32位的应用程序,这些程序可以是一般的应用程序,企业生产管理可视化系统研究与开发也可以是复杂的数据库访问应用程序。在C*builder中编写一个应用程序基本包括4个步骤:1.建立一个新的工程,或打开一个已经存在的工程。2.向窗体添加需要的组件并修改控件的属性,以使窗体的整体外观符合用户的需求。3.编写响应事件处理的函数或者过程,包括组件事件的函数或过程和用户自’己编写的函数或过程。4.调试、编译并最终运行程序。其中,如果用C++Builder开发一个数据库应用程序(界面)时,基本步骤仍遵照上述步骤,只是在步骤(2)中可设置响应组件的属性如下:1.设置数据集组件,如TQuery,TTable等。通过设置DatabaseName属性与数据库建立连接。2.设置数据源组件TDataSource。通过设置DamSet属性与数据集组件相连接。3.设置数据控制组件,如TDBCrrid、TDBNavigator、TDBChart、TDBEdit等。通过设置DataSource属性与数据源组件相连接。3.6系统数据库管理系统MicrosoftSQLServer2000(简称SQLServer)是Microsoft公司在2000年推出的SQLSewer数据库管理系统的最新版本。该版本在功能和易用性上较之前的版本有很大的增强。SQLServer由一系列相互协作的组件构成,能满足最大的Web站点和企业数据处理系统存储和分析数据的需要。SQLServer提供了在服务器系统上运行的服务器软件和在客户端运行的客户端软件,连接客户和服务器计算机的网络则由WindowsNT/2000系统提供。SQLServer2000的数据库系统的服务器运行在WindowsNT/2000上,负责创建和维护表和索引等数据库对象,保证数据的完整性和安全性,能够在出现各种错误是恢复数据。客户端应用程序可以运行在Windows9x/NT/2000系统上,主要完成所有的用户交互操作。将数据从服务器检索出来后,可以生成复制件,以便在本地保留,也可以进行操作。客户端应用程序可以通过SQLServer2000提供的应用程序接口来访问数据库端的数据,主要的访问方法有四种:ODBCAPI、OLEDB、T-SQL和DB.Library。对于客户机,可以将这些API作为动态链接库来使用。·本企业的SQLServer2000是一个基于C/S模式的关系数据库管理系统,如下图3.4所示:第三章生产管理可视化系统总体设计客户端应用程序一一钮秒一客户端服务器端图3.4SQLServer2000的C/S模式结构示意图客户端(又称前台)应用程序包含显示与用户交互的界面,将数据中的数据处理过程描述成Transact.SQL语句(简称ToSQL语句);并将ToSQL语句送至服务器(有称后台),后台的SQLServer执行该T-SQL语句后,产生的查询结果,并将结果返回给客户端的应用程序。SQLServer采用C/S体系结构把所有的工作负荷分解为服务器上的任务和客户端的任务,客户端应用程序负责逻辑和向用户提供数据,服务器负责对数据库的数据进行操作和管理。SQLServer还负责管理数据库,并在多个处理请求之间分配如存储区、网络带宽和磁盘操作等可用资源。作为客户/服务器数据库系统,SQLServer2000的特性如下[341。【35】:1.Interact集成。SQLServer2000数据库引擎提供完整的XML支持。它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQLServer2000程序设计模型与WindowsDNA构架集成,用以开发Web应用程序,并且SQLServer2000支持EnglishQuery和Microsoft搜索服务等功能,在W曲应用程序中包含了用户友好的查询和强大的搜索功能。2.可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行MicrosoftWindows98的便携式电脑,到运行MicrosoftWindows2000数据中心版的大型多处理器服务器。SQLServer2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。3.企业级数据库功能。SQLServer2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQLServer2000分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是SQLServer2000数据库的一部分,同时分布式事务支持充分企业生产管理可视化系统研究与开发保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。4.易于安装、部署和使用。SQLServer2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQLServer的过程。SQLServer2000还支持基于标准的、与WindowsDNA集成的程序设计模型,使SQLServer.数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付SQLServer应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。5.数据仓库。SQLServer2000中包括析取和分析汇总数据以进行联机分析处理(OLAP)的工具。SQLServer中还包括一些工具,可用来直观地设计数据库并通过EnglishQuery来分析数据。SQLServer2000共有4个版本,分别是个人版,标准版,企业版和开发版。此外,还有些新增或增强性的功能,如关系数据库增强、关系数据的XML集成、图形管理增强等。3.7系统数据库分析在企业信息化进程快速发展和普及的背景下,企业大量应用了相关信息管理系统软件,而这些信息系统软件的开发大都会建立支撑自己系统软件的数据库。这样会导致企业数据库系统的大量增加,形成海量的数据信息,进而增加企业数据库管理的负担。另一方面,设计新的数据库需要大量时间和精力,给程序开发人员带来不便。所以,在进行企业信息管理软件开发时,应尽量避免引入新的数据库。本系统即是基于企业原有数据库系统进行的软件开发,不涉及新的数据库设计,只对已有数据库系统进行分析。由于展示的业务功能必须满足实时性和准确性的要求,所以系统的开发基于企业最底层的数据库进行。为此,必须进行数据库的详细分析,以确定所需某个业务信息模块对应的数据库系统和相应的信息表。数据库分析在本系统中主要是结合系统各个待开发功能子模块来进行的,按照各模块所需要展示的信息来反追述信息在数据库中存储的位置,然后将其提取出来。具体来说,就是利用结构化查询语言SQL语句,借助各种数据库对象(如视图、用户自定义函数等)将各个功能模块所需信息表达出来。限于篇幅,下面仅以生产管理——产品交付子模块为例加以说明,其它子模块类同。为简单起见,以下以简单清晰的表格形式给出其对应的SQL语句和相关说明,如下表3.2所示。第三章生产管理可视化系统总体设计表3.2数据库分析示例——产品交付子模块编号界面SQL语句说明1.1总页面selectdistincta.TD005AS产品品名.涉及的数据库ERP统计左面显a.TD006AS产品型号表:COPTD页面示fromCOPTDASa,COPTHASb.CoPTGASCCOPTH产品名wherea.TD001--b.TH014COPTG称/产品ANDa.TD002=b.TH015型号ANDa.TD003=b.TH0l6ANDb.TH001--x.TG001AND‘b.11_1002=c.TG002ANDa.1]D004like’ORDERBYa.TD005.a.TD006总页面:SELECT(a.TD005+char(13)+a。1D006)as产品1、右面显名称及型号,sum(a.TD008)AS订单数量,c.TG003>=’2009010l’示sum(b.TH008)AS销售数量AND产品的fromCOPTDASa,COPTHASb.C.TG003<=’20091231’订单数COPTGASc.COPTCASdAND量和销where乱11D001=b.TH014d.TC003>-.20090101。售数量AND扎TD002=b.11_1015AND的对比ANDa.TD003=b。TH0l6d.TC003<=’2009123l’图。ANDa.TD00l=d.TC00l用来限制起止时间,它可AND乱TD002=d.TC002以据需求变化,这里的时ANDb.TH001=c.TG00l间显示的是同定的。而在ANDb.TH002=c.TG002程序中可以动态变化,有ANDa.TD004like’用户选择控制。。ANDC.TG003>='20090l0l’以下类同。ANDc.TG003<-’2009123l。ANDd.TC003>=’2009010l’ANDd.TC003<--'20091231’groupbya.TD005,a.TD006ORDERBYa.TD005.乱TD0061.2子页面:SELECT(a.TD005+char(13H-a.TD006)as2、明细点击某产品名称及型号,SUM(a.TD008)AS订单数a.TD006=’GG3.5’页面一产品,量,SUM(b.n1008)AS销售数量是所点击产品的型号,在显示这fromCOPTDASa,CO哪ASb.程序中可以据点击产品一产品COPTGASc,COPTCASd的不同而动态变化。在给定wherea.TD001--b.TH014以下类同。的起止AND乱1]D1002=b.TH015时间内AND&TD003=b.TH0l6总的订AND&卫D00l=d.TC00l单数量AND氖哪D002=d.TC002和销售ANDb.TH001---c.TG001数量ANDb.TH002=c.T(Ⅺ02ANDa.TD004like‘企业生产管理可视化系统研究与开发编号界面SQL语句说明ANDC.TG003>='20090101’ANDC.TG003<=’2009123l’ANDd.TC003>='200901O1’ANDd.TC003<=‘2009l23l’AND.a.1]D006='GG3.5’groupby乱TD005.a.TD006子页面:SELECTa.TD001as订单单别.a.TD002as订单点击某单号。a.TD003as订单序号ATD013AS预交一产品,货日期,a.TD008AS订单数量,C.TG003AS实显示这际销货日期,b.TH008AS销售数量,a.TD010一产品AS单位分批次fromCOPTDAS乱COPTHASb.交付的COPTGASc,COPTCASd情况wherea.1D001--b.TH014AND乱TD002=b.TH0l5ANDa.TD003=b.TH016anda.TD001=d.TC001ANDa.TD002=d.TC002ANDb.TH001=c.TG001ANDb.TH002=c.TG002ANDa.TD004like’ANDc.TG003>='2009010l’ANDC.TG003<--'20091231’ANDd.TC003>=’2009010l’ANDd.TC003<=’2009123l’AND乱TD006='GG3.5’orderbya.TDOl3,c.TG003子页面:SELECT(&TD013+char(13)+c.TG003)as预计点击某及实际交货日期,乱TDOl3AS预交货日期,一产品,a.TD008AS订单数量,C.TG003AS实际销货显示这日期。b.TH008AS销售数量一产品fromCOPTDASa,COPTHASb.的预计COPTGASc.CoPTCASd交付和where氛TD001=b.TH0l4实际交AND乱TD002=b.TH0l5付的时AND乱TD003=b.TH016间及数and乱TD00l=d.TC00l量的统AND扎卫D002=d.TC002计ANDb.1H00l=c.卫G001ANDb.TH002=c.TG002AND&1]Dlol04like’ANDC.TG003>='20090lOl’ANDC.TG003<='2009l23l。第三章生产管理可视化系统总体设计编号l界面lSQLi著-句说明ANDd.TC003>='20090101’ANDd.TC003<='2009123l’ANDa.TD006=。GG3-5’orderbya.TDO13,C.TG003说明:这一模块所需要表结构信息关系如下:COPTH(产品订单表)(产品销售表)TD001(订单单别)TH001(销售单别)TD002(订单单号)TH002(销售单号)TD003(订单序号)TH003(销售序号)TD004(品号)TH004(品号)TD005(品名)TH005(品名)TD006(型号)TH006(型号)TD008(订单数量)TH008(销售数量)TD009(已交数量)TH014(订单单别)TD010(单位)TH015(订单单号)TD013(预交货日)TH016(订单序号):COPTC‘COPTG”,。(含产品订单日期表)(含产品销售日期表)TC001(订单单别)TG001(销售单别)TC002(订单单号)TG002(销售单号)TC003(订单日期)TG003(销售日期)3.8系统开发技术3.8.1面向对象技术在现代软件系统开发的过程中,一个高质量的软件系统应使面向对象技术自上而下、自始至终地贯穿其中。面向对象(Object.Oriented,00)技术把客观世界理解成为对象及其关系的集合,将客观世界中的实体和对象、实体关系和对象关系一一对应起来,使得传统方法中系统功能模型和结构模型之间的界限基本消除,为解决传统软件开发技术的问题提供了有效的方法。面向对象技术充分体现了分解、抽象、模块化、信息隐蔽等思想,可以有效地提高软件生产率,缩短软件开发时间及提高软件质量,是控制软件复杂性的有效途径。面向对象技术在软件系统开发中的应用包括概念设计、面向对象分析、面向对象设计、实现和维护等几个阶段。其中,概念设计就是用户需求的产生过程;企业生产管理可视化系统研究与开发维护则是一个众所周知的阶段,只是引入对象概念之后,使得维护的复杂度有所下降;面向对象的系统分析和设计就是把面向对象的方法运用到软件开发的分析和设计阶段,从而建立庞大、复杂且易变的系统模型,目的是完成对问题空间的分析和对系统的建模,主要任务包括描述系统中的对象、对象属性和操作,对象的动态特性,对象间的构造关系、映射关系和通信关系,从而建立系统的静态结构和动态活动模型;而系统实现就是在分析和设计的基础上使用面向对象程序设计语言(OOPL)将设计模型实现为程序代码,即面向对象编程。随着面向对象技术,尤其是面向对象程序设计技术的提出,各种面向对象或者基于对象的程序设计语言不断出现,例如Ada、Smalltalk、ObjectC、CLOS等。其中最常用的是C++语言,它是在C语言基础上经过ObjectC发展而来的一种面向对象的程序设计语言,虽然在程序设计方面仍保留了过程式语言的特征,但它所引入的类、继承、多态等概念为面向对象程序设计提供了实现的手段。本系统采用基于C++语言的可视化集成快速开发工具C++Builder。其程序设计思想是面向对象的,但它把很多复杂的设计方法简单化,变得易学易用。在C++Builder的IDE开发环境中可以充分利用面向对象的C++语言和C抖Builder提供的可视化组件库(VisualComponentLibrary,简称VCL)来进行面向对象的编程。其中每一个组件都可以看成是一个类,组件本身是封装的,用户可以使用组件但无法看到组件的源代码,也不能修改组件的定义。但是必要时用户可以自定义自己的组件。在定义了组件对象后,用户可以设计每个组件对象对应的属性和对这些属性进行操作的事件。它们大大地提高了编程的效率。在本软件系统的开发过程中,各个阶段都充分应用了面向对象技术。本系统开发并没有采用某种单一的开发方法,而是将多种方法相结合,基本按照系统生命周期法的基本思想和理论,结合系统原型和面向对象等方法,对开发过程实行分阶段管理,对各个阶段设定目标和任务,在完成各个阶段的目标和任务时,逐渐逼近终极目标。总体来说,在系统实现上采用面向对象方法一面向对象程序设计语言C++进行程序的编码,在其它阶段则是其它技术方法与面向对象技术结合进行的开发。3.8.2BDE数据库访问技术BDE(BorlandDatabaseEngine,即Borland数据库引擎)是Insprise公司提供的实现数据库应用程序和底层数据库连接的工具软件。C++Builder中的BDE是一个基于Windows窗口环境下的32位数据库引擎,也是最早、最基本的访问数据方法。Bodand数据库引擎BDE专门用于实现数据库的应用程序和底层数据库的连接。它性能可靠、功能强大,为C++Builder数据库应用程序访问各种数据库(如第三章生产管理可视化系统总体设计39Paradox、Foxpro、Access、Dbase、SQLServer、Oracle等以及任何符合ODBC的数据源)提供了统一的API接口(ApplicationProgramInterface,应用程序公共接口),同时它又是一个基于驱动程序的体系结构,每一种数据库格式或数据源都有单独的驱动程序,每一种驱动程序都支持与之相近的数据源。C++Builder通过BDE访问数据库的体系结构如下图3.5所示f36】。【371。C++Builder应用程序BorlandDatabaseEngine(BDE)SQLLinks0DBcTCP/IP、SPX/IPX0DBcDrivers远程数据库MS—SQL、DB2、远程数据库本地数据库Paradox、DBASE、Oracle、FoxPro、Sybase、其它数据库,如Informix、MSExcel等。Access、LocalInterBase。InterBase等。图3.5C++Builder开发数据库应用的体系结构由图3.5可以看出,BDE是C++Builder数据库功能的枢纽部分,是连接应用程序和数据库的桥梁。C++Builder中不论是访问本地数据库还是远程服务器端的数据库都必须通过BDE。BDE提供SQLLinks来连接六种服务器端数据库MS.SQL、Oracle、Sybase、Informix、DB2、InterBase,若是服务器端数据库不提供这六种,另外可通过ODBCDrivers来连接其它种类的数据库。在本地数据库部分,除了支持Pradox、DBASE、FoxPro、Access等桌面型数据库,另外还可以通过BDE直接连接单机版的LocalInterBase。C++Builder中基BDE上的连接数据库控件有TTable、TQuery、TDatabase、TDataSource、TDBGrid、TSession等。此外,BDE还提供一组API函数,这些API函数可以通过动态链接文件使用任何语言去调用,所以C++Builder中有关数据库的处理程序除了上面提到的利用数据库访问组件来访问数据外,还可以直接调用BDE的API函数。此外,在C++Builder实际数据库应用程序开发时,有使用到BDE的情况,应该将BDE按照在用户的计算机上,Borland公司不收取任何费用。在两层C/S体企业生产管理可视化系统研究与开发系结构下的BDE和C++Builder的运行文件都是安装在客户端的计算机上,不要将其安装在服务器上。而在多层体系结构下,则是可以将BDE安装在应用程序服务器上的。3.9小结本章研究了生产管理可视化系统的总体设计,它为系统软件的开发提供总体指导。首先介绍了本系统在设计过程需遵守的基本原则;其次给出了系统的总体结构层次和功能模块;比较了软件网络体系结构的三种模式,并选择了两层C/S应用体系结构作为本系统的体系结构;对数据库系统进行了分析,并给出提取所需信息的简明的SQL语句;最后阐述了系统的开发工具、数据库管理系统、系统的运行环境和所采用的开发技术。第四章生产管理可视化系统开发关键技术41第四章生产管理可视化系统开发关键技术4.1引言在企业进行日常生产活动的过程中,产生了大量的数据、图表、文本等信息,这些信息大多都存在企业建立的各种数据库中。而在企业进行再生产活动时,有时需要参考以往的数据信息来进行生产管理决策,甚至有时需要直接进行生产现场的监控,或者有时为上级领导展示生产活动的历史状况等等,这些都需要从企业数据库的海量数据信息中提取用户所需的有价值的信息。然而,这些有价值信息有时存在于企业的某一数据库的不同数据表中,或者存在于不同的数据库中。这都给信息的挖掘提取和数据库配置带来一定困难。同时,由于面向用户的特殊性,要求展示的信息简洁易懂,这也给程序的编制和实现提出难题。本章即是为解决上述问题而介绍系统开发遇到的主要关键技术。4.2数据可视化技术数据可视化是将非物理的抽象信息用可视的形式表示出来,以便分析信息、发现信息的本质规律和制定决策。这里所说的“非物理的抽象信息”区别于科学计算的物理信息,就是不能用科学公式计算和表示的信息,一般是来自于现实社会各个领域的真实信息,例如股票信息、银行记录、文献等。在本管理系统开发中,数据可视化特指将企业底层数据库中抽象的记录信息转换为具体的、可视性强的柱状图、饼状图、甘特图以及表格等形式。而由于底层数据库中这些原始的记录信息一般表现为:数据量大而冗余、抽象而不易理解、无规律而不易总结和对比等。而最终展示出来的信息必须要求满足简单易懂、直观清晰等适合用户理解的柱状图、饼状图、甘特图以及表格等。柱状图就是把抽象的数据,利用统计的方法用柱子的形式显示出来。本系统利用特定的可视化技术将数据库中抽象的数据,用直观的条状柱子表现出来,简单易懂。饼状图是以饼状的形式,反映各个统计分量在总量中所占的比例。通过饼状图观察者可以直观的看到各分量占有比例,可以是数量比例,也可以是分数比例,本系统中也应用了大量的饼状图,以使信息的表现尽可能的简单和完备。甘特图(Ganttchart)又叫横道图,条状图(Barchart)。它是以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。甘特企业生产管理可视化系统研究与开发图内在思想简单,基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况。它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比。表格由一行或多行单元格组成,用于显示数字和其他项以便快速引用和分析。它也能很清晰简明地表达所需要表达的东西。为了适应和解决底层数据和上层要求的信息的差异,可按照可视化的技术路线,采用C++Builder这一可视化集成开发工具,利用其数据库应用程序开发中的友好图形用户界面和相关组件,可实现将数据库中抽象的数据转换为简单易懂,直观清晰的柱状图,饼状图和甘特图。C++Builder数据库应用程序开发中,数据库组件占有核心地位。C++Builder提供的数据库组件层次丰富,易于应用,既注意了层次的广泛性,也注意了一致性。使用这些组件用户可以轻松地建立功能强大的数据库应用程序。在C++Builder中实现数据库开发的可视化组件有:DBChart(DBGrid),Query(Table),DataSource,Database等控件。C++Builder的数据库应用程序设计流程一般是:数据库一数据访问组件(数据集类组件)一数据源组件一数据控制组件。如下图4.1所示。C++BuiIder应用程序,用户T数据感知(控制)组件,如TDBGrid、TDBEdit、TDBNavigator等7数据源组件TDataSourcef数据集类组Jt牛TDataSet:TTable、TQuery个n。+。l、…L1ua哺DaserTSession{TSessionBorlandDatabaseEngine(BDE)数据库(本地或远程)图4.1C++Builder中数据库组件在可视化应用程序开发中的位置数据集类组件:如”№le,TQuery等组件,也称数据库访问组件。TTable控第四章生产管理可视化系统开发关键技术43件用来访问数据库中单个表;TQuery控件封装了结构化查询语句(SQL语句),应用程序通过SQL语句可以获得多个数据库表中的数据,SQL语句通过Query组件传递到要访问的数据库的引擎中,由对应的数据库引擎执行SQL语句实现对数据库的操作。这两个组件主要为应用程序提供要访问的数据库和数据库中的表,通过设置它的DatabaseName属性和TableName属性来实现。TDatabase控件为应用程序提供不同的控制数据库连接的方法,如永久的连接、自定义的数据库服务器登录、事务控制、应用程序中的BDE别名等。‘TSession控件提供了一个应用程序范围内的一组数据库连接的全局管理。在连接数据库时C++Builder自动创建一个默认会话期,这个默认的会话期处理标准的数据库连接,当应用程序要访问不同网址上的多个数据库表时,就要使用TSession控件,每一个会话连接一个不同网址。数据源组件:主要指TDataSouree组件,它是数据控制组件和数据集类组件之间相联系的桥梁,为数据控制组件从数据集类组件中获取数据提供了可能。一般只需要设置它的DataSet属性为某一个Query(Table)即可。数据感知(控制)组件:如TDBGrid、TDBEdit、TDBNavigator等,它们用来在窗体中以各种可视化方式(如柱状图、饼状图、甘特图以及表格等)显示数据集中的数据。在数据集中,可以有许多种不同的数据类型,因而也有不同的数据控制组件来与之相对应。数据感知组件主要设置它的DataSource属性,有时还需要设置DataField组件,它们分别用于指定数据感知组件需要连接的DataSource组件和相关字段。在本软件数据库应用程序开发中,以可视化的方式将数据库中的信息在C++Builder这一集成开发环境中表达出来可按照下列步骤进行。1.建立一个新的工程arojectl,它主要包括一个文本编辑框Unitl和一个窗体Forml。2.向窗体Forml中添加需要的组件:Database,Query,DataSource,DBChart(DB嘶d)。设置数据库连接连接流程,如下:(1)设置Database的AliasName为BDE中连接的数据库,再将DatabaseName设置成程序中需要新起的数据库名字,并且还可以设置访问权限,如用户名和密码等。(2)设置Query(Table)的DatabaseName属性,选择新起的数据库名。TableName属性一般对于Table组件可设置。但对于Query组件来说没有此属性,Query组件引用数据库表主要通过封装的SQL语句结合程序实现。(3)设置DataSouree的DamSet连上相应的Query(Table),DBGrid连接上对应的DataSource。而DBChart不需要DataSource来连接,它可以直接连接Query44企业生产管理可视化系统研究与开发(’I.able)。其中TDBGrid组件以表格的形式来显示数据集中的数据,TDBChart该组件以各种图表的形式,如柱状图、饼状图、甘特图等来显示数据集中的数据,TDBEdit用来显示(或者修改)数据库中某个字段的值。在以上设置完毕后,可修改这些组件的其它属性,以使窗体的整体外观符合用户的需求。3.编写响应事件处理的函数或者过程,包括组件事件的函数或过程和用户自己编写的函数或过程。如对于数据库访问的相关组件,需要将Query(Table)激’佶o4.调试、编译并最终运行程序。在C++Builder中的可视化中,柱状图、饼状图、甘特图用DBChart来实现,表格用DBGdd来实现。在本数据库应用程序中甘特图的显示效果如下图4.2所示,而柱状图、饼状图、表格的显示效果可见图5.9、图5.5、图5.7所示。谭i!}:-%i:£ii£:主i匀!:!!I:::蔓[::童!J:!!I墨竺l..一一]——二.:=i——二二j一!!.一…一……。……“。??图4.2甘特图显示效果示例4.3工艺加工流程简图生成技术4.3.1企业流程图在现代企业中,要实现从以职能为核心的传统企业向以流程为核心的新型企业的彻底转变,必须从根本上重新思考企业的运作流程,并加以完全的重新设计,即实施流程在造。要再造流程,就不仅要给企业的流程进行命名,还要把各流程的活动关系表示出来,以及不同的流程之间的关系表示出来。这种表示可以通过文字表述,但企业流程的形式化表达只是在一般意义上对流程的一种抽象的描述,第四章生产管理可视化系统开发关键技术45为了更好地认识流程、分析流程以及对流程进行重新设计,必须有比较直观的图形表示,这就是企业流程图。企业流程图主要是指用特定的含义和符号,形象而具体地描述企业生产运作的某一过程。这种过程既可以是宏观上的完成一项任务必需的管理过程,也可以是微观上的生产线上的工艺流程。例如,一张流程图能够成为解释某个零件的制造工序,甚至组织决策制定程序的方式之一。这些过程的各个阶段均用图形块表示,不同图形块之间以箭头相连,代表它们在系统内的流动方向。下一步何去何从,要取决于上一步的结果。流程图是揭示和掌握封闭系统运动状况的有效方式。作为诊断工具,它能够辅助决策制定,让管理者清楚地知道,问题可能出在什么地方,从而确定出可供选择的行动方案。一般来说,企业的流程图可分为一级、二级、三级。一级流程图即是公司级的流程图,如公司主导业务流程图、公司决策流程图等。二级流程图即是部门级的流程图,如技术开发流程图、人力资源管理流程图等。三级流程图即部门内具体工作的流程图,如招聘流程图、销售流程图、统计工作流程图。这些流程图应该是环环相扣的,上一个级别的流程图的某一个节点到下一级别就可能会演化成一张流程图。:‘。.4.3.2工艺流程图工艺流程图是用图表符号形式,表达产品通过工艺过程中的部分或全部阶段所完成的工作。它在企业的流程图中处于最具体、最底级别的流程图。工艺流程图一般有如下几种:1.全厂总工艺流程图或物料平衡图。在化工厂设计中,为总说明部分提供的全厂流程图样。对综合性化工厂则称全厂物料平衡图。图上各车间(工段)用细实线画成长方框来示意。流程线只画出主要物料,用粗实线表示。流程方向用箭头画在流程线上。图上还注明了车间名称,各车间原料、半成品和成品的名称、平衡数据和来源、去向等。2.物料流程图。是在全厂总工艺流程图基础上,分别表达各车间内部工艺物料流程的图样。在流程上标注出各物料的组分、流量以及设备特性数据等。3.工艺管道及仪表流程图,是以物料流程图为依据,内容较为详细的一种工艺流程图。在管线和设备上画出配置的某些阀门、管件、自控仪表等的有关符号。典型的工艺流程图中包括有物料状态、数量、加工的工序、所在车间名称、所使用的设备以及所用工时等多样的属性。而在本系统中使用的工艺流程图,由于考虑到面向的用户专业性不是很强,并非为专为工艺管理人员或制造工程师,用户只是为了解某种产品(或零组件)大致加工过程怎样,现进行到什么程度等企业生产管理可视化系统研究与开发简单的信息。所以,系统中开发的工艺流程图是一种简化的工艺流程图,现称之为工艺加工流程简图。它由于简化了一些产品加工过程的较次要的信息,只是摄取了关键的工艺加工流程的主要信息,所以对用户显得直观、清晰和简洁。4.3.3工艺加工流程简图生成技术在工艺加工流程简图中,只定性地标出物料由原材料转化为产品的流向顺序及采用的工序。一般用某种特定的图形符号(fla线、方框、文字等图元组成)来表示某类零部件或某种加工过程,用一端带箭头的连接线来表明加工顺序。在计算机辅助工艺设计软件中,可以按照两种方式生成这样的加工流程简图:一是以已形成的工艺文件为依据自动生成,二是采用交互式绘图方式手工生成【3引。在本系统中,整个系统的开发都是基于企业现有的数据库进行的开发,故工艺加工流程简图采用第一种方式,以数据库中已有的含工艺信息的文件为依据,利用基于C++语言的可视化集成快速开发工具C++Builder来生成工艺加工流程简图。其中,工艺文件包含的信息有节点的信息(如节点名称、类型、状态等)和连线的信息(如线型、指示的方向等)。在C++Builder开发工具的原有组件库中,并没有合适的显示流程图的控件,为此,在C++Builder组件库中新引入AddFlow控件,以便让流程图显示在其中。系统中整个工艺加工流程简图的生成大体分为两个步骤:一是依据给定的数据库工艺文件信息,生成流程图。即流程图生成函数的实现。本软件系统的流程图生成函数为DrawFlow(),具体如下:voidDrawFlow(TAddFlow·aAddFlow,TStrings·aNodelDs,TStrings奉aNodeNames,TStrings幸aNodeTypes,TStrings·aNodeStats,TStrings·aNextNodelDs,TStfings·aActNodes,TStrings·apreActNodes,TStrings·aHistoryNodes,intaHeigh_AddFlow,intaWidth—AddFlow,StringaDescript,StringaDescript_Para)其中,aAddFlow为所用的AddFlow控件的名称,aNodelDs是节点编号aNodeNames是节点名称,aNodeTypes是节点类型,aNodeSta:tS是节点状态,aNextNodelDs是下一个节点编号,aAetNodes,apreActNodes,aHistoryNodes,aHeighw是olFddAddFlowA.,度高的件控aWidthAddFlow是AddFlow控件的宽度,aDescript,aDescfipt_Para二是根据具体的环境,调用流程图。在本系统中,通过列表显示了各个车间加工的零组件,通过点击列表中某一零组件,即点击列表某一行记录,即触发调用流程图的事件,可以看到某一零组件的工艺加工流程图。系统中零组件的工艺第四章生产管理可视化系统开发关键技术47加工流程简图的显示效果如下图4.3所示弦止日期:5甬百i丢i?—匀圭=§曼.L工=!竺I』=!塞i:=!苎l苎芝I!±l…一。“…~起虻=期:ji话j了j—r—o圭:i!!:!!j圭:!塞.笔墨I璧查l一-降骊确隋翦矜—霭确障穗两暇蕊甬、—■■■■■,’■■■■■—■,、—■■■■_■,、鼍■■幽■_,、■■■■■■∥然…一、茹ij|自嚏·擘叠·,j三&皇划J巴皇=曼一童鬯曼妻蔓■上当篡!巴!d璺孽竺曼:.1三毒鲤氅一皇21竺!龋丽i一。,;●^n0,聋为七‘托-吾i:^H、4口·i‰图4.3零组件加工工艺流程简图显示效果示例从图4.3中可以看出,流程图中有四种不同的颜色标记流程节点,其中蓝色代表当前已完成的工艺工序,红色代表当前正在加工的工艺,黄色代表当前加工工序的前一道工序,绿色代表未进行加工的工序。需要说明的是,整个工艺加工流程简图的生成并非易事,突出表现在AddFlow控件对流程图的生成采用的是自动布局,在最开始画出来的流程图并不能满足用户的需求,如节点和节点连线相互穿越等诸多问题。在图4.5看到的是经过多次反复对流程图优化后得到的结果。4.4可视化数据挖掘技术可视化数据挖掘技术是信息可视化应用的一个新领域,它可以看作数据可视化和数据挖掘技术的结合,指运用计算机图形学、图像处理技术,将数据挖掘源数据、中间结果和最终挖掘结果转换为直观、易于理解的方式表现出来,并进行交互处理的理论、方法和技术。可视化数据挖掘技术提供了用户与计算机之间的一个接口,以帮助用户从数据库或数据仓库中发现未知的、潜在的、有使用价值的信息。在此,可视化数据挖掘指的是利用功能强大的数据库结构化查询语言SQL语句和数据库对象(如视图、用户自定义函数等)对数据库中的信息进行的提取。数据库中的数据信息很多,应用程序的开发中只需要取出比较关心的数据信息,并且这些数据不一定在一张数据表中,可能需要两张数据表、三张数据表甚至更多张数据表。这时候可以使用联合查询。但是,有时候只通过简单的基本联48企业生产管理可视化系统研究与开发合查询是很难实现所需要的数据的提取。为此,必须借助数据库的其他技术,如建立视图,存储过程,用户自定义函数等。以下将予以分类列举:4.4.1产品交付与计划执行子模块中数量信息的明确与提取一、产品交付子模块中数量信息的明确与提取在“产品交付”子模块中,需要一个产品的订单数量和销售数量的对比信息,为此有两种信息的解释:1.在给定的时间段内,比如2009年度,所取销售数量则是2009年度的销售数量,包含2009年度以前的订单在2009年度进行销售的销售数量。这样只是在销售日期上做一下限制,即销售日期限制在2009.01.01~2009.12.3l之间即可。即,订单数量:今年及今年以前的订单。销售数量:今年的销售,包括以往订单在今年销售的。2.在给定的时间段内,比如2009年度,所取销售数量则是2009年度的销售数量,不能包含2009年度以前的订单在2009年度进行销售的销售数量。这样必须在销售日期和订单日期上均做一下限制,即销售日期和订单日期均限制在2009.01.01~2009.12.31之间即可。即,订单数量:今年的订单。销售数量:今年订单的销售。为此,经过与用户进行沟通,他们倾向于选择第二种方案。二、计划执行子模块中数量信息的明确与提取在“计划执行”模块,仍然需一个产品主生产计划的投产数量和入库数量的对比信息,同上,在入库数量的理解上也会出现二义性:1.在给定的时间段内,比如2009年度,所取入库数量则是2009年度的入库数量,它包含了2009年度以前的投产在2009年度进行入库的入库数量。这样只是在入库日期上做一下限制,即入库日期限制在2009.01.01~2009.12.31之间即可。即,投产数量:今年及今年以前的投产。入库数量:今年的入库,包括以往投产在今年入库的。2.在给定的时间段内,比如2009年度,所取入库数量则是2009年度的入库数量,不能包含2009年度以前的投产在2009年度进行入库的入库数量。这样必须在入库日期和投产日期上均做一下限制,即入库日期和投产日期均限制在2009.01.01-2009.12.31之间即可。即,投产数量:今年的投产入库数量:今年投产的入库。为了统计出产品投产数量和入库数量,需要ERP数据库中的主生产计划信息表MOCTA和产品入库信息表MOCTG。它们进行关联需要满足的条件为:第四章生产管理可视化系统开发关键技术49MOCTA.。lAOUl=MOCTG.TG014ANDMOCTA.’IA002iMOC’I、(主.TG015而实际在入库信息表MOCTG中的字段TG014,TG015大多数记录都为空,实际调研中得知企业数据库的操作人员一般没有输入要求的数据。这样造成的后果是这两张表按照正常的字段关联无法得到需求的信息。为此,我们采取了另一种办法:利用两张表都有的字段——产品名称和产品型号关联。即是:MOClA.UDF03=MOCTGTG006ANDMOCTA.UDF02=MOCTGTG005。但是从数据库表信息来看,这样仍然会出现问题,就是两张表记录的多对多问题,即在MOCTA表里有产品名称和产品型号重复的记录,同样在MOCTG中也是。而且在两张表中找不到其它相关的字段能实现一一对应的关系,所以还需要做一下调整,可以先统计出MOCTA表里某一段时间段,如2009年度的产品投产数量,再在表MOCTG表里统计出2009年度的入库数量。这样进行产品名称和型号的关联就会是一一对应的关联。现在来按照这种办法来解决上面l、2中信息的提取。.针对上述中的1:先统计出MOCTA表中2009年度的产品投产数量,再在表MOCTG表中统计出2009年度的入库数量。这样进行产品名称和型号的关联。针对上述中的2:先统计出MOCTA表中2009年以前的产品投产数量,再在表MOCTG里面统计出2009年及2009年以前的入库数量,两表进行关联后,用后者的入库数量减去前者的投产数量就是2009年度的投产数量,2009年度的入库数量(不包含2009年以前的投产在2009年度进行入库的入库数量)。乙:经过与用户进行沟通,他们倾向于选择第二种方案,但是实际中统计出来的结果不符合常理。造成这种结果的一个重要原因是目前大多数企业数据库中数据记录采用手工输入的方式,而在该企业实际操作中,相关工作人员没有及时输入数据库中需要的信息,导致信息的滞后,甚至干脆置之不理。故最终选择了第一种方案。需要建立用户自定义函数如下:(1)产品主生产计划函数CREATEfunctionOrder_Information(@Date_Startaschar(8),@Date_Endaschar(S))returns@tabinfotable(UDF02varchar(60),UDF03varchar(60),TA015numeric(9))asbegininsert@tabinfoSELECTUDF02,UDF03,SUM(TA015)FROMMOCl’A企业生产管理可视化系统研究与开发WHERETA009>=@Date_StartAND11A009<=@Date_EndANDUDF01LIKE。’andUDF01=TA006GROUPBYUDF02,UDF03returnend(2)产品入库(成品库)函数CREATEfunctionStorage_Information2(@Date_Startaschar(8),@Date_Endaschar(8))retulTiS@tabinfotable(TG006varchar(60),TG005varchar(60),TG011numeric(9))硒begininsert@tabinfoSELECTTG006,TG005,SUM(TG011)FROMMOCTGAS钆MOCTFASbWHEREa.TGOOl=b.TF001anda.TG002=b.TF002ANDb.TF003<=@Date_Endandb.TF003>=@Date_StartANDTG004LIKEt—』GROUPBYTG006,TG005returllend(3)在自定义了以上两个用户自定义函数之后,则SQL实现产品生产和入库的对比信息查询如下:SELECT(a.UDF02+char(13)+a.UDF03)as产品名称及型号,a.TA015as投产数量,b.TG011AS入库数量fromOrderlnformation(’20090101','20101231’)ASa,Storage_Information2(’20090101’,'20101231’)asbwherea.UDF03=.b.TG006ANDa.UDF02=b.TG005orderby乱UDF02,a.UDF034.4.2车间设备利用状况信息的获取在子模块“能力统计”中,需要统计设备的加工时间和总时间的对比信息,涉及到MES数据库虽然在ERP数据库中也有设备信息,主要存储在CMSMX中,但由于这里面的信息都是静态信息,无法确切了解某一台设备的某一段时间的利用率,因此可以放弃ERP里面的数据,而可以从MES系统中提取设备相关数据,不过这个数据主要是针对机加一分厂的。设备的利用率=设备的加工时间/总的运行时间*100%,可以在until_log表中根据设备ID(entid)和选择的时间段(起止时间)搜出所有的记录,对这些符合条件第四章生产管理可视化系统开发关键技术51记录的字段duration值全部累加便是设备运行的总时间,至于加工时间要从这些记录中帅选出工单号(woid)和工序号(oper都不为空的所有记录中把.id)duration字段值累加而得。至于起始和终止时间,要根据until_log表中的event—time字段值来判断。然而在实际数据挖掘提取中,在一个表until_log中,按照上面所说提取设备的加工时间和总时间,显然不能直接利用简单的SQL语句提取出设备加工时间和总时间。为此,必须新建三个视图后才能实现,如下所示:1.新建设备加工时间的视图myworktime_tableCreateviewmyworktime_table(description,ent_id,event__time,duration)asselecta.description,C.ent_id,c.eventtime,c.durationfromutil_logasc,entasawherec.ent—id=a.ent—idandc.wo—id!=”andc.operid!=”2.新建设备总时间的视图mytotaltimetableCreateviewmytotaltime_table(description,ent_id,event_time,duration)asselecta.description,c.ent_id,c.eventtime,c.durationfromutil_109asc,entasawherec.ent—id=a.ent—id3.实现上面两视图的左外连接:Createviewmytable(descriptionl,ent_idl,event_timel,durationl,duration2)asselecta.description,a.ent_id,a.evem_time,a.duration,b.durationfrommytotaltime_tableasaleftjoinmyworktime_tableasbona.description2b.descriptionanda.ent—id=b.ent—idanda.event—time=b.event—time有了以上内容作铺垫,则SQL中提取设备加工时间和总时间的函数如下:selectisnull(descriptionl,9未知设备’)as设备名称,ent_idlas设备编号,sum(durationl)/3600as总时间,isnull(sum(duration2)/3600,0)as加工时间frommytablewhereevent—timel>=’2006—10-17’andevent—timel<_’2007—08-25’groupbydescfiptionl,ent_idlorderbydescriptionl,ent_idl注意:查询时可通过isnull()函数实现将记录为“NULL"的设备转换显示为“未知设备",实现将记录为“NULL"的加工时间显示改为“0’’。4.4.3车间各类作业计划信息的获取在子模块“车间运行’’中,需要统计各个车间处于各种作业计划状态的工单数量,需要ERP数据库中的两张信息表,如下表4.1、4.2所示:企业生产管理可视化系统研究与开发表4.1MOCl’A表MOCTA,表示产品/零组件主生产计划的表字段名字段类型字段描述弱001char(4),主键工单单别搦002chm'(11),主键工单单号TAOllcharO)生产状态码表4.2CMSMQ表CMSMX,含有各个车间作业计划名称字段名字段类型字段描述MQ001char(4),主键车间单别MQ002char(10)单据名称为了统计各个车间加工的各种工单(如未生产工单,已发料工单,生产中工单等)的数量,需要把各个车间的各种类型的工单数量统计出来,即使是某一个车间的某种工单数量不存在,也必须让其显示为O。否则就会在可视化的柱状对比图中,由于缺失而出现错位,产生错误。为此,必须建立用户自定义的函数。以下建立用户自定义函数get_MOCTASTATE20函数功能:统计各个车间加工各种工单的数量CREATEfunctionget_MOCTASTATE20returns@tabinfotable(MQ001Char(4),MQ002Char(1O),TA011Char,TA009char(S),TA010char(8))勰begininsert@tabinfoselecta.MQ001,a.MQ002,CASEb.TA011WHEN’l’THEN’1’W}玎巳_N’2’THEN.2’WI-IEN…3THEN川3WHEN.y.THEN.4.WHEN~YTHEN…5END,TA009,TA010第四章生产管理可视化系统开发关键技术53FROMCMSMQas如MOCl:AASbWHEREa.MQ001=b.TA001returnend这样,有了上述的自定义函数做铺垫,利用SQL查询语言实现如下:SELECTMQ001,MQ002as车间工单,sum(COALESCE(NULLIF(TA011,’1’),1000)/1000)as未生产工单数量FROMgeLMOCTASTATE20groupbyMQ001,MQ002orderbyMQ001,MQ002说明:将SQL语句中相应的换为以下,就可实现其他种类的工单数量统计sum(COALESCE(NULLIF(TA01l,’2’),1000)/1000)as己发料工单数量sum(COALESCE(NULLIF(TA011,’3’),1000)/1000)私生产中工单数量sum(COALESCE(NULLIF(TA011,’5’),1000)/1000)as已完工工单数量sum(COALESCE(NULLIF(TA01l,t4’),1000)/1000)船指定完工工单数量具体的sum(COALESCE(NULLIF(TA011,’l’),1000)/1000)函数的意义可参考SQL语言查询类书籍。4.4.4数据库中信息分类提取的处理。一、在子模块“企业材料"信息分类的处理。在这一模块中,需要显示企业库存材料种类和资金占用情况。由于库存材料种类较多,一一将其列出界面显示效果不好,特别是利用饼状图显示资金占用比例和金额时,所显示内容堆砌重叠,不够清晰。而且不能让用户快速地找到所关心材料的情况。为此,需要对几种比较重要的材料进行相关统计,其它的材料整合到一起即可。但是,在数据库中,直接用简单的SQL查询语句很难以实现重要材料和其他材料的分别统计。为此,建立了用户自定义函数Material_Classi母』1190。函数功能:分别统计几种重要的材料和其他材料。CREATEfunctionMaterial_Classi≈§1190returns@tabinfotable(Material_Namechar(40),Material—Nochar(10),Sum—.Fundsint)嬲begininsert@tabinfoselectta.MA003鹤分类名称,ta.MA002AS编号,cast(sum(tb.MB046)aSint)觞总价格fromINVMBaStb.INVMAaSta54企业生产管理可视化系统研究与开发where(ta.MA003=。有色金属’orta.MA003=’化学库’orta.MA003=’办公用品’01"ta.MA003=’工具库’orta.MA003=’毛坯’orta.MA003=’机动库’or诅.MA003=’电器成件’)andta.MA001=’1’andtb.MB005=ta.MA002groupbyMB005,ta.MA002,ta.MA003insert@tabinfo(Sum—Funds)selectcast(sum(tb.MB046)asint)fromINVMBastb,INVMAaShawhereta.MA001=·l’andtb.MB005=ta.MA002and(ta.MA0031=’有色金属’andta.MA0031=’化学库’andta.MA0031=’办公用品’andta.MA0031=’工具库’andta.MA0031=’毛坯’andta.MA0031=’机动库’andta.MA0031=’电器成件’)retumend这样,在定义了上述的用户自定义函数后,即可利用接单的SQL查询语言实现。详细SQL语句可参见第二章数据库信息分析相关内容。二、在子模块“企业人员"信息分类的处理。1.部门人员统计在这一模块中,需要统计几个重要部门的人员数量,其它部门人员数量整合到一起另外统计。需要建立用户自定义函数DepartmentStatic_01190。函数功能:统计几个重要部门人员数量和其他部门人员数量。CREATEfunction[dbo].[DepartmentStatic_0119】()returns@tabinfotable(UDF05char(20),UDF06int)豁begininsert@tabinfoSELECTUDF05AS部门,COUNT(*)as各部门人员数量FROMCMSMVwhereMV003=’001’AND(UDF05=’生产实体’orUDF05=’运营管理部’orUDF05=’人力资源部’orUDF05=’粮机事业部’orUDF05=’行政事务部’orUDF05=’科技发展部’orUDF05=’公司办公室.)groupbyUDF05insert@tabinfo(UDF06)SELECTCOUNT(*)as各部门人员数量FROMCMSMVwhereMV003=’001’ANDUDF051=’生产实体’andUDF051=’运营管理部’andUDF051=·人力资源部’andUDF051=’粮机事业部’andUDF051=’行政事务部’andUDF051=’科技发展部’andUDF051=’公司办公室’retulmend第四章生产管理可视化系统开发关键技术这样,在定义了上述的用户自定义函数后,即可利用接单的SQL查询语言实现。详细SQL语句可参见第二章数据库信息分析相关内容。2.学历的统计(1)需要建立用户自定义函数EducationStatic一01190。函数功能:统计各个部门人员关键学历和其他学历构成状况。CREATEfunction[dbo].[EducationStatic_0119]0returns@tabinfotable(M1002chat(8),M1003int)asbegininsert@tabinfoselectb.M1002AS学历名称,COUNT(*)aS学历分类数目fromCMSMVAS如PALMIASbwherea.MV003=’001’ANDa.MV012=b.M1001AND伯.M1002=’硕士’orb.M1002=’大学’orb.M1002=’大专’orb.M1002=-中专’orb.M1002=’中技’orb.M1002=’高技’)GROUPBYb.M1002insert@tabinfo(M1003)。selectCOUNT(*)as学历分类数目fromCMSMVAS如PALMIASbwherea.MV003=’001’ANDa.MV012=b.M1001ANDCb.M10021=’硕士’andb.M10021=’大学’andb.M10021=’大专’-.andb.M10021=’中专’andb.M10021=.中技’andb.M10021=’高技’)retttmend(2)建立用户自定义函数EducationDeptStatic_0119(@deptasvarchar(60))。函数功能:统计某个部门人员关键学历和其他学历构成状况。其中,变量@dept为输入参数,指明要统计的部门。CreatefunctionEducationDeptStatic01l9(@dept嬲varchar(60))returns@tabinfotable(M1002char(8),M1003hat)弱begininsert@tabinfoselectb.M1002AS学历名称,COUNT(*)弱学历分类数目fromCMSMVAS钆P!ALMIASbwherea.MV003=’001’ANDa.MV012=b.M1001AND(b.M1002-’硕士’orb.M1002=’大学’orb.M1002='大专’orb.M1002=’中专’企业生产管理可视化系统研究与开发orb.M1002=’中技’orb.M1002=’高技’)anda.UDF05=@deptANDa.MV003=’001’GROUPBYb.M1002insert@tabinfo(M1003)selectCOUNT(*)as学历分类数目fromCMSMVAS毛PALMIASbwherea.ⅣⅣ003=’001’ANDa.MV012=b.M1001AND(b.M10021=’硕士’andb.M10021=’大学’andb.M10021=’大专’andb.M10021=’中专’andb.M10021=呻技’andb.M10021=’高技’)anda.UDF05=@deptanda.MV003=’001’returnend4.5小结本章研究生产管理可视化系统的关键技术,在系统的开发中占有重要地位,是系统开发中面临的主要难题。本章主要介绍了数据库中数据信息提取挖掘,数据库应用程序开发中数据库组件的设置以及程序设计、编制和实现等方面需要解决的关键技术,包括数据可视化技术、工艺加工流程简图生成技术、可视化数据挖掘技术等。第五章生产管理可视化系统详细设计与实现57第五章生产管理可视化系统详细设计与实现5.1引言系统的详细设计与实现是在系统总体设计和规划的基础上,对系统各功能模块及子功能模块需要展示的信息进行具体的设计和实现。它涉及众多部分的设计,包括软件用户界面设计、程序代码设计、用户权限设计和计算机处理过程设计等Il9J。本章就软件用户界面设计给出其具体设计原则,并详细阐述了典型模块的详细功能。而程序主要代码的设计则穿插在功能模块的介绍中,至于用户权限设计等其它部分不再给出。5.2软件用户界面设计留.软件用户界面,亦称人机界面,人机交互界面,是用户与计算机通过软件进行信息交流的接口,是人和计算机相互交换信息的桥梁,起连接和协调的作用。它是计算机科学与人机工程学,心理学,社会学以及艺术设计等领域综合研究的成果。目前的软件界面处于图形用户界面时代,具有简单,直观,所见即所得等特点。一个软件系统的用户界面即是该系统的“脸面",又是用户了解该系统的门户。因此用户界面设计的好坏直接关系到用户对系统的直观感受和使用效率。一个友好的用户界面能够使用户产生赏心悦目和得心应手的美好感觉,这自然就拉近了系统和用户之间的距离。用户界面的设计既要考虑美学效果,又要注意尊重用户的使用习惯,特别是考虑用户所处的行业部门。由于用户界面设计是一门交叉性、边缘性、综合性的学科,涉及众多复杂内容,这里不做过深的探讨。现在只就本可视化软件系统涉及到用户界面设计方面的一些主要的方法和原则做一陈述‘391‘141】:1.以人为本,以用户为中心,充分考虑用户特性和用户需求。用户界面的设计应该摒弃以前那种“以机器为本’’的旧思想,发扬计算机信息时代“以人为本"的先进思想。“以人为本"即是用户界面设计时体现“以用户为中心"的设计原则。它包括设计时分析用户特性和用户需求。用户特性是指使用软件的特定用户群体所具有的一些特征的集合,如行业背景、职位、地域、受教育程度、使用计算机的熟练程度等多种因素;用户需求是指直接用户或者设计者站在用户视角来描述的软件系统的功能需求和非功能需求,通常只涉及系统58企业生产管理可视化系统研究与开发的外部行为,不涉及系统内部行为。用户需求应该易于用户理解,一般不易采用技术性很强的语言,而是采用自然语言和直观图形相结合的方式进行描述。本软件系统在用户界面设计时,设计师、用户界面与用户之间的交互模型如下图5.1所示:图5.1设计师、用户界面与用尸之间的交互模型设计师首先分析用户特性和(设计师站在用户视角下的)用户需求结合自己的经验和技术,将构思转化为界面(包括人机交互方式,界面的布局、采用的符号、色彩等),初步形成自己的界面设计初稿,并给用户一种诱导。用户依据自己的经验和需求,通过使用设计师给予的界面设计初稿,以联想的方式与设计师的界面进行交互,当这种交互达到一致或者相互耦合时候,这种形式的界面就满足了用户的需求,是一个好的设计;当这种交互达不到一致时,就达不到用户的满意度,甚至会误导用户的行为,必须重新予以修改或者完善。2.整体界面布局简洁明了从人机工程学角度来说,整洁,简单明了的界面布局能有效提高人机交互的效率。本软件系统用户主要面向企业上层领导,界面设计应该简洁直观,使用户接触软件后对界面上的功能一目了然,不需要多少培训就能掌握整个软件。3.整体软件界面应操作简单,本软件界面设计上基本不需要用户的输入,单单依靠鼠标和无限多功能演示器的点击操作就可以展示软件全部功能。此外,软件有适当的响应时间,容错能力强。对于操作上的失误,会出现相关提示信息(如成功信息、出错信息和警告信息等),容许用户重新选择项目,而不会使系统“死机"。4.界面布局的顺序——从左上角开始第五章生产管理可视化系统详细设计与实现59一般来说,人眼习惯于从左到右、从上到下的搜寻扫描运动与顺时针方向运动;另外由于人眼的视觉机能不完全对称,在偏离中央位置同样距离的视野范围内,眼睛对各象限的观察效率按照左上、右上、左下、右下的顺序递减。因此,晃面布局应符合人的视觉特点,提高视觉认读效率和准确度。5.界面布局应协调一致整个软件用户界面的设计应该保持界面的协调一致性,包括使用标准的控件,使用相同的展示方式等。比如,在本软件界面设计时,虽然设计的功能模块比较多,但各个子模块几乎沿用了相同的展示手法:先展示某一功能模块整体的情况,即统计页面;再展示其详细状况,即明细页面。再如在字体、色彩、图标、分辨率等方面都使用统一的、易于用户理解和识别的表现方式。协调一致的布局风格让用户较好地理解和掌握了软件的功能。对关键的、常用的选择项提供立即访问的可能,即将它们放在优先可选到的位置。同时,还要提供一个可随时退出系统的热键,当用户由于某种原因在进入系统后又不想再运行下去时能立即退出来。例如,在本系统软件子模块界面中的“统计"、“标签”按钮,即为关键、常用的热键,用来实现相关内容的切换。另外,界面右上角叉形按钮和子模块界面底部的“返回’’按钮,可实现相应页面及时关闭和返回上一级。6.用户界面的颜色一些刺激性的物理特性常常影响人的视知觉,这些特性包括亮度、对比度以及颜色配置等。其中亮度及对比度可以通过计算机硬件的相应开关来调稍但颜色配置要在软件设计阶段完成。对于人来说,物体的颜色在视觉感受上往往留下“第一印象”,给人以先声夺人的感觉,因为色比形更具有吸引力和感染力。颜色设计的目的是如何把握运用颜色的精神功能或称审美功能和物质功能来表现目标的造型形象,使目标的功能特性更加突出,有利于认知效率的提高。本软件系统用户界面主体背景颜色采用了“天空蓝"的蓝色。一方面,蓝色是比较理想的背景颜色,对眼睛刺激最不强烈,比较适合在此基础上展示显示其它的内容;另一方面,蓝色是该航空企业典型的代表色,它能较好地象征企业特色。在该软件的主页面设计上,把显示的“热烈欢迎}·幸·各位上级领导莅临指导"字体设置成红色,显示出庄重热烈的氛围,见下图5.2所示。企业生产管理可视化系统研究与开发—■—■■—墨IllIlllJlIIO,㈣I--。7k够……………………………。。…。。。…{F’…ij、。f一?jj,jj7热烈欢迎一+二~…j‰…?z一。…鼍解的内容,业背景、发况有一个全设备、企业业概况的功现,至于其类似,这里第五章生产管理可视化系统详细设计与实现61总体概况是为向上级领导展示企业背景、发展历程、企业文化、取得的成绩、近期公司状况以及未来发展目标等企业总体状况的一个功能模块。通过这一模块,上级领导可以对企业有一个宏观的了解。在功能实现上,它是调用一个企业提前做好的、用于向上级领导汇报工作的PPT(PowerPoint,简称PPT)。在程序实现上,它可以两种方式来实现:一是固定路径,即用户将事先做好的PPT放在程序设计者指定的路径下,软件运行时直接点击“工作汇报’’按钮即可打开做好的PPT;另一种是灵活路径,即用户可将做好的PPT放在电脑任意位置,软件运行时,点击“工作汇报”按钮后,弹出所调用PPT路径的选择。由于第二种较灵活方便,最终用户选择了这种方案,见下图5.4所示。具体程序实现代码由于较简单,不再给出。5.4工作汇报PPT路径的选择5.4生产管理模块实现生产管理这一模块基本按照企业生产产品活动流程进行展示,过程简洁清晰,便于用户理解。生产管理介绍了产品交付、计划执行、能力统计、车间运行等四个方面内容,用户通过生产管理的这四个模块,可以对企业的产品订货和销售情况、产品生产和入库情况、车间加工能力状况等有个全面了解。生产管理的功能结构图如下图5.8所示。各个子模块在功能上仍基本按照统计和明细两个页面来展示。四个子模块在操作展示和代码设计实现上基本类似,故只以产品交付模块为例加以介绍。62企业生产管理可视化系统研究与开发生产管理产品交付全部产品全部产品工作中心车间订单销售计划入库运行能力统计作业状况对比统计对比统计(工序个数、机时)统计全部产品计划执行时间统计车间运行能力车间工单(工时)统计明细某-一产品零组件车间设备订单销售计划入库运行能力统计明细(工时、利用状明细况)某一产品零组件订单销售计划入库车间零组件对比统计对比统计加工工艺图工作中心零组件运行能力计划执行明细时『日J明细零组件车闻设备计划执行运行能力时间统计明细图5.8生产管理模块功能结构图生产管理功能示例——产品交付5.4.1功能产品交付主要使用户了解企业的产品订货和销售情况,主要功能是实现企业产品的订单数量和销售数量的比较以及某一产品在不同批次的交付情况(包括交付时间和交付数量)。5.4.2操作示例及功能展示进入生产管理子模块后,点击圆按钮,进入产品交付页面(在默认的情况下,生产管理中“产品交付"按钮被激活。),如下图5.9所示。界面左面列出产品的名称及型号,右面显示统计信息,统计了在给定时间段内产品的订单数量和销售数量的对比状况。此外,界面的右下角有实现翻页的按钮,可翻页查看。在界面的顶头起止时间的限制,起始日期和截止日期默认情况下是显示当前所在年度,如果点击上一年度按钮可了解上一年度的产品交付情况。第五章生产管理可视化系统详细设计与实现图5.9产品交付——统计页面点击界面左列的某一个产品,会在右面列出其产品的明细信息,包括三方面的内容:一是列出的该产品在给定时间限度内的总的订单数量和总的销售数量,在右面的最上面显示。二是以表格的形式列出该产品的分批次销售情况,如订单单别、订单单号、订单序号、预交货日等,在右面的中间显示。三是以柱状图的形式列出所点击的产品分批次的对比信息:预交货日和实际交货日的比较、订单数量和交付数量的比较,在右面最下面显示,如图5.10所示。在明细页面里也可点击“下一年度”、“上一年度"、“上一月份"、“下一月份"来查看给定的任意时间段的产品交付情况的明细。图5.10产品交付——明细页面5.4.3代码设计和实现1.统计页面这一页面总体上按照左右两个页面来实现,左页面列出所需要统计的产品,这些产品的单子通过提取数据库中产品的对应信息后并由程序自动生成和控制。程序中所主要需要代码如下:企业生产管理可视化系统研究与开发一fastcallTFormManufacture::TFormManufacture(TComponent宰Owner):TForm(Owner){MListButtons_Group幸ButtonsGroup=newMListButtons_Group0;Create_ButList_Products(ButtonsGroup);ButtonsGroup一>Add(BL.Products);ButtonsGroup一>Form=FormManufacture;}voidTFormManufacture::Create_ButList_Products(MListButtons_Group·aButtonsGroup){StringProductName;BL-Products=newMListButtons_Strings(aButtonsGroup);BUroducts->Button=(TWinControl+)But』roducts;BL_Products->Rows=2;BLProducts.>AddFields(”ZFERPl’lgt!提取显示的产品信息(如产品名称,型号等)的SQL语句”,”产品信息l”,”产品信息2”);)说明:具体的SQL语句可参见第三章中数据库分析相关内容。注意:Eh于利用SQL从数据库中提取出产品的名称后会出现相同的名称很多,为此必须把产品的另一种信息也显示出来,而且用户实际中也比较关系产品型号这一信息,故在显示上按照“产品名称/产品型号”来显示,上述程序中的产品信息1对应产品型号,产品信息2对应产品名称,实际中如需更改可根据此进行。界面显示效果如图5.9左页面所示右页面以可视化的方式统计左页面所列产品的某些需要展示的信息。如在产品交付中右页面需要展示所有产品的订单数量和销售数量的对比信息,程序中所需要主要代码如下:∥判断是处于哪一个子模块,然后做子模块对应的统计信息void—fastcallTFormManufacture::ButtonStaticsClick(TObject·Sender){if(PC_Manufcture->ActivePage—TS—Submit)D叶S—Statics0;>//功能:产品交付的统计信息voidTFormManufacture::Do—.PS——Statics0第五章生产管理可视化系统详细设计与实现{∥设置TableSheet的可见性SetOnlyPageControlVis(PCProductSubmit,TS_ProductSubmitStatics,true);∥修改“产品交付统计"页面的标签unsignedshortintyear_start,monthstart,day_start;unsignedshortintyear,month,day;DecodeDate(DateStatics->Date,year,month,day);DecodeDate(DateStatics_Start->Date,year_start,month_start,day_start);//右页面顶头标题的修改TS_ProductSubmitStatics->Caption=IntToStr(year_start)+”年”+IntToStr(month_start)+”月~”+IntToStr(year)+”年”+IntToStr(month)+”产品交付情况统计”;StringaSqlText=String(”提取产品订单数量和销售数量的SQL语句”);OpenQuery_Complex(Query.PS—Statics,aSqlText,true);ChartAutoZoom_Y((TChart木)DBChart—PS—Statics);>其可视化效果如下图5.9右页面所示。2.明细页面这一页面主要以右半页面显示的信息为主,通过点击左面所列产品单子中的某一产品,进而触发这一产品相关的事件,通过提取数据库中这一产品的相关信息,从而在右页面以可视化的方式显示出来,程序中所需主要代码如下://功能:点取某个产品按钮,显示其明细信息void—fastcallTFormManufacture::But-ProductsClick(TObject宰Sender){TButton·aBut=(TButton·)Sender;if(PCManufcture->ActivePage—TS—Submit){DoProductSubmit(aBut->Hint,aBut·>Caption);)}//功能:已知产品编号aProductNo,获取其提交情况的明细信息voidTFormManufacture::DoProductSubmit(StringaProductNo,Stringname){MingXilD=aProductNo;∥设置TableSheet的可见性企业生产管理可视化系统研究与开发SetOnlyPageControlVis(PC_ProductSubmit,TS_ProductSubmit,true);//修改“产品交付统计"页面的标签unsignedshortintyear_start,monthstart,day_start;unsignedshortintyear,month,day;DecodeDate(DateStatics->Date,year,month,day);DecodeDate(DateStatics_Start->Date,year_start,month_start,day_start);DecodeDate(DateStatics·>Date,year,month,day);//右页面顶头标题的修改TS_ProductSubmit->Caption=IntToStr(year_start)+”年”+IntToStr(monthstart)+”月~”+IntToStr(year)+”年”+IntToStr(month)+”月”+aProductNo+”产品交付情况明细”;StringaSqlTextl=String(”提取某一产品明细信息的SQL语句”);OpenQuery_Complex(QueryJSj沁quired,aSqlTextl,true);)其可视化效果如图5.10所示:5.5小结本章研究生产管理可视化系统的详细设计和实现,是系统开发的具体落实。本章介绍了软件用户界面设计的重要性和设计原则,详细说明了软件的部分模块的功能、操作和代码设计与实现,并给出图例加以说明。第六章总结与展望67第六章总结与展望6.1总结本文以某航空企业的“数字化企业可视化管理系统”项目为工程背景,结合企业现有的各种信息化系统和项目功能需求,研究和开发了一套企业生产管理可视化系统,实现了对生产管理领域的信息进行可视化和量化。论文主要通过研究生产管理方面的基本理论和信息可视化方面的基本技术,借助C++Builder这一可视化集成开发工具,利用功能强大的数据库查询语言SQL语句,最终实现了生产管理信息的可视化开发。现将本论文所做工作总结如下:1.通过了解目前制造业信息化、信息可视化、生产管理信息可视化的国内外研究背景和应用研究现状的基础上,得出信息可视化技术在企业生产管理中的运用相对匮乏,应用范围较窄,指出本论文所开发的生产管理信息可视化系统的必要性。接着研究了生产管理可视化系统的相关的基本理论和技术。包括先进的生产管理技术,ERP和MES的基本理论,信息可视化的基本理论和技术。2.对生产管理可视化系统进行了总体的设计。研究系统软件开发的总体框架规划,为后续详细设计提供指导。它包括系统开发遵守的设计原则、结构层次和功能设计、软件网络体系结构的选择、开发工具的选择和开发技术的采用等。3.对生产管理可视化系统进行了详细设计与实现。主要研究系统的具体实现和功能的具体展示,包括软件用户界面设计的重要性和设计原则,详细设计了软件的部分模块的功能。其中的关键是各个子模块展示信息的具体设计和软件程序代码的编写和实现。4.对本系统数据库进行了分析。为避免企业数据库系统的大量增加和减轻数据库管理与维护负担,同时也为满足系统开发时业务功能展示的实时性和准确性,本系统的开发没有引入新的数据库,而是基于企业原有的最底层数据库系统进行分析与研究。它包括数据库结构分析和数据库信息分析两个方面。数据库分析在本系统中主要是结合系统各个待开发功能子模块来进行的,按照各模块所需要展示的信息来反追述信息在数据库中存储的位置,然后将其挖掘提取出来。其中的关键是确定所需某个业务信息模块对应的数据库系统和相应的信息表。5.克服了生产管理可视化系统开发的关键技术。主要研究和解决系统数据库中数据信息可视化方面的三个关键技术:数据可视化技术、工艺加工流程简图生成技术、可视化数据挖掘技术。68企业生产管理可视化系统研究与开发6.2展望在生产管理领域,将可视化技术应用其中,实现生产管理信息的可视化和量化,目前还处于初级阶段,应用范围也较小,比较局限,需要做进一步的深入研究和探讨。针对本文的研究工作,作者认为至少有以下两个方面需要做更进一步研究和完善:1.在系统功能设计和子模块功能展示上,具体展示怎样的信息有待完善和统一,以便使本可视化系统的开发具有普遍的实用性。由于本系统的开发是专为某一具体企业项目需求而做的工作,如果要使其得到应用推广,必须实际结合众多企业进行实践,对所需功能进行改进和完善。2.本可视化管理系统的开发仅是为本工程项目的实际需求而所做的工作,具有时域和地域上的局限性,为了更好地展示企业总体的信息化成果和管理水平,为企业管理者提供决策支持,解决制造企业信息孤岛下企业决策数据获取和表达困难问题,需要进一步研究和开发一个全新的企业决策支持体系结构,实现决策信息量化的企业决策支持系统。致谢致谢衷心地感谢我的导师盛英副教授、仇原鹰教授!本论文所做工作是在导师盛英副教授的辛勤指导下完成的。在论文的撰写过程中,从论文的结构框架到内容,甚至字句语法和标点,盛老师都提出了中肯贴切的修改意见。盛老师细心的谆谆教诲和丰富的科研实践经验都给予我莫大的帮助。此外,盛老师对我生活和学习中都给予无微不至的关怀和帮助,力所能及地帮助我解决生活中的困难,为我创造了良好的学习和科研工作环境。导师的爽快、豁达的生活态度和雷厉风行的工作作风都使学生受益匪浅。感谢仇原鹰教授在我论文工作和从事科研项目期间给予的悉心指导和帮助。在读研期间,仇老师学术上的渊博睿智和对问题的敏锐洞察力,生活中高尚的师德品格和平易近人的处事风格,科研中的严谨求实和兢兢业业给我留下了深刻的印象,是我今后学习的榜样。繁再次感谢两位导师的关怀与厚爱,感谢你们的赏识,学生将铭记在心。感谢课题组的邵晓东老师、孔宪光老师、常建涛老师、李申老师等!各位老师在课题组例会上的学术讨论使我不仅学到了的知识,还懂得了在工作中相互交流的方式、方法,也培养了我的团队协作意识,为我今后更好地工作学习奠定基础。特别感谢孔宪光老师、常建涛老师在科研工作之余,工作和生活上给予的无私的、友谊般的建议和帮助!感谢同处两年多的科研室的雷超、廖利、刘鹏、李大鹏、张宝会、楼经给予的帮助和关心!感谢王文君、云永琥、庞运、刘劲、曹罡、李凯等同学在读研期间的无私帮助!让我倍感温暖!感谢父母、叔叔、姑姑和弟妹给予的精神鼓励和无私帮助!感谢你们的一路支持和陪伴!此外特别感谢论文评阅人,在百忙之中抽出时间对论文进行审阅。感谢所有曾给予我帮助和支持的老师和同学们!70企业生产管理可视化系统研究与开发参考文献参考文献[1]秦京.我国信息化建设现状[EB/OL].http://WwW.edu.cn,2005-03-10.[2]马万太,谭惠民,黎志光,刘惠文.ERP闭环实现关键——ERP/MES/底层控制集成系统研究[J].中国机械工程,2003,14(16):1387-1390.[3]余军合,祁国宁,吴昭同,顾新建.PDM与ERP系统集成方法及应用研究[J].计算机集成制造系统,2001,7(6):49-51.[4]徐红岩.制造业信息化发展的国际比较研究[J].天津成人高等学校联合学报,2005,3(7):122-1223.[5]金江军.两化融合之国内外现状趋势及经验分析【J】.信息化建设,2009,9:7-8.[6]伍瑞华,宋宣梅.制造业信息化与先进制造技术的发展[J].机械设计与制造,2005,(6):162-163.[7]周宁,张玉峰,张李义.信息可视化与知识检索[M].北京:科学出版社,2005,1-17.[8]周宁,张李义.信息资源可视化模型方法[M].北京:科学出版社,2008,I-i0.[9]魏东,李前,杨世杰.矿井生产管理数字化与三维可视化信息技术[J].煤炭科学技术,2004,32(10):23—25.[10]王俐,唐思广.油田物探生产可视化管理系统[J].北断块油气田,2002,9(3):23—-25.[11]HoonJung,KeumwooLee,WookwanChun.IntegrationofGIS,GPS,andoptimizationtechnologiesfortheeffectivecontrolofparceldeliveryservice[J].Computerandindustrialengineering.2006,51:154·162.[12]林巨广.面向装配过程的可视化制造执行系统及其关键技术的研究[D]:[博士论文].安徽:合肥工业大学,2007.[13]林胜.集成制造车间生产控制和管理技术研究[J].第七届中国国际机床展专辑,2001,2:28—30.[14]Kotani,S..Optimalmethodforchangingthenumberofkanbansinthee—Kanbansystemanditsapplications[J].IntemationalJournalofProductionResearch,2007,45(24):5789---5809.[15]Parry,G.C.,Turner,C.E..Applicationofleanvisualprocessmanagementtools[J].ProductionPlanningandContr01.2006,17(1):77-86.[16]Elliott,Monica.Advancedplanningandschedulingsoftwarep].1iESolutions.2000,32(10):48.57.企业生产管理可视化系统研究与开发[17]何亮.金碟ERP-K/3培训教程一财务核算/供应链管理/物料需求计划[M].北京:人民邮电出版社,2007.[18]Dong,GH.Baek,SangY.OHandWanC.Yoon.Avisualizedhuman-computerinteractiveapproachtojobshopscheduling[J].InternationalJournalofComputerIntegratedManufacturing.1999,12(1):75—83.[19]高薇,柔性车间生产计划及其可视性系统的研究与实现[D].西安,西安石油大学硕士学位论文,2004.[20]H.Z.Jia,J.Y.H.Fuh,A.Y.C.Nee,etal.IntegrationofgeneticalgorithmandGanttchartforjobshopschedulingindistributedmanufacturingsystems[J].Computers&IndustrialEngineering.2007,(53):313—320.[21]陈庄,毛华扬.ERP原理与应用教程[M].北京:电子工业出版社,2006:37—39.[22]马秀斌,黄友森.制造业ERP系统的基本功能[J].制造业自动化,2001,23(8):28—31.[23]MESAInternational.MESExplmned:AHighLevelVision.MESAInternational-WhitePaper6,1997.[24]于春平.C/S模式车间级生产管理系统的研究[D].大连:大连理工大学硕士学位论文,2008.[25]杨峰.从科学计算可视化到信息可视化[J].情报杂志,2007(1):18—20.[26]柳超.信息可视化技术及其在装备保障中的应用[J].信息化技术及应用,2004(2):26-27.[27]孟玉琴.浅谈管理软件设计原则[J].承德民族师专学报,1999,(2):52—53.[28]陈晓斌,刘玉兰,梅家骝.应用软件设计原理与方法探讨[J].南昌大学学报,2000,22(3):97—98.[29]薛宇锋.水电厂管理信息系统总体设计[D].四川:四川大学硕士学位论文,2003.[30]王哲健.中小型机械制造企业生产管理信息系统设计与实现[D].哈尔滨:东北农业大学硕士学位论文,2007.【31】RobertD.Doverspike.FutureTransportNet-workArchitectures[J].IEEECommunicationsMagazine,1999,8,pp96-101.[32]吴毅杰,张志明.c/s与B/S的比较及其数据库访问技术[J].舰船电子工程,2003,(2):32—34.[33]宋玉贤.企业信息化管理[M].北京:北京大学出版社,2006:129—137.[34]李春葆,曾慧.SQLServer2000应用系统开发教程[M].北京:清华大学出版社,2008:23—27.[35]王俊伟,史创明等.SOLServer2000数据库管理与应用[M].北京:清华大参考文献学出版社,2006:18-20.[36]程国栋,冯启明.基于Delphi的数据库应用技术[J].武汉理工大学学报,2007,26(1):96—97.[37]王智群.C++Builder中数据库连接方法[J].计算机时代,2002,(12):28-30.[38]赵卿松,张彦铎,陈立平.ARX在工艺加工流程简图绘制工具中的应用[J].计算机辅助工程,2005,14(1):62—63.[39]吴永春,黄毓瑜.软件界面设计技术探讨与实践[J].工程图学学报,2007,(6):52—53.[40]李建中,李银靛.计算机软件用户界面设计探讨[J].现代机械,2000,(3):5-6.[41]郭会娟.计算机软件用户界面设计研究[A].2007国际工业设计研讨会暨第12届全国工业设计学术年会[C],2007年.[42]杜平安.制造业信息化的发展与现状研究[J].中国机械工程,2003,14(13):1126一1129.,[43]任长谊.我国机械制造企业信息化现状[J].微型机与应用,2008,(3):45-47.[44]陈灿煌.C++Builder6彻底研究[M].北京:中国铁道出版社,2003.[45]蒙祖强,龚涛等.C++Builder程序员成长攻略[M].北京:中国水利水电出版社,2007.[46]谭浩强.C++面向对象程序设计[M].北京:清华大学出版社,2006.[47]王晟.C++Builder数据库开发经典案例解析[M].北京:清华大学出版社,2005.[48]曹岩,王海宇.C++Builder应用程序开发实例与技巧(上、下册)[M].西安:西安交通大学出版社,2005.[49]TomSoukup,lanDavidson著,朱建秋,蔡伟杰译.可视化数据挖掘[M].北京:电子工业出版社,2004.[50]马士华,崔南乡,周水银等.生产运作管理[M].北京:科学出版社,2005.[513高晓平.先进制造管理技术[M].北京:机械工业出版社,2005.[52]孙宗虎,付伟.生产管理流程设计与工作标准[M].北京:人民邮电出版社,2006.74企业生产管理可视化系统研究与开发在读期间研究成果在读期间的研究成果在硕士研究生期间取得的研究成果如下:一、参加科研情况:1.参与了某飞机装备有限公司的“数字化企业可视化管理系统"的研究和开发。主要完成生产管理和科研管理可视化的设计和开发工作。2.参与了某研究所“电子设备隔振缓冲关键技术’’项目,主要完成隔振缓冲原理的编写和总结工作。二、发表论文情况:XianguangKong,YongxiangWang,BinqiangMa.PrintedCircuitBoardAssembleProcessDecision-MakingSystemBasedonKnowledge[J].AppliedMechanicsandMaterials,2010,Vols.37-38,pp:899-904.