基于.NET的超声波定位系统的开发

来源 :网络与信息 | 被引量 : 0次 | 上传用户:zth123456
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  Super-ID系统即超声波定位系统,简称S-ID系统,是利用超声波对移动物体所在的三维位置进行实时准确、并且非接触性地检测和定位的高性能系统。三维实现的超声波定位系统,比以往系统更加直观和精确。
  S-ID系统是通过实时检测、控制现场作业对象的移动状况,从而,具体且准确地指导作业现场人员的操作,实现对存储货位过程中无差错管理的系统。系统通过监测作业状态,从而改善设备的位置和布局,提高作业效率和仓库利用率,无需人工的货位确认,彻底排除了人为过失。
  
  一、基于.NET的超声波定位系统的关键技术介绍
  
  (一)系统技术简介
  S-ID技术的原理是在固定的三个空间坐标上设置三个超声波接收点,即受信机,被测物(发信机)间断发射超声波,通过测量三个接收点超声波到达的时间,换算为距离,从而得到被测物的空间坐标。系统构成图如图1所示。
  


  利用锂电池供电。每隔一定时间向受信机发送超声波,当收到受信机发回的红外线后,再发送超声波。
  2 受信机
  在接收到发信机发送的超声波后,将位置信息传回控制器,然后发送红外线,确定收到信息,此时发信机再发送超声波。
  3 控制器
  控制程序通过控制器可以向发信机和受信机发送指令,也可以通过控制器接收来自发信机和受信机的信息。然后将信息发送给上位PC进行处理。
  


  (二)3D编程技术
  1 D3D
  D3D通过HAL(硬件抽象层)提供设备独立;HAL是由设备制造商提供的设备指定接口,D3D直接使用显示硬件来工作,程序才能不需要和HAL交互。应用程序使用D3D暴露的一系列接口和方法而不是HAL提供的机制来使用显示设备。设备制造商在WINDOWS的各个平台上(XP,2000,98等)实现32位编程。HAL可以是显示驱动器的一部分,或和设备驱动器通过一个驱动器生产商定义的接口来通讯的独立DLL(动态链接库)。
  D3D HAL由芯片制造商、主板生产商或OEM实现。HAL仅仅实现设备依赖的代码并不竞争的执行。如果硬件没有执行一个功能,HAL就不会将其作为硬件功能来报告。另外。HAL并不验证参数,D3D在调用HAL之前执行参数验证。在微软DirectX 9。HAL可以有三种不同的顶点处理模式:软件顶点处理、硬件顶点处理和同一个设备上的混合顶点处理。纯设备模式是HAL设备的变量。纯设备类型仅仅支持硬件顶点处理,并仅仅允许应用程序查询状态的一个小的子集。另外,纯设备仅仅在有最小化容量级别的适配器上使用。
  2 OpenGL
  OpenGL是用于开发简捷的交互式二维和三维图形应用程序的最佳环境,任何高性能的图形应用程序,从3D动画、CAD辅助设计到可视化仿真,都可以利用OpenGL高质量、高性能的特点。OpenGL已成为独立于应用平台的图形标准,一个典型的OpenGL应用程序可以在任何平台上运行一只需要使用目标系统的OpenGL库重新编译一下。
  OpenGL非常接近硬件,是一个圆形与硬件的接口,包括了100多个图形函数用来建立三维模型和进行三维实时交互。QpenGL强有力的图形函数不要求开发人员把三维物体模型的数据写成固定的数据格式,也不要求开发人员编写矩阵变换、外部设备访问等函数。大大地简化了编写三维图形的程序。由于微软在Windows中包含了OpenGL,所以OpenGL可以与Visual系列开发工具紧密接台,简单快捷地实现有关计算和图形算法,并保证算法的正确性和可靠性。简单地说。OpenGL具有建模、变换、色彩处理、光线处理、纹理影射、图像处理、动画及物体运动模糊等功能。
  


  OpenGL的作用机制是客户(client)/控制器(sever)机制,即客户(用OpenGL绘制景物的应用程序)向控制器(即OpenGL内核)发布OpenGL命令,控制器则解释这些命令。大多数情况下,客户和控制器在同一机器上运行。正是OpenGL的这种客户/控制器机制,OpenGL可以十分方便地在网络环境下使用。因此Windows NT下的OpenGL是网络透明的。OpenGL图形库被封装在一个动态链接库内(OpenGL,DLL)。受客户应用程序调用的QpenGL函数都先在OpenGL32.DLL中处理,然后传给控制器Winsrv.DLL。OpenGL的命令再次得到处理并且直接传给Win32的设备驱动接口(De-vice Drive Interface。DDI),这样就把经过处理的图形命令传送给视频显示驱动程序。
  而在三维图形加速卡的GLINT图形加速芯片的加速支持下,两个附加的驱动程序被加入这个过程中。一个OpenGL可安装驱动程序(Installable Client Driver,ICD)被加在客户这一边,一个硬件指定DDI (Hard—ware-specific DDI)被加在控制器这边,这个驱动程序与Win32 DDI是同一级别的。
  (三)3DSTATE引擎介绍
  3DSTATE 3D图形引擎是一套3D图形开发环境,其为通用3D软件开发提供了所有的底层支持。使用此开发环境开发3D软,件,用户不必了解引擎的工作原理,只需将精力放在自身软件的逻辑处理上,剩下的工作将由引擎来完成。
  1 3D STATE3D引擎的特性
  (1)高性能
  3D STATE 3D引擎可获得较高的FPS(Frames Per Second)值,它在渲染速度(FPS)已接近硬件的理论值。它的画面质量属艺术级的,引擎内部还带有许多特效制作函数,用它们可制作出诸如半透明彩色板、爆炸、水下、水面波纹、3D动画、灯光、影子等特效。
  (2)新技术
  引擎在渲染速度和图像质量上具有高于其它基于PC机上的引擎的性能。使用3D STATE的3D引擎使得向任意程序添加3D内容变得简单。
  (3)简单易用
  在引擎SDK中,没有任何新的数据结构和类,都只是基本的APl函数,综合使用这些API函数。即可在较短的时间里开发出高性能的8D程序来。
  (4)完全的自我控制
  在引擎中,只需通过其API函数在位或字节级别上控制引擎的各方面行为,且在使用本引擎时,仍然可以继续使用其他引擎。
  (5)通用性
  引擎可用于任何需要3D内容的程序。且针对户内和户外式的程序都做过了优化处理。
  (6)完整的开发工具包
  引擎的开发包中。附带以下工具:
  SDK:在用户所熟悉的开发环境中,可以使用它的API函数集对3D世界进行完整的控制。
  World Builder:用它可以通过简单的鼠标拖放操作直接设计出复杂的3D世界。
  Terrain Builder:用它可将位图直接转换 为真实的3D地形。
  World Text Editor:用它可直接编辑3D世界文件。
  World Viewer:用它直接可以打开并看到3D世界文件的内容,便于对世界文件的修改。
  (7)DLL技术
  由于3D STATE的3D图形引擎采用DLL技术,当引擎版本升级时,用户只需用新的DLL替换老的DLL即可,而不需要重新编译程序。
  2.3DSTATE3D引擎基础
  (1)3D坐标系
  3D坐标系表示为:X轴——其正方向从屏幕里指向屏幕外;Y轴一其正方向从左指向右:z轴——其正方向从下指向上;原点——为(0.0.0)此坐标系也就是引擎中的世界坐标系,它属于绝对坐标系。所有其它坐标系将相对于此坐标系定义,如组的坐标系、目标的坐标系以及摄像机的坐标系,他们都是相对坐标系。在实际使用时,使用相对坐标系往往比绝对坐标系更方便。
  (2)句柄
  在引擎中,所有目标均有一个句柄(DWORD值),用它来标识一个特定的目标。所有面向特定目标操作的APl函数均接收这个句柄,以确定要操作的对象。引擎API函数中,几乎各组API中均有一个函数STATEZ_is(…),我们可用此函数来判定给定的句柄是否指定类型目标的标识。
  (3)编辑器模式(Editor Mode)与观察者模式(Viewer Mode)
  引擎有两种运行模式,即编辑器模式和观察者模式。这两种模式的选用由世界文件加载函数STATE_engine_load_world在启动引擎时一次性设置。并且不可实时切换,缺省为观察者模式。引擎运行时可由STATE engine_is_editor mode来识别正在运行的模式。
  
  二、基于.NET的超声波定位系统的实现
  
  (一)设备与控制器之间的技术连接
  1 C/S模型
  即客户端,服务器模型,是一种非对称式编程模式。对于这种模式而言,其中一部分需要作为服务端,用来响应并为客户提供固定的服务;另一部分则作为客户端用来向服务端提出请求或要求某种服务。在实际应用中,程序可以同时包含客户端和服务端。在此系统中。服务端即控制器。
  2 连接方式
  服务器套接口连接中,考虑采用赋给控制器专用端口(50D3)来实现连接。在建立了与控制器套接口的连接后,应用程序会打开客户端的配置文件,对数据库信息进行读取。在与控制器建立连接时,如果连接未成功,则结束连接请求,并提示连接失败;若连接成功,就会对客户端消息进行处理并等待控制器的响应。
  (二)数据库操作实现
  系统实现中的应用程序页面与数据库之间的操作主要是通过DataTable完成的。DataTable是ADO,NET中的一个类,可用于在程序中以临时表的形式填充数据。程序员可以对DataTable进行定制,通过Spread表格工具实现数据库数据的在线编辑、更新、删除,以及对显示数据进行排序、打印等,这些都方便了系统编程工作。
  (三)系统流程
  系统的主要工作包括:入库管理、出库管理、库存管理等。
  入库作业流程包括:设备连接、确定入库明细、进行入库操作、完成入库。如图2所示。
  出库作业流程包括:设备连接、确定出库明细、进行出库操作、完成出库。
  (四)系统功能实现
  1 系统界面
  当用户初次使用本系统时,需要分别对控制器、发信机、受信机进行设置,此时系统会把这些值存入数据库中,下次使用时,上一次设置的值即为默认值。点击默认设置以后,用户需要确定要进行的操作。即入库作业或出库作业,选择后下拉菜单和文本框被激活,可以通过它们确定货物的种类及数量,点击“OK”,进入作业监控界面。如图3所示。
  2 连接界面
  用户输入欲连接控制器的IP地址及端口号。然后点击“Connect”按钮,如已连接,则提示已连接控制器;如连接成功,则提示连接成功并返回系统界面;如未连接成功,则提示连接失败;若点击“Close”按钮,则关闭与控制器的连接。如图4所示。
  3 发信机界面
  用户输入要使用的发信机数量,发送时间间隔。点击“Set”按钮确定。然后逐一设置发信机地址,以“Finish”按钮完成设置。如图5所示。
  4 受信机界面
  先设置受信机地址,然后该地址所对应的受信机会自动在下面的下拉菜单中出现,在下拉菜单中选择受信机,并逐一设置坐标,以“Finish”按钮完成设置。如图6所示。
  5 在库管理界面
  用户可以通过此界面查询、修改或删除货物。如图7所示。
  (1)查询
  在文本框中输入一个货物名称。然后意击“Search”按钮,如存在。则在表格中显示其明细;如不存在,则提示货物不存在;若直接点击“Search”按钮,则在表格中显示所有货物明细。
  (2)修改
  在表格中有内容的情况下,修改内容,然后点击“Modify”按钮,如修改成功,则提示修改成功并修改数据库;否则修改失败。
  (3)删除
  在文本框中输入一个货物名称,然后点击“Delete”按钮,如该货物存在,则提示是否确定要删除,选择“是”,则删除,选择“否”。则返回;如该货物不存在,则提示货物不存在。或者在表格中有内容的情况下,选择一行,然后点击“Delete”按钮。也可进行删除操作。
  6 作业监控界面
  用户可以利用光标键或鼠标控制镜头在三维空间内的移动,也可以单击鼠标左键切换跟踪对象,或单击鼠标右键切换自由移动和跟踪两种视角。在屏幕左上角显示了当前两个发信机的坐标(两发信机在图中分别以红、蓝两种颜色色块表示)和用户要的货物,在此例中为一台显示器,当发信机移动到显示器位置时,会弹出提示,询问是否要入库,选择“是”,则操作完成,同时修改数据库,程序返回系统设置界面;如选择“否”,则继续监控作业,如图8所示。出库情况与此相同,不再赘述。
  研究与开发超声波定位系统,必将丰富和完善物流管理系统的业务功能,简化库存管理工作程序,大大提高工作效率,改善工作质量,对促进物流信息化建设具有一定的应用价值。
其他文献
摘要:文中从主函数、类与结构、模板与宏三方面阐述了C/C++之间的联系。从编程思想。关键宇和语法格式三方面论述了二者的区别。最后给出培养学生编程思路这一教学原则。  关键词:c/c++;程序设计;编程思想    1 引言    “c语言程序设计”课程是高校计算机及相关专业的传统课程,近年来该课程却逐渐向“C/C++程序设计”过渡,更有甚者干脆摒弃C语言课程直接开设C++课程,这一现象值得我们反思,
期刊
摘要:为了增强WEB数据库的安全,本文主要介绍了通过QDBC安全访问接口的设计与实现,在基于关系数据库的安全增强器中对标准ODBC访问接口做了扩充。  关键词:WEB数据库;ODBC;安全增强器    1 引言    在网络发展的早期。由于用户对安全还不是很重视,原来数据库的结构是客户机ODBC-数据库服务器3层体系结构。随着现代网络技术的发展,网络服务器数据库安全越来越重要,为了提升网络数据库的
期刊
摘要:针对我校图书馆数据资源的日益丰富和重要,介绍了SAN架构在我馆网络存储中的应用,分析了SAN架构在网络存储中的优越性。  关键词:网络存储;SAN架构;图书馆;数据资源    1 背景    近年来,随着高校图书馆信息化建设和应用的蓬勃发展,图书馆借还书系统以及各类数据库系统积累了大量的数据资源。我们调研了直接存储(Direct Attached Storage,简称DAS)、以LAN接口连
期刊
企业网络安全是一个纷乱的话题,之所以如此,是因为大部分网络安全产品的功能定义界定的都不是很清楚,技术概念很容易混淆。  在网络出现问题的时候。很多人想到的第一件事是安装防火墙,第二件事是杀毒。然而,这种惯性的处理办法在目前的环境下并不很有效。所以,搞好企业网络安全。要对各种安全产品的功能和作用有一个清楚的了解,才能真正从根本上解决问题。  其实,大概地来说,企业网络安全分为两个大的层次——网络基础
期刊
摘要:数据采集是仿真的一项重要内容,只有通过数据采集和对有效数据的过滤,才可以实现回放、分析、评估等目的。HLA的对象模型模板规定了联邦开发人员开发产生的数据可采用的接口,利用动态编译数据采集工具与分层对象方法采集联邦运行中产生的数据。  关键词:高层体系结构;数据采集;过滤方法    1 引言    随着分布式仿真(Distributed Interactive Simulation,DIS)
期刊
UUSee网络电视是深受网友喜爱的在线直播,点播软件之一,用户可轻松观看到直播的电视节目和点播资源。缓存速度快,视频码率高。而今天。笔者所要为大家介绍的,则是如何通过软件设置功能,使UUSee网络电视软件更加强大和充满个性。  UUSee网络电视2008的下载地址:http://xiazai.zpl.com.cn/detail/10/95076.shtml    1 设置开启类型定制播放提醒  U
期刊
UUSee网络电视2008凭借着丰富的内容、清晰的画质、流畅的点播速度及操作简单的特性,深受广大网友的欢迎。今天,笔者便为大家介绍这款软件的两个非常实用的功能和技巧。方便大家更好地使用这款网络电视软件。  UUSee网络电视2008 5.4.1215.3的下载地址:  http://xiazai.zol/com.cn/aetail/10/95076.shtml  技巧1:模式轻松换  很多上班族在
期刊
摘要:随着业务规模的扩大,油田物资检验所原有的计量检定流程暴露出各种各样的问题,已经无法继续满足工作的需要。本文在对原有的检验流程进行了分析后对业务流程成功地实行了重组。并在此基础上设计实现了计量检定管理信息系统。本系统的开发基于B/S模式和ASP.NET平台,结合了条形码技术,集成了全套检验流程,实现了计量检定管理的标准化和网络化。  关键词:计量检定;业务流程重组;条形码;ASP.NET   
期刊
摘要:该文主要谈一谈在Tomcat服务器上,如何通过JDBC-ODBC桥实现JSP与Access简单数据库的连接。文中也简单地介绍了JSP平台的搭建。  关键词:JDBC-ODBC;ODBC数据源;Access数据库    “注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
期刊
摘要:Java语言实现了在语言级对多线程技术的支持。多线程技术不仅能提高系统资源的利用率,而且还能提高程序的交互性能和实时控制性能。本文阐述了Java语言实现多线程的方法,分析了多线程并发执行所引起的冲突问题、Java提供的同步机制和多线程的管理策略。  关键词:多线程;同步;线程    “注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
期刊