利用紧密耦合逻辑和物理仿真的3D图形编辑器中的编程自动化的制作方法

文档序号:11530612阅读:231来源:国知局
利用紧密耦合逻辑和物理仿真的3D图形编辑器中的编程自动化的制造方法与工艺

本发明大体上涉及用于使用三维图形接口来对自动化系统进行编程的方法、系统和设备,该三维图形接口采用紧密耦合逻辑和物理仿真技术。



背景技术:

在传统的自动化软件编程环境中,程序员使用大量单独工具,每个工具具有用于对自动化行为的一方面进行编程的特定目的。例如,一个工具设置网络协议,另一个为输入和输出装置分配存储器,以及又一个用于对指令进行编码。这些工具完全是单独的并且必须手动配置;在一个工具中使用的编码之间的任何失配将造成其他工具或者大体上自动化的失效。此外,几乎没有给定工具的语言与用于完成自动化的实际物理硬件之间的映射。在自动化工具内定义的许多逻辑元件用于在工具自身的构造之间建立映射,并且仅仅间接绑定以执行任意种类的机器行为。

一些传统应用宣称,虽然它们共同用于仿真,但是它们也可以通过将它们的指令转移到控制装置来产生运行时间功能。例如,在基于模型的控制领域中,人们使用由仿真系统提供的各种等式来写控制程序。在这一情形下,通常没有物理装置的实际仿真。而是,人们通常用于对仿真进行编程的编程方法用于对控制功能进行编程。其他系统将它们的仿真代码转译为低级别语言,诸如c,使得其可以在环境中运行而无需特别的运行时间。然而,仿真代码仍然经被用作通用编程语言,而不是对装置以及自动化被部署其中的环境进行仿真。

一些传统的控制器和数据采集板是使用非标准或专有语言进行编程的。这些控制器具有广泛的种类并且一些将在测试期间能够手动控制指定i/o状态的意义上执行某类仿真。例如,家庭自动化装置可以允许用户经由某类web接口对灯进行编程以点亮或关断。然而,这样的传统技术并未超越能够提供例如使用所仿真的对象的属性而指定的物理仿真的简单开关和手动编程行为。



技术实现要素:

本发明的实施例通过提供用于使用物理仿真在三维图形接口中对自动化进行编程的方法、系统和设备,解决并且克服了以上不足和缺陷中的一个或多个。在此公开的技术可以用于例如设计、仿真和实施各种工业环境和机器。

简言之,本发明的各种实施例描述了图形仿真环境,其中逻辑和物理组件驻留在相同的工作空间中并且可以以特别方式进行编辑、修改和执行。例如,在一个实施例中,仿真可以在设计过程期间的任意时间点运行——即使该设计未完成或导致失败。逻辑可以用于修改组件的状态,以及创建新组建,以例如代表可以与其他组件交互的工作项目。组件的物理仿真可以根据物理约束的交互而使工作项目移动和改变。例如,传送器可以通过提供碰撞支持和施加推动箱子向前的力来移动箱子。传感器可以基于所仿真对象的几何形状或其他物理属性来检测并且产生值。逻辑可以传送值并且基于它们的功能来发起或以其他方式控制活动。一般地,自动化可以如物理装配一样在仿真环境中运行。用户可以在其运行时检查仿真的操作以找出错误并且以其他方式检验系统功能。用户可以在任意时间停止仿真以恢复对象的初始状态并且继续编辑正在设计的自动化。

根据本发明的一些实施例,一种用于基于来自用户的输入来设计自动化应用的系统包括库接口、三维工作空间、仿真引擎和控制器代码生成单元。库接口配置为从组件库接收用户选择的多个组件。在一些实施例中,库可以部分基于从远程市场服务器下载的装置模型而填充。三维工作空间显示组件,以及基于用户提供的一个或多个指令、使用组件来创建系统设计。仿真引擎可以随后基于系统设计来生成仿真代码,以及响应于来自用户的命令而执行仿真代码。在一些实施例中,仿真代码可以在虚拟机环境中执行。在一些实施例中,在三维工作空间中的一个或多个组件在仿真代码的执行期间被动画化。包括在前述系统中的控制器代码生成单元配置为识别与在三维工作空间中的组件相对应的物理控制器(例如,基于从控制器接收的装置宣告消息),以及基于系统设计来生成用于那些控制器的控制器可执行代码。

根据前述系统的一些实施例,三维工作空间可以配置为执行附加功能性。例如,在一些实施例中,由用户选择的组件可以包括与物理装置模型相关联的物理组件以及与逻辑操作相关联的逻辑元件。三维工作空间可以随后基于一个或多个用户指令来创建逻辑元件与物理组件之间的关联。替代地(或附加地),三维工作空间可以基于第一用户请求来创建包括逻辑元件中的一个或多个的逻辑元件容器。可以随后基于第二用户请求在逻辑元件容器与物理组件的至少一个之间创建关联。各种技术可以用于创建这一关联。例如,在一个实施例中,通过以下来创建关联:基于第一用户选择来识别第一物理对象;将逻辑元件容器的逻辑输入端口对象连接至第一物理对象的装置输出端口对象;基于第二用户选择来识别第二物理对象;以及将逻辑元件容器的逻辑输出端口对象连接至第二物理对象的装置输入端口对象。在一些实施例中,三维工作空间还可以配置为接收用于物理组件中的至少一个的一个或多个属性值的用户配置。这些属性值可以例如与至物理模型的输入相对应,所述物理模型用于在仿真代码的执行期间仿真物理组件中的一个或多个的行为。

根据本发明的另一方面,如由一些实施例描述的,一种用于基于来自用户的输入来设计自动化应用的系统包括工作空间、仿真引擎和控制器代码生成单元。工作空间配置为允许工业环境的三维模型的用户创建和操纵。仿真引擎配置为仿真三维模型的物理行为。在一个实施例中,仿真引擎在仿真的执行期间使三维模型动画化。控制器代码生成单元配置为生成用于与包括在三维模型中的物理组件相对应的一个或多个物理控制器的控制器可执行代码。在一些实施例中,系统还包括市场接口,其配置为从市场服务器检索新物理装置模型。市场接口可以随后使用新物理装置模型来创建供三维模型中使用的新物理组件。在一个实施例中,市场接口还可以促进与新物理装置模型相对应的物理装置(例如经由市场服务器)的用户购买。

根据本发明的其他实施例,一种基于来自用户的输入来设计自动化应用的计算机实施方法包括:计算机从组件库接收用户选择的多个组件。计算机基于用户提供的一个或多个指令、使用组件在三维工作空间中创建系统设计。接下来,计算机基于系统设计来生成仿真代码以及响应于来自用户的命令而执行这一代码。计算机识别与三维工作空间中的多个组件相对应的物理控制器,以及基于系统设计来生成用于这些物理控制器的控制器可执行代码。

根据以下参照附图进行的说明性实施例的详细描述,本发明的附加特征和优点将变得清楚。

附图说明

在结合附图阅读时,从以下详细描述最好地理解本发明的前述以及其他方面。出于说明发明的目的,各图中仅示出目前优选的实施例,然而应理解,本发明不限于特定的详细描述:

图1提供根据本发明的一些实施例的用于对自动化进行编程的系统的概观;

图2示出根据本发明的一些实施例的工程工具的示例;

图3提供根据本发明的一些实施例的示例控制器架构;

图4提供根据本发明的一些实施例的在仿真环境中在自动化运行时间执行的过程的概观;以及

图5图示本发明的实施例可以在其中实施的示例性计算环境。

具体实施方式

以下公开内容根据若干实施例描述了本发明,这些实施例涉及用于在具有紧密耦合逻辑和物理仿真的图形环境中对自动化进行编程的方法、系统和设备。在此描述的本发明的各种实施例将仿真和控制编程一起合并在同一工具中,使得它们相互混合并且不再是单独实践。在此描述的技术特别适用于但不限于工业应用中的系统设计和实施。

图1提供了根据本发明的一些实施例的用于对自动化进行编程的仿真环境100的概观。简言之,组件提供商105和110将装置模型经由网络125供应至市场服务器115。在生产商地点120处的用户120a随后可以从市场服务器115经由网络125下载这些模型,以供在用户计算机120b上执行的仿真环境中使用。用户计算机120b允许用户120a生成控制器代码120f,控制器代码120f随后可以上传到与物理装置120d和120e相关联的控制器。

组件供应商105和组件供应商110分别将用于物理传送器和电机的模型经由网络125提供给市场服务器115。每个模型使用诸如可扩展标识语言(xml)的标准化语言来提供有关装置的详细信息。模型可以设计为是功能上自含的以及按照需要是智能的。模型可以代表诸如传感器或致动器的物理装置、诸如可编程逻辑控制器的控制装置,并且可以代表可以在无物理物质的应用中应用的功能。模型的内容可以包括例如有关对应的物理装置的几何形状、运动学和行为的详细信息。模型还可以包括用于与其他模型对接以及提供不同配置的指示。计算机辅助设计软件扩展可以用于通过合并机械设计来生成模型。市场服务器115托管用于由组件供应商生成的模型的储存库。市场服务器115提供与该储存库的接口,所述接口允许用户浏览和下载模型。例如,在一些实施例中,市场服务器115使用网页接口,其提供可用于下载的各种模型的目录。接口可以包括有关每个模型的详细信息,包括例如所建模的物理装置的图像、输入和输出端口的列表、可配置的属性以及模型行为的描述。在一些实施例中,市场服务器115也可以处置用户与各种组件供应商之间的交易。例如,在一个实施例中,用户被针对从市场服务器115下载的每个模型收取费用。在另一实施例中,市场服务器115促进用户与组件供应商之间的交易,以购买与特定模型相对应的物理装置。

在生产商地点120,用户120a利用用户计算机120b来执行工程工具120c(以下参照图2更详细地描述),其允许用户120a将电机模型以及传送器模型下载到用户计算机120b。工程工具120c随后可以在仿真环境中使用所下载的模型,所述仿真环境执行模拟所建模的项目的物理活动的计算。简言之,工程工具包括嵌入在3d图像编辑器和可视化环境内的动态仿真。仿真包括硬件装置以及装置操纵和变换的工作产品的物理仿真。被仿真的物理对象代表实际硬件装置。对于给定装置的仿真被公式化以匹配该装置的行为并且在仿真的能力内的相同输入条件下执行相同动作。仿真可以跟踪对象的几何形状、位置、运动学联结以及动力学。仿真还可以包括动态地添加对象以及从仿真去除对象的能力。这一能力可以用于仿真对象的变换,诸如剪切、挤压和成形。其也可以用于仿真工作产品从过程的引入和去除。

通过仿真工业环境,用户120a可以容易地识别使能特定过程所需的必要物理组件和布局。一旦布局已经被确定,工程工具120c可以生成附加细节(例如,零件列表和/或蓝图),使得必要的物理组件可以被订购(如果它们还未购买的话)并且在所期望的布局中被配置。附加地,在一些实施例中,工程工具120c生成控制器代码,其可以在诸如可编程逻辑控制器的物理组件上直接使用。例如,在图1中,工程工具可以生成控制器代码120f,其可以在与物理电机120d和物理传送器120f相关联的控制器上直接利用。因此,物理装置的安装是流水线化的,因为控制器代码120f准备好在设计完成后立即使用。

图2示出根据本发明的一些实施例的工程工具200的示例。简言之,工程工具200包括嵌入在3d图形编辑器和可视化环境内的3d多体动力学仿真。工程工具200包括3d工作空间205、工具条210以及用户可以在3d工作空间205中放置的逻辑元件的画册215。注意,在图2中,设计的大多数方面是在3d工作空间205中可视地可用的。因此,布局、可视化、编程、仿真可以在单个接口中执行,无需工具之间的切换。此外,如以下解释的,3d组件和逻辑在同一空间中一起操作。

为了使用容易和高效编辑,工程工具200提供设计用于独立运行的潜在低成本的工具。工程工具200中的组件如它们在真实世界中那样运行,其中行为被动画化以示出其如何工作。物理系统的组件可以从销售者提供的选择来创建,其中图形复杂性由销售者来解决(即,用户不需要重新画出)。物理系统可以通过将来自传感器的输入挂钩到逻辑以及输出装置,来“接线”以描述组件的行为。附加地,在一些实施例中,仿真通过提供内部值和其他状态的立即反馈而提供即时调试。同样,仿真可以通过示出物理交互并不如意图时的情况来利用自动化阐明问题。工程工具200给工业设计提供了若干益处。在仿真的3d环境中直接编程减少了在设计和实施过程期间可能发生的间接性水平。附加地,3d物理仿真允许快速设计检验。这一宽容的工程模型鼓励在测试环境中直接探索想法。

包括在图2中示出的示例工程工具200中的画册215包括库接口区段215a和物理性质区段215b。库接口区段215a包括可以添加到3d工作空间205的各种组件。用户可以与包括在库接口区段215a的顶部的标签(tab)交互以观看可用于供3d工作空间205中使用的各种物理组件和逻辑组件。3d工作空间中每个组件的物理性质可以经由物理性质区段215b来观看和调整。

为了利用工程工具200来开发设计,用户从画册215拖出装置模型并且将其放置在3d工作空间205中。可替代地,可以使用用于选择和定位对象的其他方法。将装置模型放置在3d工作空间中创建了代表模型的视觉组件。每个组件可以具有相关组件或其他对象可以附着在的连接点。在一些实施例中,所连接的对象自动对齐并且可以具有利用周围模型的几何形状核查的其间隙。3d工作空间205中的位置意图代表装置在过程中的物理位置并且应该保持类似的几何相关性。例如,如果在过程中存在两个传送器,使得一个通过将材料掉落在另一个上来馈送材料,则传送器应该在仿真空间中端对端地放置,使得所仿真的行为将遵循模式。图2包括简单的示例设计,其中电机组件205f操作传送带组件205a以在两个光传感器组件205b与205d之间移动箱子组件205i。电机组件205f的激活使传送带组件205a以指定速率操作。

每个装置模型可以包括端口对象,其提供输入值并且接收来自模型的输出值。例如,在图2中,电机组件205f包括接收输入值的电机端口对象205g。基于这些输入值,电机组件205f相应地设定其操作速率。光传感器组件205b和205d分别包括光传感器端口对象205c和205e。每个光传感器端口对象205c和205e在其各自的光传感器被触发时产生输出值。

逻辑元件被连接至装置模型的端口对象以向装置模型提供功能性。逻辑元件被描绘为具有端口的块,其中一个块可以连接至另一个块。装置模型可以通过将装置模型的端口对象与逻辑元件的端口连接而链接至逻辑块。类似地,用户可以通过将一个块的端口连接至另一个块的端口而链接两个块。在一些实施例中,端口可以分类为输入和输出类型。输入端口连接至输出端口,其中仅一个链路可以连接至给定输入端口,但多个链路可以连接至输出端口。在其他实施例中,端口可以是双向的,在这种情况下,它们可以同时为输入和输出二者并且可以任意连接。端口也可以是不同式样和类型的混合。在一些实施例中,端口可以支持不同值类型,诸如布尔、整数、值阵列以及具有多个域的结构化值。如果每个端口的类型不兼容,则端口之间的连接可能受限制。在一些实施例中,端口可以产生对于组件或其他逻辑元件的参考的值,使得可以针对不同种类的组件一般性地执行操作,或者针对应用的逻辑执行操纵,诸如禁用或重复各种组。

可以使用各种类型的逻辑元件,包括例如且不限于,算术、选择、信号、存储器状态、容器以及对象影响器。在一些实施例中,逻辑可能超载。例如,加算术可以用于浮点数、整数相加,以及对布尔值进行逻辑or操作。逻辑可以影响仿真对象、物理装置的行为,或者两者以及其他逻辑。如同组件的情况,一般地,逻辑元件具有属性。改变这些属性改变了逻辑元件的语义学和/或拓扑。在逻辑元件容器中的逻辑的行为传播到连接至容器的(多个)仿真对象。

用户可以使用与添加装置相同的方法,将逻辑添加到系统设计。工程工具200包括用户可以从其选择的逻辑元件的画册(图2中未示出)。逻辑元件一般用于代表功能或操作。用户从画册拖出逻辑元件并且将其放置在3d工作空间中。在物理组件上放置逻辑可以改变该组件的行为。在组件移动时,附着于组件的逻辑与其在一起。用户可以使用逻辑来增强仿真,诸如生成其他组件可与其交互的工作产品。逻辑元件可以放置在空闲空间中,或者装置对象上或者逻辑元件容器中。放置在3d空间中和3d装置模型上的逻辑元件具有3d位置。工程工具200可以使用逻辑元件附着于的组件来执行特定于该组件的行为。编程和位置可以相互关联。逻辑元件的类型确定其目的以及任意附着的装置模型是否将用作其功能的部分。在逻辑元件中计算的值沿着链路路径传送。在用户旋转以及平移异或以其他方式变换工作空间视角时,逻辑元件的位置将显示在新视角位置。

图2中的逻辑元件容器205h提供了容器可以如何用于包含逻辑元件的组的示例。对于作用在3d世界中的所附着对象的逻辑元件,容器中的元件作用在容器附着于的对象上,或者如果容器被放置在容器本身内则递归地向前作用到其容器。至从外部到容器内的块的链路可以自动地在容器以及按照需要在其他嵌套的容器上创建接口端口。例如,参照图2,逻辑元件容器205h包括逻辑元件,其用于基于从光传感器端口对象205c和205e接收的输入来控制电机组件205f。具体地,逻辑元件容器205h取决于光传感器组件205b、205d中的哪个被触发而在-5与5之间调整电机组件205f的速率。在一些实施例中,逻辑元件容器可以由工程工具200中的二维场代表。然而,在其他实施例中,可以使用三维容器。用户可以在逻辑元件容器内(或电路之间)移动块,以按照需要重新布置接口端口。在一些实施例中,由局部元件容器在3d工作空间中占据的空间可以是开放的和封闭的,以在用户满意内容并且想减少混乱时隐藏电路内部。容器也可以复制为单个单元,因此使特定容器的内容可用于不同的输入和输出连接。注意,原始容器和复制容器可以独自地工作。例如,至不同容器的不同输入可以导致不同输出,不同状态可以被储存,以及非确定性操作可以产生不同结果。如果用户不希望修改内容或者如果用户想要内容保持链接使得修改被共享,则用于复制的逻辑元件容器的逻辑的存储可以潜在地被共享。逻辑元件容器也可以从外部装置导入,使得复杂的功能可以被封装并且在应用之间被共享。逻辑元件容器也可以提供控制容器本身的状态的连接。容器可以提供输入端口,其激活以及解激活包括嵌套容器的容器的整个内容的行为。在容器解激活时,容器内容可以不更新,并且容器的输出端口可以设定为缺省状态,诸如零或假。其他种类的容器可以支持不同种类的操作,这样的分组逻辑要在序列中执行或者像有限状态自动机那样动作或者使一组逻辑在单个时间周期内重复执行。

工程工具200的工具条210包括使用户能够与模型交互的各种子区段。剪切板子区段210a包括接口组件,其允许用户通过将工作空间205的一部分(例如,组件)剪切(或复制)到用户的剪切板而编辑3d工作空间205。该部分可以随后粘贴回到工作空间205中或者一起粘贴到另一工作空间中。工具条210中的光标子区段210b包括允许用户在3d工作空间205中选择、移动和旋转组件的接口组件。虽然大多数组件是通过现存的装置模型提供给用户,但用户可以与几何形状子区段210c交互,以将各种形状添加至3d工作空间205。以这一方式,用户可以定制设计布局,从而超越通过单独使用预先生成的装置模型而可用的设计布局。类似地,式样子区段210d提供允许用户调整放置在3d工作空间205中的各种组件的视觉外观(例如,颜色、线宽等)的接口组件。如以下更详细描述的,工具条210包括运行子区段210e和物理性质子区段210f,它们提供用于创建和与放置在3d工作空间205中的组件相关联的仿真交互的接口组件。最后,观看子区段210g允许用户选择工程工具200中的特定项目是否应该显示。

工程工具200包括硬件装置以及装置操纵和变换的工作产品的物理仿真。工具条210中的运行子区段210e允许用户在系统设计正在3d工作空间205中开发时激活以及停止仿真。工具条210中的物理性质子区段210f包括允许用户调整仿真的时序以及其他属性以及观看由仿真生成的任何错误的接口组件。在仿真运行时,工作空间维持、计算以及动画化用户已经添加到工作空间的各种组件。例如,物理对象将基于它们的动态属性而移动和变换,感测对象将检测它们相关联的目标,行为对象将读、写以及计算值等。在用户停止仿真时,3d工作空间205可以恢复到其原始配置,使得用户可以继续编辑。在一些实施例中,用户被允许在仿真正在运行时编辑系统设计。在这种情况下,可以考虑运行或暂停仿真并且用户可以在任意时间添加、删除和编辑对象。在一些实施例中,与运行子区段210e接口的交互允许仿真立即运行而无需显式编译。此外,应注意,3d工作空间205中的设计不要求被完全开发并且仿真可以在设计过程期间的任意时间运行。在一些实施例中,视觉提示、诸如颜色变化或者闪动用于示出逻辑是活动的。用户可以在逻辑运行时对其进行检查并且可以改变值以试验场景。

原则上,由工程工具200生成的仿真可以具有任何水平的复杂性。然而,在本发明的许多实施例中,工程工具200配置为使得用户能够通过指定装置和工作产品的高水平属性来设置和运行所仿真的对象。仿真可以生成视觉工作产品,通过由自动化装置实行的各种过程来跟踪它们的流动,以及计算在工作产品中产生的任何变化和这些变化将如何影响装置。仿真还能够对自动化装置的状态和行为进行仿真并且知晓它们对工作产品产生什么影响。仿真的保真度应该充分,使得自动化的关键功能在虚拟世界中实行并且自动化的编程可以被检验。可以由仿真实行的其他行为被认为是有用的,只要那些行为是现实的并且并不难以指定即可。仿真的容差和精度可以取决于自动化的尺寸、速度和一般需要来调整。仿真可以被提供用于匹配自动化的域。例如,机器人的自动化将可能使用三维的、运动学的以及可能使用动力学的仿真。相反地,炼油厂的自动化可以使用代表如管道的流体网络的压力、流动和拓扑的一维功能和值。

图3提供了根据本发明的一些实施例的示例控制器架构300。这一控制器架构300是概念性的并且假定网络将工程工具305连接至一个或多个连接的物理装置。其他种类的装置、诸如物理端口或接线连接也是可用的。工程工具305将一般化请求发送至网络,请求任意连接的装置的身份。装置以经由装置宣告消息315提供的装置信息310做出响应。基于所接收的装置信息310,工程工具305可以创建以及存储虚拟组件与物理装置之间的虚拟连接。在一些实施例中,虚拟连接包括组件标识符和应用标识符。因此,如果在相同应用中存在多个物理装置,则它们可以在经由不同组件标识符与不同虚拟装置相关联的同时,与应用标识符相关联在一起。

继续参照图3,一旦工程工具305已经识别装置以及它们的对应虚拟连接,其将工程功能传输给web服务器320。工程功能包括有关针对特定物理装置实施逻辑功能性的指令。基于所接收的工程功能,web服务器320创建程序并且将其存储在程序存储部325中。在一些实施例中,工程工具305配置为直接创建程序,而不是具有由web服务器320执行的该功能。在这一场景下,web服务器320将简单地将从工程工具305接收的任意程序传送至程序存储部325,而有或者没有程序代码的附加预先处理。程序随后由(多个)物理控制器执行,如由逻辑执行箭头330概念性地代表的。工程工具305和/或web服务器320可以与(多个)物理控制器通信,以执行诸如开始、停止和重置程序的功能。每个控制器使用本领域已知的任意技术与一个或多个物理装置通信。例如,在一些实施例中,控制器具有与它们对应的物理装置的直接电连接并且使用诸如通用串行总线(usb)或脉宽调制(pwm)的协议进行通信。在其他实施例中,控制器可以与它们的物理装置在有线(例如,以太网)或者无线(例如,ieee802.11)通信网络上进行通信。

状态存储部335主要用于在多个联网控制器之间传送共享状态,但是也允许工程工具305在程序正在由控制器执行时对其执行状态检查。即,工程工具305可以确定在每个控制器上运行的代码的当前状态。在一些实施例中,状态存储部335经由网络数据共享部350在不同的物理控制器之间被共享。附加地,网络数据共享部350可以用于与其他实体共享状态信息,所述其他实体诸如例如监控及数据采集(scada)服务器或者统一工厂知识仓库。可以接收数据的各种实体在此称为“伙伴”。网络伙伴寻找器355可以用于找到请求或要求状态信息的伙伴。在分布式控制场景中,伙伴可以是其上已经分布了逻辑的其他控制器。网络伙伴寻找器355为每个找到的伙伴提供地址。状态存储部335可以随后使用这些地址,以使用i/o通信api360将状态信息分布给伙伴。

图4提供了根据本发明一些实施例的在仿真环境100中执行的过程400的概观。在405处,用户从市场服务器下载一个或多个物理装置模型。每个物理装置模型对应于物理装置。例如,物理装置模型可以包括用于创建物理传送带的三维模型的指令,连同可以与这样的装置相关联的各种属性。物理装置模型中的信息用于创建供工程工具中使用的物理组件。在一些实施例中,工程工具自动地执行这一创建。例如,在一个实施例中,工程工具包括对于市场服务器的接口。通过与这一接口的用户交互,用户可以本地地下载物理装置模型并且允许工程工具创建对应的物理装置模型。创建过程可以是自动的或者其可以要求用户显式地请求模型的创建。附加地,应注意,在一些实施例中,物理装置模型可以在市场服务器外部下载。因此,例如,用户可以通过电子邮件共享物理装置模型以供在它们各自的工程工具中使用。

继续参照图4,在410处,用户通过在三维工作空间中添加和调整组件而在该工作空间中创建系统设计。在一些实施例中,工程工具向工作空间提供并排的可用组件的库,从而允许用户通过诸如点击和拖动(用于基于鼠标的环境)或者触摸和拖动(用于具有基于触摸显示的环境)的交互,来选择组件和将其放置在工作空间中。接下来,在415处,用户将逻辑组件添加到环境。如以上讨论的,每个逻辑组件与逻辑操作相关联并且用户可以创建包括多个逻辑组件的容器。一旦逻辑组件已经添加到工作空间,它们用于通过在组件的输入与输出之间创建关联来将逻辑添加到物理组件。例如,如以上参照图2讨论的,代表传感器的物理装置组件的输出可以绑定到逻辑容器的输入,所述逻辑容器继而具有其绑定到代表电机的物理装置组件的输入的输出。物理和逻辑组件之间的关联可以用类似于以上讨论的用于将组件添加到工作空间的技术来执行。例如,可以通过点击(或触摸)组件的输出并且将其拖到另一组件的输入来创建关联。

在420处,基于工作空间中的组件来运行仿真。这一仿真对组件的物理和电气行为进行仿真。在一些实施例中,组件中的一个或多个可以在仿真的执行期间被动画化。例如,传送带组件可以响应于附着的电机组件的激活而旋转。应注意,仿真可以在设计过程期间的任意点执行。因此,在仿真被执行之后,用户确定其是否正在提供所期望的结果。如果否,则步骤410、415、420可以迭代地执行,从而允许用户在工作空间中添加物理组件和相关逻辑。用户随后可以评价每个迭代的结果,直到实现所期望的结果。

接下来,在425处,基于三维工作空间中的系统设计来生成控制器代码。更具体地,工程工具识别与物理装置相对应的物理控制器并且生成这些装置可执行的代码。各种技术可以用于识别控制器。例如,在一些实施例中,每个控制器具有由用户提供给工程工具的固定硬件地址。在其他实施例中,工程工具可以执行装置发现过程,其中其处理接收自物理装置的装置宣告消息以探明它们各自的地址和其他相关信息。这些物理装置可以被要求具有与用户在工程工具中选择的装置模型相同的类型,或者可替代地,物理装置可以仅需要能够执行由应用限定的某个功能集。在一些实施例中,工程工具基于逻辑元件和仿真代码来创建和编译用于每个控制器的代码。在其他实施例中,工程工具包括在仿真执行期间执行控制器代码的虚拟机。因此,在仿真中使用的代码可以直接在控制器上使用,而无需任何附加编译。

一旦生成了代码,在430处,其下载到物理控制器。在一些实施例中,代码可以由工程工具经由网络连接直接发送至控制器。在其他实施例中,工程工具可以用作与物理控制器通信的中间服务器或者存储介质。

图5图示本发明的实施例可以在其内实施的示例性计算环境500。例如,计算环境500可以用于实施图1中示出的仿真环境100的一个或多个组件。计算机和计算环境、诸如计算机系统510和计算环境500对于本领域技术人员是已知的并且因此在此简要描述。

如图5所示,计算机系统510可以包括通信机构,诸如系统总线521或者用于在计算机系统510内传输信息的其他通信机构。计算机系统还包括与系统总线521耦合的用于处理信息的一个或多个处理器520。

处理器520可以包括一个或多个中央处理单元(cpu)、图形处理单元(gpu)或者本领域已知的任意其他处理器。更一般地,如在此使用的处理器是用于执行存储在计算机可读介质上的机器可读指令的装置,用于执行任务并且可以包括硬件和固件中的任一个或组合。处理器还可以包括存储可执行来用于执行任务的机器可读指令的存储器。处理器通过操纵、分析、修改、转换或传输供由可执行过程或信息装置使用的信息,和/或通过将信息路由至输出装置,来作用于信息。处理器可以使用或者包括例如计算机、控制器或微处理器的能力,并且使用可执行指令来调节以执行不由通用计算机执行的专用功能。处理器可以与使能两者之间的交互和/或通信的任意其他处理器耦合(电气地和/或作为包括可执行组件)。用户接口处理器或生成器是已知的元件,其包括电子电路或软件或两者的组合,用于生成显示图像或显示图像的部分。用户接口包括使能与处理器或其他装置的用户交互的一个或多个显示图像。

继续参照图5,计算机系统510还包括耦合于系统总线521的系统存储器530,用于存储要由处理器520执行的信息和指令。系统存储器530可以包括呈易失性和/或非易失性存储器形式的计算机可读存储介质,诸如只读存储器(rom)531和/或随机存取存储器(ram)532。系统存储器ram532可以包括(多个)其他动态存储装置(例如,动态ram、静态ram以及同步dram)。系统存储器rom531可以包括(多个)其他静态存储装置(例如,可编程rom、可擦除prom以及电可擦除prom)。另外,系统存储器530可以用于在由处理器520执行指令期间存储临时变量或其他中间信息。包含诸如在启动期间有助于在计算机系统510内的元件之间传送信息的基本例程的基本输入/输出系统533(bios)可以存储在系统存储器rom531中。系统存储器ram532可以包含数据和/或程序模块,其可由处理器520立即访问和/或当前在处理器520上操作。系统存储器530可以附加地包括例如操作系统534、应用程序535、其他程序模块536和程序数据537。

计算机系统510还包括耦合于系统总线521的盘控制器540,用于控制用于存储信息和指令的一个或多个存储装置,诸如磁硬盘541和可移除介质驱动542(例如,软盘驱动、致密盘驱动、磁带驱动和/或固态驱动)。存储装置可以使用合适的装置接口(例如,小型计算机系统接口(scsi)、电子集成驱动(ide)、通用串行总线(usb)或火线)添加到计算机系统510。

计算机系统510还可以包括耦合于系统总线521的显示器控制器565,用于控制用于向计算机用户显示信息的显示器566,诸如阴极射线管(crt)或者液晶显示器(lcd)。计算机系统包括输入接口560以及一个或多个输入装置,诸如键盘562和定点装置561,用于与计算机用户交互并且将信息提供给一个或多个处理器520。定点装置561例如可以是鼠标、光笔、轨迹球或定点摇杆,用于将方向信息和命令选择传输给一个或多个处理器520以及用于控制光标在显示器566上的移动。显示器566可以提供触摸屏接口,其允许通过定点装置561输入来补充或更换方向信息和命令选择的传输。

计算机系统510可以响应于一个或多个处理器520执行包含在诸如系统存储器530的存储器中的一个或多个指令的一个或多个序列,而执行本发明实施例的处理步骤的一部分或全部。这样的指令可以从另一计算机可读介质(诸如磁硬盘541或者可移除介质驱动542)读入到系统存储器530中。磁硬盘541可以包含由本发明的实施例使用的一个或多个数据存储和数据文件。数据存储内容和数据文件可以加密以改进安全性。处理器520也可以以多处理布置来采用,以执行包含在系统存储器530中的指令的一个或多个序列。在可替代实施例中,硬接线电路可以用于替代软件指令或者与软件指令组合。因此,实施例不限于硬件电路和软件的任何特定组合。

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

计算环境500还可以包括使用至一个或多个远程计算机(诸如远程计算机580)的逻辑连接而在联网环境中操作的计算机系统510。远程计算机580可以是个人计算机(膝上型或台式)、移动装置、服务器、路由器、网络pc、对等装置或其他公共网络节点,并且典型地包括以上相对于计算机系统510描述的许多或全部元件。当在联网环境中使用时,计算机系统510可以包括调制解调器572,用于在诸如因特网的网络571上建立通信。调制解调器572可以经由用户网络接口570或者经由另一合适机构连接至系统总线521。

网络571可以是本领域公知的任意网络或系统,包括因特网、内部网、局域网(lan)、广域网(wan)、城域网(man)、直接连接或串联连接、蜂窝电话网络,或者能够促进计算机系统510与其他计算机(例如,远程计算机580)之间的通信的任意其他网络或介质。网络571可以是有线的、无线的或其组合的。有线连接可以使用以太网、通用串行总线(usb)、rj-6或本领域公知的任意其他有线连接来实施。无线连接可以使用wifi、wimax和蓝牙、红外、蜂窝网络、卫星或本领域公知的任意其他无线连接方法来实施。附加地,若干网络可以单独工作或者彼此通信地工作以促进网络571中的通信。

如在此使用的可执行应用包括代码或机器可读指令,用于例如响应于用户命令或输入而调节处理器以实施诸如操作系统、上下文数据采集系统或其他信息处理系统的那些的预确定功能。可执行程序是代码或机器可读指令的片段、子例程,或者其他不同代码段,或者用于执行一个或多个特定过程的可执行应用的部分。这些过程可以包括接收输入数据和/或参数、对所接收的输入数据执行操作和/或响应于所接收的输入参数而执行功能,以及提供所得到的输出数据和/或参数。

如在此使用的图形用户接口(gui)包括一个或多个显示图像,其由显示器处理器生成并且使能与处理器或其他装置的用户交互以及相关联的数据采集和处理功能。gui还包括可执行程序或可执行应用。可执行程序或可执行应用调节显示器处理器以生成代表gui显示图像的信号。这些信号被供应至显示图像以供用户观看的显示装置。在可执行程序或可执行应用的控制下,处理器响应于接收自输入装置的信号而操纵gui显示图像。以这一方式,用户可以使用输入装置与显示图像交互,从而使能与处理器或其他装置的用户交互。

这里的功能和过程步骤可以响应于用户命令而自动地、全部地或部分地执行。自动执行的(包括步骤)活动响应于一个或多个可执行指令或装置操作而执行,无需该活动的用户直接发起。

各图的系统和过程是非排他性的。其他系统、过程和菜单可以根据本发明的原理而得出来完成相同目的。虽然本发明已经参照具体实施例进行描述,但应理解,在此示出和描述的实施例和变型仅出于说明目的。在不偏离本发明范围的情况下,本领域技术人员可以实施对于当前设计的修改。如在此描述的,各种系统、子系统、代理、管理器和过程可以使用硬件组件、软件组件和/或其组合来实施。这里没有主张的要素在35u.s.c112第六段的规定下构造,除非要素明确使用短语“用于……的装置”来记载。

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