《1275.基于IC卡的楼宇门禁系统的设计 论文.doc》由会员分享,可在线阅读,更多相关《1275.基于IC卡的楼宇门禁系统的设计 论文.doc(33页珍藏版)》请在三一办公上搜索。
1、农业工程学院毕 业 设 计基于IC卡的楼宇门禁系统的设计姓 名 院(系) 信息学院专业班级 电子信息工程041班学 号 指导教师 职 称 助教(硕士)论文答辩日期 2008年 4月18日农业工程学院教务处制学生承诺书本人声明所呈交的论文是个人在指导老师的指导下进行的,除了文中特别加以标注的地方外,论文中不包含其他已经发表或写过的研究成果,不包含本人或其他用途使用过的成果。相关文献的引用已在论文中作了明确的说明。本学位论文成果是本人在农业工程学院读书期间取得的,论文和设计成果归农业工程学院所有。申请学位论文与资料若有不实之处,本人承担一切相关责任。特此声明。 签名:_摘 要在楼宇中实行门禁系统是
2、非常有益的,它可以使楼宇管理真正做到变被动为主动,预防潜在的突发事件可能性。本文介绍了楼宇门禁系统的工作原理和软件设计,该系统采用射频别技术识别用户身份和权限,依此来控制门的开启或关闭,实现管理中心对各门的实时监控,并可进行进出查询、修改用户资料等信息管理操作。此系统结合IC卡与数据库技术,使用Visual Basic 6.0语言进行编程开发,从而实现其各个功能。关键词:门禁系统 IC卡 数据库 射频识别目 录1 前言11.1 门禁系统发展状况11.1.1 门禁系统应用11.1.2 门禁系统发展趋势11.2 设计背景及设计意义21.2.1 设计背景21.2.2 设计意义22 开发依据22.1
3、软件开发工具22.2 身份信息载体32.3 射频识别技术42.4 VB连接数据库42.4.1 ADO(ActiveX Data Object)对象的数据库操作42.4.2 数据库开发软件的比较63 总体设计73.1 系统结构及功能73.1.1 软件结构及需求73.1.2 硬件结构及需求73.2 系统界面及实现83.2.1 软件运行流程83.2.2 登陆界面83.2.3 主窗体124 主体功能及实现134.1 实时门禁监控134.2 信息管理185 总结与展望225.1 总结225.2 展望22参考文献24英文摘要25致谢26农业工程学院毕业论文(设计)成绩评定表271 前言1.1 门禁系统发展
4、状况 随着Internet信息技术的发展,越来越多企业建立了网络系统并进人世界网组织。企业将管理挂接在网络上,以求实现简单化、无人化、智能化系统的发展。门禁系统出入口安全管制系统在各企业的安全防范中占有举足轻重的地位,其应用领域越来越广,已完全超出其“出人口安全管制”的概念。1.1.1 门禁系统应用 目前国内门禁系统的应用还未发展成熟,在很多方面都无特定的解决方案,如:(1)对于一些智能大厦,智能小区,要实现远距离感应停车和近距离刷卡门禁、消费,实现小区内一卡通系统。(2)对于一些特定场所、开放式通道进行验证管理。 (3)工厂大人流快速考勤。 (4)在物流中的应用。 (5)在零售行业中的应用。
5、国内门禁系统的应用走向成熟还需要一段很长的路要走。1.1.2 门禁系统发展趋势 对于门禁在一些特定场所(需远距离感应或开放式通道管理)的应用(如会议签到系统、大人流量考勤、学生的出入管理,其人员通常具有相当的身份或特殊性,如果采用近距璃持卡刷卡进出模式在礼节和可实施性上就完全不可取),其原有的门禁系统已经远远不能满足应用需求。根据国内门禁系统需求发展和国内门禁系统的发展状态,可以发现国内门禁系统的未来需求有如下几个方面: (1)IC(Integrated Circuit)卡的发展趋势为可读写的大容量IC卡,实现一卡通系统,对于指纹等要求高安全性的门禁系统只适用于一些特定的场合。 (2)国内门禁
6、系统在新的领域(物流)应用提出了新的待解决方案。 (3)一些开放式通道实现门禁验证安全管理(会议签到、公园/地铁出人口验证)。 (4)大流量人流的快速通过,快速计数、快速考勤、快速验证。 (5)基于全国/全世界连锁企业,基于LAN/WAN网络的异地化管理、数据共享门禁管理系统。 可归结为:未来国内门禁系统发展方向为基于开放式通道、物流跟踪管理、消费系统、传统门禁系统及LAN/WAN网络,真正实现一卡、一线、一库的一卡通系统。1.2 设计背景及设计意义1.2.1 设计背景安居才能乐业,治安问题一直是困扰着小区百姓、业主、楼宇管理人员等的一大问题,越来越多的楼宇管理者为了方便自己的管理,寻求通过智
7、能手段控制楼宇来往人员的在重要关口的权利,也就是说产生了安防产品的市场。而门禁系统已成为安全防范系统中极其重要的一部分,在一些发达国家中,门禁系统正以远远高于其它类安防产品的进度迅猛发展;门禁系统之所以能在众多安防产品中脱颖而出,根本原因是因为其改变了以往安防产品如闭路监控,防盗报警等被动的安防方式,以主动地控制替代了被动监视的方式1。针对这一状况,借助计算机技术和数据库管理系统,对整个楼宇的门禁进行智能管理是可行的。本设计采用IC卡做为身份信息载体,数据库做为数据仓库,并通过编程进行软件编制,来设计实现楼宇自动化安全防范管理,方便楼宇管理,制成IC卡楼宇门禁系统。1.2.2 设计意义通过对主
8、要通道的控制大大地防止了罪犯从正常通道的侵入,并且可以在罪案发生时通过对通道门的控制限制罪犯的活动范围制止犯罪或减少损失。在楼宇中实行智能门禁系统具体体现为:(1)增强人身安全;(2)对突发事件立即做出反应;(3)财产保护;(4)加强通道出入口有效控制管理;(5)降低保安费用,增强设施管理。可以真正做到改被动变为主动,预防潜在的可能性。2 开发依据2.1 软件开发工具Visual Basic6.0是微软公司系列可视化开发工具Visua1 Studio 6.0中的产品之一。它的主要思想是用现有的部件组装应用程序,因此Visual Basic是创建Windows应用程序最简便、最快捷的开发工具之一
9、,Visua1 Basic6.0作为一个功能强大的开发工具,程序员不仅可以用它来开发小型的桌面管理系统和应用程序,更可以用它来创建企业级的、分布式的,高性能的应用程序和部件。除了VB之外,当前能够编制windows应用程序的可视化编程工具还有很多,所针对的编程领域也各有侧重,就微软系列的可视化开发工具而言,就有Visual C+,Visual Foxpro等,其中Visual Foxpro是针对数据库编程的开发工;Visual C+是为专业程序设计员提供的开发工具,变量声明和定义严密,功能强大灵活,必须经过相当的努力才能掌握,相对而言VB简单易学,变量定义不太严密,对于非专业程序员而言功能足够
10、强大,同Visual C+一样也支持数据库编程。可方便的使用标准的Active部件,调用标准的接口,实现特定的功能。Active技术发展了原有的OLE技术,他使开发人员摆脱了特定语言的束缚。在选择所需要的应用程序开发工具时,不但要考虑开发工具的功能是否强大,还要考虑所花费的时间和效果。本设计需要开发一个小型的桌面管理系统和应用程序,必要时可以制作成企业级的应用程序,选用VB更符合要求。2.2 身份信息载体 本系统使用Mifare MF1 IC S50(即Mifare 1k)作为用户身份信息载体。Mifare 1k是第一个在韩国汉城大型运输项目中被运用于高容量的公共交通票务的IC卡。目前,继于这
11、个成功运用的城市有伦敦,北京,台北,釜山等更是采用Mifare作为非接触式接口平台,未来会更多。Mifare 1k,主要是用于封闭的系统,由服务提供商提供作为固定值的票据(如每周或月的旅行通行证),或作为票据而价值是来自卡中信息。主要应用领域:公共交通,存取管理,活动票务,游戏,身份验证。主要功能:1K的EEPROM(768字节可用);具有唯一的序列号(4字节);16个可靠扇区支持多种应用;每个扇区包括4个长度为16字节的数据块;每扇区有2*48字节作为键位字;2层键位字准入条件自由配置;可进行100000次单一写操作;数据保存期10年2。与传统的接触式IC卡、磁卡相比较,利用射频识别技术开发
12、的非接触式IC卡读写器,成功地将射频识别技术、磁电技术、计算机技术和IC卡技术结合起来,解决了卡中无电源、低功耗和免接触这一难题,克服了接触式IC卡由于存在机械接触,容易造成磨损以及由于接触而产生各种故障的问题而且非接触式IC卡表现出来的防监听、防解密性能也超出一般的IC卡,不论非接触式IC卡本身,还是非接触式IC卡读写设备,均防水、防油、防污、防腐蚀、防扭曲、防静电,具有高安全、高可靠、高快捷、高适用等性能,是现代电子技术领域的一大突破3。2.3 射频识别技术射频识别,是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象,可快速地进行物品追踪和数据交换。识别工作无须人工干预,可工作于
13、各种恶劣环境。射频识别技术可识别高速运动物体并可同时识别多个标签,操作快捷方便。为ERP(Enterprise Resource Planning)、CRM(Customer Relationship Management) 等业务系统完美实现提供了可能,并且能对业务与商业模式有较大提升。射频识别技术诞生于第二次世界大战期间,它是传统条码技术的继承者,又称为“电子标签”4。一个典型的射频识别技术系统一般由射频识别标签、阅读器以及计算机系统等部分组成:标签(Tag,即IC卡):由耦合元件及芯片组成,标签含有内置天线,用于和射频天线间进行通信。阅卡器:读取(在读写卡中还可以写入)标签信息的设备。天
14、线:在标签和读取器间传递射频信号。有些系统还通过阅读器的RS232或RS485接口与外部计算机(上位机主系统)连接,进行数据交换。计算机系统:根据逻辑运算判断该标签的合法性。以上过程都会自动完成5。2.4 VB连接数据库2.4.1 ADO(ActiveX Data Object)对象的数据库操作 在本系统中,对数据库的操作使用了ADO对象,ADO的含义和特点如下:ADO是为Microsoft最新的和最强大的数据访问范例OLE DB而设计的数据库应用程序开发的接口,是建立在OLE DB(Object Linking and Embedding)之上的高层数据库访问技术。它封装了OLE DB所提供
15、的接口,比起OLE DB提供者,ADO的接口可以使程序员在更高级别上进行数据交互。ADO技术不仅可以应用于关系数据库,也可以应用于非关系数据库。可以用统一的方法对不同的文件系统进行访问,大大简化了程序编制,增加了程序的可移植性6。ADO客户端应用程序能够通过OLE DB提供者访问和操作在数据库服务器中的数据。ADO 支持用于建立基于客户端/服务器和Web的应用程序的主要功能。其主要优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO同时具有远程数据服务RDS(Remote Data Services)功能,通过RDS可以在一次往返过程中实现将数据从服务器移动到客户端应用程序或Web页、
16、在客户端对数据进行处理然后将更新结果返回服务器的操作7。ADO 提供执行以下操作的方式: (1)连接到数据源。同时,可确定对数据源的所有更改是否已成功或没有发生。指定访问数据源的命令,同时可带变量参数,或优化执行。(2)如果这个命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。(3)适当情况下,可使用缓存行的更改内容来更新数据源。(4)提供常规方法检测错误(通常由建立连接或执行命令造成)。 在典型情况下,需要在编程模型中采用所有这些步骤。但是,由于ADO有很强的灵活性,所以最后只需执行部分模块就能做一些有用的工作。以下元素是ADO编程模型中的关键部分: (1)连接
17、通过“连接”可从应用程序访问数据源,连接是交换数据所必需的环境。对象模型使用Connection对象使连接概念得以具体化。Connection对象用于指定专门的提供者和任意参数。(2)命令通过已建立的连接发出的“命令”可以某种方式来操作数据源。一般情况下,命令可以在数据源中添加、删除或更新数据,或者在表中以行的格式检索数据。 对象模型用Command对象来体现命令概念。Command对象使ADO能够优化对命令的执行。(3)参数通常,命令需要的变量部分即“参数”可以在命令发布之前进行更改。例如,可重复发出相同的数据检索命令,但每一次均可更改指定的检索信息。参数对执行其行为类似函数的命令非常有用,
18、这样就可知道命令是做什么的,但不必知道它如何工作。例如,可发出一项银行过户命令,从一方借出贷给另一方。可将要过户的款额设置为参数。 对象模型用Parameter对象来体现参数概念。(4)记录集如果命令是在表中按信息行返回数据的查询(行返回查询),则这些行将会存储在本地。对象模型将该存储体现为Recordset对象。但是,不存在仅代表单独一个Recordset行的对象。记录集是在行中检查和修改数据最主要的方法。 (5)字段一个记录集行包含一个或多个“字段”。如果将记录集看作二维网格,字段将排列构成“列”。每一字段(列)都分别包含有名称、数据类型和值的属性,正是在该值中包含了来自数据源的真实数据。
19、对象模型以Field对象体现字段。 要修改数据源中的数据,可在记录集行中修改 Field 对象的值,对记录集的更改最终被传送给数据源。(6)错误错误随时可在应用程序中发生,通常是由于无法建立连接、执行命令或对某些状态(例如,试图使用没有初始化的记录集)的对象进行操作。对象模型以Error对象体现错误。ADO的目标是访问、编辑和更新数据源,而编程模型体现了为完成该目标所必需的系列动作的顺序。ADO提供类和对象以完成以下活动: (1)连接到数据源(Connection),并可选择开始一个事务。(2)可选择创建对象来表示SQL(Structured Query Language)命令(Command
20、)。(3)可选择在SQL命令中指定列、表和值作为变量参数(Parameter)。(4)执行命令(Command、Connection或Recordset)。(5)如果命令按行返回,则将行存储在缓存中(Recordset)。(6)可选择创建缓存视图,以便能对数据进行排序、筛选和定位(Recordset)。(7)通过添加、删除或更改行和列编辑数据(Recordset)。(8)在适当情况下,使用缓存中的更改内容来更新数据源(Recordset)。(9)如果使用了事务,则可以接受或拒绝在完成事务期间所作的更改。结束事务 (Connection)8。2.4.2 数据库开发软件的比较SQL Server系
21、列与Access都是关系型数据库管理系统。在关系型数据库中,信息被存放在二维结构的表中,一个关系型数据库包括多表,每一个标都由行(又称为记录)和列(又称为字段)组成。ACCESS是桌面型的小数据库应用,ACCESS中的数据存储在文件系统内,不适合海量数据的存储,ACCESS最大支持2GB左右,SQL SERVER可以更大。SQL SERVER是大数据库,它也属于中型数据库,应用于中小型企业。SQL SERVER的分布式、复制、全文检索、DTS都可以满足中型的应用,一般在WINDOWS体系下,中小型的应用都使用SQL SERVERS。此外,SQL SERVER支持存储国耻、触发器、自定义函数等操
22、作;SQL Server具有易于维护的特点,它采用客户/服务器计算模型,即中央服务器用来存放数据库,该服务器可以被多台客户机访问,数据库应用的处理过程分布在客户机和服务器上,这样便具有数据集中存储、业务逻辑和安全规则的定义在服务器上定义,而后被所有用户使用,节省硬件开销等;另外安全性、并发控制能力、数据挖掘、联机操作等方面都是ACCESS无法超越的9。所以本设计决定使用SQL Server系列中的SQL Server 2000作为数据库开发工具。3 总体设计3.1 系统结构及功能3.1.1 软件结构及需求 本门禁管理系统软件部分采用C/S System模式10,由门禁软件,数据库构成。使用本管
23、理系统,必须将门禁软件安装在Windows 2000及以上操作系统中,由于数据库采用SQL SERVER 2000,使用的计算机必须安装有此数据库,并且可以进行同网联机(同网联机必须将需要联机的机器上的SQL SERVER进行联机设置,并设置防火墙等WINDOWS防御软件允许远程操作,本设计主要讲述使用本机)。整个系统的开发软件采用Visual Basic 6.0。3.1.2 硬件结构及需求图1 系统结构 系统的硬件由计算机,YKE-280非接触IC卡读卡器,Mifare1 S50/S70 U10 IC卡,电子锁构成;对计算机配置的最低要求:内存256M,硬盘40G,奔腾。系统结构如图1所示。
24、3.2 系统界面及实现3.2.1 软件运行流程本软件运行流程由图2所示,主要分为登陆界面,主窗体;主窗体又分为实时监控和信息管理。下面将一一介绍具体流程是怎样实现及工作的。图2 系统流程3.2.2 登陆界面软件运行时,程序首先只加载这一界面,它以独占方式享有系统资源。当使用者登陆软件时,需输入用户名及验证码,默认选择本机做为门禁系统的主机。软件登陆界面如图3所示。为避免使用者输入错误的服务器名称,导致软件联接数据库时无法找到对应的服务器,造成较长时间的系统忙,自动在服务器框输入本机的IP地址,实现自动获得本机IP的方法为:在窗体中添加一个Winsock控件,方法为在工程部件中添加Microso
25、ft Winsock Control 6.0(SP6),然后在窗体load事件中添加代码:Text3.Text = Winsock1.LocalIP Text3.text为服务器框内的内容Winsock1.Close图3 登陆界面当使用者点进入按钮或者回车时,首先判断用户名和验证码的格式是否符合规定,然后通过ADO模式打开指定的SQL SERVER数据库,如图4所示。调用ADO对象必须在工程引用中添加Microsoft Activex Data Objects 2.8 library及Microsoft Activex Data Objects Recordset 2.8 library通过程
26、序的返回值判断所输入的用户名是否存在,然后再检索验证码是否与数据库中记录的一致,如果都无误则进入主窗体。在进入主窗体时,登陆窗体只是隐藏在其背后,而且只将验证码栏清空,如果使用者在其后又连续10分钟(默认10分钟,具体时限由使用者设定,也可无此限制)无操作,后返回时,则再次调用登陆界面,需再次输入密码方可操作,在输入正确密码前门禁依然正常运行。图4 门禁软件通过ADO方式访问数据库 “进入”按钮的事件代码如下,重要代码意图已注释,现名为xqh的登陆:Private Sub Command1_Click()Dim sql As StringDim conn As StringDim rs As
27、New ADODB.Recordsetconn=Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=lymjxt;Data Source= & Text3.Text 连接到数据库lymjxy,由于采用SQL Server 2000,所以Provider=SQLOLEDB.1,数据源为Text3.Text,即服务器框内容。If Trim(Text1.Text) = ThenMsgBox 用户名不能为空!, vbOKOnly + vbExclamation, 错误信息 检验用户名
28、是否为空Text1.SetFocusExit SubElseIf Trim(Text3.Text) = Then 检查服务器内容是否为空MsgBox 服务器不能为空!, vbOKOnly + vbExclamation, 错误信息 检验服务器是否为空Text3.SetFocusExit SubElsesql = select * from xtxt where yonghu= & Text1.Text & 查找数据库lymjxt中xtxt表中yonghu字段属性为xqh的数据On Error GoTo erchuli 如果发生错误则进入到erchuli段程序,避免无法连接到数据库时打包后的程序
29、无法继续运行MousePointer = vbHourglassrs.Open sql, conn, adOpenKeyset, adLockPessimistic 返回记录集MousePointer = vbDefaultIf rs.EOF = True Then 判断记录集是否为空,为空则xqh用户不存在MsgBox 该用户不存在,或密码错误!, vbOKOnly + vbExclamation,错误信息Text1.SetFocusrs.CloseExit SubElseIf Trim(rs.Fields(1) = Trim(Text2.Text) Then 检验密码是否正确ComPort
30、 = 1 给读卡器赋予端口值sjy = Text3.TextText2.Text = frmmain.Show 1 进入主窗体Unload frmmainSet frmmain = Nothingrs.Closetext2.text=Exit SubElseMsgBox 该用户不存在,或密码错误, vbOKOnly + vbExclamation, 错误信息Text2.Text = Text2.SetFocusrs.CloseExit SubEnd IfEnd IfEnd Iferchuli:MsgBox 服务器选择错误或者出错 , 请确认填写信息!, vbOKOnly + vbExclama
31、tion, 错误信息Text3.Text = MousePointer = vbDefaultEnd Sub图5 主窗体3.2.3 主窗体当使用者的身份被确认是合法后,软件显示主窗体界面。在这个窗体,使用者可以进行实时监控,信息管理相关等操作。窗体界面如图5所示。本窗体的左右两部分分别对应实时监控及信息管理。工具栏由TooLbar控件做成,其中的图标是由Imagelist控件加入选用的图标,再与Toolbar属性中的按钮索引一一对应加入。开门、关门采用控件模拟,用4个Shape控件模拟4个不同通道的大门,其黑或白填充颜色分别代表门状态的关和开;蓝色的按钮是手动开关门按钮;红色的按钮是门禁的开关
32、,控制门禁是否可用。4 主体功能及实现在主窗体可以进行实时监控及信息管理两大类的功能操作,下面介绍其具体功能及实现方法以及主要代码。4.1 实时门禁监控当使用者奇数次点击工具栏中的第五项“监视门禁”后,软件进入门禁监视状态。首先系统会检测门禁系统的硬件设备是否接上,如IC卡读卡器。在窗体上加入数个时钟,一个list,一个shape,由于需要用到串口,所以添加一个MSCOMM控件。主体代码为:If MSComm1.PortOpen = True ThenMSComm1.PortOpen = False 关闭通讯埠.End IfMSComm1.Settings = 9600 & ,n,8,1 设置
33、初始参数,波特率9600,无奇偶校验位,8位数据位1位停止位MSComm1.CommPort = 1 使用 COM1lianjie = AutoLinkCom(MSComm1, Timer1) 测试是否连接上On Error GoTo ConnectError 错误处理If lianjie = 0 Then 通过函数的返回值判断是否联上了IC卡读卡器,返回0表示连接上Timer2.Enabled = True 激活实时门禁的时钟,此时钟在加载主窗体时设为停止xyz = RFMifare_SetBuzzerOn(MSComm1, Timer1) 响铃开xyz = RFMifare_SetBuzz
34、erOff(MSComm1, Timer1) 响铃关Shape1.BackColor = &HC000& ListShow List1, 系统检测成功,正在执行门禁, recrec = rec + 1ElseConnectError: 错误处理ListShow List1, 系统检测失败,请检查配件, recrec = rec + 1Shape1.BackColor = &HFF&Exit SubEnd If当控制实时门禁的时钟被激活,系统将每隔0.15秒向IC卡读卡器发出读卡信号,通过返回的一系列数据进行一系列处理,此过程需要连接到SQL Server 2000,所以必须保证SQL Serv
35、er服务器保持打开状态,否则将进入错误处理,要求使用者打开SQL数据库服务器。程序流程如图6所示。实现图6所示流程的主要代码以及注释如下:(1)主事件代码图6 实时监控程序流程Private Sub Timer2_Timer()kh = RFMifare_Getsnr(MSComm1, Timer1, cardnum) 检测是否有人刷卡,有刷卡,则kh=0,将卡号放入cardnum中If kh = 0 ThenIf cardnum chongming Then 检测是否刚用的合法卡,即查看合法用卡计时时钟是否停止Dim sql As StringDim conn As Stringconn=P
36、rovider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=lymjxt;Data Source= & sjy 连接到数据库,sjy表示登陆界面里输入的数据源Dim rs As New ADODB.Recordsetsql = select * from txtx where kahao= & cardnum & 在数据库的查询分析器中执行“select *from txtx where kahao=获得的卡号 ”On Error GoTo chucuors.Open sql, con
37、n, adOpenKeyset, adLockPessimistic 查找合法卡的权限If rs.EOF = False Then 如果有权进入则进行下面开门相关操作kxm = RFMifare_Halt(MSComm1, Timer1) 卡休眠If kxm = 0 Thenchongming = cardnum 刷新合法刷卡记录If mzt = True Then 查看门状态Call Command6_Click 如果门是关着的,打开门Timer3.Enabled = True 合法用卡计时xyz = RFMifare_SetBuzzerOn(MSComm1, Timer1) 铃声开xyz
38、= RFMifare_SetBuzzerOff(MSComm1, Timer1) 铃声关ListShow List1, 大门已开,持卡人卡号: + cardnum, recrec = rec + 1Shape1.BackColor = &HC000&End IfEnd IfElseIf cardnum heika Then 如果不是合法卡,判断是否刚用的无权卡ListShow List1, 有非法卡: + cardnum, recrec = rec + 1xyz = RFMifare_SetBuzzerOn(MSComm1, Timer1) 铃声开xyz = RFMifare_SetBuzze
39、rOff(MSComm1, Timer1) 铃声关heika = cardnum 刷新非法刷卡记录Timer3.Enabled = True 非法刷卡计时End IfEnd Ifrs.CloseEnd IfEnd IfExit Subchucuo:MsgBox 请检测服务器是否运行XYZ=RFMifare_SetRedLEDOff 亮红灯警示End Sub其中,设timer2的interval属性为150。开门过程的代码如下,采用shape控件模拟开关门。(2)开/关门相关代码:Command6对应按钮作为管理者手动开门按钮,管理者通过实际情况选择是否开门,如无访客卡的访客需要通过门禁。开门过
40、程程序: Private Sub Command6_Click()mzt = Not mzt 刷新门状态If Shape2.BackColor = &HFFFFFF ThenShape2.BackColor = &H0& 模拟开门Timer4.Enabled = True 开门计时ElseShape2.BackColor = &HFFFFFF 模拟关门End IfEnd Sub (3)门状态计时代码门状态计时程序需使用到一个时钟控件,通过将时钟的interval属性设置为4000,进行4秒计时,即开门后4秒实现自动关门。代码如下:Private Sub Timer4_Timer()ii2 =
41、ii2 + 1If ii2 = 1 Then 等待计时4秒到来mzt = Not mzt 刷新门状态If Shape2.BackColor = &HFFFFFF ThenShape2.BackColor = &H0& 模拟开门ElseShape2.BackColor = &HFFFFFF 模拟关门End IfTimer4.Enabled = Not Timer4.Enabled 关闭时钟等待下一次开门事件到来时激活ii2 = 0End IfEnd Sub(4)刷卡后计时代码刷卡后,进入刷卡计时程序,也需要用到一个时钟,需要注意的时,这个过程代码和门状态计时一样,需要将计时参数ii1和ii2定义
42、为窗体变量,否则无法正确计时。时钟控件的interval属性设置为5000,即刷卡5秒后才可以再次进行刷卡操作。Private Sub Timer3_Timer()ii1 = ii1 + 1If ii1 = 1 Then 等待计时5秒到来chongming = 5秒重置已刷合法卡的刷卡记录heika = 重置已刷无权卡的刷卡记录Timer3.Enabled = False 关闭时钟,等待下一次刷卡事件到来时激活ii1 = 0End IfEnd Sub以上是实现实时监控代码的主要部分,再经过一些对控件属性修改,写入附加效果代码,定义用到的参数变量类型,接入硬件设备等工作,基本上可以做到如下效果:
43、管理者选择“监视门禁”选项,系统检测当前安装的设备是否齐全,成功则开始进行工作,系统每隔0.15秒向各读卡器发送读卡命令,等待业主刷卡开门。当持有有权进入门禁的业主在读卡器上进行刷卡,系统获得其卡系列号,传给系统中心,再连接SQL Server 数据库中的门禁系统相关数据,查找该卡系列号是否存在,如果存在则继续检索其当前时间的权限,系统通过返回值确认这一信息,确认业主有权进入后,查找当前门禁状态,进行开门或者保持开门控制,刷新关门计时,记录其刷卡记录存入数据库。无权者刷卡也进行类似操作(具体可以设置成刷卡数次后提示管理者是否做出相关措施),只是不发送开门命令。至于如何创建门禁数据库,给与业主门
44、禁卡、权限等工作,那要联系到本设计软件的信息管理功能,将在下文进行简要介绍。4.2 信息管理图7 信息管理结构信息管理是本门禁系统软件的另一大块功能,其结构如图7所示。可以看出信息管理模块可分为五小部分:添加权限(发放卡)、修改权限,删除用户、查询数据和扩展业务。使用信息管理模块的每一小部分功能都需要连接到SQL Server 2000数据库,进行采集、修改等数据操作。所以,实现这五小部分功能,首先要对数据库进行相关设置。表1 业主信息ID列名类型长度可否为空1卡号char12NOT NULL2姓名char12NULL3权限号char2NULL4状态char2NULL表2 刷卡信息ID列名类型
45、长度可否为空1卡号char12NOT NULL2进门日期datetime-NULL3进门时间Smalldatetime-NUll4出门日期datetime-NULL5出门时间Smalldatetime-NULL表3 权限信息ID列名类型长度可否为空1权限号char2NOT NULL2通行日期datetime-NULL3通行时间Smalldatetime-NUll(1)画表在创建数据库前,必须根据需要,创建表格。在本系统中,由于业主多此刷卡进出门禁,会产生多个进出时间,因此需要用到三个表格。一个存放业主个人信息,包括姓名、持有的卡号、持有权限,当前是否在楼宇内等,如表1所示。其中“权限号”与表3“权限信息”关联。一个存放业主刷卡产生的信息,包括卡号、进出刷卡日期,进出刷卡时刻等,如表