CN101976051A - 编程处理系统的方法 - Google Patents

编程处理系统的方法 Download PDF

Info

Publication number
CN101976051A
CN101976051A CN2010105039974A CN201010503997A CN101976051A CN 101976051 A CN101976051 A CN 101976051A CN 2010105039974 A CN2010105039974 A CN 2010105039974A CN 201010503997 A CN201010503997 A CN 201010503997A CN 101976051 A CN101976051 A CN 101976051A
Authority
CN
China
Prior art keywords
icon
painting canvas
instrument
route
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010105039974A
Other languages
English (en)
Inventor
A·R·奥斯本
C·考哈姆
S·布朗
S·H·布赖尔斯
S·伯吉斯
A·纽森
K·M·罗得斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beptech Inc
Original Assignee
Beptech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beptech Inc filed Critical Beptech Inc
Publication of CN101976051A publication Critical patent/CN101976051A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23258GUI graphical user interface, icon, function bloc editor, labview

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Programmable Controllers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一种使用具有配置画布和仪器画布的计算机对处理系统进行编程的方法。所述方法包括以下步骤:将每个都关联到功能对象的对象图标放置到所述配置画布上;在所述对象图标之间自动路由执行路径;在所述对象图标之间还创建数据流路径;将至少一个可视化仪器放置到所述仪器画布上;自动将与所述可视化仪器相关联的仪器图标放置到临时窗格上;从所述临时窗格将所述仪器图标移动并放置到所述配置画布上;在所述仪器图标和所述对象图标中的一个之间创建数据流路径,以使得位于所述仪器画布之上的所述可视化仪器操作地与所述配置画布上的所述处理配置相连。替代性地,至少一个仪器图标可首先放置在所述配置画布上。然后,与所述仪器图标相关联的所述可视化仪器可自动地放置在所述临时窗格上。然后,将所述可视化仪器从所述临时窗格上移动到所述仪器画布上。

Description

编程处理系统的方法
本申请是申请日为2005年2月25的名称为:“编程处理系统的方法”的中国专利申请200580009239.4的分案申请。
技术领域
本发明涉及一种处理系统和对该处理系统进行编程的方法。
背景技术
数据处理在许多不同的制造业和商业相关的应用中被用于完成几乎无限多种的任务。数据处理系统的一个应用领域是在自动化、控制、数据采集和仪器使用的领域中。实际的仪器或执行机构(例如测压元件、液压阀或伺服电机)实时地产生数据流或者要求实时的命令流。包含数据处理系统的计算机与这些仪器连接,以采集和分析数据并产生适当的命令。实现完成数据采集以及各种其它任务的现有技术数据处理系统采用了不同的设计配置,并且通常被组织成网络的形式。网络可以布置成例如总线或线形拓扑、星形拓扑、环形拓扑等各种配置。网络内部通常有多个节点以及与每个节点相互连接的通信链路。节点是处理系统的一部分,其被连接到每一个仪器以分别采集由这些仪器输出的数据。节点还可能是计算机、终端、工作站、其它的执行机构、额外的数据采集器、传感器、或类似装置。节点通常具有处理器、存储器和各种其它的硬件和软件组件。节点在网络中的通信链路上相互通信以获得和发送信息。在一个典型的应用系统中,可能存在许多在多种不同路径上通信的节点。
处理系统的用户经常开发和要求物理系统的概念模型,以帮助用户编程和使用该处理系统。对这类采用节点的数据处理系统进行编程可能是令人畏缩的任务,甚至对专业的程序员来说也是如此。在程序员能够对一个现有技术的处理系统进行编程之前,必须精通许多微妙的复杂情况。使用数学公式、数学步骤或其它类似过程对处理系统进行编程的任务使编程过程更加复杂。用于控制处理系统的计算机程序通常是用传统的文本编程语言例如机器代码、C、C++或Pascal来编写的。响应式的实时性能通常要求程序员学习并使用多线程、实时操作系统。这些编程语言和操作系统并不直观,也不能很好地用来采集和分析数据处理系统所要求的数据。
更经常的情况是处理系统的用户和程序员并不是专业程序员,因此经常要求更易懂更直观的高级编程技术。在计算机编程方面没有受到良好训练的用户对计算机和数据处理系统的使用日益增加,因而需要编程比当前系统更易于使用和实现的数据处理系统。
现有技术已经试图在上述编程语言之上来改进数据处理系统的编程,参见美国专利第4,901,221号、第4,914,568号和第5,301,301号。这些现有技术文档中公开的编程技术试图以图形化的方式来帮助用户对数据处理系统进行编程。然而,这些编程技术有许多缺陷。具体而言,这些方法以个人电脑为中心,而原本不能用来处理分布式多进程节点的系统。完成编程配置所需的步骤的数目混乱,而且有许多特征仍然不直观。此外,存在许多对处理系统的用户或程序员的不必要的限制。最后,在编程过程中或处理系统的操作过程中,处理系统不能动态地变化。
因此,需要开发一种相对容易且直观的对处理系统进行编程的方法。进一步地,该编程方法应该是通用的,且约束有限,以允许用户充分定制处理系统。该编程方法最好应该适用于多进程分布式系统。最后,该编程方法应该本质上是图形化的,以帮助用户可视化地对编程步骤进行概念化,而且应该能够在编程过程和操作过程中动态改变。
发明内容
本发明包括一种对处理系统进行编程的方法,其使用一具有配置画布、仪器画布和临时窗格的计算机。该处理系统包括至少一个处理器,多个功能对象,和至少一个可视化仪器,其中每个功能对象包括执行特定功能的命令。该方法包括将与第一批功能对象相关联的第一批对象图标放置到配置画布的多个不同位置的步骤。当第一批对象图标被放置到配置画布上以定义一个处理配置时,多个执行路径在第一批对象图标中的每个对象图标之间自动地路由或确定路径(route)。在配置画布上的对象图标之间创建数据流路径。至少一个可视化仪器被放置在仪器画布上。关联到该可视化仪器的仪器图标被自动放置到临时窗格上。该仪器图标被从临时窗格移动并放置到配置画布。该方法包括如下步骤:创建所述仪器图标与所述配置画布的处理配置内的至少一个对象图标之间数据流路径,使得仪器画布上的可视化仪器可操作地连接到配置画布上的处理配置。替代性地,至少一个仪器图标能够被首先放置在配置画布上,然后,与仪器图标相关联的可视化仪器被自动地放置在临时窗格上。创建所述仪器图标与所述配置画布上处理配置中的至少一个对象图标之间的数据流路径。替代性方法包括如下步骤:将可视化仪器从临时窗格移动并放置到仪器画布,仪器画布上的可视化仪器可操作地连接到配置画布的处理配置。
因此,本发明包括一种改进的对处理系统进行编程的方法,其创建一种非常通用且直观的图形化编程技术。如下文更详细地说明的,该编程方法本质上是动态的,且在编程过程和操作过程中都是可更改的。
附图说明
通过参考下文的详细描述并结合附图一起考虑,随着本发明的其它优点被更好地理解,这些优点将很容易地被认识到,附图中:
图1是对处理系统的一个预期应用的示意性图解说明;
图2示出了连接到本发明处理系统的计算机监视器的空白启动屏幕;
图3示出了启动屏幕的File(文件)菜单;
图4示出了启动屏幕的View(视图)菜单;
图5示出了启动屏幕的Tools(工具)菜单;
图6示出了启动屏幕上打开的System Setup(系统设置)窗格,Project Explorer(项目浏览)窗格,Toolbox(工具箱)窗格,Properties(属性)窗格,和Unassigned(未指定)窗格;
图7是System Setup窗格的细节;
图8是Toolbox窗格的细节;
图9是Toolbox窗格的进一步细节;
图10示出了在启动屏幕上打开的并处于启动屏幕边缘的System Setup窗格、Project Explorer窗格、Toolbox窗格,和Properties窗格;
图11示出了File菜单并选中Project(项目)命令;
图12示出了启动屏幕的Create New Project(创建新项目)窗口;
图13示出了空白配置画布,以及沿其边缘打开的System Setup窗格、Project Explorer窗格、Toolbox窗格,和Properties窗格;
图14示出了配置画布的Edit(编辑)菜单;
图15示出了配置画布的Insert(插入)菜单;
图16示出了配置画布的Control(控制)菜单;
图17示出了创建一个处理配置的典型的第一步骤,其中处理器图标被放置到配置画布上;
图18示出了处理配置的下一步骤,其将形式为Sine Wave Generator(正弦波发生器)的对象图标放置到配置画布上;
图19是与Float Add(浮点加法)功能对象相关的Properties窗格的细节;
图20是该Properties窗格的另一细节;
图21是该Properties窗格的再一细节;
图22是该Properties窗格的另一细节;
图23示出了将另一个形式为Random Number Generator(随机数发生器)的对象图标放置到配置画布上的步骤;
图24示出了将再一个形式为Float Multiply(浮点乘法)的对象图标放置到配置画布上;
图25示出了Float Multiply图标在配置画布上的替代性的放置;
图26示出了Random Number Generator图标相对于Sine Wave Generator图标的移动;
图27示出了配置画布上的部分完成的处理配置,其中所有的执行路径均被路由;
图27A是图27配置画布上某些对象图标的细节,其说明了Float Multiply图标的文本描述符;
图27B是图27配置画布上某些对象图标的另一细节,说明了Float Multiply图标的符号;
图28是图24配置画布上对象图标的细节,其说明了单个数据流路径,其独立于被路由的执行路径;
图29示出了已完成的配置画布上的处理配置,其中所有的执行路径已被路由,且所有的数据流路径已被连接;
图30示出了图29的已完成的处理配置以及System Setup窗格、Project Explorer窗格、Toolbox窗格,和Properties窗格;
图31示出了在其操作过程中图30的已完成的处理配置;
图32示出了同一配置画布上三个已完成的处理配置;
图33示出了图32的三个已完成的处理配置,其中某些对象图标已被移动到不同的位置;
图34示出了图32的三个已完成的处理配置,其中一个对象图标已被移动到不同的位置;
图35示出了图32的三个已完成的处理配置,其中一个对象图标已被移动到不同的处理配置;
图36示出了图32的三个已完成的处理配置,其中一个对象图标已被移动到不同的处理配置;
图36A示出了图32的三个已完成的处理配置,其中两个对象图标已被同步;
图37示出了配置画布上打开的仪器画布;
图38是Toolbox窗格的另一个细节;
图39示出了组装有许多可视化仪器的仪器画布;
图40示出了部分创建的处理配置与Unassigned窗格的细节;
图41示出了部分创建的处理配置与Unassigned窗格的细节另一视图;
图42示出了另一已完成的处理配置;
图43示出了叠置在图42的已完成的处理配置之上的图39的仪器画布;
图44示出了部分创建的处理配置与Unassigned窗格的细节;
图45示出了叠置在组装有若干可视化仪器的仪器画布之上的Unassigned窗格;
图46示出了叠置在图45的仪器画布上的Unassigned窗格的另一视图,其中可视化仪器从Unassigned窗格移动到仪器画布;
图47示出了已完成的处理配置的另一个例子;
图48示出了图47的已完成的处理配置和Properties窗格的细节;
图49示出了图47的已完成的处理配置和Properties窗格的细节,同时通过相对于FloatAdd图标移动Float Subtract图标,证明了本发明的动态性质;
图50示出了已完成的处理配置的再一个例子;
图51是图50的已完成的处理配置的第一User Object(用户对象)的细节;
图52是图51的第一User Object中的第二User Object的细节;
图53示出了图50的已完成的处理配置和Project Explorer窗格的细节;以及
图54是已完成的处理配置的另一个例子。
具体实施方式
参见附图,其中在这若干个附图中,相同的数字指示相同或相应的部件,处理系统的一个预期应用的示意性说明被总体地显示在图1中的10处。特别地,处理系统10被配置成具有多个节点的分布式多进程系统10。分布式多进程系统10的一个预期应用是用于编译和分析数据,例如在测试交通工具的过程中。本领域技术人员应意识到,本发明的处理系统10有许多应用,而后续的关于数据采集和交通工具测试的讨论仅仅出于说明性目的,决不是为了限定本发明的范围。
如图1所示,示意性地示出了液压执行机构12和伺服阀门14。液压执行机构12作用在试样16(例如交通工具)上。测压元件18和位移功能变换器20被连接到执行机构12,以向接口22提供诸如力和位移的信号。接口22也被连接到伺服阀门14以提供必要的控制信号。接口22优选是伺服控制器(servo-controller)节点的一部分,所述伺服控制器节点在图中以节点1标示出。节点1还包含一个或多个处理器和通信接口24。优选地,节点1的处理器(一个或多个)是数字信号处理器(DSP)。节点1又经由通信链路26被连接到路由集线器28。如图所示,其他节点和主机节点也连接到集线器28。可以有任意数量的节点连接到集线器28,这些节点有任意适当数量和类型的处理器。主机节点优选是带有PC处理器30和监视器32、键盘24、鼠标36和任何其它适当外设的计算机。主机节点包含DSP卡,其有总线接口38、一个或多个DSP处理器和通信接口40。类似节点1,主机节点的通信接口40通过通信链路26将主机节点连接到集线器28。与节点1一样,对主机节点的处理器的类型和数量没有限制。集线器28的具体独特的结构和节点配置以及节点自身的具体结构,在共同待决的美国专利申请第09/692,852号和第09/982,601号中公开,其公开内容在此以引用方式并入本文。
正如在上文“背景技术”一节中所讨论的,现有技术处理系统对于编程而言可能很难且不直观。图1所示的分布式多进程系统的逻辑扩展可能也是很难编程的。因此,本发明旨在处理这些需求。在以下的详细讨论中,本发明包括多种改进的对分布式多进程系统进行编程的方法,其本质上是图形化的,具有很好的通用性,而且使用起来很直观。该编程方法本质上还是动态的,能在编程过程和操作过程中更改。
转向图2-10,其中示出了本编程方法使用的许多基本组件。图2示出了计算机监视器的空白启动屏幕。该屏幕或窗口被标记为Visual Configuration Editor(可视配置编辑器,VCE)。VCE或启动屏幕所示的许多特征是有代表性的基于窗口的系统。VCE是用户所应用的用于创建、编辑、运行和监视项目操作的环境。需要注意的是,术语
Figure BSA00000299180100081
是向美国专利局注册的注册商标,本专利申请中任何对该术语的使用决不降低该标记可用的力度和/或保护。进一步的,本专利申请中使用得术语Visual Configuration Editor和VCE以及标记旁边的图形说明,都绝不降低这些商标可用的力度和/或保护。
图3示出了启动屏幕的File菜单,其包含用于创建新项目、打开项目文件和保存项目的命令。图4示出了启动屏幕的View菜单,图5示出了Tools菜单。View菜单允许用户有选择地打开各种窗格,如图6所示。参见图6,在启动屏幕上打开了System Setup窗格、Project Explorer窗格、Toolbox窗格、Properties窗格,以及Unassigned窗格。这些窗格可以是浮动的或是可停靠的,且可以按照需要调整大小。当用户创建、修改或执行项目时,这些窗格中的每一个都有具体的用途,下文将作详细讨论。图5的Tools菜单,包含了设计用于执行特殊复杂任务的高级软件特征。这些软件特征可能是专门设计用来帮助用户的计算程序等等。因此,这些软件特征都是有效的节省工作量的装置。
图7中更加详细地示出了System Setup窗格或处理器窗格。System Setup窗格显示了当前用户可用的所有处理器的树状图。处理器被安排在节点之下。在本例中,有两个可用的节点。一个节点是Local Node(本地节点),这是上文讨论的主机节点的另一个名称。也就是说,Local Node是计算机的一部分。Local Node包括一个PC处理器,标记为386,带有五个(5个)不同的事件,这些事件在处理器窗格中被识别。如下文中更详细讨论的,通过PC处理器识别的事件可以在处理系统中分别使用,以初始化执行路径。另一个可用的节点是REDgrid DSP Card(REDgrid DSP卡),这是上文讨论的节点1或Node 1的专用名称。如上文所述,
Figure BSA00000299180100091
是一个注册商标,在本专利申请中仅用来帮助说明预期的实施例。节点1包含两个标记为“1”和“2”的处理器。处理器优选为DSP,且每个包含三个可由用户选定的事件。然而,在处理系统的这个具体实施方式中,DSP被设计成使节点1之下的这些处理器在处理系统中仅可以被使用一次,但这决不是限制本发明,将DSP实现成使每个事件可以被独立地选取也是可能的。
上文所讨论的事件区分出用于处理器的各种不同的执行速率。在实时处理系统中,用户通常要求以特定速率周期性地重复执行路径。换句话说,将在下文更详细讨论的执行路径可以是重复的和连续的。用户可以根据受控装置的需要选择这些参数,然后选择相应的处理器事件和速率。除了周期性的事件,还可能得到以非周期方式能够对执行进行初始化的事件。
图8和图9中更详细地示出了Toolbox窗格。依据任何特定应用的需要,Toolbox窗格可能有实际上任何数量的条目。文件夹的实例可以包括Drawing Objects(绘图对象)、Non-Iterated Objects(非迭代对象)、Primitives(基元)和Visual Instruments(可视化仪器)。Drawing Objects是帮助用户创建符合逻辑的可理解的项目配置的可视元素。Drawing Objects通常是不可执行的对象。下文将详细讨论Visual Instruments。
如图9所示,Primitives文件夹包括一大类子文件夹、子文件夹的子文件夹或孙文件夹(sub-sub-folder)等等。在Primitives文件夹内有多个功能对象或基元。功能对象的实例显示在Instrument(仪器)孙文件夹下和Sources(源)孙文件夹下。功能对象包括已经预编程的基本的可执行代码或命令,所述预编程使得每个功能对象都能执行某种特定功能。如下文所讨论的,功能对象是可以组合和连接以执行更复杂任务的基本元素或单元或者构建块。功能对象可以被写成具体地运行于某种处理器或处理器系列上。在图8的例子中,有两类功能对象,Host和SHARC。Host功能对象被设计成只能在PC或Host(主机)处理器上执行。SHARC功能对象被设计成只能在SHARC DSP上执行。下文将更详细地讨论User Objects(用户对象),User Objects是功能对象的集合。
图10示出了在启动屏幕上打开并可停靠在启动屏幕边缘的System Setup窗格、Project Explorer窗格、Toolbox窗格,以及Properties窗格。如清楚地显示的,Properties窗格和Project Explorer窗格目前是空的。而且,Unassigned窗格或临时窗格(它们目前也是空的)是不可见的。
转到图11-16,其示出了本编程方法中使用的额外的基础组件和项目的初始化。如图11所示,用户通过打开File菜单并选中New/Project命令来开始。图12示出了在启动屏幕内的Create New Project的窗口,以及用户为项目指定一个名称,例如“Simple Project(简单项目)”。如图13所示,当前出现了空白配置画布,且System Setup窗格、Project Explorer窗格、Toolbox窗格,以及Properties窗格沿着画布的边缘保持打开。目前,Project Explorer示出了树的起点,其将追踪画布上的项目。
一旦项目被初始化,三个新的菜单选项将出现。如图14所示,配置画布的Edit菜单包含了常见的窗口编辑控件。如图15所示,配置画布的Insert菜单为用户提供了一个绘图对象的列表,其可以被插入到配置画布中。上文讨论的Toolbox窗格中的Drawing Objects文件夹包含了同样的绘图对象列表。图16示出了配置画布的Control菜单,其包括了用于控制已完成的项目的执行的选择。为了辅助用户,执行控件还放置在屏幕上的工具条上。
转到图17-31,现在详细讨论为处理系统编写一个基础项目的方法,如上文初始化的“Simple Project”,还将详细讨论许多其它特征。如图17所示,一个关联到处理器之一的处理器图标被放置到画布上。具体说来,来自处理器窗格的一个事件通过拖放选择的方式被移到画布上,以产生画布上的处理器图标。在本例中,REDgrid DSP Card节点下的编号为“1”的DSP被移到画布上。用户具体选定了IRQ2事件,且该事件在处理器的标签中被标识出来。IRQ2事件是个重复性事件,其每秒钟执行20,480次执行路径。现在,这个处理器中的所有事件都被加上阴影,表明该处理器不可再用于本项目中。应该再次注意到,一旦一个事件被选中所有事件都不可用是处理系统的特定实施例的属性。进一步地,没有必要以一个处理器来开始一个项目,用户可以采用任何所需的顺序来构建处理配置。
如图18所示,用户浏览Toolbox窗格寻找所需的功能对象,然后将关联到第一功能对象的第一对象图标放置到画布上的第一位置处。具体说来,来自Toolbox窗格的关联的符号被复制到画布上,其定义了第一对象图标。在本例中,第一对象图标关联到Sine Wave Generator功能对象,其被从Toolbox窗格上的Sources文件夹下的Sine Wave Generator符号拖放到画布上。Project Explorer窗格自动地在树中指示Sine Wave Generator,并将在每次项目被修改时自动更新。该Sine Wave Generator被加亮或高亮,且Properties窗格装入关于该Sine Wave Generator的各种信息。
转到图19-22,其更详细地说明了Properties窗格。在本例中,Float Add功能对象被放置在画布上并被加亮。Properties窗格显示为浮动在该功能对象旁边。Properties窗格被用于检查和修改该项目中的所有功能对象的几乎所有属性。例如,数据信号的属性,连接符(数据端口),以及功能对象的可视化外观都可以被检查和/或修改。在图19的例子中,用户可以键入Input 1和Input 2的值,该值允许用户为输入信号设置初始条件。Properties窗格在小工具条里还有标签用于选择不同的视图,如Signals(信号)、Connections(连接)、Info(信息),及Visuals(可视化)。图19示出了Signals视图。图20示出了Connections视图,在其中用户可以选择显示或隐藏任何数据连接符。这对非常复杂的功能对象是有用的,其具有多个用户可用的输入和输出,但仅有一些是需要的,从而消除了视觉混乱。图21示出了Info视图,以及图22示出了Visuals视图。在Visuals视图中,关于图形符号如何显示和表现的每个方面都可被检查和修改。
回到被创建的基础项目,图23示出了被放置在画布上的第二位置处的第二对象图标,其关联到第二功能对象。第二图标的第二位置与第一图标的第一位置不同。在本例中,第二个图标关联到Random Number Generator(随机数发生器)功能对象。如图24和25所示,第三对象图标接着被放置在画布的第三位置处,所述第三对象图标关联到第三功能对象。另一方面,第三位置与第一和第二位置不同。本例中,第三图标关联到Float Multiply(浮点乘法器)功能对象。
由于图标和处理器是被放置在画布上的,因此本发明的一个特征涉及执行路径的路由和再路由。如图24和25所示,执行路径以如下方式自动路由:基于画布上第三对象图标的第三位置相对于第一对象图标的第一位置和第二对象图标的第二位置的方位,从第一和第二对象图标中的一个到第三对象图标路由。换种方式来说,执行路径被自动路由:其从第一对象图标和第三对象图标中的一个到第二个对象图标路由,这基于画布上第三对象图标的第三位置相对于第一对象图标的第一位置和第二对象图标的第二位置的方位。
在图24的例子中,路由一条执行路径,其从第二对象图标到第三对象图标,这是因为当在画布上从左到右看时,第二对象图标的第二位置在第一对象图标的第一位置和第三对象图标的第三位置之间。当第二对象图标被放置在画布上时,自动地从位于第一位置的第一对象图标路由一条执行路径到位于第二位置的第二对象图标。也就是说,如图23所示,根据第二图标的相对方位,直接并自动地从第一对象图标路由一个条执行路径到第二对象图标。
替代性地,如图25中所示的,可从第一对象图标自动路由一条执行路径到第三对像图标,因为当在画布上从左到右看时,画布上第三对象图标的第三位置处于第一对象图标的第一位置和第二对象图标的第二位置之间。在这个替代性的例子中,从第一个对象图标自动且无缝地再路由一条执行路径,从图23中所示的可以看出,作为对第三个对象图标的方位的响应,所以该执行路径被再路由到第三对象图标。进一步地,作为对第三对象图标方位的响应,执行路径会自动从第三位置处的第三对象图标路由到第二位置处的第二对象图标。因此,在这个替代的例子中,执行路径从第一图标路由到第三图标,然后到第二图标。
根据图标的方位,一个执行路径也可以自动地从处理器图标路由到第一、第二和第三对象图标中的一个。根据画布上从左到右看,基于第一、第二和第三对象图标中最左边位置,该执行路径从处理器图标自动路由到第一、第二和第三对象图标中的一个。在如图17和18所示的例子中,处理器首先被放置在画布上,然后第一图标放置在画布上。如图18所示的执行路径自动路由到第一图标,这是因为第一图标在最左边位置处。应该意识到,不必要求处理器被首先放置在画布上,进一步地,不必要求处理器沿着画布的最左边放置。
执行路径可以由着色的箭头或唯一配置的箭头所标识。如下文很详细地阐明的,从不同的处理器到不同配置的对象图标群之间可能有许多不同的执行路径。在这些类型的多进程配置中,需要有不同着色或不同配置的箭头来标识不同的处理配置,其路由自不同的处理器。当前被检查或修改的执行路径在工具条上被标识。
对比图24和25,其示出了本发明的动态特性。对象图标可以一开始按图24所示的方位被放置在画布上。接着对象图标中的一个(本例中的第三对象图标)可被移动到不同的位置。在图25的例子中,Float multiply(第三对象图标)被移到第一个和第三图标之间的位置。如上述讨论的,根据第三对象图标相对于画布上的其它图标的移动的方位,执行路径自动且无缝地再路由。当图标从一个方位拖向另一个方位的同时,执行路径的产生以及重画过程被实时执行且将继续进行下去。
对比图24和26,示出了本发明的动态特性的另一例子。处理器和对象图标可以一开始按图24所示的方位被放置到画布上。如图26所示,接下来Random Number Generator(第二对象图标)可被移动到处理器和第一对象图标之间。第二对象图标现在是最左边的图标,这使得执行路径从处理器自动和无缝地再路由到该第二对象图标(参见图26)。如图27所示,作为响应,剩余的执行路径也被再路由,使得现在执行路径从处理器路由到第二对象图标,再到第一对象图标,以及再到第三对象图标。
还是如图27所示,关联到第四功能对象的第四对象图标被放置到画布上的第四位置,该第四位置与第一、第二和第三位置不同。在本例中,第四图标被关联到Scope(示波器)功能对象。当第四对象图标被放置在画布上时,执行路径被自动地从位于第三位置的第三对象图标路由到该位于第四位置的第四对象图标。应该认识到可能有任意数量的、被放置在画布上的、关联到相同或不同功能对象的额外的图标。在本例中,还有一个额外的图标被放置到画布上,其也关联到Scope。
每个功能对象和相关联的对象图标包括至少一个输入和/或至少一个输出。输入和输出被设计成用于接收和传输数据的数据端口。图27A示出了Float Multiply图标,其具有两个输入和单个输出。应该认识到功能对象和对象图标可能根据需要具有任意适当的数量的输入和/或输出。
参见图27A和27B,示出了关联到每一个对象图标的另一种特性。具体地说,第一、第二和第三对象图标中的每一个都包含多个符号,例如数学或工程符号,以及包含诸如文本的描述符。因为画布空间所限,对用户有优势的做法是具有多个符号和描述符,其在有需要时可以动态变化的。有时候仅是符号就足够让用户明白功能或功能对象的操作。其它时候,用户想要看到输入和输出的更多细节和描述,例如,图27A示出了Flora Multiply图标,其具有用户可见的文本描述符。具体来说,输入和输出数据端口是可见的。输入和输出的标签是可以被用户配置的。在所示的例子中,只有输入和输出的名字的第一个字符被显示,以节约空间。因为优选的执行路径是以从左到右的方式进行处理的,因此输入显示在左边缘,而输出显示在右边缘。图27B示出了同样的Float Multiply图标,该图标目前具有用户可见的符号。如果用户指向一个具体的输入或输出,该输入或输出的名字将会是可见的。在优选实施例中,每个对象图标包括图形符号和文本描述符,且任何时刻只有符号和描述符中的一个是可见的。更优选的是,用户将在对象上放置光标以动态地改变视图。
在我们的示例项目的这一点上,如图27所示,执行路径已经全部被建立了。然而,在优选实施例中,执行路径独立于数据流路径。参见图28和29,现在画布上第一、第二、第三和第四对象图标之间的数据流路径已独立于画布上的执行路径的路由而被创建了。具体地,对象图标之间的数据流路径的创建是这样执行的:在画布上手动地将来自对象图标之一的输出连接到另一个对象图标的输入。更具体地,用户点击输入或输出,并将画布上的指针拖向相反的输入或输出。如果获得一个可允许的数据连接,则画一条实线指示已连接的数据流路径。在图28所示的例子中,通过连接数据端口之间的数据流路径,Random Number Generator的输出被连接到Float Multiply的输入。执行路径不受数据流路径连接的影响。
图29示出了各种对象图标之间的已完成的数据流路径。当一个或多个对象图标要求多个输入时,数据流路径可以自动地分布到多于一个的输入,由此在数据流路径上创建了分布点。数据流路径的分布决不会影响数据的实际值。经过数据流路径的数据值仅仅是传递给多于一个的对象图标。在所示例子中,Float Multiply和Scope 2都要求多个输入,因此,Sine Wave Generator和Random Number Generator的输出被分布开,且分布点被放置在数据流路径的这个区域。优选地,关联到另一个功能对象的分布图标在数据流路径上的分布点处自动被创建。进一步的,执行路径自动地被再路由以根据图标的相对方位而将分布点处的分布图标包含进来。替代性地,当一个或多个图标要求多于一个输入时,关联到另一个功能对象的分布图标可以被手动地放置在数据流路径上以分布数据流路径。
参见图30和31,项目现在已经完成。处理系统可以按如下方式被操作:功能对象按照对象图标之间的执行路径的顺序执行关联的功能,并且数据沿着图标之间的数据流路径被传送。处理系统的操作进一步定义为按照画布上从左至右的顺序操作图标之间的执行路径。因此,最左边的对象图标最先执行,紧挨着它右边的对象第二个执行,依此类推,直到某一特定执行路径上所有的对象图标都已被执行为止。如上文所提及的,典型的处理系统将是重复性的,因此,一旦关联到最右边的对象图标的功能对象已被执行,整个操作将持续地重复。在优选例中,沿着数据流路径传送的数值将在执行路径的每一次传递之间被保存。因此,上一次执行产生的数值可以用作下一次执行的输入。应该意识到,操作顺序可以改变,而这并不偏离本发明的整体范围。
项目的操作通过工具条上的命令来控制,例如停止、暂停和运行。在如图31所示的目标例子,Scope 2显示来自Sine Wave Generator和Random Number Generator的初始信号。Scope1显示这些信号的实时乘积。
本发明的另一个特征是对象图标之一可以被移动到不同的位置,并基于画布上该对象图标相对于彼此移动后的方位自动地再路由执行路径,与此同时正在操作处理系统,因此执行路径是实时地被再路由的。换句话说,在处理系统执行的同时,也可以执行上文所详细讨论的在编程处理系统时图标的移动和执行路径的再路由,因此这极大地增强了本发明的通用性。
转到图32-36,其示出了另一个已完成的项目。这个项目的配置画布较大,这是因为System Setup窗格、Project Explorer窗格、Toolbox窗格、Properties窗格,以及Unassigned窗格都停靠在屏幕的右手边。如上文所提及的,窗格可以以任何适当的形式布置在屏幕上。图32所示的特定配置在允许对所有窗格进行访问的同时,最大化配置画布的空间。
图32-36所示的项目是多进程的,即画布上放置有多于一个的处理器。为了生成图32所示的配置,关联到第一处理器的第一处理器图标被放置在画布上,每个都关联到第一批功能对象的第一批对象图标被放置在画布上的多个不同位置。当第一批对象图标被放置在画布上以定义第一处理配置时,第一批执行路径从第一处理器图标自动路由到第一批对象图标中的每一个。类似地,第二处理器图标被放置在画布上,每个都关联到第二批功能对象的第二批对象图标被放置在画布上的多个不同位置。当第二批对象图标被放置在画布上以定义第二处理配置时,第二批执行路径从第二处理器图标自动路由到第二批对象图标中的每一个。如所示出的,第二处理配置大多是第一个处理配置的复制,以在系统中制造冗余。最后,第三处理器图标被放置在画布上,每个都关联到第三批功能对象的第三批对象图标被放置在画布上的多个不同位置。当第三批对象图标被放置在画布上以定义第三处理配置时,第三批执行路径从第三处理器图标自动路由到第三批对象图标中的每一个。为了区分第一、第二和第三批执行路径,这些执行路径都被唯一地加标签了。优选地,第一、第二和第三批执行路径可以通过对每个执行路径使用唯一的颜色来区分。
第一数据流路径在画布上的第一批对象图标之间创建,其独立于画布上来自第一处理器图标的执行路径的路由。在本例中,第一数据流路径在Signal Generator 1(信号发生器1)、Signal Generator 2(信号发生器2)、Float Subtract 1(浮点减法器1)、Power 1(幂运算器1),以及Mean 1(平均值器1)之间生成。类似地,第二数据流路径在画布上的第二批对象图标之间生成,其独立于画布上来自第二处理器图标的执行路径的路由。在本例中,第二数据流路径在一对分布图标、Float Subtract 2、Power 2,以及Mean 2之间生成。因为数据流路径的分布,Signal Generator 1和Signal Generator 2将数据发送到第一和第二数据流路径。最后,第三数据流路径在画布上的第三批对象图标之间生成,其独立于画布上来自第三处理器图标的执行路径的路由。在本例中,第三数据流路径在第一数据流路径的Mean 1、第二数据流路径的Mean 2、Float Subtract 3、Float Absolute value 1(浮点绝对值器1),以及Meter 1(仪表1)之间生成。正如已清楚说明的,数据流路径可以在画布上任意对象图标之间生成以使数据流动。具体而言,第一、第二和第三数据流路径中至少一个被路由,以在至少一个的第一批、第二批和第三批对象图标之间流动,以使得数据传送经过第一个、第二个和第三处理配置以及在它们之间传送。如果必要,数据流路径也可以根据上面所描述的程序来分布。这些处理配置的创建(现在已经完成)是按照上文所描述的方法来执行的。
如图33所示,对象图标可以被移到画布上的不同方位。当图标被移动时,数据流路径不被修改。该数据流路径仅仅是根据新的方位而被重画。每个处理配置的执行路径没有与其它处理配置的执行路径自动地交互。因此,如图33所示,第三处理配置的对象图标已被移动到画布的上端。来自第三处理配置的处理器的执行路径自动地跟随第三处理配置的最左边的对象图标,且没有与第一和第二处理配置的其它执行路径自动地交互。
图34是在画布之内的对象图标改变方位的另一个例子。具体而言,第二处理配置的对象图标(Float Subtract 2)被移到了画布上的一个不同的方位处。另一方面,数据流路径没有改变,而仅仅是基于对象图标的新方位而被重画了。本图清楚地说明了数据流路径可以从左到右、从右到左、从上到下等等传送数据。然而,从右到左传送数据的数据流路径有一个影响:如上文所提及的,执行路径是从左到右进行处理的。因此,当数据连接是从位于执行路径后面的对象图标发起时,将会产生延迟。因此,将对象图标移动以迫使数据流路径从右到左传送数据可以是初始化数据通道中的延迟的一种方法。在图34所示的目标例子中,由于Float Subtract 2图标的方位位于第二处理配置的执行路径中的后面位置处,因此发给Power 2图标的数据就没有被接收到,从而在处理系统的重复执行中将产生一个单独的延迟。
如上文详细讨论的,第二处理配置的执行路径将被再路由,这是由于对象图标被移动之前是最左边的图标。因此,第二处理配置的处理器的执行路径被再路由到新的最左边的对象图标(Power 2)。到被移动的对象图标的执行路径也被再路由,现在是从被移动的对象图标(Float Subtract 2)的左边的对象图标(Mean 2)开始路由的。另一方面,第一和第三处理配置的执行路径不受影响。
图35示出了本发明的再一个特征,其中,多进程环境中的执行路径可以被手动地再路由。具体来说,通过自动移走关联到被再路由的对象图标的第一批执行路径和自动将第二批执行路径路由到被再路由的对象图标,来自第一处理配置的第一批对象图标之一被再路由到第二处理配置。在图35所示的例子中,之前是第一处理配置的执行路径的一部分的Signal Generator 1已被移动,成为了第二处理配置的执行路径的一部分。这项操作是通过加亮要被移动的对象图标(本例中的Signal Generator 1)来执行的。接着,通过使用工具条改变执行路径。旧配置(第一处理配置)和新配置(第二处理配置)的执行路径都被自动地再路由。数据流路径不受影响。这种类型的改变可能对用户有实际的好处。具体地说,计算负担可以更平均地分配在两个DSP上。
图36示出了与图35所示的类似的本发明的一个特征。然而对象图标是从第一处理配置移动到第三处理配置的。因此,关联到被再路由的对象图标的第一批执行路径被自动移走,而第三批执行路径被自动路由到被再路由的对象图标。在图36所示的例子中,之前是第一处理配置的执行路径的一部分的Signal Generator 1,现在被移动为第三处理配置的执行路径的一部分。另一方面,数据流路径没有受影响。
对象图标移入和移出各种处理配置的动作是极其通用的工具,且不被处理器的机器语言所约束。具体地说,第一处理器可能包含第一机器语言,而第二处理器可能包含与该第一机器语言不同的第二机器语言。在不同机器语言下操作的处理配置的对象图标的再路由是无缝的,且不受不同机器语言的影响。
参见图36A,一个同步对象可以被插入到第一处理配置图标之间的执行路径和第二处理配置图标之间的执行路径中,以便在插入点处同步这些执行路径。因此,这些执行配置中每一个上对数据的处理都将在插入点处实时地同步。同步对象提供简单、图形化的方法来排列多进程环境中功能对象的执行。如所意识到的,不同处理器和/或不同事件可以不同的速率执行。同步对象允许用户具体地在多处理器的多个执行路径中强制添加同步点。当具体的执行路径的执行到达同步对象时,执行将等待直到所有的同步化执行路径都到达它们各自的同步对象。此时,所有的执行路径都被允许继续进行。
转到图37-46,将详细讨论本发明的可视化仪器特征。可视化仪器允许用户创建控件和指示符,其将出现在计算机的监视器上,并将允许用户在操作过程中与处理系统交互影响。如图37所示,计算机还包括仪器画布。仪器画布被放置在配置画布之上。应该意识到,可能同一时刻有多个打开的仪器画布。如图38所示,处理系统包括至少一个可视化仪器。优选地,可视化仪器是在Toolbox窗格中的Visual Instrument(可视化仪器)文件夹下找到。
如图39所示,至少一个可视化仪器被放置到仪器画布上。具体说来,可视化仪器的符号被放在Toolbox窗格内,其拷贝被拖放到仪器画布之内以定义可视化仪器。可视化仪器可以被放置在仪器画布内并还可按照需要随意调整大小。在所示例子中,仪器画布包括Knob(旋钮)和Meter(仪表)。
图40示出了另一种配置画布,其中至少一个关联到功能对象的对象图标被放置在配置画布上。关联到处理器的一个或多个处理器图标也被放置在画布上。当对象图标被放置在配置画布上以定义一个处理配置时,处理器图标和对象图标(一个或多个)之间的一个或多个执行路径被自动路由。配置画布上的处理器图标和对象图标之间的数据流路径也被创建。
参见图39-41,当可视化仪器被放置到仪器画布上时,关联到可视化仪器的仪器图标被自动放置在Unassigned窗格或临时窗格。接着,仪器图标被从临时窗格移动,以放置该仪器图标到配置画布上面。在本例中,当Knob和Meter被放置在仪器画布之上时,关联到Knob和Meter的仪器图标将被自动放置在Unassigned窗格或临时窗格。如图40所示,Knob已经被移动到配置画布而Meter仍留在Unassigned窗格或临时窗格内。具体地,Knob已经被从Unassigned窗格拖放到配置画布。图41示出了Knob和Meter都已被移动到配置画布,使得Unassigned窗格或临时窗格再次变空。
如图42所示,在仪器图标和配置画布上的处理配置之内的至少一个对象图标之间生成数据流路径,使得仪器画布上的可视化仪器被可操作地连接到配置画布上的处理配置。处理配置现在已完成。
如图43所示,处理配置以如下方式被操作:功能对象按照图标之间的执行路径的顺序执行关联的功能,并且数据沿着图标之间的数据流路径传送。可视化仪器可以被操纵以自动地实时改变沿着数据流路径传送的数据值。
可视化仪器优选地被链接到仪器图标,用于在仪器画板上的可视化仪器和配置画板上的仪器图标之间切换的命令可被初始化。该命令特征是导航帮助,用于辅助用户在各个视图和处理配置的各个部分之间快速地移动。当配置变得庞大而复杂时,难于追踪仪器和它们的连接特性。同样的,该命令特征对用户而言是生产力和质量的极大帮助,其使得用户可以从仪器图标快速地定位可视化仪器,反之亦然。
转到图44-46,其示出了在配置画布上放置仪器图标和在仪器画布上放置可视化仪器的可替换的方式。处理配置的生成与上文讨论以及与图42所示出的一样。不同之处在于仪器图标和可视化仪器的放置,以及Unassigned窗格的相反性质。在本实施例中,最少一个仪器图标被首先放置在配置画布上。具体地说,关联到该仪器图标的符号从Toolbox窗格被直接拖到配置画布上。见图45,当仪器图标被放置到配置画布时,关联到该仪器图标的可视化仪器接下来被自动放置到Unassigned窗格或临时窗格。在仪器图标和配置画布上的处理配置内的至少一个对象图标之间生成数据流路径。如图46所示,接下来可视化仪器被从Unassigned窗格或临时窗格移动开,以将可视化仪器放置在仪器画布上,其中仪器画布上的可视化仪器操作地被连接到配置画布上的处理配置。本实施例的可视化仪器还被链接到仪器图标,从而提供命令,该命令用于在仪器画布的可视化仪器与配置画布的仪器图标之间切换。用户可以自由使用任何一种在各自的画布上放置仪器图标和可视化仪器的方法。
图47-49示出了另一种已完成的处理配置。该处理配置用上面讨论的同样方式产生。对比图48和49,其示出了将一个对象图标相对于另一个对象图标定位的另一种例子,其中在再定位过程中,执行路径动态变化。本例中,Float Add图标相对于Float Subtract图标和Float Multiply图标移动。在处理配置旁边还示出了Properties窗格。当Float Add被移动时,Outputs被自动更新。具体说来,Next Code从Float Subtract(图48)变为Float Multiply(图49)。类似地,Next Data从Float Subtract(图48)变为Float Multiply(图49)。这些输出是已知的代码和数据指针,其更具体的描述参见共同待决的美国专利申请第09/692,852号和第09/982,601号,其公开的内容在此以引用方式并入本文。
图50-53示出了本发明的进一步的额外的特征。图50中使用用户对象创建了处理配置。用户对象是一种特殊类型的功能对象,且被设计以允许用户创建导航层次(navigation hierarchy)。具体说来,用户对象是其它对象图标的集合。可以根据需要保存和重用用户对象。双击图50中的User Object 1将展现如图51所示的子配置。输入和输出符号被用于指示数据流的方向。在图51的子配置内是User Object 2。双击User Object 2将展现如图52所示的子配置。这是层次的最低级别。User Object的数目被列在工具条中。如图35所示,挨着处理配置打开Project Explorer窗格。该Project Explorer窗格示出了当前配置的辅助用户的各种层次。如上所提及的,每次图标被添加、移动、替换、删除等等时,Project Explorer窗格自动重新产生。Project Explorer窗格是项目配置的重要导航工具或索引。用户可以点击在整个配置范围内的图标,而Project Explorer将反映在层次中图标的位置。同样,用户可点击Project Explorer树上的某个符号或其它对象,则画布会自动切换以显示该被选中的对象图标。
图54示出了处理系统的液压伺服控制器实施方式。特别地,已经为闭环伺服控制器创建了一个项目配置。应该意识到,处理配置的创建可能极其复杂,而使用本发明将极大地辅助这些配置的编程和操作。
本发明已经通过示例的方式进行了描述,且应该理解,所用术语具有字面上描述的本意,而不是限制性的。对于本领域技术人员显而易见的是,按照上述教导,对本发明的修改和变形都是可能的。因此可以理解,在所附权利要求的范围内,本发明可以不同于具体描述的方式来实施。

Claims (18)

1.一种对处理系统进行编程的方法,所述处理系统包括一个或多个节点,具有配置画布、仪器画布和临时窗格的计算机,多个功能对象,以及至少一个可视化仪器;其中所述节点与所述计算机连接,并且所述节点包括一个或多个处理器,所述方法包括以下步骤:
将关联到所述处理器的一个或多个处理器图标放置到所述配置画布上;
将均关联到多个功能对象的多个对象图标放置到所述配置画布的多个不同位置上,所述多个功能对象的每一个包括执行特定功能的命令并且所述功能对象被写成运行于所述处理器上;
当所述多个对象图标被放置在所述配置画布上以定义处理配置时,在所述多个对象图标的每一个之间以及在所述处理器图标和一个或多个所述对象图标之间自动路由多个执行路径;
在所述配置画布上的所述对象图标之间创建数据流路径,其中该创建独立于在所述配置画布上所述执行路径的路由,以使所述执行路径和所述数据流路径彼此独立;
将至少一个可视化仪器放置到所述仪器画布上;
当所述可视化仪器被放置在所述仪器画布上时,自动将与所述可视化仪器相关联的仪器图标放置到所述临时窗格上;
从所述临时窗格将所述仪器图标移动并放置到所述配置画布上;以及
在所述仪器图标与所述配置画布上所述处理配置内至少一个对象图标之间创建数据流路径,以使位于所述仪器画布上的所述可视化仪器与所述配置画布上的所述处理配置可操作地相连;操作所述处理配置,以使所述处理系统可以按如下方式被操作:所述功能对象按照所述对象图标之间的执行路径的顺序执行关联的功能,并且数据沿着所述图标之间的数据流路径被传送。
2.根据权利要求1所述的方法,进一步包括如下步骤:在所述处理系统操作的同时,将至少一个所述对象图标移动到不同的位置,并且基于所述画布上的所述对象图标移动的方位自动再路由所述执行路径,以使所述执行路径被实时地再路由。
3.根据权利要求2所述的方法,其中所述操作所述处理系统的步骤被进一步定义为:以从所述画布上从左至右看的顺序,在所述图标之间操作所述执行路径。
4.根据权利要求1所述的方法,其中所述在多个所述对象图标之间自动路由所述多个执行路径的步骤被进一步定义为:基于所述对象图标的相对方位,在所述多个对象图标之间自动路由所述多个执行路径。
5.根据权利要求4所述的方法,其中在所述多个对象图标之间自动路由所述多个执行路径的步骤被进一步定义为:基于所述对象图标的相对从左至右的方位,以从所述画布上从左至右看的顺序,在所述多个对象图标之间自动路由所述多个执行路径。
6.根据权利要求4所述的方法,进一步包括如下步骤:将至少一个所述对象图标移动到不同位置,并且基于所述画布上所述对象图标的被移动的方位,来自动地再路由所述执行路径。
7.根据权利要求1所述的方法,进一步包括如下步骤:操纵所述可视化仪器,以实时自动地改变沿所述数据流路径传送的数据值。
8.根据权利要求1所述的方法,进一步包括如下步骤:将所述可视化仪器链接到所述仪器图标,并且进一步包括如下步骤:提供命令,该命令用于在所述仪器画布上的所述可视化仪器与所述配置画布上的所述仪器图标之间切换。
9.根据权利要求1所述的方法,其中,将所述执行路径从所述处理器图标路由到所述对象图标中一个的步骤被进一步定义为:基于在所述画布上从左至右看的所述对象图标的最左边的位置,将所述执行路径从所述处理器图标自动地路由到所述对象图标中的一个。
10.一种处理系统进行编程的方法,所述处理系统包括一个或多个节点,具有配置画布、仪器画布和临时窗格的计算机,多个功能对象,以及至少一个可视化仪器;其中所述节点与所述计算机连接,并且所述节点包括一个或多个处理器,所述方法包括以下步骤:
将关联到所述处理器的一个或多个处理器图标放置到所述配置画布上;
将均关联到多个功能对象的多个对象图标放置到所述配置画布的多个不同位置上,所述多个功能对象的每一个包括执行特定功能的命令并且所述功能对象被写成运行于所述处理器上;
当所述多个对象图标被放置在所述配置画布上以定义处理配置时,在所述多个对象图标的每一个之间以及所述处理器图标和一个或多个所述对象图标之间自动路由多个执行路径,其中所述执行路径可基于所述对象图标相对于彼此移动后的方位自动地实时再路由;
在所述配置画布上的所述对象图标之间创建数据流路径,其中该创建独立于在所述配置画布上所述执行路径的路由,以使所述执行路径和所述数据流路径彼此独立;
将至少一个仪器图标放置到所述配置画布上;
当所述仪器图标被放置在所述配置画布上时,将与所述仪器图标相关联的可视化仪器自动放置到所述临时窗格上;
在所述仪器图标与所述配置画布上所述处理配置内的至少一个所述对象图标之间创建数据流路径,操作所述处理配置,以使所述处理系统可以按如下方式被操作:所述功能对象按照所述对象图标之间的执行路径的顺序执行关联的功能,并且数据沿着所述图标之间的数据流路径被传送;以及
从所述临时窗格将所述可视化仪器移动并放置到所述仪器画布上,所述仪器画布上的可视化仪器被可操作地连接到所述配置画布上的所述处理配置。
11.根据权利要求10所述的方法,进一步包括如下步骤:在所述处理系统操作的同时,将至少一个所述对象图标移动到不同的位置,并且基于所述画布上所述对象图标移动的方位自动地对所述执行路径进行再路由,以使所述执行路径被实时地再路由。
12.根据权利要求11所述的方法,其中所述操作所述处理系统的步骤被进一步定义为:以从所述画布上从左至右看的顺序,在所述图标之间操作所述执行路径。
13.根据权利要求12所述的方法,其中所述在多个所述对象图标之间自动路由所述多个执行路径的步骤被进一步定义为:基于所述对象图标的相对方位,在所述多个对象图标之间自动路由所述多个执行路径。
14.根据权利要求13所述的方法,其中在所述多个对象图标之间自动路由所述多个执行路径的步骤被进一步定义为:基于所述对象图标的相对从左至右的方位,以从所述画布上从左至右看的顺序,在所述多个对象图标之间自动路由所述多个执行路径。
15.根据权利要求13所述的方法,进一步包括如下步骤:将至少一个所述对象图标移动到不同位置,并且基于所述画布上所述对象图标移动的方位,来自动地再路由所述执行路径。
16.根据权利要求10所述的方法,进一步包括如下步骤:操纵所述可视化仪器,以实时自动地改变沿所述数据流路径传送的数据值。
17.根据权利要求10所述的方法,进一步包括如下步骤:将所述可视化仪器链接到所述仪器图标,并且进一步包括如下步骤:提供命令,该命令用于在所述仪器画布上的所述可视化仪器和所述配置画布上的所述仪器图标之间切换。
18.根据权利要求10所述的方法,其中,将所述执行路径从所述处理器图标路由到所述对象图标之一的步骤被进一步定义为:基于在所述画布上从左至右看的所述对象图标的最左边的位置,将所述执行路径从所述处理器图标自动地路由到所述对象图标中的一个。
CN2010105039974A 2004-02-25 2005-02-25 编程处理系统的方法 Pending CN101976051A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US54758804P 2004-02-25 2004-02-25
US60/547,588 2004-02-25

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800092394A Division CN1934511A (zh) 2004-02-25 2005-02-25 编程处理系统的方法

Publications (1)

Publication Number Publication Date
CN101976051A true CN101976051A (zh) 2011-02-16

Family

ID=34910919

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2005800092394A Pending CN1934511A (zh) 2004-02-25 2005-02-25 编程处理系统的方法
CN2010105039974A Pending CN101976051A (zh) 2004-02-25 2005-02-25 编程处理系统的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA2005800092394A Pending CN1934511A (zh) 2004-02-25 2005-02-25 编程处理系统的方法

Country Status (7)

Country Link
US (1) US7992093B2 (zh)
EP (1) EP1719026B1 (zh)
JP (1) JP4995071B2 (zh)
KR (1) KR101169702B1 (zh)
CN (2) CN1934511A (zh)
MX (1) MXPA06009769A (zh)
WO (1) WO2005083533A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7864178B2 (en) * 2005-11-09 2011-01-04 National Instruments Corporation Creating machine vision inspections using a state diagram representation
US20080303819A1 (en) * 2007-06-08 2008-12-11 Pierre-Olivier Latour Method and apparatus for comparing program graphs
AT10302U3 (de) * 2008-08-04 2009-10-15 Avl List Gmbh Erzeugen einer ablauffähigen konfiguration
US8780114B1 (en) * 2009-08-31 2014-07-15 The Mathworks, Inc. Interactive memory map
CN103699058B (zh) * 2012-05-24 2017-08-25 株式会社堀场制作所 测试系统及设备管理装置
US9152297B2 (en) * 2012-10-25 2015-10-06 Udacity, Inc. Interactive content creation system
US10386827B2 (en) 2013-03-04 2019-08-20 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics platform
US10909137B2 (en) 2014-10-06 2021-02-02 Fisher-Rosemount Systems, Inc. Streaming data for analytics in process control systems
US9558220B2 (en) 2013-03-04 2017-01-31 Fisher-Rosemount Systems, Inc. Big data in process control systems
US9397836B2 (en) 2014-08-11 2016-07-19 Fisher-Rosemount Systems, Inc. Securing devices to process control systems
US10649449B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9665088B2 (en) 2014-01-31 2017-05-30 Fisher-Rosemount Systems, Inc. Managing big data in process control systems
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
US10678225B2 (en) 2013-03-04 2020-06-09 Fisher-Rosemount Systems, Inc. Data analytic services for distributed industrial performance monitoring
US10223327B2 (en) 2013-03-14 2019-03-05 Fisher-Rosemount Systems, Inc. Collecting and delivering data to a big data machine in a process control system
US9823626B2 (en) 2014-10-06 2017-11-21 Fisher-Rosemount Systems, Inc. Regional big data in process control systems
US9804588B2 (en) 2014-03-14 2017-10-31 Fisher-Rosemount Systems, Inc. Determining associations and alignments of process elements and measurements in a process
US10649424B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US10282676B2 (en) 2014-10-06 2019-05-07 Fisher-Rosemount Systems, Inc. Automatic signal processing-based learning in a process plant
US10671028B2 (en) 2013-03-15 2020-06-02 Fisher-Rosemount Systems, Inc. Method and apparatus for managing a work flow in a process plant
EP2973242B1 (en) 2013-03-15 2020-12-23 Fisher-Rosemount Systems, Inc. Modelling and adjustment of process plants
US9633408B2 (en) 2013-06-14 2017-04-25 Microsoft Technology Licensing, Llc Coalescing graphics operations
US9430808B2 (en) * 2013-06-19 2016-08-30 Microsoft Technology Licensing, Llc Synchronization points for state information
US10168691B2 (en) 2014-10-06 2019-01-01 Fisher-Rosemount Systems, Inc. Data pipeline for process control system analytics
US10503483B2 (en) 2016-02-12 2019-12-10 Fisher-Rosemount Systems, Inc. Rule builder in a process control network
US10713015B2 (en) * 2016-05-15 2020-07-14 Servicenow, Inc. Visual programming system
USD808991S1 (en) * 2016-12-22 2018-01-30 Palantir Technologies, Inc. Display screen or portion thereof with graphical user interface
USD810760S1 (en) 2016-12-22 2018-02-20 Palantir Technologies, Inc. Display screen or portion thereof with transitional graphical user interface
USD810101S1 (en) 2016-12-22 2018-02-13 Palantir Technologies, Inc. Display screen or portion thereof with graphical user interface

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901221A (en) 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US5737622A (en) * 1986-04-14 1998-04-07 National Instruments Corporation Method and apparatus for more efficient function synchronization in a data flow program
US4914568A (en) * 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5485620A (en) * 1994-02-25 1996-01-16 Automation System And Products, Inc. Integrated control system for industrial automation applications
JPH09120466A (ja) * 1995-10-25 1997-05-06 Hitachi Ltd 対話型アニメーション作成・再生方法および装置
DE19880536B4 (de) * 1997-03-11 2004-08-05 Mitsubishi Denki K.K. Visuelles Programmierverfahren und dieses Verfahren anwendendes Pogrammiersystem
US6219628B1 (en) * 1997-08-18 2001-04-17 National Instruments Corporation System and method for configuring an instrument to perform measurement functions utilizing conversion of graphical programs into hardware implementations
US7152027B2 (en) * 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6449624B1 (en) 1999-10-18 2002-09-10 Fisher-Rosemount Systems, Inc. Version control and audit trail in a process control system
US7120877B2 (en) * 2001-04-10 2006-10-10 National Instruments Corporation System and method for creating a graphical program including a plurality of portions to be executed sequentially
US7367028B2 (en) * 2001-08-14 2008-04-29 National Instruments Corporation Graphically deploying programs on devices in a system
US7302675B2 (en) * 2001-08-14 2007-11-27 National Instruments Corporation System and method for analyzing a graphical program using debugging graphical programs
US7050923B2 (en) * 2001-08-15 2006-05-23 National Instruments Corporation Network-based system for configuring a measurement system using configuration information generated based on a user specification
US7275235B2 (en) * 2001-08-29 2007-09-25 Molinari Alfred A Graphical application development system for test, measurement and process control applications
WO2003034221A1 (en) * 2001-10-17 2003-04-24 Beptech Inc. Method of communicating across an operating system
US7624375B2 (en) * 2003-06-12 2009-11-24 National Instruments Corporation Automatically configuring a graphical user interface element to bind to a graphical program

Also Published As

Publication number Publication date
EP1719026B1 (en) 2012-12-26
CN1934511A (zh) 2007-03-21
US7992093B2 (en) 2011-08-02
US20050278059A1 (en) 2005-12-15
MXPA06009769A (es) 2007-04-23
EP1719026A1 (en) 2006-11-08
JP4995071B2 (ja) 2012-08-08
KR101169702B1 (ko) 2012-08-03
JP2007524176A (ja) 2007-08-23
WO2005083533A1 (en) 2005-09-09
KR20060134087A (ko) 2006-12-27

Similar Documents

Publication Publication Date Title
CN101976051A (zh) 编程处理系统的方法
EP2246759B1 (en) Configuring animations and events for operator interface displays in a process control system
Encarnacao et al. Computer aided design: fundamentals and system architectures
Ratzer et al. CPN tools for editing, simulating, and analysing coloured Petri nets
US9830299B2 (en) Method for selecting shapes in a graphical display
KR100246066B1 (ko) 컴퓨터 그래픽 시스템 및 그래픽 시스템 동작 제어 방법
JP5898847B2 (ja) プロセス制御タグ間の関係を基にしたデータ駆動型インターフェースの方法と装置
US20030090473A1 (en) Multiple screen automatic programming interface
WO1989008889A1 (en) Computer language structure, employing symbols to control execution of program statements, for process control application, and translator therefor
Bernini et al. VIPERS: A data flow visual programming environment based on the Tcl language
Stevens How data flow can improve application development productivity
Haimes et al. Visualization in a parallel processing environment
Beaudouin-Lafon Human-computer interaction
Barker et al. CES—a workstation environment for computer-aided design in control systems
Said et al. Modeling and control of mechanical systems in simulink of matlab
Preece et al. of complete interface design methodologies. This paper describes how decisions from empirically
Preece et al. Towards a structured approach to specifying user interface design
Bell A GUI tool for developing nonlinear Kalman-Bucy filters on a PC
Beaumont et al. Low level visual programming
Cranor et al. Programs worth one thousand words: visual languages bring programming to the masses
May PROGRAMMING AND DOCUMENTATION OF PROGRAMMABLE CONTROLLERS
CN108984168A (zh) 一种适用软件开发人员的效率工作台
Downie et al. The discrete vortex method and parallel processing using transputers
Mercurio Visualization Tools: University of New Mexico’s Khoros
Barker et al. User interface standards for control system design applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110216