1、 1 目 录 摘 要 . I 第 1 章 绪 论 .1 1.1 面向对象程序设计概述 . 1 1.1.1 从结构化到面向对象 . 1 1.1.2 面向对象的程序设计 . 2 1.2 数据库概述 . 3 1.3 课题来源及系统简介 . 6 1.3.1 课题来源 . 6 1.3.2 系统介绍 . 7 第 2 章 系统的 总体方案设计 .8 2.1 软件开发工具的选择 . 8 2.2 Delphi 编程语言 . 9 2.3 系统总体方案 . 9 2.3.1 PC 机程序设计 . 10 2.3.2 串口通信部分 . 11 2.3.3 数据处理和数据库部分 . 12 2.3.4 数据显示部分 . 12
2、第 3 章 应用软件设计 .13 3.1 数据库的设计 . 13 3.2 登录模块 . 15 3.2.1 登陆模块的界面设计 . 15 3.2.2 登陆模块的程序设计 . 16 3.3 主窗体模块 . 17 3.3.1 主窗体模块的界面设计 . 17 3.3.2 串口通信的设计 . 18 3.3.3 数据显 示的设计 . 19 3.3.4 主菜单的设计 . 20 3.3.5 工具栏的设计 . 21 3.3.6 Excel 操作的设计 . 22 3.4 串口设置模块 . 22 3.4.1 串口设置模块的界面设计 . 22 3.4.2 串口设置模块的程序设计 . 24 3.5 修改密码模块 . 2
3、5 2 3.5.1 修改密码模块的界面设计 . 25 3.5.2 修改密码模块的程序设计 . 26 3.6 设置计划数模块 . 27 3.6.1 设置计划数模块的界面设计 . 27 3.6.2 设置计划数模块的程序设计 . 27 3.7 权限设置模块 . 28 3.7.1 权限设置模块的界面设计 . 28 3.7.2 权限设置模块的程序设计 . 29 3.8 部门设置模块 . 30 3.8.1 部门设置模块的界面设计 . 30 3.8.2 部门设置模块的程序设计 . 31 3.9 档案设置模块 . 32 3.9.1 档案设置模块的界面设计 . 32 3.9.2 档案设置模块的程序设计 . 33
4、 3.10 系统信息模块 . 34 第 4 章 系统调试与性能分析 .35 第 5 章 结 论 .37 参考文献 .38 附录 .39 附录一 程序部分源码 . 39 I 摘 要 为了实现工业生产中的自动化管理 ,融合射频识别技术、传感器技术、计算机数据库等新技术,采用面向对象的程序设计方法,基于 delphi 7.0 程序设计工具,及 Access 数据库,设计并开发了基于射频识别技术的智能计件系统的上位机应用程序。该程序主要包括串口通信、数据库和软件界面等几部分。实现了对终端设备数据的采集、显示,具有统计、计算、存储、报表输出等功能。整个系统经过与软件的集成测试,性能稳定,界面友好,操作简
5、单。基本能满足工业生产中智能计件的要求, 为实现工业流水线的计件智能化管理奠定了软件基础, 具有广泛的应用前景。 关键字 :计件;串口通信;面向对象; Delphi7.0;数据库 1 第 1 章 绪 论 1.1 面向对象程序设计概述 1.1.1 从结构化到面向对象 软件的发展是有阶段的,每进入一个新的阶段都是因为原有的开发方式已经不能满足需要了。结构化的程序开发已经走过了漫长的道路,结构化思想的出现是因为适应了软件发展的需求 1 。采用结构化程序设计( Structure Programming)方法,即 SP 模式,进行应用程序设计时,首先要为解决某个实际问题而确定一个算法,然后抽象算法在计
6、算机的具体实现,为该算法构造适当的数据结构,通过对算法的操作过程体现算法的思想。也就是说,程序是在数据的某种特定的表示 方式和结构的基础上对抽象算法的具体实现。传统的Pascal 语言就是典型的支持结构化程序设计的语言。应用这种语言进行程序设计时,不仅要实现程序所需要的各种数据结构,而且要求程序员设计出程序执行的每个细节。 结构化程序设计方法本质上是面向过程的,它不能直接反映人们解决问题的思路,因此这种模式存在着固有的缺陷,主要体现在如下两个方面。 (1) 程序的可重用性差 目前的应用程序变得越来越大,越来越复杂,但其中有很多重复性的工作,代码重用成为提高编程效率的关键。采用传统的 SP 模式
7、,每开发一个新的应用程序,程序员几乎都 要从零开始做起,并且要针对具体问题做大量重复而烦琐的工作。即使重用代码,也只是进行简单的拷贝,要实现的功能稍有不同,就会导致对代码逐行进行修改,也就是说,这种模式不能对已编好的应用程序的某些部分直接继承引用。 (2) 维护程序的一致性差 应用传统的 SP 模式开发应用程序时,数据和方法是分开的,这很可能产生问题空间和方法空间在结构上的不一致。对程序运行起重要作用的数据一般要做全局处理,若为了新的需要改变某一数据结构,则所有的处理数据的过程都要进行重新考虑,做出必要的修改,以保证与数据的一致性。因此,要花费大量的 精力来维护数据和数据处理过程的一致性,而且
8、还可能产生不少错误。 结构化的程序开发已经不能满足软件发展的需求了。这个时候,出现了面向对象的编程思想,简称为 OO( Object Oriented)。面向对象的程序开发被称为OOP( Object Oriented Programming)。在介绍面向对象的思想之前,应该明确指出,面向对象是一种编程的思想,而与具体的语言无关。比较流行的支持面向2 对象的语言有 C+、 Object Pascal 和 Java。 面向对象的程序开发在软件开发领域带来的变革是令人震撼的。因为它废除 了以前的很多思想,引发了软件开发领域的革命。与结构化的开发思想迥异,面向对象的思想甚至从编程角度对客观世界的认识
9、都发生了极大的变化。面向对象程序开发的出现,对程序员来说,代码的可重用性大大提高,开发过程中的积累更加容易;对分析人员来说,代码可以清晰地展现在面前,从而可以很容易地从宏观上进行把握;对管理人员来说,程序的开发与维护变得更快、更廉价。 从宏观上看,我们用结构化思想开发程序的时候,难点在于对问题的抽象。也就是当我们遇到了一个具体的问题,会想到用什么样的数据结构可以比较好地反映这个问题;针对这种数据结 构,有哪些比较好的算法。一个成功的对问题的抽象将在很大程度上决定程序的质量和效率。可以说,在结构化的思维之下,程序员的任务是将现实问题抽象为机器的思维方式,并用某种语言来实现。 而面向对象更强调的是
10、模拟,也就是说为现实世界的问题建立一个模型,这个模型可以更逼真的反映现实世界。遇到没有现成的模型可以模拟现实问题,那么可以方便地创建一个模型来。并且,自然界的种属关系也在 OOP 的思想中得到了完美的体现。 1.1.2 面向对象的程序设计 我们眼中的世界是一个充满了个体的世界,个体之间存在着共性和特性,还存在着千丝万 缕的联系。个体又是发展的,个体的发展影响着个性,通过外界的力量,也可以直接改变个体的个性,这就是离散对象组成集合的世界。这种对个体世界的理解启发我们,在设计程序时,也可以使用抽象和具体的分析方法,在程序里建立类似于现实世界的个体,让这些个体有个性和行为,与其他个体有合理的联系,这
11、就是面向对象的程序设计方法。在面向对象模式中,将“对象”作为系统中最基本的运行实体,“对象”中封装了描述该对象的数据(域),处理一个对象时不需要直接访问对象中的域,对象的域通过对象的属性或方法来访问或维护,这就是对象的封装特性。这种 封装特性保证了数据与数据处理过程的一致性。对象的方法描述对象的行为方式,通过调用同一个对象的不同方法可以激活对象的各种行为,而同一个方法作用于不同的对象时将产 生完全不同的行为,这就是多态性。 采用面向对象模式建立起来的程序由许多不同类型的对象组成,各对象既是独立的实体,又可以通过各自的接口相互作用。对象中的方法决定要向哪个对象发送消息、发送什么样的消息以及收到消
12、息后如何处理等。也就是说, OOP3 模式是以对象为中心的。由于对象反映了应用领域中具有完整的特征和行为的实体或单元,从程序设计的角度我们可以把它看成模 块。因此,对象具有一定的稳定性,可以被当作一个控件去构成更复杂的应用。又由于对象一般封装的是某一具体的实际工作的各种成分,因此某一对象改变时,对整个系统几乎没有影响。 为了描述功能相似的对象, OOP 中引用了“类”的概念。类与类之间的关系是层次结构,属于某个类的对象除了具有该类的全部特征外,还具有层次结构中该类上层所有类的全部性质,这种机制称为继承。 面向对象程序设计方法的继承性和模块性,使得新的应用程序可以在原来对象的基础上通过重用和扩展
13、来进行,而不必从头做起或者拷贝原有代码。这大大提高了程序开发的效率,减 少了重新编写代码的工作量,同时降低了程序设计过程中出错的可能性。 面向对象方法的实质是强调从客观世界中的固有规律出发来构造系统,用人类在现实生活中常用的思维方式来认识、理解和描述客观事物。编写面向对象的程序设计使开发人员能够重复使用工作成果并使程序维护更为容易,并且不易出错。 1.2 数据库概述 数据( Date)是数据库中存储的基本对象。所谓数据,就是能被计算机识别与处理的符号。数据的种类很多,如数字、文字、表格、图形、图像、声音等都属于数据。 数据库 (Datebase,简称为 DB)就是以一定的组织方式存 储在计算机
14、存储介质中的互相关联的数据集合。它能以最佳的方式、最少重复、最大独立性为多种应用提供共享服务。一个数据库常包含许多数据表、索引信息以及其他相关信息。关系数据库 (Relational Datebase) 是目前使用最广泛的数据库,它以关系模型作为数据的组织存储方式。关系数据库通常包含多张表,表由记录组成,记录由字段组成 5。 本课题需要开发的 PC( Personal Computer)机程序系数据库类应用程序,它的设计主要包括两个部分:数据库设计和应用程序设计。对于数据库的设计,首先要选择适当的数据 库产品,选择了一个合适的数据库可以对开发工作起到事半功倍的作用。 Delphi 可以访问多种
15、数据库,如 Visual FoxPro、 Paradox、 Access等基于文本的数据库、 Oracal、 Infomix、 MicroSoft SQL Server 等大型数据库。鉴于本课题对数据容量要求一般,选择使用操作简便、容量适中、管理方便、安全性较好的 Access 数据库。 4 Access 是美国微软公司开发的 Office 系列应用程序中的一套功能非常强大的数据库管理工具。它是微软公司 Windows 操作系统中第一个桌面型关系数据库管理系统 (RDMBS)。不论创建个人、部门或整个企业级的数据库系统,还是创建数据库来管理客户信息,或是创建产品库存跟踪管理系统, Access
16、 都可以为组织、查找、管理和共享数据提供功能丰富、简单易用的方法。 Access 在本质上是一个关系型数据库管理系统。关系型数据库有着严格的数学理论基础。在 Access 数据库中,数据的逻辑结构表现为满足一定条件的二维表,以统一的“关系”来描述数据对象之间的联系,结构简单、表现力强、符合人们对现实世界事物的认识规律。因此, Access 数据库受到了广大用户的欢迎。 数据库管理 系统是指统 管理和控制数据库中的数据资源的功能模块、它构成了数据库系统的核心部分、为用户和数据之间的交互提供了管理界面。Access 为用户提供了功能丰富的交互界面,与其他数据库管理系统相比, Access具有以下一
17、些特点: (1) 界面简单、数据共享性强: Access 完全集成在 Windows 操作系统中 ,与 Office 中的其他控件,如 word, Excel 等,具行相同的操作界面、一致的设计风格。因此、对于初学者来说,操作非常简便人门非常迅速。 Access 与word Excel 等同属 office 系列中的应用程序, 在这些应用程序中共享数据非常容易。用户可以非常方便地将 word、 Exce1 中的数据导人 Access,从而避免了许多重复的数据翰人工作;同时,用户也可以将入 Access 中的数据导出到 word、excel 中, 方面可以利用 wnrd 的编辑、排版功能保存大量
18、的原始数据;另 方面又司以充分利用 Exce1 提供的数据分析功能分析 Access 数据库中的数据,生成各种所需的图表,增强数据的表现力。 (2) 数据对象丰富操作手段便捷:根据数据库操作的不同特点。 Access为使用者提供了 7 种对象类型,它们分别是表、查询、窗体、 报表、贞 (Access2000新增加的对象 )、宏以及模块,这些对象分别实现不同的功能。例如,表对象为用户提供了创建数据库元素的基本手段,利用表提供的功能,用户可以定义数据的结构和类型浏览并编辑数据库中的数据。在 Access 数据库中所有的数据都被组织到表下,而是用户完全以二维表的直观形式对数据库进行定义。查询对象为用
19、户提供了多种手段如利用条件查询、多表查询、交叉表查询等处理数据库中的数据,最终使数据库中的数据生成一些对用户有一定意义反映 一定事实的信息;同时, Access 以结构化的表格形式为用户创建 查询、定义查询条件提供一种快速便捷的手段。 (3) 功能强大的向导工具 : Access 为使用者提供了各种向导工具,可以帮助5 初学者迅速学会 Access,同时也可以使有经验的绕程者提高工作效率。这是我们通向入 Access 的捷径。 (4) 集成 SQL 功能: Access 中集成 SQL(结构比查询语言 )的功能,有经验的使用者可以充分利用 Access 的这一功能来更加灵活地创建比较复杂的查询
20、。 (5) 多媒体功能: Access 完全支持多媒体功能,在 Access 数据库中,可以保存、处理诸如声音、图像以及活动视频等多媒体数据, 极大的丰富了人们的 数据处理手段,增强了数据的表现能力。 (6) Web 功能:随着 Internet 的迅速发展,人们更多的数据交流需要依靠网络来实现。为顺应这种发展潮流, Office 系列应用程序中目前已经集成了对网络数据的交流,为此, Access 中增加了一种新的数据类型 -超级链接。通过这一功能,可以在数据库文件中插入超级链接,浏览 Web 页,也可以通过 Web页来发布数据库中的数据,或者使用来自网络的数据 9。 使用高级语言编写应用程序
21、,面对不同的数据存储形式,需要一种简单、一致的应用程序编程接口,使应用 程序能够以统一的方式访问和修改各种各样的数据源。 OLE DB 可提供对存储在不同信息源的数据进行统一访问的能力,它是微软开发的一种底层数据库访问技术。通过 OLE DB 应用程序可以直接访问 Visual FoxPro、 Access、 MS SQL Server、 Oracle 等数据库。虽然 OLE DB 被设计用于连接不同的数据存储,但是 OLE DB 无法满足应用程序简单化的要求,并不适合所有语言。所以,微软在 OLE DB 的基础上开发了 ADO( ActiveX Data Object),它位于 OLE DB
22、 的上层,封装了 OLE DB 的所有功能,编程语言应用ADO 可以大大的简化对数据库的访问。从程序设计的角度来说,无论访问那一种数据库,其基本结构都是相同。在 Delphi的数据库应用程序中,最基本的构成有三类控件:数据控制控件、数据集控件和数据源控件 5。 数据控制控件永远显示和修改数据库中的信息,为用户操作数据库提供一个可视化界面,常用的控件有 TDBEdit、 TDBText、 TDBGrid. 数据集控件,负责与实际的数据库相连接,常有 TADODateSet、 TADOTable、TADOQuery 控件。 数据源控件,将数据集控 件和数据控制控件连接起来,常用的是TDataSou
23、rce 控件。 使用 ADO 控件编写的应用程序通常具有以下结构,如图 1-1 所示。数据库应用程序从下往上有物理存储、操作系统、应用程序、用户界面四个层面。物理层指数据库系统,包括数据库软件和数据表;操作系统层除操作系统自身还需要 OLE DB 技术及 ODBC 库驱动配合才可访问数据库;应用程序层面在Delphi 环境下使用 ADO 数据库访问技术、 TDatasource 数据源组件和 DBGrid6 数据源控制组件连接和操作数据库;用户层面由菜单、 Button 等组件构成,用户通过此界 面操作更简单易用。 图 1-1 基于 ADO 的数据库应用程序结构 1.3 课题来源及系统简介 1
24、.3.1 课题来源 计件工资是以一定质量的产品数量和计件单位计算员工报酬的一种工资形式,它符合当前社会按劳分配为主的基本原则。作为一种比较古老的计酬方式,它在服装、制鞋、玩具、机械加工和电子装配等劳动密集型行业仍然有着用户界面 应用程序 操作系统 物理存储 DBGrid 等数据库控制控件 TDataSource 数据源控件 ADO 控件 提供者 库驱 动 数据库 用 户 7 广泛的应用。但是在现代工业自动化生产的需要下,如何提高这类劳动密集型行业的生产效率、降低生产成本,以增强企业竞争力,成为经营者面临的急需解决的问题。因此本课 题的主要任务就是要设计一套可自动计件,同时又可对生产过程进行管理
25、的智能系统。 1.3.2 系统介绍 本课题分为下位机和上位机两个部分,作者主要负责主控 PC 机 管理软件设计与开发。下位机部分主要有两大模块构成,包括射频识别模块和计件模块。射频识别模块负责所需计件员工身份的识别,通过读取射频卡中存储的信息识别身份,射频识别模块将身份信息传递给计件模块,计件模块获得身份信息后,此时的下位机即被赋予了员工的身份。整个系统工作过程中,计件系统不断的将传感器获得的计量信息和自身的身份信息通过串行 485 总线发送到计算机。计 算机通过上位机软件接收到信息后,软件立即到数据库中搜索与身份对应的相关信息,同时利用获得的信息,对数据库中的相关数据进行修改、统计和存储等操作,上位机软件可同时与多台下位机进行通信。此外上位机软件还可实现相关数据的显示、统计分析结果的输出和员工个人信息的管理等功能。