增强现实环境下的控制应用程序的开发的制作方法

文档序号:15615014发布日期:2018-10-09 21:09阅读:145来源:国知局

本申请涉及自动化和控制。更具体地,本申请涉及控制应用程序的增强现实辅助开发。



背景技术:

自动化系统可以应用于具有需要自动控制的多个设备的生产过程,例如机器人、传送带、门架、夹具等。这样的设备的控制器(例如,可编程逻辑控制器(plc))可以在图形化的基于计算机的工具的帮助下的工程阶段期间被编程。在当前的制造实践中,控制应用程序开发可能发生在新设备的工程和设计的不同阶段期间。例如,在设置和集成多台机器期间,系统集成商可能会为机器的特定任务开发部分控制应用程序。控制应用程序的进一步开发可以发生在每台机器的调试期间。一般而言,制造自动化系统的设置和调试涉及但不限于硬件(例如,传感器、控制器、驱动器和致动器)的订购和交付,基于设计的部件的组装,以及诸如控制器和驱动器的硬件的配置、调试和测试。在控制应用程序的开发期间,任何硬件缺陷在等待替换或修复硬件部件时都会引起中断。这样的延迟不利地影响工厂的制造产量和利润率。另外,在设置和调试期间,在大型工厂中定位缺陷或错误的起因相当具有挑战性,其中,数百个传感器中的一个可能是错误的原因。

前述问题的当前解决方案包括硬件在环(hardware-in-the-loop)或软件在环(software-in-the-loop)仿真环境(例如,matlab/simulink、西门子lms虚拟实验室)。从理论上讲,设置之前的仿真使控制工程师能够在设置系统功能和控制硬件之前计算出大部分小故障。然而,使用这些仿真工具需要广泛的专业知识,包括动态系统的强化数学建模、振动、车辆动力学和控制理论等。因而,这样的仿真工具在模拟时间、所需的知识以及硬件/软件成本方面是昂贵的。此外,当前封装的仿真工具在合并真实和虚拟部件时缺乏直观的用户界面。数学模型需要制定方案根据系统需求调整控制系数。例如,可以利用各种传感器模型来开发控制器。在初始调整之后,控制应用程序代码可以被上传到控制器,例如可编程逻辑控制器(plc),并且可以开始针对硬件控制操作的调试的测试。由于数学模型与实际系统硬件之间的不匹配,控制工程师可能需要对控制应用程序进行几次重新调整。



技术实现要素:

本发明提供了一种基于计算机的方法,所述方法用于开发用于在自动化系统中使用的控制器的控制应用程序,所述方法包括:在控制应用程序的执行期间,由控制器接收与在工作环境中第一真实部件的感知相关联的传感器信号;模拟虚拟部件的活动,所述活动包括与第一真实部件的交互,其中,虚拟部件是针对工作环境而设计的第二真实部件的数字孪生且在工作环境中不存在,并且所模拟的活动与由控制应用程序控制的任务相关;响应于所模拟的虚拟部件的活动来生成虚拟数据;利用针对第一真实部件的传感器信号和虚拟数据来确定用于开发控制应用程序的参数;在控制应用程序的执行期间,基于虚拟数据的数字表示来渲染用于工作环境的增强现实显示信号;以及在增强现实设备上显示所渲染的增强现实显示信号。

本发明还提供了一种系统,包括:用于自动化系统的控制器,所述控制器包括控制应用程序,所述控制应用程序包括被配置成执行自动化系统中的一个或更多个部件的控制任务的第一模块,其中,第一模块被配置成:接收与工作环境中的第一真实部件的感知相关联的传感器信号;包括第二模块的服务器,第二模块被配置成:模拟虚拟部件的活动,所述活动包括与第一真实部件的交互,其中,所述虚拟部件是针对工作环境而设计的第二真实部件的数字孪生且在工作环境中不存在,并且所模拟的活动与由控制应用程序控制的任务相关;以及响应于所模拟的虚拟部件的活动来生成虚拟数据;其中,第一模块被配置成利用针对第一真实部件的传感器信号和虚拟数据来确定用于开发控制应用程序的参数;其中,第二模块被配置成在控制应用程序的执行期间基于虚拟数据的数字表示来渲染用于工作环境的增强现实显示信号;以及增强现实设备,其被配置成显示所渲染的增强现实显示信号。

附图说明

当结合附图阅读时,根据以下详细描述可以最好地理解本发明的前述和其他方面。为了示出本发明的目的,在附图中示出了目前优选的实施方式,然而应该理解,本发明不限于所公开的具体手段。附图中包括以下附图:

图1示出了根据本公开内容的实施方式的基于计算机的工具的系统的示例;

图2示出了根据本公开内容的实施方式的增强现实环境的示例性配置;

图3示出了根据本公开内容的实施方式的控制应用程序架构的图;以及

图4示出了在其中可以实现本公开内容的实施方式的计算环境的示例。

具体实施方式

在下文中,术语“增强现实”(ar)被用于描述真实对象和虚拟对象的组合环境。可以利用ar技术、混合现实(mr)技术或虚拟现实(vr)技术来仿真虚拟对象。为了简单起见,在本公开内容中使用术语ar。

公开了一种方法和系统,其中,ar应用能够改进与系统控制器的控制应用程序的开发和测试相关的任务的自动化。在自动化控制系统的工程模式期间,专用计算机设置控制参数同时为控制应用程序构建代码。所公开的方法和系统对用于执行这样的基于计算机的任务的计算机的功能提出了改进。虽然当前可用的工具模拟控制器来开发操作和控制参数,但是本公开内容的实施方式使得控制器能够被安装并且连接到增强现实(ar)环境,其具有若干优点,包括在工厂安装的渐进阶段开发和测试控制应用程序,使得物理工厂安装的不可用元件能够被模拟。在工厂安装完全投入运行之前,可以进行控制应用程序的开发。另一个优点是让实际控制器在控制应用程序的开发期间执行控制应用程序。数字孪生中的ar仿真可以生成虚拟数据,以在执行控制应用期间模拟到控制器的真实传感器输入。ar仿真还使得在缺少部件的情况下能够继续进行控制应用程序开发,所述缺少的部件为例如在安装的设置阶段移除的用于维修或更换的有缺陷的机器或者在等待机器的首次装运时移除的机器。

图1示出了根据本公开内容的实施方式的基于计算机的工具的系统的示例。在实施方式中,用户101可以穿戴增强现实(ar)设备115例如微软hololens同时操作图形用户界面(gui)设备105以开发用于控制器110的控制应用程序120。控制器110例如plc可以具有存储在存储器中的多个应用程序120,每个程序用于在自动化布置中执行特定的控制任务。对于每个控制应用程序120,可以开发一个或更多个模块122以处理包括但不限于例如运动传感器、振动传感器、温度传感器、压力传感器、光学传感器和音频传感器的各种传感器的特定控制部件的输入和/或输出。ar设备115可以被配置成接受来自用户101的手势输入以用于编辑、调整、更新或中断控制应用程序120。ar设备115可以是可穿戴式观看设备,其可以将模拟对象的数字表示显示在显示屏幕上与工作环境中的真实对象叠加并对齐。ar设备115可以被配置成在用户101监视控制应用程序120的执行时显示ar工作环境。gui设备105可以被实现为诸如平板电脑、小键盘或触摸屏的计算机设备以使得能够基于用户101输入来编辑、调整或更新控制应用程序120。

ar系统数据130可以包括从各种传感器、开关、高速计数器或其组合中接收的各种数字和模拟信号以及正交脉冲。传感器类型的示例可以包括运动传感器、振动传感器、温度传感器、旋转速度传感器、压力传感器、光学传感器和音频传感器中的一个或更多个。来自实际传感器的这样的数据在下文中被称为“真实数据”以与从物理部件的仿真实体或数字孪生获得的虚拟数据进行区分。如图1所示,真实产品/工件数据151可以包括与用于跟踪和监视工作环境中的产品或工件的任何感测、切换或计数装置有关的信号。例如,感知传感器可以安装在工作区域中用于监测和跟踪产品/工件。真实数据的其他示例包括与工件的工作表面相关的真实表面数据153,与机器人或门架设备有关的真实单元1数据和真实单元2数据以及与视觉感测设备有关的真实视觉系统数据159。控制器110在输入模块150处接收真实数据,输入模块150可以被配置为用于每个相应输入信号的单独模块并且可以将信号转换成由控制应用程序可使用的输入信息。

ar系统数据130可以包括与ar环境的模拟部件的特性有关的虚拟数据。虚拟数据可以具有模拟信号的格式,例如所描述的关于真实数据的模拟信号、数字信号或脉冲信号。虚拟数据还可以以已经转换为由控制应用程序120可使用的信息的格式提供给控制器110。输入模块140可以被配置成以任一格式接收虚拟数据。在一个实施方式中,虚拟数据可以经由输入模块150被发送到控制器110,或者经由输入模块140和输入模块150两者被划分和发送。如图1所示,虚拟产品/工件数据141可以包括与由ar设备115或单独的ar仿真器(未示出)产生的与产品或工件的模拟相关的任何信号或信息。例如,虚拟产品/工件数据141可以包括响应于模拟环境的反应性运动,其可以被转换成虚拟产品/工件的视觉表示160用于渲染在ar设备115中。其他虚拟数据可以包括与工件的表面的模拟有关的虚拟表面数据143,以及与真实单元1和真实单元2的数字孪生的活动有关的虚拟单元1数据145和虚拟单元2数据147。虚拟视觉系统数据149可以基于数字孪生的模拟的感知。

在ar系统130中具有真实数据/虚拟数据组合允许ar环境的各种模拟。例如,在真实虚拟模式中,当开发和训练控制应用程序模块122时,ar系统130使得控制器能够将一个或更多个真实控制部件的数据与一个或更多个虚拟控制部件的数据同时处理。例如,真实产品可能存在于增强现实环境中,并且在产品与工件之间的交互的模拟期间虚拟工件可以被模拟为与真实产品共存。在这种情况下,真实产品数据151包括响应于真实产品的活动从传感器接收的传感器信号,并且虚拟工件数据141包括响应于模拟的工件的活动和行为而产生的信号和信息。在实施方式中,与机器人单元1相关联的控制传感器可以产生真实单元1数据155。例如,运动传感器可以提供信号以分析机器人部件的最大速度阈值。如果机器人单元2还没有安装,则可以模拟虚拟单元2数据147以在ar设备115上显示并且用于与控制应用程序120交互。

ar系统130可以以虚拟-虚拟模式操作,其中一个或更多个数字孪生响应对应的控制应用程序模块122并且模拟由ar设备115或ar仿真器追踪的活动或操作以产生到控制器110的对应的虚拟数据输入以及在ar设备115上显示的视觉模拟。

作为另一示例,ar系统130可以以真实-真实模式操作,其中仅真实部件与实际传感器及对应的控制应用程序模块122对接。在这样的情况下,ar设备115可以提供工作环境内一个或更多个模拟结构或对象的显示,例如产品或工件或自动化安装设备的测试和调试期间的障碍物。ar设备115还可以显示真实部件的模拟路径或模拟运动作为在实际路径或实际运动之前向用户101显示的视觉预测。这样的预测对于在对真实对象进行实际操作之前对物理设备或控制应用程序进行调整可能是有用的。

在设计用于由可编程逻辑控制器(plc)实现的控制应用程序的实施方式中,在设计和工程阶段期间操纵的并作为控制数据112存储的关于控制系统的知识可以包括以下中的一个或多个:设备之间的连接性;传感器和致动器,用于各设备和设备连接性的输入和输出;功能、功能块、组织块、程序、过程以及它们之间的逻辑关系;对一侧的特定程序和过程以及另一侧的设备的控制变量名称和变量的地址分配;数据类型和变量类型(例如,全局、直接、i/o、外部、临时、时间等);以评论和注释的形式对控制程序中的控制逻辑、控制循环、控制结构的解释和说明;以及根据本公开内容的实施方式通过诸如gui105的门户与接口的结合对ar设备115进行测试、观察、跟踪和调试的辅助代码。

尽管已经示出并描述了ar系统130的数据的特定真实-虚拟组合,但是可替选地或另外地,其他实施方式可以包括各种其他类型的数据,这取决于用于开发控制应用程序而模拟的控制部件的数目和类型。

图2示出了根据本公开内容的实施方式的ar环境的示例性配置。示出为平面图,制造线200可以包括西部单元231和东部单元241,每个单元与部分210对接。服务器251可以包括执行虚拟模块252以生成用于部分210中的硬件对应部的模拟的数字孪生的一个或更多个处理器。虚拟控制数据例如传感器模拟经由数据输入端255被馈送到控制器110。来自传感器212的视觉传感器数据提供与部分210中的活动有关的视觉信息。来自安装在部分210中的传感器的其他传感器信号和数据经由输入端215被馈送到控制器110。在实施方式中,西部单元231和东部单元241可以具有完全安装的硬件,其可以具有已经测试和调试的控制应用程序,而部分210当前正在用于其控制应用程序的开发的ar设备115的帮助下被建模和显示。西部单元231和东部单元241可以包括各种硬件元件作为要与部分210对接的自动化布置的一部分。例如,西部单元231和东部单元241可以包括如下中的一个或更多个:scada/hmi、控制器、物流系统(例如,输入/输出传送带)、具有夹具的门架式机器人(例如封装系统)、钻模、用于安装设备的工作台以及/或者在传送带上具有相机和其他传感器(例如,照片眼)的视觉系统。部分210的来自西部单元231的传感器数据235和来自东部单元241的传感器数据245可以在ar中被模拟和建模,以准备包括任意上述硬件类型的硬件安装。这样的混合模拟的一个优点是使得控制器能够结合用于部分210的ar数据213、215和255处理与用于准备安装的控制部件例如西部单元231和东部单元241有关的传感器数据235和245。这可以提供与部分210的最终硬件安装(即,真实-真实环境)更对准的模拟,使得更丰富的控制数据用于模拟。例如,在部分210中可以存在取决于西部单元231和东部单元241的控制参数的控制参数,在这种情况下,控制器110在ar数据213、215、255的协助下一次处理所有控制参数可以在模拟期间增强用于部分210的控制应用程序的开发。由虚拟模块252提供的模拟数据可以使用工具例如西门子lms虚拟实验室等来生成。

在实施方式中,用于部分210的一些或全部硬件部件可以由设计工程师设计,并且由于例如等待装置的交付和设置的原因而缺少硬件部件中的至少一个。在如图2所示的示例中,自动化处理线200可以与封装操作有关,其中,可以使用用于沿着自动化处理线上的路径移动对象的门架和夹具为部分210开发用于拾取和放置任务的算法。例如,门架和夹具设备可以被设计好并且需要在ar中模拟,使得可以在没有实际门架和夹具硬件部件的情况下开发控制应用程序。示出了虚拟门架221和虚拟夹具224,其表示可以在ar设备115上渲染和显示的ar仿真。可以在虚拟模块252中模拟虚拟门架221和虚拟夹具224,以沿着用于碰撞避免应用程序的真实工作台211上的路径223移动虚拟工件222。视觉传感器212例如相机可以向控制器110提供输入端以提供表示用于真实部件例如工作台211和真实对象214的光学器件的ar输入端。ar设备115可以配备有还可以提供真实对象的视觉数据的相机。来自视觉传感器212的视觉数据还可以经由有线或无线连接被提供给ar设备115用于部分210中的模拟操作的ar显示,这使得能够远程观看模拟操作。

对于示例模拟,真实对象214可以用作虚拟工件222的障碍物。对于控制应用程序的初始训练,ar设备115可以用于在虚拟工件沿着设计的路径223向目标225行进时观察虚拟工件的路径。用户101可以使用初始参数初始地设置控制应用程序以允许对控制应用程序的训练。例如,在最大门架速度未知的情况下,可以将初始速度参数设置为低,以用于之后的向上调节,直到满足阈值。可替选地,可以将初始速度参数设置为高,以用于之后的向下调节,直到满足阈值。控制应用程序模块122可以接收来自传感器的输入,计算门架221和/或夹具224的运动,基于另外的传感器输入监视障碍物,接收来自视觉系统的障碍物对象214的坐标,以及计算门架221控制器的新路径。如果虚拟工件不能沿着障碍物对象214周围的路径223行进,则用户可以例如利用ar设备115通过使用手势来中断模拟,然后使用gui105修改和控制应用程序以进行必要的调节。另外,可以从西部单元231和/或东部单元241接收到控制系统100的传感器输入,其可能必须与部分210处的控制操作协调。例如,可以在西部单元231处感测传送带速度以用于与接收工件222的协调。这样,控制器110可以基于部分210的混合现实模拟来相应地确定必要的定时调节和传送带速度调节。

ar仿真可以被重新运行以测试经调节的控制应用程序,并根据需要进行额外的迭代,直到模拟的控制部件的操作成功为止。以上模拟提供了训练控制器应用模块以学习用于机器人单元例如门架和/或夹具的各种可能路径的示例,用于所述机器人单元的控制指令将结合来自各种传感器输入端的反馈被执行以用于运动控制。

图3示出了根据本公开内容的实施方式的控制应用程序架构的图。在实施方式中,控制器110可以包括用于处理与图2所示的控制组件有关的特定控制功能组的封装应用程序320。例如,封装应用程序320可以与封装沿自动化处理线200部件的控制有关。应用程序320可以包括处理控制系统部件例如路径规划模块322、传感器桥接模块324和运行时间桥接模块326的输入和输出的一个或更多个模块。路径规划模块322可以包括与操作门架221和夹具224有关的指令和编码,所述门架221和夹具224用于在工作空间内沿路径223移动工件222。在虚拟门架221和夹具224的模拟期间,控制应用程序可以接收与模拟路径的坐标有关的输入。传感器桥接模块324可以包括与处理门架桥221上的传感器的输出例如来自传感器的定位反馈信号有关的编码和指令。运行时间桥接模块326可以包括与桥接部件的如下运行时间有关的编码和指令:例如当夹具224沿x-y-z轴中的每一个移动时追踪夹具224的运行时间。例如,沿x轴的运行时间可以向控制器110提供信息,以用于确定门架和夹具当前位于何处的指令并且允许确定用于控制器移动门架和夹具位置的下一个指令。

在另一实施方式中,图1的ar设备115可以被配置成执行与自动化处理有关的安全操作。例如,虚拟机器人单元可以被显示在ar设备115上,同时执行各种经编程的移动,使得用户能够监视工作环境中的工作者的任意潜在危险,例如工作者与工件或机器人单元之间可能的碰撞。如果机器人单元的模拟路径使工作者暴露在危险中,则用户可以修改控制应用程序以改变经编程的路径以避免潜在的伤害。

图4示出了可以在其中实现本公开内容的实施方式的计算环境的示例。计算环境400包括计算机系统410,所述计算机系统410可以包括用于在计算机系统410内传送信息的通信机构例如系统总线421或其他通信机构。计算机系统410还包括用于处理信息的与系统总线421耦接的一个或更多个处理器420。

处理器420可以包括一个或更多个中央处理单元(cpu)、图形处理单元(gpu)或本领域已知的任意其他处理器。更一般地,如本文所述的处理器是用于执行计算机可读介质上存储的用于执行任务的机器可读指令的设备,并且可以包括硬件和固件中的任一者或组合。处理器还可以包括存储用于执行任务的可执行的机器可读指令的存储器。处理器通过操纵、分析、修改、转换或发送供可执行程序或信息设备使用的信息以及/或者通过将信息路由到输出设备来对信息起作用。处理器可以使用或包括例如计算机、控制器或微处理器的能力,并且可以使用可执行指令进行调节以执行不由通用计算机执行的专用功能。处理器可以包括任意类型的合适的处理单元,包括但不限于中央处理单元、微处理器、精简指令集计算机(risc)微处理器、复杂指令集计算机(cisc)微处理器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)、片上系统(soc)、数字信号处理器(dsp)等。此外,处理器420可以具有任意合适的微体系结构设计,其包括任意数量的构成部件,诸如例如寄存器、复用器、算术逻辑单元、用于控制对高速缓冲存储器的读/写操作的高速缓存控制器、分支预测器等。处理器的微体系结构设计能够支持各种指令集中的任意种。处理器可以与允许其间的交互和/或通信的任意其他处理器耦接(以电的方式和/或以包括可执行部件的方式)。用户界面处理器或生成器是包括用于生成显示图像或其一部分的电子电路系统或软件或二者的组合的已知元件。用户界面包括使用户能够与处理器或其他设备交互的一个或更多个显示图像。

系统总线421可以包括系统总线、存储器总线、地址总线或消息总线中的至少一个,并且可以允许计算机系统410的各个部件之间的信息(例如,数据(包括计算机可执行代码)、信令等)的交换。系统总线421可以包括但不限于存储器总线或存储器控制器、外围总线、加速图形端口等。系统总线421可以与任意合适的总线架构相关联,所述总线架构包括但不限于工业标准架构(isa)、微通道架构(mca)、增强isa(eisa)、视频电子标准协会(vesa)架构、加速图形端口(agp)架构、外围部件互连(pci)架构、pci-express架构、个人计算机存储卡国际协会(pcmcia)架构、通用串行总线(usb)架构等。

继续参照图4,计算机系统410还可以包括系统存储器430,其被耦接至系统总线421用于存储要由处理器420执行的信息和指令。系统存储器430可以包括易失性和/或非易失性存储器(例如只读存储器(rom)431和/或随机存取存储器(ram)432)形式的计算机可读存储介质。ram432可以包括其他动态存储设备(例如,动态ram、静态ram和同步dram)。rom431可以包括其他静态存储设备(例如,可编程rom、可擦除prom和电可擦除prom)。另外,系统存储器430可以用于在由处理器420执行指令期间存储临时变量或其他中间信息。包括有助于例如在启动期间在计算系统410内的元件之间传递信息的基本例程的基本输入/输出系统433(bios)可以被存储在rom431中。ram432可以包括可由处理器420立即访问和/或当前正在操作的数据和/或程序模块。系统存储器430可以另外包括例如操作系统434、应用程序435和其他程序模块436。例如,应用程序435可以包括应用程序120和用于在如图1所示并在本文描述的ar设备115上运行的应用程序。应用程序435还可以包括用于开发控制应用程序的用户门户,使得输入参数能够在必要时被输入和修改。

操作系统434可以被加载到存储器430中并且可以提供在计算机系统410上执行的其他应用软件与计算机系统410的硬件资源之间的接口。更具体地,操作系统434可以包括用于管理计算机系统410的硬件资源并用于向其他应用程序提供公共服务(例如,管理各种应用程序之间的存储器分配)的计算机可执行指令集。在某些示例性实施方式中,操作系统434可以控制被描绘为存储在数据存储装置440中的一个或更多个程序模块的执行。操作系统434可以包括现在已知的或将来会开发的任意操作系统,包括但不限于任意服务器操作系统、任意大型机操作系统或任意其他专有或非专有操作系统。

计算机系统410还可以包括磁盘/介质控制器443,其被耦接至系统总线421以控制用于存储信息和指令的一个或更多个存储设备,例如磁性硬盘441和/或可移除介质驱动器442(例如,软盘驱动器、光盘驱动器、磁带驱动器、闪存驱动器和/或固态驱动器)。存储设备440可以使用适当的设备接口(例如,小型计算机系统接口(scsi)、集成设备电子电路(ide)、通用串行总线(usb)或火线)被添加到计算机系统410。存储设备441、442可以在计算机系统410的外部。

计算机系统410还可以包括现场设备接口465,其被耦接至系统总线421以控制现场设备466,例如生产线中使用的设备。计算机系统410可以包括用户输入接口或gui461,其可以包括用于与计算机用户交互并向处理器420提供信息的一个或更多个输入设备,例如键盘、触摸屏、平板电脑和/或指示设备。

计算机系统410可以响应于处理器420执行存储器例如系统存储器430中包括的一个或更多个指令的一个或更多个序列来执行本发明的实施方式的部分或全部处理步骤。这样的指令可以从存储装置440例如磁性硬盘441或可移除介质驱动器442的另一计算机可读介质被读入系统存储器430。磁性硬盘441和/或可移除介质驱动器442可以包括由本发明的实施方式使用的一个或更多个数据存储区和数据文件,例如虚拟数据141、143、145、147和149。数据存储区440可以包括但不限于数据库(例如,关系型、面向对象等)、文件系统、平面文件、其中数据存储在计算机网络的多于一个节点上的分布式数据存储区、对等网络数据存储区等。数据存储区可以存储各种类型的数据,诸如例如根据本公开内容的实施方式生成的控制数据、传感器数据或任意其他数据。数据存储内容和数据文件可以被加密以提高安全性。处理器420还可以用于多处理布置中以执行系统存储器430中包括的一个或更多个指令序列。在替选实施方式中,可以使用硬连线电路系统来代替软件指令或者硬连线电路系统可以与软件指令结合使用。因此,实施方式不限于硬件电路系统和软件的任意特定组合。

如上所述,计算机系统410可以包括至少一个计算机可读介质或存储器,其用于保存根据本发明的实施方式编程的指令以及用于包括本文描述的数据结构、表格、记录或其他数据。本文使用的术语“计算机可读介质”是指参与向处理器420提供指令以供执行的任意介质。计算机可读介质可以采取许多形式,包括但不限于非暂态非易失性介质、易失性介质和传输介质。非易失性介质的非限制性示例包括光盘、固态驱动器、磁盘和磁光盘,例如磁性硬盘441或可移除介质驱动器442。易失性介质的非限制性示例包括动态存储器,例如系统存储器430。传输介质的非限制性示例包括含有组成系统总线421的导线的同轴电缆、铜线和光纤。传输介质还可以采取如下的声波或光波的形式:例如那些在无线电波和红外数据通信期间生成的声波或光波。

用于执行本公开内容的操作的计算机可读介质指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据或者以一种或更多种程序设计语言的任意组合编写的源代码或目标代码,所述一种或更多种程序设计语言包括面向对象的程序设计语言例如smalltalk、c++等和常规过程程序设计语言例如“c”程序设计语言或类似程序设计语言。计算机可读程序指令可以完全在用户的计算机上、部分在用户的计算机上、作为独立的软件包、部分在用户的计算机上且部分在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(lan)或广域网(wan)的任意类型的网络被连接至用户的计算机,或者可以(例如,使用因特网服务提供商通过因特网)对外部计算机进行连接。在一些实施方式中,包括例如可编程逻辑电路系统、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路系统可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路系统个性化,以便执行本公开内容的各方面。

本文参照根据本公开内容的实施方式的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本公开内容的各方面。要理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以通过计算机可读介质指令来实现。

计算环境400还可以包括使用到一个或更多个远程计算机例如远程计算设备480的逻辑连接在联网环境中操作的计算机系统410。网络接口470可以使得能够经由网络471例如与其他远程设备480或系统以及/或者存储设备441、442通信。远程计算设备480可以是个人计算机(膝上型电脑或台式电脑)、移动设备、服务器、路由器、网络pc、对等设备或其他常见网络节点,并且通常包括上面关于计算机系统410所述的许多或全部元件。当在联网环境中使用时,计算机系统410可以包括用于通过网络471例如因特网建立通信的调制解调器472。调制解调器472可以经由用户网络接口470或经由另一适当机制被连接至系统总线421。

网络471可以是本领域通常已知的任意网络或系统,包括因特网、内联网、局域网(lan)、广域网(wan)、城域网(man)、直接连接或一系列连接、蜂窝电话网络或者能够促进计算机系统410与其他计算机(例如,远程计算设备480)之间的通信的任意其他网络或介质。网络471可以是有线的、无线的或其组合。有线连接可以使用本领域中通常已知的以太网、通用串行总线(usb)、rj-6或任意其他有线连接来实现。无线连接可以使用本领域中通常已知的wi-fi、wimax、蓝牙、红外、蜂窝网络、卫星或任意其他无线连接方法来实现。另外,多个网络可以单独工作或彼此通信以促进网络471中的通信。

应当理解,图4中描绘为被存储在系统存储器430中的程序模块、应用、计算机可执行指令、代码等仅仅是说明性的而非穷尽的,并且被描述为由任意特定模块支持的处理可以可替选地分布在多个模块上或由不同模块执行。此外,可以提供在计算机系统410、远程设备480上本地托管的以及/或者在经由网络471中的一个或更多个可访问的其他计算设备上托管的各种程序模块、脚本、插件、应用程序编程接口(api)或任意其他合适的计算机可执行代码,以支持由图4中描绘的程序模块、应用或计算机可执行代码提供的功能以及/或者另外的功能或替选功能。此外,功能可以被不同地模块化,使得被描述为由图4中描绘的程序模块的集合集体支持的处理可以通过更少或更多数量的模块来执行,或者被描述为由任意特定模块支持的功能可以至少部分地由另一模块来支持。另外,支持本文描述的功能的程序模块可以根据任意合适的计算模型诸如例如客户-服务器模型、对等模型等形成通过任意数量的系统或设备可执行的一个或更多个应用程序的一部分。另外,被描述为由图4中描绘的任意程序模块支持的任意功能可以至少部分地通过任意数量的设备在硬件和/或固件中实现。远程设备480可以存储如图2所示的虚拟模块252。

还应当理解,在不脱离本公开内容的范围的情况下,计算机系统410可以包括除了所描述或描绘的那些硬件、软件或固件部件之外的替选和/或另外的硬件、软件或固件部件。更具体地,应当理解,被描绘为形成计算机系统410的一部分的软件、固件或硬件部件仅仅是说明性的,并且在各种实施方式中可能不存在一些部件或者可以提供另外的部件。虽然已经将各种说明性程序模块描绘和描述为存储在系统存储器430中的软件模块,但应当理解,被描绘为由程序模块支持的功能可以通过硬件、软件和/或固件的任意组合来启用。还应当理解,在各种实施方式中,上述模块中的每一个可以表示所支持功能的逻辑分区。为便于功能的解释对该逻辑分区进行描述,并且该逻辑分区可能不代表用于实现功能的软件、硬件和/或固件的结构。因此,应当理解,在各种实施方式中,被描述为由特定模块提供的功能可以至少部分地由一个或更多个其他模块提供。此外,在某些实施方式中可以不存在一个或更多个描绘的模块,而在其他实施方式中,可以存在未描绘的另外的模块,并且未描绘的另外的模块可以支持所描述的功能和/或另外的功能的至少一部分。此外,虽然某些模块可以被描绘和描述为另一模块的子模块,但在某些实施方式中,这些模块可以作为独立模块或作为其他模块的子模块来提供。

尽管已经描述了本公开内容的具体实施方式,但本领域的普通技术人员将认识到,许多其他修改和替选实施方式也在本公开内容的范围内。例如,对于特定设备或部件描述的功能和/或处理能力的任一种可以由任意其他设备或部件执行。此外,虽然已经根据本公开内容的实施方式描述了各种说明性实施方案和体系结构,但本领域的普通技术人员将认识到,对本文描述的说明性实施方案和体系结构的许多其他修改也在本公开内容的范围内。另外,应当理解,本文描述为基于另一操作、元件、部件、数据等的任意操作、元件、部件、数据等可以另外基于一个或更多个其他操作、元件、部件、数据等。因此,短语“基于”或其变体应当被解释为“至少部分基于”。

尽管已经用特定于结构特征和/或方法动作的语言描述了实施方式,但是应当理解,本公开内容不一定限于所描述的特定特征或动作。相反,特定特征和动作被公开为实现实施方式的说明性形式。除非另有明确说明或在所使用的上下文中以其他方式理解,否则除其他之外的条件语言例如“可以(can)”、“可能(could)”、“可能(might)”或“可以(may)”通常旨在传达某些实施方式可以包括而其他实施方式不包括某些特征、元件和/或步骤。因此,这样的条件语言通常并不旨在暗示:特征、元件和/或步骤无论如何是一个或更多个实施方式所需要的,或者一个或更多个实施方式必然包括用于在具有或不具有用户输入或提示的情况下决定这些特征、元件和/或步骤是否包括在任意特定实施方式中或将在任意特定实施方式中执行的逻辑。

附图中的流程图和框图示出了根据本公开内容的各种实施方式的系统、方法和计算机程序产品的可能的实现的架构、功能和操作。就这一点而言,流程图或框图中的每个框可以表示模块、区段或部分指令,其包括用于实现所指定的逻辑功能的一个或更多个可执行指令。在一些替选实施方案中,框中指出的功能可以不按照附图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框可以实际上基本上同时执行,或者框可以有时以相反的顺序执行。还将注意到,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由基于专用硬件的系统来实现,所述基于专用硬件的系统执行指定功能或动作或者执行专用硬件和计算机指令的组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1