• 休闲生活
  • 教育教学
  • 经济贸易
  • 政法军事
  • 人文社科
  • 农林牧渔
  • 信息科技
  • 建筑房产
  • 环境安全
  • 当前位置: 达达文档网 > 达达文库 > 经济贸易 > 正文

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

    时间:2020-09-14 07:53:56 来源:达达文档网 本文已影响 达达文档网手机站

    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中处理,然后传给控制器Wiv.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所示。出库情况与此相同,不再赘述。

    研究与开发超声波定位系统,必将丰富和完善物流管理系统的业务功能,简化库存管理工作程序,大大提高工作效率,改善工作质量,对促进物流信息化建设具有一定的应用价值。

    相关热词搜索: 超声波 定位系统 开发 net

    • 生活居家
    • 情感人生
    • 社会财经
    • 文化
    • 职场
    • 教育
    • 电脑上网