某钢厂天车物流系统定位推理软件设计_第1页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE题目:某钢厂天车物流系统定位推理软件设计摘要随着信息技术的迅速发展与广泛应用,计算机应用已经深入各行各业。为了能提高生产经济效益、加强安全生产力度,针对钢厂行业实际开发生产技术应用软件已成为企业现代化管理和生产不可缺少的手段之一。本系统经过软件需求分析,在VisualStudio2008的环境下,应用C#语言完成开发。基础思想主要是通过X轴和Y轴坐标实现天车定位,把通过无线设备发射后接收的数据和已经事先存入数据库中的数据匹配,达到实时监控的效果,有助于实现生产管理的科学化、高效化、安全化,甚至进一步向自动化炼钢转变。本系统不仅提供监控,还可以实现数据维护、备份以及其他相关功能。关键词:天车物流;监控;定位;无线接收;称重ABSTRACTWiththerapiddevelopmentandwideapplicationofinformationtechnology,computerapplicationshaveavarietyoffields.Inordertoincreaseproductionbenefitandenhancesafetyefforts,theactualdevelopmentandproductionforthesteelindustrytechnologyapplicationshavebecomeanindispensablemodernmanagementandoneofthemeansofproduction.Aftersoftwarerequirementsanalysis,thesystemapplysC#languagetocompletethedevelopmeninVisualStudio2008environmentt.ThemethodeisbasedmainlythroughtheX-axisandYaxiscoordinatestoachievecraneposition.Itmatchesthedatadeliveringbyawirelessdevicewiththedatastoredinthedatabasetoachieverealtimemonitoringeffects,contributingtoShengchanmanagementofscienceoriented,efficient,safe,andevenfurtherchangestotheautomationofsteel.Thissystemprovidesnotonlymonitoring,butalsoallowsdatamaintenance,backupsandotherrelatedfunctionstoachieve.KeyWords:Crancelogistics;Locate;Wireless;WeighII--PAGEI-目录1绪论 11.1本课题研究的背景 11.1.1国内炼钢行业的发展现状 11.1.2国内外本系统的开发情况 11.2本课题研究的意义 21.2.1本课题实现的大体思路 21.2.2本课题实现的意义 21.3系统结构 31.3.1系统的组成 31.3.2软件的组成 31.3.3硬件的组成 42相关技术及开发环境介绍 52.1无线传输协议 52.2开发环境介绍 52.2.1Windows窗体 62.2.2对系统要求 72.3C#语言简介 83系统的需求分析和设计 113.1系统整体需求功能描述 113.2系统监控定位功能需求描述 113.3系统其他功能需求描述 113.4人机界面需求描述 123.5UML基本模型分析 123.6系统详细设计 134数据库的设计与链接 204.1数据库的选择 204.2数据库的链接 214.2.1数据库链接语句 214.2.2数据库增删改查 214.3数据库的表设计 225系统功能实现 236测试 286.1明确测试的目的 286.2测试策略 286.3测试结果 287结束语 30致谢 31参考文献 32附录 I附录A钢厂的实地环境平面图 I附录B钢厂的实地环境立体图 II附录C钢厂的生产流程简图 IIIIII-1绪论1.1本课题研究的背景1.1.1国内炼钢行业的发展现状目前,随着计算机技术的迅速发展与广泛应用,计算机软件已遍布各行各业,像医院管理系统、学校图书馆管理系统、酒店管理系统、工厂人事管理系统以及其他软件系统。尽管计算机软件的应用不断地深入人们的生活和生产,人们对软件的需求却没有减少。越来越多的软件,为了实现客户的特殊要求,不断地应需而生。炼钢厂目前也十分重视软件的应用,就河北范围内的炼钢厂来说,张家口的宣钢已经报道说实现了生产列车时刻表,指导实际生产;唐山一轧钢可以通过软件在调度室知道转炉的详细情况,如开始时间、吹氧时间、钢种、出钢时间等,;其他钢厂也广泛的使用着大量软件来减少投入、增加效益。1.1.2国内外本系统的开发情况为了能创造更大的经济效益,实现科学、现代化地管理和生产,炼钢行业仍需要增加更多的计算机软件,来实现其特殊用途。目前,炼钢厂的天车物流系统还停留在监视器+对讲机时代:进入钢厂调度室,可以看到N多个显示屏实时监控,管理人员拿着对讲机不断指挥调度。指挥调度不科学、人员操作不及时、生产的不稳定等,大大地影响了生产管理和人员安全,降低工人的工作效率,阻碍了工厂效益的进一步提高。实现本系统是有些难度的,可以说钢厂的天车定位思想在全国都是领先的,也就是说可以借鉴和参考的信息寥寥无几,完全要通过摸索和尝试才能完美化地实现该软件系统。硬件的稳定和精确、软件运行是否稳定都会影响到系统,不过正是这样,才能体现做好本系统的价值。图图1-1天车运行立体图地面钢架1.2本课题研究的意义1.2.1本课题实现的大体思路1)事先将一些已知卡号的卡片装在一边钢架上做X轴定位点,将另一些装在大车上做Y轴定位点;通过跨栏边的系列卡片(X轴)判定大车的位置,通过大车上的系列卡片(Y轴)确定小车的位置,结合起来就可以确定天车的位置(天车由大车和小车组成)。2)在大车和小车上分别装上读卡器,读到的信息通过无线发射装备发送。3)卡号信息事先通过软件交互窗口输入数据库存储,软件运行后,把通过无线接收到的数据和数据库中的数据匹配,从而定位天车,进而在软件的界面中显示其位置,通过位置和其重量变化最终推断其下一步行为。本系统可以达到实时监控天车运行位置和状态的目的,为调度人员准确科学的调度提供了可行性,同时为实现高精度无人智能调控提供了较为雄厚的基础。XXY已知卡号的卡片大车小车钢架图1-2天车运行俯视图1.2.2本课题实现的意义前文已经提过,本系统可以说是十分领先的,而且其实用性特别强。可以确定的是:该软件可以实施全程监控天车的位置,准确的推断天车的行为。调度人员不必经过大量时间、花费大量财力的训练即可准确、科学地实现调度。最终,本件系统可以帮助帮助钢厂降低生产调度上的失误,提高工作效率,实现天车实时跟踪观测,有助于实现生产管理的科学化、一体化,进一步提高生产的效益,甚至为将来的高精准无人操作、计算机智能调度生产炼钢奠定坚实的基础。1.3系统结构1.3.1系统的组成本系统由两大部分组成,即硬件和软件。该软件的实现需要大量硬件设备的辅助:1)祥瑞整机和Dell服务器。2)无线发射和接收设备。3)皮带传输称重设备。4)其他必须的硬件设备。1.3.2软件的组成本系统的软件结构如图1-3所示。登录界面登录界面前台SQL数据库模块管理数据库操作主题更换软件帮助天车监控退出\注销主界面无线设备发射-接收后台图1-3系统软件模块图说明:主界面设置为父窗体,天车监控、模块管理、数据库操作、主题更换、软件帮助和退出/注销为子窗体。数据库采用SQLServer2000,无线设备厂子装配。1.3.3硬件的组成该系统的硬件结构如图1-4所示。图1-4系统硬件模块图说明:无线发射与接收设备有硬件厂家提供,解码协议随带提供。PLC采数设备为之前钢厂装配。其他设备及线路自行铺设。最后,本系统可以帮助钢厂降低生产调度上的失误,提高工作效率,实现天车实时跟踪观测,有助于实现生产管理的科学化、一体化,进一步提高生产的效益,甚至为将来的高精准无人操作、计算机智能调度生产炼钢奠定坚实的基础。2相关技术及开发环境介绍2.1无线传输协议YH3120W仪表均配有RS—232C通讯接口,其中“3”脚RXD用于接收无线串行数据信号,“2”脚TXD用于称重数据输出,其通讯格式约定如下:1)数据位长8位(8位UART、一帧10位)。2)无奇偶校验位。3)配无线传输时,波特率固定为1200bit/s。4)数据传送格式如表2-1所示:表2-1数据传送格式FFH起始字W5W4W3dp(2EH)小数点W2W1W0空格或Kt或g空格BCC校验码0AH结束字最高位,负号时为“2DH”。注:采用ASCⅡ数据传输。校验码BCC=W5+W4+W3+dp+W2+W1+W0上式加法时采用不带进位位相加,小数点dp的位置可在W0—W4之间变动。5)数据采用连续发送方式。6)可用EPSONLQ300K打印机验证传送数据。以上格为连续数据传送格式,即YH3120W仪表根据无线数传接收数据,连续不间的发送数据包。2.2开发环境介绍VisualStudio是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。MicrosoftVisualStudio2008使开发人员能够快速创建高质量、用户体验丰富而又紧密联系的应用程序,充分展示了Microsoft开发智能客户端应用程序的构想。借助VisualStudio2008,采集和分析信息将变得更为简单便捷,业务决策也会因此变得更为有效。任何规模的组织都可以使用VisualStudio2008快速创建能够利用WindowsVista和2007Officesystem的更安全、更易于管理并且更可靠的应用程序。2.2.1Windows窗体该软件系统主要是在此环境下应用WindowsForm开发的,下面主要介绍它。WindowsForms(Windows窗体)用于在.NETFramework上创建MicrosoftWindows应用程序。此框架提供一个有条理的、面向对象的、可扩展的类集,使您能够开发功能丰富的Windows应用程序。另外,Windows窗体可作为多层分布式解决方案中的本地用户界面。WindowsForms(Windows窗体)是一个新的窗体包,它使得开发人员可以创建基于Windows的应用程序,来充分利用MicrosoftWindows操作系统中丰富的用户界面特性。WindowsForms是新的Microsoft.NETFramework的一部分,它使用了许多新技术,包括一个公共应用程序框架、受控的执行环境、集成的安全性和面向对象的设计原则。此外,WindowsForms完全支持快速、容易地连接XML网络服务和在ADO.NET数据模型基础上创建丰富的、数据感知(data-aware)的应用程序。利用VisualStudio中新的共享开发环境,开发人员可以使用任何支持.NET平台的语言,包括MicrosoftVisualBasic和C#创建WindowsForms应用程序。开发人员可以像今天创建基于VisualBasic的窗体那样创建WindowsForms应用程序(尽管使用WindowsForms,他们可以在VisualStudio中的所有语言,而不仅仅是在VisualBasic中获得相同的生产力)。在下面的.图象中,你可以看到设计表面用来可视化地用各种控件来安排窗体的布局。要编辑源代码,开发人员只需双击某个控件,然后源代码将显示出来,这使得用户可以迅捷地访问控件和窗体的所有事件模型。可视化集继承是WindowsForms中的一个重要的新特性,它将提高开发人员的生产力,促进代码的重用。例如,一个组织可以定义一个包含诸如公司徽标,可能还包括一个公共工具栏等项目的标准的基本窗体。这个窗体可以通过继承由开发人员使用,并进行扩展以满足特定应用程序的需求,而同时在组织内使用公共的用户界面。基本窗体的创建者可以指定哪些元素可以被扩展,哪些元素必须按原样使用,这样可以确保窗体能够被适当地重用。当开发人员设计WindowsForms应用程序的外观和感觉时,将拥有空前水平的控制能力和生产力。菜单设计器(MenuDesigner)、控件锚定(ControlAnchoring)、控件入坞(ControlDocking)和其他特性使得开发人员可以更精确地创建基于Windows的用户界面。利用菜单设计器,开发人员可以既快速又容易地给窗体添加菜单,修改菜单,然后在不允许应用程序的情况下查看菜单的外观。利用控件锚定,窗体上的控件将更有效,从而使得窗体能够在用户调整窗体的大小时自动调整控件的大小。利用窗体入坞(ControlDocking)特性,控件可以停靠在窗体的任何一侧,从而在布局方面提供了更大的灵活性。新控件-包括链接标签(LinkLabel)、托盘式图标(TrayIcon)、打印预览(PrintPreview)-为开发人员提供了额外的通用功能。链接标签(LinkLabel)提供了类似HTML的到特定URL的链接。使用这个控件显示的文本将显示有下划线,并且当鼠标移动到上方时,光标将变成一只手,当被点击时将引起一个可动作的事件。托盘式图标(TrayIcon)使得开发人员可以创建在Windows托盘中运行的应用程序,这类似于MicrosoftSQLServerServiceManager(服务管理器)。WindowsForms还提供了一个打印框架,使得定义变得非常简单,它包括一个带有打印预览(PrintPreview)控件的打印预览(PrintPreview)窗口。WindowsForms应用程序采用了GDI+,提供了更丰富的图形控件,包括多更多图形格式的支持。开发人员可以很容易地使用高端的图形特性,如Windows2000支持的alpha混合、处理梯度连贯性(manipulatinggradientsconsistency)、OnPaint事件的双缓冲,以及透明的分层窗口等特性。利用这些特性,开发人员可以创建更丰富更复杂的、具有客户需求的性能的图形化应用程序。总之,WindowsForms给开发人员提供了创建基于Windows的应用程序所需的多种技术。不仅有用于调整用户界面的新控件和特性,WindowsForms还提供了灵活的部署和集成的安全性。创建基于Windows的应用程序的开发人员,使用WindowsForms将比以前任何时候更有生产能力。2.2.2对系统要求1)支持的体系结构x86或x64(WOW)2)支持的操作系统MicrosoftWindowsXPMicrosoftWindowsServer2003ServicePack2MicrosoftWindowsServer2008WindowsVistaWindows73)硬件要求最低要求:1.6GHzCPU,192MB内存,1024x768显示器,5400RPM硬盘建议配置:2.2GHz或更快的CPU,384MB或更大的内存,1280x1024显示器,7200RPM或更快的硬盘。完全安装需要1.3GB可用磁盘空间2.3C#语言简介C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员AndersHejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。C#是可用于创建运行在.NETCLR上的应用程序的语言之一,它从C和C++语言演化而来,是Microsoft专门为使用.NET平台而创建的。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言C#的优点是,它是唯一为.NETframework设计的语言,是在移植到其他操作系统上的.NET版本中使用的主要语言。C#的面向对象技术已经成熟,且效率比较高。如支持良好的类结构,并对继承性有一定的限制,一个类可以从无数个类中继承接口,但只能从一个基类中继承其实现方法。C#采用一种更清晰的新语法来描述面向对象的多态性,即声明为“虚”、“纯虚”函数,特别是一个类可以先行提供方法执行方式,在该方法的前面加上abstract关键字,迫使其子类也这么做;而且可以创建不能继承的类,与C++一样,种类齐全的关键字可以严格控制类成员的访问权限。C#类机制还一个特性是其属性的方法。这种方法把属性的读写集中到一个地方,以便更容易控制它,对属性的访问更像特性而不像伪函数的调用。属性的特殊形式称为索引符,它通过一种非常直观的语法显示类中的数组。C#类可以使用多个参数化的构造函数,但它们一般不能以C++类的相同方式执行析构函数,除了析构函数外,C#类含有finalize方法,当对象没有被释放,但运行时的无用存储单元收集器要删除该对象时,可以调用该方法。C#最引人入胜的地方是它和Java的不同,而不是相似的地方。这一节(和这个系列第二部分的大部分地方)讲述了C#实现的和Java不同的地方或者Java根本没有的特点。1)中间代码微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地。微软公司很小心的声称MSIL不是解释性的,而是被编译成了机器码。它也明白许多--如果不是大多数的话--程序员认为Java程序要不可避免的比C编写的任何东西都要慢。而这种实现方式决定了基于MSIL的程序(指的是用C#、VisualBasic、"ManagedC++"--C++的一个符合CLS的版本--等语言编写的程序)将在性能上超过"解释性的"Java代码。当然,这一点还需要得到事实证明,因为C#和其他生成MSIL的编译器还没有发布。但是JavaJIT编译器的普遍存在使得Java和C#在性能上相对相同.象"C#是编译语言而Java是解释性的,"之类的声明只是商业技巧。Java的中间代码和MSIL都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码。2)命名空间中的申明当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类。同在这个命名空间里(在类的外面)你还有可能声明接口,枚举类型和结构体。必须使用using关键字来引用其他命名空间的内容。3)基本的数据类型C#拥有比C,C++或者Java更广泛的数据类型。这些类型是bool、byte、ubyte、short、ushort、int、uint、long、ulong、float、double和decimal。象Java一样,所有这些类型都有一个固定的大小。又象C和C++一样,每个数据类型都有有符号和无符号两种类型。与Java相同的是,一个字符变量包含的是一个16位的Unicode字符。C#新的数据类型是decimal数据类型,对于货币数据,它能存放28位10进制数字。4)两个基本类一个名叫object的类是所有其他类的基类。而一个名叫string的类也象object一样是这个语言的一部分。作为语言的一部分存在意味着编译器有可能使用它--无论何时你在程序中写入一句带引号的字符串,编译器会创建一个string对象来保存。5)参数传递方法可以被声明接受可变数目的参数。缺省的参数传递方法是对基本数据类型进行值传递。ref关键字可以用来强迫一个变量通过引用传递,这使得一个变量可以接受一个返回值。out关键字也能声明引用传递过程,与ref不同的地方是,它指明这个参数并不需要初始值。6)与COM的集成C#对Windows程序最大的卖点可能就是它与COM的无缝集成了,COM就是微软的Win32组件技术。实际上,最终有可能在任何.NET语言里编写COM客户和服务器端。C#编写的类可以子类化一个以存在的COM组件;生成的类也能被作为一个COM组件使用,然后又能使用,比方说,JScript语言子类化它从而得到第三个COM组件。这种现象的结果是导致了一个运行环境的产生,在这个环境里的组件是网络服务,可用用任何.NET语言子类化。7)索引下标一个索引与属性除了不使用属性名来引用类成员而是用一个方括号中的数字来匿名引用(就象用数组下标一样)以外是相似的。publicclassListBox:Control{privatestring[]items;publicstringthis[intindex]{get{returnitems[index];}set{items[index]=value;Repaint();}}}可以用一个循环器来匿名引用字符串内部数组成员,就象下面这样:ListBoxlistBox=...;listBox[0]="hello";Console.WriteLine(listBox[0]);8)代理和反馈一个代理对象包括了访问一个特定对象的特定方法所需的信息。只要把它当成一个聪明的方法指针就行了。代理对象可以被移动到另一个地方,然后可以通过访问它来对已存在的方法进行类型安全的调用。一个反馈方法是代理的特例。event关键字用在将在事件发生的时候被当成代理调用的方法声明。3系统的需求分析和设计3.1系统整体需求功能描述本系统主要是通过X轴和Y轴坐标实现天车定位,把数据库中事先存入的数据和已经通过无线设备发射后接收的数据匹配,达到实时监控的效果,有助于实现生产管理的科学化,甚至进一步向自动化炼钢转变。本系统除了提供监控外,还考虑到以后的数据维护和备份,可是实现数据库的增、删、改、查,还可以实现数据库的备份和还原。还可以直接在软件帮助中打开微软自带的计算器、记事本、word和Excel,方便用户使用。同时,如果觉得软件框架的颜色不好,可以更改主题。3.2系统监控定位功能需求描述天车定位监控主要是方便调度人员的指挥操作,需要提供天车的实时位置以及天车运行状态,包括重量、位置等。由于天车工作时要不断移动,不可能通过安装监视器来观察。而通过工人用对讲机来回报,又可能带来误听、误报,甚至误解。因此,急需要一套能实时监控天车的软件系统。在本软件中,用户通过正常登陆系统后,在确定端口能正常使用后,点击定位监控后,弹出新窗口,点击“启动监控”,即可观看天车的位置和状态。3.3系统其他功能需求描述界面是否友好,功能是否齐全是反映一个软件价值的最好表现。考虑到本系统的功能只是提供天车的实时监控定位,功能比较单一。故此,提供一些其他功能。具体有:1)数据库的备份及还原。2)可以对定位模块进行替换、添加和删除等。3)提供一些快捷服务,如在软件帮助中可以直接打开微软自带的计算器、记事本、word和excel。4)界面可以选择,喜欢那种可以自己确定。5)提供注销重新登陆功能。3.4人机界面需求描述窗口界面包含以上所有功能。运行时先启动本系统的登陆窗口,输入正确的用户名和密码后,进入主窗口。主窗口有标题栏、菜单栏、工具栏和任务栏,完全模仿微软软件模式,用户使用时不会生疏。菜单栏中包括:定位推理、模块管理、数据库还原、报表、窗口操作(如平铺、层叠等)、软件帮助、退出。它们的子菜单见后面测试。工具栏中包括:服务管理、定位管理、天车监控、数据库备份和注销。最后还有更换主题。任务栏中显示当前时间。界面设计力求完美、合理、美观,但能力有限,不足之处有待改善。3.5UML基本模型分析用例图(UseCaseView)是指作为外部参与者的外部用户所能观察到的系统功能的模型图,整个开发过程都是围绕需求阶段的用例进行的。对于语法管理系统而言,主要任务就是分析使用该系统管理人员应该完成什么工作,用户只能做什么操作。用例图如图3-1所示。图3-1用例图3.6系统详细设计代码整体框架如图3-2所示。图3-2代码整体构架图详细设计分别说明如下:Model中只有类,包括跨类、大车模块类、天车类、小车模块类、车信息类。所有类属性均为public,方案中的其他项目也可访问此项目中的所有类。Transmit项目中是把无线传输的天车信息解码的代码。代码如下:///<summary>///表示将处理System.IO.Ports.SerialPort对象的数据接收事件的方法。///</summary>privatevoidSerialPort_DataReceived(objectsender,SerialDataReceivedEventArgse){SerialPortserialPort=(SerialPort)sender;intlength=0;byte[]bt=null;try{length=serialPort.BytesToRead;bt=newbyte[length];}catch{return;}try{serialPort.Read(bt,0,length);}catch{return;}foreach(variteminbt){if(item==0x02)//一条数据的开始{this.Byte.Clear();}this.Byte.Add(item);if(this.Byte.Count==28)//一条完整的数据{//开启线程解码Threadthread=newThread(this.Thead_Thead);thread.Start(this.Byte.ToArray());}}}///<summary>///解码线程方法///</summary>privatevoidThead_Thead(objectobj){byte[]bt=(byte[])obj;stringsum="";intverify_BL=0;intverify_BH=0;try{sum=Convert.ToString(bt.Skip(1).Take(23).Sum(p=>p),16).PadLeft(2,'0').ToUpper();}catch{return;}try{verify_BL=this.ASCIIEncoding.GetBytes(sum.Substring(sum.Length-1,1))[0];verify_BH=this.ASCIIEncoding.GetBytes(sum.Substring(sum.Length-2,1))[0];}catch{return;}if(verify_BH==bt[24]&&verify_BL==bt[25]){try{T_CraneMsgmsg=newT_CraneMsg{CraneID=Convert.ToInt32(Convert.ToByte(Convert.ToString(bt[1],16))-40),BeamCard=Encoding.ASCII.GetString(bt,2,5),CraneCard=Encoding.ASCII.GetString(bt,7,5),Weight=Convert.ToDouble(Encoding.ASCII.GetString(bt,17,7)),Date=DateTime.Now,State=""};this.UncodeRequest(bt,msg);//触发事件}catch{return;}}}Server项目为主要部分,包括软件大部分代码。下面给出系统的大致流程.输入用户名密码输入用户名密码开始正确进入主界面功能模块注销FTFT是否退出结束图3-3系统流程图运行软件,会出现系统的登录窗口,输入正确的用户名和密码,进入主界面:(如果输入的信息不正确或不完整,会给予提示)。主窗口中的所有功能都能实现,首先,打开电脑的端口,保证能接收传来的数据。点击工具栏中的服务管理按钮,可以选择全部启动,让所有端口都接收传来的数据,测试全部的车。也可以选择某行,点击启动,测试一个车。端口可以正常接收数据后,点击“天车监控”,观察天车的实时情况还要点击窗口按钮“启动监控”,然后就可以观察各天车的运行情况。考虑到钢厂的恶劣环境,高温、粉尘等可能消掉模块线圈中的磁感应强度,故模块可能要不时更换,所以提供模块管理界面。界面为主界面的子窗体,用户登录后可以查看当前所有模块的情况,还可以删除、更改、添加模块。不过要注意的是操作完成后一定要点击保存再退出。部分关键代码如下:privatevoidbtnOk_Click(objectsender,EventArgse){//新建数据库连接,并打开SqlConnectionconn=newSqlConnection("server=.;database=DB_Design;user=sa;password=");conn.Open();//检查用户名、密码是否输入if(txtID.Text=="")MessageBox.Show("用户名必须填写","天车物流",MessageBoxButtons.OK,MessageBoxIcon.Warning);if(txtPWD.Text=="")MessageBox.Show("用户密码必须填写","天车物流",MessageBoxButtons.OK,MessageBoxIcon.Warning);//检查输入的信息是否与数据库中的相匹配stringstr="selectUserID,PasswordfromT_user"+"whereUserID='"+txtID.Text+"'andPassword='"+txtPWD.Text+"'";SqlCommandcmd=newSqlCommand(str,conn);SqlDataReadersqlread=cmd.ExecuteReader(CommandBehavior.CloseConnection);if(sqlread.HasRows)//如果存在匹配行{//显示主窗体FormMainnewfrm=newFormMain();this.Hide();newfrm.Show();}else{//如果用户名或密码错误,则显示提示信息并要求用户重新输入MessageBox.Show("用户名或密码错误!","天车物流",MessageBoxButtons.OK,MessageBoxIcon.Information);txtID.Text="";txtPWD.Text="";txtID.Focus();}conn.Close();}其次,考虑的数据的安全存储和备份等,软件提供数据还原和备份。功能验证可用还有,用户可能有自己的颜色喜好,软件提供主题更换功能,界面主题自己做主。代码如下:privatevoidbutton1_Click(objectsender,EventArgse){if(comboBox1.Text=="清新浅绿色"){//难点在这里,要找到当前的主窗体,而不是新建一个窗体。此代码从网上借鉴。FormMainf=newFormMain();f=(FormMain)this.MdiParent;f.skinEngine1.SkinFile="vista1_green.ssk";}if(comboBox1.Text=="高贵银白色"){FormMainf=newFormMain();f=(FormMain)this.MdiParent;f.skinEngine1.SkinFile="Vista2_color2.ssk";}if(comboBox1.Text=="友善深黄色"){FormMainf=newFormMain();f=(FormMain)this.MdiParent;f.skinEngine1.SkinFile="OneOrange.ssk";}}最后,软件还提供一些微软自带的工具,如计算器、记事本、word和excel。代码如下: privatevoid记事本ToolStripMenuItem_Click(objectsender,EventArgse){System.Diagnostics.ProcessStartInfoinfo=newSystem.Diagnostics.ProcessStartInfo();System.Diagnostics.Processproc=newSystem.Diagnostics.Process();//设置外部程序名(记事本用notepad.exe、计算器用calc.exe、word文档用winword.exe、电子表格用excel.exe)info.FileName="notepad.exe";//设置外部程序的启动参数info.Arguments="";//设置外部程序工作目录为c:\windowsinfo.WorkingDirectory="c:/windows/";try{//启动外部程序proc=System.Diagnostics.Process.Start(info);}catch{MessageBox.Show("系统找不到指定的程序文件","错误提示!");return;}}“关于……”子菜单的实现是先弹出一个新窗口,新窗口读取text文件。代码如下:privatevoid关于ToolStripMenuItem_Click(objectsender,EventArgse){FormAboutfa=newFormAbout();fa.MdiParent=this;fa.Show();}privatevoidFormAbout_Load(objectsender,EventArgse){stringpath=Application.StartupPath+"\\AboutUs.txt";System.IO.StreamReaderreader=newSystem.IO.StreamReader(path,System.Text.Encoding.Default);this.txtAboutUs.Text=reader.ReadToEnd();reader.Close();this.groupBox1.Focus();}4数据库的设计与链接4.1数据库的选择目前流行的数据库软件有Access、Oracle和SQLServer。和前两种相比,SQLServer有其特有的优势。1)非过程化语言SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。2)统一的语言SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。SQL为许多任务提供了命令,包括:①查询数据②在表中插入、修改和删除记录③建立、修改和删除数据对象④控制对数据和数据对象的存取⑤保证数据库一致性和完整性以前的数据库管理系统为上述各类操作提供单独的语言,而SQL将全部任务统一在一种语言中。3)是所有关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。SQL是PostgreSQL(和大多数其它关系型数据库)用做查询语言的语言。它是可以移植的,并且容易学习使用。但是所有SQL语句都必须由数据库服务器独立地执行。这就意味着客户端应用必须把每条查询发送到数据库服务器,等待它处理这个查询,接收结果,做一些运算,然后给服务器发送另外一条查询。所有这些东西都会产生进程间通讯,并且如果客户端在另外一台机器上甚至还会导致网络开销。如果使用了PL/pgSQL,那么可以把一块运算和一系列查询在数据库服务器里面组成一个块,这样就拥有了过程语言的力量并且简化SQL的使用,因而节约了大量的时间,因为用不着付出客户端/服务器通讯的过热。通过使用PL/pgSQL,应用可以获得可观的性能提升。4.2数据库的链接4.2.1数据库链接语句服务器以本地为例,数据库以DB_Design为例,用户名为sa,密码为空。SqlConnectionconn=newSqlConnection("server=.;database=DB_Design;user=sa;password=");实际应用中,可以把Server设成服务器的IP地址。另外,链接的方式不止一种,此为最长用、最简单的建立方式。4.2.2数据库增删改查1)数据记录查询筛选:sqlstr="select*from数据表where字段名=字段值orderby字段名[desc]"sqlstr="select*from数据表where字段名like'%字段值%'orderby字段名[desc]"sqlstr="selecttop10*from数据表where字段名orderby字段名[desc]"sqlstr="select*from数据表where字段名in('值1','值2','值3')"sqlstr="select*from数据表where字段名between值1and值2"2)更新数据记录:sqlstr="update数据表set字段名=字段值where条件表达式"

sqlstr="update数据表set字段1=值1,字段2=值2……字段n=值nwhere条件表达3)删除数据记录:sqlstr="deletefrom数据表where条件表达式"sqlstr="deletefrom数据表"(将数据表所有记录删除)4)添加数据记录:sqlstr="insertinto数据表(字段1,字段2,字段3…)values(值1,值2,值3…)"sqlstr="insertinto目标数据表select*from源数据表"(把源数据表的记录添加到目标数据表)4.3数据库的表设计本系统用的表不多,有天车表、跨表、跨上模块表、天车上模块表和多个表结构相同的接收天车信息表。各表信息如表4-1、表4-2、表4-3、表4-4和表4-5所示。表4-1天车表列名类型NULL1CraneID(Key)Int(4)否2BeamIDInt(4)否3ComNameVARCHAR(50)否4ComBaudRateInt(4)否5MsgTableVARCHAR(100)否6AccountVARCHAR(100)是表4-2跨表列名类型NULL1BeamID(Key)Int(4)否2NameVARCHAR(50)否3AccountVARCHAR(100)是表4-3跨上模块表列名类型NULL1Number(Key)VARCHAR(50)否2SerialNumInt(4)否3BeamIDInt(4)否4SpaceEastFloat(8)否表4-4天车上模块列名类型NULL1Number(Key)VARCHAR(50)否2SerialNumInt(4)否3CraneIDInt(4)否表4-5接收天车信息表列名类型NULL1[Date]Datetime(8)否2BeamCardVARCHAR(50)否3CraneCardVARCHAR(50)否4WeightFloat(8)否5StateCHAR(50)是5.系统功能实现第一步:运行软件,会出现如图5-1所示的登录窗口。图5-1登录窗口第二步:输入正确的用户名和密码,进入主界面(如果输入的信息不正确或不完整,会给予提示)。图5-2软件主窗口第三步:主窗口中的所有功能都能实现,下面就来介绍菜单栏和工具栏中的各个功能。首先,打开计算机的端口,保证能接收传来的数据。点击工具栏中的服务管理按钮,进入如下图所示的界面,可以选择全部启动,让所有端口都接收传来的数据,测试全部的车。也可以选择某行,点击启动,测试一个车。端口可以正常接收数据后,点击“天车监控”,会出现图5-4所示的窗口。观察天车的实时情况还要点击窗口按钮“启动监控”,然后就可以观察各天车的运行情况。考虑到钢厂的恶劣环境,高温、粉尘等可能消掉模块线圈中的磁感应强度,故模块可能要不时更换,所以提供图5-5所示的模块管理界面。界面为主界面的子窗体,用户登录后可以查看当前所有模块的情况,还可以删除、更改、添加模块。不过要注意的是操作完成后一定要点击保存再退出。图5-3端口服务管理界面图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论