LabVIEW调用操作系统功能

合集下载

LabVIEW与嵌入式实时操作系统实现实时控制和数据处理

LabVIEW与嵌入式实时操作系统实现实时控制和数据处理

LabVIEW与嵌入式实时操作系统实现实时控制和数据处理嵌入式实时操作系统在实时控制和数据处理领域具有广泛的应用,而LabVIEW作为一种功能强大的可视化编程语言和开发环境,提供了丰富的工具和库,用于实现实时控制和数据处理。

本文将探讨LabVIEW与嵌入式实时操作系统的结合,以及如何使用这两者来实现实时控制和数据处理。

1. 理解LabVIEWLabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司(National Instruments,NI)推出的一种图形化程序化编程语言和开发环境。

它的主要特点是可视化编程和数据流图形语言,通过拖拽和连接不同的图标来实现程序的编写。

LabVIEW提供了丰富的工具和库,用于各种应用领域的数据采集、信号处理、控制和数据可视化等。

2. 嵌入式实时操作系统概述嵌入式实时操作系统是一种专门用于嵌入式系统的操作系统,具有实时性和可靠性的特点。

实时性指的是系统能够在规定的时间内响应事件,包括硬实时和软实时两种类型。

可靠性则是指系统能够稳定地工作并提供准确的结果。

常见的嵌入式实时操作系统有VxWorks、QNX和FreeRTOS等。

3. LabVIEW与嵌入式实时操作系统的结合LabVIEW可以与嵌入式实时操作系统结合,实现实时控制和数据处理的应用。

通过搭建LabVIEW图形化界面,可以方便地进行系统配置、参数调整和数据监控等。

在嵌入式实时操作系统上,LabVIEW可以通过特定的接口与外部硬件设备进行通信,实现实时数据采集和控制。

4. LabVIEW在实时控制中的应用LabVIEW在实时控制领域的应用非常广泛。

通过搭建LabVIEW图形化界面,可以方便地进行系统参数配置和控制策略调整。

并且,LabVIEW提供了丰富的控制函数和工具,可以实现PID控制、模型预测控制等各种控制算法。

通过与嵌入式实时操作系统结合,LabVIEW可以实现实时控制任务的调度和执行,保证系统的响应速度和稳定性。

LabVIEW的数据库连接与操作数据管理的利器

LabVIEW的数据库连接与操作数据管理的利器

LabVIEW的数据库连接与操作数据管理的利器在现代科学技术领域中,数据管理是一项至关重要的任务。

而在实验室环境中,LabVIEW作为一种强大而灵活的编程语言和开发环境,可以帮助实验室研究人员轻松地连接数据库并有效地操作和管理实验数据。

本文将介绍LabVIEW的数据库连接功能以及其在数据管理方面的优势。

一、LabVIEW数据库连接的基本原理LabVIEW通过称为Database Connectivity Toolkit(简称DB Toolkit)的工具包,提供了与数据库连接的功能。

这个工具包支持多种数据库系统,包括MySQL、Oracle、SQL Server等。

借助DB Toolkit,LabVIEW用户可以轻松地完成数据库连接的配置和使用。

在进行数据库连接时,LabVIEW使用ODBC(Open Database Connectivity)协议,该协议提供了一种标准的接口,使得不同的数据库系统可以在不同的操作系统上进行连接和操作。

通过调用DB Toolkit 的相关VIs(Virtual Instruments),用户可以简单地设置数据库连接字符串、用户名、密码等参数,实现与数据库的连接。

二、LabVIEW的数据库连接应用场景1. 实验数据存储和管理在进行科学实验时,通常会产生大量的实验数据。

LabVIEW的数据库连接功能可以帮助研究人员将实验数据直接存储到数据库中,提高数据存储的安全性和可靠性。

此外,通过数据库连接,研究人员可以方便地对实验数据进行查询、统计和分析,以支持科研工作的进展。

2. 设备监控和数据采集许多实验室环境需要对实验设备的状态进行实时监控,并对设备产生的数据进行采集和存储。

LabVIEW的数据库连接功能可以与实验设备的控制系统结合,实现设备状态的实时监测,以及数据的实时采集和存储。

这为实验工作者提供了一个全面了解设备状态和采集数据的便捷途径。

3. 数据共享和协作LabVIEW的数据库连接功能还支持数据共享和协作。

LabVIEW开发环境介绍掌握LabVIEW界面及功能

LabVIEW开发环境介绍掌握LabVIEW界面及功能

LabVIEW开发环境介绍掌握LabVIEW界面及功能LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一款由美国国家仪器公司(National Instruments)开发的图形化编程语言和开发环境。

它的独特之处在于提供了一种直观而强大的方式来设计和测试各种虚拟仪器。

本文将介绍LabVIEW的开发环境,包括界面和功能,并提供一些使用技巧和例子帮助读者快速入门。

一、LabVIEW的界面LabVIEW的界面整洁直观,主要由以下几个部分组成:1. 菜单栏:位于LabVIEW的顶部,提供了各种命令和功能选项,可以进行项目管理、文件操作、运行程序等。

2. 工具栏:位于菜单栏的下方,提供了常用的工具和快捷功能按钮,如新建、保存、运行等。

可以通过自定义工具栏来满足个人需求。

3. 前面板:位于LabVIEW的中间部分,类似于用户界面,用于显示和控制虚拟仪器的输入和输出。

可以通过拖拽控件、布局面板、添加图形等方式进行设计和定制。

4. 结构面板:位于前面板的左侧,用于组织程序的流程结构,包括循环、条件判断、事件等。

可以将不同的节点连接起来,形成程序的执行流程。

5. 控件面板:位于前面板的右侧,包含了各种用于输入和显示数据的控件,如按钮、滑动条、图形显示等。

可以通过拖拽和连接控件,实现数据的采集和处理。

6. 导航面板:位于LabVIEW的左侧,用于浏览和管理项目的各个文件和文件夹。

可以显示项目中包含的虚拟仪器、子VI(Virtual Instrument)等。

7. 窗口控制面板:位于LabVIEW的右上角,提供了一些窗口管理的选项,如打开/关闭面板和调整布局等。

二、LabVIEW的功能LabVIEW作为一种图形化编程语言,具有丰富的功能和特性,包括但不限于以下几点:1. 数据采集与处理:LabVIEW可以通过连接各种传感器和仪器,进行数据采集和实时监测。

基于LabVIEW的实验室仪器远程控制管理系统

基于LabVIEW的实验室仪器远程控制管理系统

基于LabVIEW的实验室仪器远程控制管理系统在当今科技迅速发展的时代,实验室仪器的管理和控制方式也在不断地革新。

基于 LabVIEW 的实验室仪器远程控制管理系统应运而生,为实验室的高效运作和科学研究提供了有力的支持。

LabVIEW 是一种图形化编程环境,它具有强大的数据采集、分析和控制功能。

利用 LabVIEW 开发实验室仪器远程控制管理系统,能够实现对仪器的远程操作、实时监测、数据记录和分析等一系列功能,极大地提高了实验效率和数据准确性。

一、系统的需求分析首先,实验室仪器远程控制管理系统需要满足不同类型仪器的接入需求。

实验室中的仪器种类繁多,包括电子测量仪器、分析仪器、物理实验仪器等,每种仪器都有其独特的通信协议和控制方式。

因此,系统需要具备良好的兼容性,能够与各种仪器进行通信和交互。

其次,系统应具备可靠的远程控制功能。

操作人员可以通过网络在异地对实验室仪器进行启动、停止、参数设置等操作,并且能够实时获取仪器的工作状态和反馈信息。

这不仅方便了实验人员的工作,还能够在紧急情况下及时停止实验,保障人员和设备的安全。

此外,数据采集和处理也是系统的重要需求之一。

系统需要能够准确地采集仪器产生的数据,并进行实时处理和分析,为实验研究提供有价值的信息。

同时,数据的存储和管理也至关重要,以便后续的查询和回溯。

二、系统的总体架构基于 LabVIEW 的实验室仪器远程控制管理系统通常由仪器端、服务器端和客户端三部分组成。

仪器端负责与实际的实验室仪器进行连接和通信,采集仪器的工作数据和状态信息,并将其上传至服务器端。

为了实现与不同仪器的通信,通常需要使用各种通信接口和协议转换模块。

服务器端是系统的核心部分,负责接收和处理来自仪器端的数据,同时响应客户端的请求。

服务器端需要具备强大的数据处理能力和存储能力,以保证系统的稳定运行和数据的安全性。

客户端则是提供给用户的操作界面,用户可以通过客户端远程访问服务器,实现对实验室仪器的控制和管理。

LabVIEW中的数据库连接和操作

LabVIEW中的数据库连接和操作

LabVIEW中的数据库连接和操作在LabVIEW中,数据库连接和操作是非常重要的功能,可以帮助我们实现与数据库的数据交互和处理。

LabVIEW提供了一系列的数据库工具和函数,使得数据库连接和操作变得简单和高效。

本文将介绍LabVIEW中如何进行数据库连接和操作,并探讨其应用。

一、数据库连接数据库连接是实现LabVIEW与数据库之间数据传输和通信的基础。

LabVIEW可以连接各种类型的数据库,如MySQL、SQLite、Oracle等。

在进行数据库连接之前,我们需要先安装相应的数据库驱动。

在安装完成后,我们可以使用LabVIEW提供的Database Connectivity Toolkit或者使用原生的数据库连接函数来实现连接。

LabVIEW的Database Connectivity Toolkit提供了一系列的VIs (Virtual Instruments),可以帮助我们简化数据库连接和操作。

我们可以通过Database Connectivity Toolkit中的VIs来选择数据库类型、连接数据库、执行SQL查询等操作。

这些VIs直观易用,可以减少我们的编程工作量,提高开发效率。

如果我们不使用Database Connectivity Toolkit,而是使用原生的数据库连接函数,我们可以通过调用相应的函数来实现数据库连接。

LabVIEW提供了一系列的数据库连接函数,如Open Database.vi、Connect to Database.vi等。

我们可以根据实际需求选择合适的函数来建立与数据库的连接。

二、数据库操作在完成数据库连接后,我们需要对数据库进行操作,包括数据查询、数据插入、数据更新等。

LabVIEW提供了一系列的数据库操作函数,具有高度的灵活性和可扩展性,可以满足我们对数据库的各种需求。

1. 数据查询LabVIEW提供了多种方式来进行数据查询。

我们可以使用SQL语句来执行查询操作,也可以使用LabVIEW的Query Database.vi来进行查询。

LabVIEW中的数据库操作与SQL查询

LabVIEW中的数据库操作与SQL查询

LabVIEW中的数据库操作与SQL查询LabVIEW是一款功能强大的图形化编程软件,广泛应用于科学研究、实验室操作、工业自动化控制等领域。

除了处理传感器数据、控制仪器设备外,LabVIEW还提供了丰富的数据库操作功能,能够方便地进行数据的存储、查询和分析。

本文将介绍LabVIEW中的数据库操作与SQL查询的相关知识。

一、数据库操作基础1. 数据库连接在LabVIEW中,我们可以使用数据库连接工具来与各种类型的数据库建立连接。

通过选择相应的数据库驱动程序,设置数据库连接字符串,我们可以与MySQL、Oracle、SQL Server等各种数据库进行交互。

2. 数据库创建与删除LabVIEW提供了创建和删除数据库的功能模块,我们可以使用这些模块轻松地创建新的数据库表、字段、索引等结构,或者删除已有的数据库对象。

3. 数据表操作在数据库中,数据以表的形式存储。

在LabVIEW中,我们可以使用相应的模块进行数据表的创建、修改、删除等操作。

此外,还可以定义表之间的关系,包括主键、外键等。

二、SQL查询语句的使用SQL(Structured Query Language)是一种用于数据库管理系统的语言,用于进行数据的查询、插入、更新和删除等操作。

在LabVIEW中,我们可以通过编辑SQL查询语句来实现对数据库中数据的灵活处理。

1. SELECT语句SELECT语句用于从数据库中检索数据。

我们可以指定需要检索的字段、数据表、条件等,LabVIEW会根据SQL查询语句的要求,从数据库中返回满足条件的数据记录。

2. INSERT语句INSERT语句用于向数据库中插入新的数据记录。

我们可以指定要插入的数据表、字段和数值,LabVIEW会将这些数据记录添加到数据库中相应的位置。

3. UPDATE语句UPDATE语句用于更新数据库中已有的数据记录。

我们可以根据指定的条件,更新满足条件的数据记录的字段值,以实现数据的修改和更新。

labview的深入探索----被人淡忘的DOS命令,SYSTEM EXEC

labview 的深入探索----被人淡忘的DOS 命令,SYSTEM
EXEC
我在速查表收集了DOS 命令列表,对于386 时代的人来说,一般人是接触不到计算机的,DOS 命令是同计算机操作系统唯一交流的系统工具,在WINDOWS
大行其道的今天,只有网管和黑客们还在孜孜不倦地研究它,DOS 命令渐渐被人遗忘了,令人眼花缭乱的WINDOWS 可视界面取代了它,计算机变的越来越傻瓜化,DOS 命令成了老掉牙的东西.但是,随着你对计算机了解的更深入,更底层的时候,你会发现DOS 命令是把利器,因为它封装的是基本的BIOS 系统调用,在LV 中,如果执行一些与操作系统相关的操作,您会发现那很困难,对于熟悉API 的人, 在搞计算机的领域会得到尊重,因为您可以肯定他对WINDOWS 有深入地理解, 没有几年的编程经验是做不到的.API 复杂的参数调用和数量另人望而却步.
事实上,我们需要的很多系统操作方面的功能在DOS 命令中都能找到,每一个DOS 命令都是针对操作系统的,凡是涉及到系统调用,而用LV 很难实现的情况下,回过头来,您会发现这是DOS 的基本功能,正象我们每个人一样,整天在追求, 当世界突然发生粮食短缺的时候,我们才终于体会到我们需要的到底是什么. DOS 命令分为内部命令和外部命令,所谓内部命令都包含在 中,这个文件在计算机启动后自动加载,所以内部命令随时可
以使用,外部命令实际上一个单独的执行文件,现在一般都包含在WINDOWSSYSTEM32 目录下.
LV 中提供了系统执行节点,它的一个基本功能就是可以调用DOS 命令.
对于CLF 和CIN,熟悉LV 的朋友可能都已经用过了,SYSTEM EXEC 和
CLF,CIN 位于同一个模板中.
一:。

Labview基本常见问题解答2

Labview基本常见问题解答21、如何用LabView与可编程仪器通信,该仪器没有GPIB接口,但有COM口,能否用LabView操作?A:可以通过LV的串口通信来解决仪器控制问题,参看FIND EXAMPLE的BASIC 2 PORT SERIAL WRITE AND READ.VI2、如何将EVENTSTRUCT中捕获的时间传递到STA TE DIAGRAM?A:使用VENTSTRUCT捕获面板事件后,将不同的事件对应于不同的字符串和其他,再通过QUEUE将VENTSTRUCT中的字符串传递到STA TEDIAGRAM中,再根据得到的字符串进行相应的处理。

3、使用WRITE TO BINARY FILE函数向二进制文件中写入一个1D数组,为什么在READ FROM BIANRY FILE读取时,会多出4个字节数据呢?A:写入时加入了头信息,多出的4个字节就是头信息,代表了数组或字符串的长度。

在WRITE TO BINARY FILE 中的APPEND ARRAY OR STING SIZE这个输入端口中设置,其默认值为T,代表加入头信息;如果将其改为F,就不会多出4个字节了。

4、卸载LabView 7.1时出现错误1603,接着出现错误1722和1721,程序询问是否继续卸载操作,怎样消除该错误并正确卸载7.1?A:该错误通常出现在试图卸载某些共享组件的时候。

按照以下步骤可以解决该问题。

1)注意当错误发生时是在卸载哪一部分组件。

一般讲在卸载LV核心部分或LV RUNTIME ENGINE的时候容易出现。

2)当出现错误代码1603,弹出对话框提示继续卸载操作时候,点击YES3)如果卸载完成之后提示需要重新启动计算机,点击NO。

4)对于卸载过程中产生的错误,从CD相应的文件夹中手动运行相应的组件,路经如下:/components/lvcorefull/lvcorefull.msi或components/lvruntimeeng/lvruntimeeng.msi点击修复按钮。

使用LabVIEW进行实时数据处理和控制

使用LabVIEW进行实时数据处理和控制LabVIEW是一款强大的图形化编程平台,被广泛应用于进行实时数据处理和控制。

它提供了一套丰富的工具和功能,使得开发者能够快速而高效地处理和控制实时数据。

本文将介绍LabVIEW的基本原理和使用方法,并探讨其在实时数据处理和控制领域的优势和应用场景。

一、LabVIEW的基本原理LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是由美国国家仪器公司(National Instruments)开发的一款图形编程软件平台。

它的特点在于使用图形化的编程界面,用户可以通过将各种图形对象拖拽到编程区域来完成程序的设计。

每个图形对象代表特定的功能模块,用户只需要通过连接这些对象,就能够构建出复杂的数据处理和控制系统。

LabVIEW的核心是一种数据流图(Dataflow Diagram)的编程方式。

数据流图以数据流作为主要的控制流程,不仅可以很直观地反映程序的执行流程,还能够轻松实现多任务并行处理,提高程序的响应速度和效率。

此外,LabVIEW还提供了各种丰富的工具和函数库,方便用户进行各种操作和复杂算法的实现。

二、LabVIEW的使用方法使用LabVIEW进行实时数据处理和控制,需要按照以下步骤进行:1. 创建VI(Virtual Instrument):VI是LabVIEW中的基本单元,类似于其他编程语言中的函数或方法。

用户首先需要创建一个VI,作为程序的主体框架。

2. 设计界面:LabVIEW提供了丰富的界面设计工具,用户可以根据需要自由设计界面,添加各种控件和显示元素。

3. 连接硬件设备:如果需要控制外部硬件设备,如传感器、执行器等,用户可以通过LabVIEW提供的接口和驱动程序来连接硬件设备,并获取其实时数据。

4. 数据处理:LabVIEW提供了各种数据处理工具和函数,用户可以根据需求进行数据的实时处理,如滤波、采样、分析等。

使用LabVIEW进行温度控制实现精确的温度调节和监测

使用LabVIEW进行温度控制实现精确的温度调节和监测在科学研究、实验室操作、工业生产等领域中,温度控制是一项至关重要的任务。

为了实现对温度的精确调节和监测,使用LabVIEW (Laboratory Virtual Instrument Engineering Workbench)这一基于图形化编程的软件平台,可以提供便捷、灵活和高效的解决方案。

LabVIEW是一种由美国国家仪器公司(National Instruments)开发的工具软件,它允许用户通过可视化编程来创建控制、测量和测试系统。

借助LabVIEW,用户可以通过拖拽和连接不同的函数块来构建程序,而不需要编写传统的文本代码。

在温度控制的实例中,LabVIEW可以与温度传感器和执行器等硬件设备进行连接,实时获取温度数据并控制传热系统以实现温度调节。

下面将分为三个部分介绍具体的温度控制实现。

1. 温度检测在LabVIEW中,可以通过连接温度传感器,如热电偶或热敏电阻,来实现温度的准确监测。

使用LabVIEW提供的虚拟仪器(Virtual Instrument)和相应的函数模块,用户可以读取传感器输出的模拟信号,将其转换为数字信号,并进行数据处理和显示。

首先,在LabVIEW的开发界面中,用户可以选择合适的传感器接口并建立连接。

然后,通过LabVIEW提供的模块化函数,用户可以设置采样率、传感器类型、数据格式等参数。

接着,用户可以添加数据处理的模块,如滤波器、数据平均等,以提高温度数据的可靠性和抗干扰能力。

最后,利用LabVIEW的图形化界面设计功能,用户可以自定义数据显示的格式,如实时曲线图、数字显示等,便于用户直观地观察和分析温度变化。

2. 温度控制除了温度检测,LabVIEW还可以实现温度的精确调节。

用户可以通过与执行器(如电热器或制冷机)的连接,实时接收温度数据,并根据设定的目标温度进行反馈控制。

在LabVIEW中,用户可以设置温度控制的参数,如比例、积分和微分系数,以及控制周期。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7
7.1 读/写电子表格文件
电子表格读操作
数据读取类型和格式

8
7.2 读/写XML文件
可扩展置标语言(XML)
可扩展置标语言(XML)是一种用标记描述数据的格式化标准。与 HTML标记不同,XML标记不是告诉浏览器如何按格式处理数据,而 是使浏览器能识别数据。
第7章 LabVIEW调用操作系统功能
Intelligent Electronics Institute Huazhong University of Science &
Technology
引言
任何一个应用程序开发平台都有其自身的优势与 不足,LabVIEW也不例外。作为一个高级编程人员, 在开发一个大的复杂应用程序时必须能够综合应 用不同软件开发平台的功能,才能使项目更加完 善。一个好的软件开发环境,也必然具备与其他 应用程序的交互功能及必要的开发工具。
本章将要讲到的读/写电子表格文件、读/写XML文 件、读/写配置文件、读/写系统注册表、调用 ActiveX控件、调用系统链接库及调用命令行程序 等都是LabVIEW与其他应用程序的交互方式。

本章内容
7.1 读/写电子表格文件
7.2 读/写XML文件
7.3 读/写配置文件
注册表系统组成和注册表结构
本节首先以LabVIEW自带的三个例子,说明在 LabVIEW中读/写注册表的一般方法,然后讲解自 动配置ODBC(Open Database Connectivity,开 放数据互连)数据源的应用实例。

20
7.4 读/写系统注册表
在.ini文件中,LabVIEW会将路径数据保存为独 立于平台的格式。
例如绝对路径/c/temp/data.dat解析为如下路径:
Windows c:\temp\data.dat;
Mac OS c:temp:data.dat;
Linux /c/temp/data.dat。

注册表写操作
创建注册表项

21
7.4 读/写系统注册表
程序运行结果
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\MyKey] "My String"="LabVIEW" "My Binary"=hex:03,02,01,00 "My DWORD"=dword:00000100

11
7.2 读/写XML文件
从XML文件中读取数据

12
7.3 读/写配置文件
配置文件VI可读取和创建标准的Windows配置文 件,其标准扩展名为.ini,但只要内容格式正 确,配置文件VI也可操作以任何扩展名命名的 文件。

22
7.4 读/写系统注册表
注册表读操作

23
7.4 读/写系统注册表
注册表删除操作

电子表格写操作
文件格式的要求 保存电子表格格式文本文件

5
7.1 读/写电子表格文件
保存电子表格文件

6
7.1 读/写电子表格文件
电子表格文本文件和电子表格文件生产结果


18
7.3 读/写配置文件
测试配置程序例程 读取配置信息

19
7.4 读/写系统注册表
所谓“注册表”,实际上是一个庞大的数据库, 它包含了应用程序和系统软硬件的全部配置信息 ,这里所指的注册表仅针对于Windows操作系统。

9
7.2 读/写XML文件
XML文件写操作
“平化至XML”(Flatten To XML)函数 XML模版

10
7.2 读/写XML文件
XML文件读操作
“从XML还原”(Unflatten From XML)函数 XML格式转换成簇
7.4 读/写系统注册表
7.5 输入设备控制
7.6 调用动态链接库(DLL)
7.7 ActiveX
7.8 执行系统命令

3
7.1 读/写电子表格文件
LabVIEW文件操作基本步骤
打开
读写、操作
关闭

4
7.1 读/写电子表格文件
13
7.3 读/写配置文件
配置文件写操作
Windows配置文件标准格式 生成名为“Configuration.ini”的配置文件

14
7.3 读/写配置文件
测试配置程序例程 程序框图

15
7.3 读/写配置文件
例如为每本书创建一个XML文件
<nonfiction> <Title>Touring Germany's Great Cathedrals</Title> <Author>Tony Walters</Author> <Publisher>Douglas Drive Publishing</Publisher> <PriceUS>$29.99</PriceUS> …… </nonfiction>
测试配置程序例程 程序界面和生成文件

16
7.3 读/写配置文件
配置文件读操作
“读取键值”(Read Key.vi)函数 读取值数据类型设置

17
ห้องสมุดไป่ตู้
7.3 读/写配置文件
测试配置程序例程 初始化测试配置程序
相关文档
最新文档