KR20060134087A - 프로세싱 시스템을 프로그래밍하는 방법 - Google Patents

프로세싱 시스템을 프로그래밍하는 방법 Download PDF

Info

Publication number
KR20060134087A
KR20060134087A KR1020067017290A KR20067017290A KR20060134087A KR 20060134087 A KR20060134087 A KR 20060134087A KR 1020067017290 A KR1020067017290 A KR 1020067017290A KR 20067017290 A KR20067017290 A KR 20067017290A KR 20060134087 A KR20060134087 A KR 20060134087A
Authority
KR
South Korea
Prior art keywords
canvas
instrument
icon
icons
processing system
Prior art date
Application number
KR1020067017290A
Other languages
English (en)
Other versions
KR101169702B1 (ko
Inventor
앤드류 알 오스본
척 카우햄
사라 브라운
스티브 에이치 브라이어스
스티브 버제스
알랜 뉴슨
카일 엠. 로드스
Original Assignee
벱테크 인코포레이티드
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 벱테크 인코포레이티드 filed Critical 벱테크 인코포레이티드
Publication of KR20060134087A publication Critical patent/KR20060134087A/ko
Application granted granted Critical
Publication of KR101169702B1 publication Critical patent/KR101169702B1/ko

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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Programmable Controllers (AREA)
  • Processing Or Creating Images (AREA)

Abstract

구성 캔버스 및 인스트루먼트 캔버스를 갖는 컴퓨터를 사용하는 프로세싱 시스템을 프로그래밍하는 방법이 게시된다. 상기 방법은 기능 오브젝트들과 각각 관련된 오브젝트 아이콘들을 구성 캔버스 상으로 배치시키는 단계를 포함한다. 실행 경로들은 오브젝트 아이콘들 사이에서 자동적으로 라우팅된다. 데이터 흐름 경로들이 또한 오브젝트 아이콘들 사이에서 생성된다. 적어도 하나의 비쥬얼 인스트루먼트가 인스트루먼트 캔버스 상에 배치된다. 비쥬얼 인스트루먼트와 관련된 인스트루먼트 아이콘은 자동적으로 일시적인 페인 상에 배치된다. 인스트루먼트 아이콘은 일시적인 페인으로부터 이동되어 구성 캔버스 상에 배치된다. 그 후, 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트 가 구성 캔버스 상의 처리 구성에 동작적으로 접속되도록 인스트루먼트 아이콘 및 오브젝트 아이콘들 중 하나 간에 데이터 흐름 경로가 생성된다. 대안적으로, 적어도 하나의 인스트루먼트 아이콘이 우선 구성 캔버스 상에 배치될 수 있다. 그 후, 인스트루먼트 아이콘과 관련된 시간 인스트루먼트가 일시적인 페인 상으로 자동적으로 배치된다. 그 후, 비쥬얼 인스트루먼트가 일시적인 페인으로부터 인스트루먼트 캔버스로 이동된다.
프로세싱 시스템, 컴퓨터, 오브젝트 아이콘, 인스트루먼트 아이콘, 실행 경 로.

Description

프로세싱 시스템을 프로그래밍하는 방법{METHOD OF PROGRAMMING A PROCESSING SYSTEM}
관련 출원과의 상호-참조
본 특허 출원은 2004년 2월 25일자로 출원된 미국 가특허출원 번호 제60/547,588의 모든 장점들에 대한 우선권을 청구한다.
본 발명은 프로세싱 시스템 및 프로세싱 시스템을 프로그래밍하는 방법에 관한 것이다.
데이터 프로세싱은 거의 무한히 다양한 태스크를 달성하기 위한 다수의 상이한 제조 및 비즈니스 관련 애플리케이션들에서 사용된다. 데이터 프로세싱 시스템이 사용되는 하나의 분야는 오토마톤, 제어, 데이터 수집, 및 인스트루먼테이션 분야이다. 로드 셀, 유압 밸브, 또는 서보모터와 같은 실제 인스트루먼트 또는 액추에이터는 실시간에 데이터 스트림들을 생성하거나, 실시가 명령 시트림들을 필요로 한다. 데이터 프로세싱 시스템을 포함하는 컴퓨터는 데이터를 수집하여 분석해서 적절한 명령들을 발생시키기 위하여 인스트루먼트들과 인터페이싱한다. 이러한 데이터 수집, 뿐만 아니라 다양한 다른 태스크들을 달성하도록 구현된 종래 기술의 데이터 프로세싱 시스템은 여러 설계 구성들을 사용하며, 전형적으로 네트워크 방 식으로 구성된다. 네트워크들은 버스 또는 선형 토폴로지, 성형 토폴로지(star topology), 링 토폴로지, 등과 같은 다양한 구성들로 배열될 수 있다. 네트워크 내에는 통상적으로 다수의 노드들 및 각 노드들을 상호접속시키는 통신 링크들이 존재한다. 노드들은 프로세싱 시스템의 파트이며, 인스트루먼트들에 의해 출력된 데이터를 개별적으로 수집하기 위하여 인스트루먼트들 각각에 접속된다. 노드들은 또한 컴퓨터들, 단말기들, 워크스테이션들, 다른 액추에이터들, 부가적인 데이터 수집기들, 센서들, 등일 수 있다. 노드들은 전형적으로 프로세서, 메모리, 및 다양한 다른 하드웨어 소프트웨어 컴포넌트들을 갖는다. 노드들은 정보를 얻고 송신하기 위하여 네트워크 내에서 통신 링크들을 통하여 서로 통신한다. 전형적인 애플리케이션에서, 다수의 상이한 경로들에서 통신하는 다수의 노드들이 있을 수 있다.
프로세싱 시스템의 사용자는 프로세싱 시스템을 프로그래밍 시 또는 사용시에 사용자를 보조하기 위하여 물리적인 시스템의 개념적인 모델들을 자주 개발하고 필요로 한다. 노드들을 사용하여 이 유형의 데이터 프로세싱 시스템을 프로그래밍하는 것은 프로페셔널 프로그래머에게도 위압적인 태스크이다. 프로그래머가 종래 기술의 프로세싱 시스템을 효율적으로 프로그래밍하기 전에 마스터해야 하는 다수의 미묘한 복잡성들이 존재한다. 수학적인 식들, 수학적인 단계들 또는 다른 이와 같은 절차들을 사용하여 프로세싱 시스템을 프로그래밍하는 태스크는 프로그래밍 프로세스를 더 복잡하게 한다. 프로세싱 시스템을 제어하는데 사용된 컴퓨터 프로그램들은 전형적으로 예를 들어, 기계 코드, C, C++, 또는 파스칼과 같은 통상적인 텍스철 프로그래밍 언어로 기록된다. 이에 응답하는 실시간 성능은 통상적으로 프 로그래머가 멀티-쓰레디드, 실시간 운영 시스템을 익혀서 사용하는 것을 필요로 한다. 이러한 프로그래밍 언어들 및 운영 시스템들은 직관적이지 않고, 데이터 프로세싱 시스템들에 의해 필요로 되는 데이터를 수집하여 분석하는데 매우 양호하게 적응되지 않는다.
프로세싱 시스템들의 사용자들 또는 프로그래머들은 종종 프로페셔널 프로그래머들이 아니므로, 더 이해 가능하고 직관적인 고레벨 프로그래밍 기술들을 자주 필요로 한다. 컴퓨터 프로그래밍에서 고도로 훈련되지 않은 사용자가 컴퓨터들 및 데이터 프로세싱 시스템들을 점점 더 많이 사용하고 있는 것으로 인해, 현재 시스템들을 사용하고 구현하기가 더 용이한 데이터 프로세싱 시스템을 프로그래밍하는 것이 필요로 되었다.
종래 기술은 상기 리스팅된 프로그래밍 언어들을 통한 데이터 프로세싱 시스템들의 프로그래밍에서의 개선점들을 고려하였고, 이에 대해서는 미국 특허 제4,901,221호;제4,914,568호; 및 제5,301,301호를 참조하라. 이러한 종래 기술 문서들에 게시된 프로그래밍 기술들은 데이터 프로세싱 시스템을 프로그래밍할 시에 사용자를 그래픽적으로 보조하도록 시도하였다. 그러나, 이러한 프로그래밍 기술들은 다수의 결점들을 갖는다. 특히, 이러한 방법들은 개인용-컴퓨터 중심이고, 분산된, 멀티-프로세싱 노드들의 시스템을 실제로 핸들링하지 못한다. 프로그래밍 구성을 완성하는데 필요로 되는 과도한 수의 단계들이 존재하고, 반직관적으로 유지되는 다수의 특성들이 존재한다. 또한, 프로세싱 시스템의 사용자 또는 프로그래머에게 다수의 불필요한 제약들이 놓이게 된다. 최종적으로, 프로세싱 시스템은 프로그램 프로세스 동안 또는 프로세싱 시스템의 동작 동안 동적으로 변화할 수 없다.
따라서, 상대적으로 쉽고 직관적인 프로세싱 시스템을 프로그래밍하는 방법을 개발하는 것이 바람직할 것이다. 또한, 상기 프로그래밍 방법은 다재다능해야 하고, 사용자가 프로세싱 시스템을 충분히 주문제작(customize)하도록 하기 위해 제한된 제약들을 가져야 한다. 또한, 상기 프로그래밍 방법은 멀티-프로세싱 분산 시스템들에 적응 가능해야 한다. 최종적으로, 상기 프로그래밍 방법은 프로그래밍 단계들을 시각적으로 개념화할 시에 사용자를 보조하기 위하여 그래픽적이어야 하며, 프로그래밍 프로세스 동안 및 동작 동안 동적으로 변화할 수 있어야 한다.
본 발명은 구성 캔버스, 인스트루먼트 캔버스, 및 일시적인 페인(temporary pane)를 갖는 컴퓨터를 사용하여 프로세싱 시스템을 프로그래밍하는 방법을 포함한다. 프로세싱 시스템은 적어도 하나의 프로세서, 각각의 기능 오브젝트들이 특정 기능을 수행하기 위한 명령들을 포함하는 다수의 기능 오브젝트들, 및 적어도 하는 비쥬얼 인스트루먼트를 포함한다. 상기 방법은 제1의 다수의 기능 오브젝트들과 각각 관련된 제1의 다수의 오브젝트 아이콘들을 다수의 상이한 위치들에서 구성 캔버스 상으로 배치하는 단계를 포함한다. 다수의 실행 경로들은 상기 제1의 다수의 오브젝트 아이콘들이 프로세싱 구성을 규정하기 위하여 구성 캔버스 상에 배치될 때 상기 각각의 제1의 다수의 오브젝트 아이콘들 사이에서 자동적으로 라우팅된다. 데이터 흐름 경로들이 구성 캔버스 상의 오브젝트 아이콘들 사이에서 생성된다. 적어도 하나의 비쥬얼 인스트루먼트가 인스트루먼트 캔버스 상에 배치된다. 비쥬얼 인스트루먼트와 관련된 인스트루먼트 아이콘은 일시적인 페인 상에 자동적으로 배치된다. 인스트루먼트 아이콘은 일시적인 페인으로부터 이동되어 구성 캔버스 상에 배치된다. 상기 방법은 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트가 구성 캔버스 상의 프로세싱 구성에 동작적으로 접속되도록 구성 캔버스 상의 프로세싱 구성 내에서 인스트루먼트 아이콘 및 적어도 하나의 오브젝트 아이콘들 간의 데이터 흐름 경로를 생성하는 단계를 포함한다. 대안적으로, 적어도 하나의 인스트루먼트 아이콘이 구성 캔버스 상에 우선 배치될 수 있다. 그 후, 인스트루먼트 아이콘과 관련된 비쥬얼 인스트루먼트가 일시적인 페인 상에 배치된다. 구성 캔버스 상의 프로세싱 구성 내에서 인스트루먼트 아이콘 및 적어도 하나의 오브젝트 아이콘들 간에 데이터 흐름 경로가 생성된다. 대안적인 방법은 비쥬얼 인스트루먼트를 인스트루먼트 캔버스 상에 배치하기 위하여 일시적인 페인으로부터 비쥬얼 인스트루먼트를 이동시키는 단계를 포함하며, 상기 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트는 구성 캔버스 상의 프로세싱 구성에 동작적으로 접속된다.
따라서, 본 발명은 매우 다재다능하지만 직관적인 그래픽 프로그래밍 기술을 생성하는 프로세싱 시스템을 프로그래밍하는 개선된 방법을 포함한다. 이하에 더 상세히 설명되는 바와 같이, 상기 프로그래밍 방법 실제로 동적이며, 프로그래밍 프로세스 동안 및 동작 동안 변경될 수 있다.
본 발명의 다른 장점들은 첨부 도면과 관련하여 고려시에 다음의 상세한 설명을 참조하여 가장 양호하게 이해되는 것으로 용이하게 인식될 것이다.
도1은 프로세싱 시스템의 하나의 고려되는 애플리케이션의 개략도.
도2는 본 발명의 프로세싱 시스템에 접속된 컴퓨터 모니터의 블랭크 스타트 업 스트린(blank start up screen)을 도시한 도면.
도3은 스타트 업 스크린의 파일 메뉴를 도시한 도면.
도4는 스타트 업 스크린의 뷰 메뉴를 도시한 도면.
도5는 스타트 업 스크린의 툴 메뉴를 도시한 도면.
도6은 스타트 업 스크린 상에서 개방되는 시스템 셋업 페인, 프로젝트 익스플로러 페인, 툴박스 페인, 특성 페인, 및 비할당 페인을 도시한 도면.
도7은 시스템 셋업 페인의 상세도.
도8은 툴박스 페인의 상세도.
도9는 툴박스 페인의 부가적인 상세도.
도10은 스타트 업 스크린 상에서 개방되고 스타트 업 스크린의 에지들을 따라 위치되는 시스템 셋업 페인, 프로젝트 익스플로러 페인, 툴박스 페인, 및 특성 페인을 도시한 도면.
도11은 파일 메뉴 및 프로젝트 명령의 선택을 도시한 도면.
도12는 스타트 업 스크린 내에서 크리에이트 뉴 프로젝트 윈도우를 도시한 도면.
도13은 그 에지를 따라 개방되는 시스템 셋업 페인, 프로젝트 익스플로러 페인, 툴박스 페인, 및 특성 페인을 갖는 블랭크 구성 캔버스를 도시한 도면.
도14는 구성 캔버스의 편집 메뉴를 도시한 도면.
도15는 구성 캔버스의 인서트 메뉴를 도시한 도면.
도16은 구성 캔버스의 컨트롤 메뉴를 도시한 도면.
도17은 프로세서 아이콘이 구성 캔버스 상에 배치되는 프로세싱 구성을 생성하는데 있어서의 전형적인 제1 단계를 도시한 도면.
도18은 구성 캔버스 상의 사인파 발생기의 형태로 오브젝트 아이콘을 배치시킴으로써 프로세싱 구성에서의 다음 단계를 도시한 도면.
도19는 플로우트 가산 기능 오브젝트에 상관된 특성 페인의 상세도.
도20은 특성 페인의 다른 상세도.
도21은 특성 페인의 또 다른 상세도.
도22는 특성 페인의 다른 상세도.
도23은 구성 캔버스 상의 랜덤 수 발생기의 형태로 다른 오브젝트 아이콘을 배치시키는 단계를 도시한 도면.
도24는 구성 캔버스 상의 플로우트 승산의 형태로 또 다른 오브젝트 아이콘을 배치시키는 단계를 도시한 도면.
도25는 구성 캔버스 상의 플로우트 승산 아이콘의 대안적인 배치를 도시한 도면.
도26은 사인파 발생기 아이콘에 관련된 랜덤 수 발생기 아이콘의 이동을 도시한 도면.
도27은 모든 실행 경로들이 라우팅되는 구성 캔버스 상의 부분적으로 완성된 프로세싱 구성을 도시한 도면.
도27A는 플로우트 승산 아이콘에 대한 텍스트 디스크립터를 도시하는 도27의 구성 캔버스 상의 오브젝트 아이콘들 중 일부의 상세도.
도27B는 플로우트 승산 아이콘에 대한 심볼을 나타내는 도27의 구성 캔버스 상의 오브젝트 아이콘들 중 일부의 다른 상세도.
도28은 라우팅된 실행 경로들과 무관한 단일 데이터 흐름 경로를 나타내는 도24의 구성 캔버스 상의 오브젝트 아이콘들의 상세도.
도29는 모든 실행 경로들이 라우팅되고 모든 데이터 흐름 경로들이 접속되는 구성 캔버스 상의 완성된 프로세싱 구성을 도시한 도면.
도30은 시스템 셋업 페인, 프로젝트 익스플로러 페인, 툴박스 페인, 및 특성 페인과 함께 도29의 완성된 프로세싱 구성을 도시한 도면.
도31은 동작 동안의 도30의 완성된 프로세싱 구성을 도시한 도면.
도32는 동일한 구성 캔버스 상의 3개의 완성된 프로세싱 구성들을 도시한 도면.
도33은 오브젝트 아이콘들 중 일부가 상이한 위치로 이동되는 도32의 3개의 완성된 프로세싱 구성들을 도시한 도면.
도34는 오브젝트 아이콘들 중 하나가 상이한 위치로 이동되는 도32의 3개의 완성된 프로세싱 구성들을 도시한 도면.
도35는 오브젝트 아이콘들 중 하나가 상이한 프로세싱 구성으로 이동되는 도32의 3개의 완성된 프로세싱 구성들을 도시한 도면.
도36은 오브젝트 아이콘들 중 하나가 상이한 프로세싱 구성으로 이동되는 도 32의 3개의 완성된 프로세싱 구성들을 도시한 도면.
도36A는 이러한 프로세싱 구성들 중 2개가 동기화되는 도32의 3개의 완성된 프로세싱 구성들을 도시한 도면.
도37은 구성 캔버스를 통하여 개방된 인스트루먼트 캔버스를 도시한 도면.
도38은 툴박스 페인의 다른 상세도.
도39는 다수의 비쥬얼 인스트루먼트들로 파퓰레이팅된 인스트루먼트 캔버스를 도시한 도면.
도40은 비할당 페인의 세부사항과 함께 부분적으로 생성된 프로세싱 구성을 도시한 도면.
도41은 비할당 페인의 세부사항과 함께 부분적으로 생성된 프로세싱 구성의 다른 도면.
도42는 다른 완성된 프로세싱 구성을 도시한 도면.
도43은 도42의 완성된 프로세싱 구성상에 중첩된 도39의 인스트루먼트 캔버스를 도시한 도면.
도44는 비할당 페인의 세부사항과 함께 부분적으로 생성된 프로세싱 구성을 도시한 도면.
도45는 일부 비쥬얼 인스트루먼트들로 파퓰레이팅된 인스트루먼트 캔버스 상에 중첩된 비할당 페인을 도시한 도면.
도46은 비쥬얼 인스트루먼트가 비할당 페인으로부터 인스트루먼트 캔버스로 이동되는 도45의 인스트루먼트 캔버스 상에 중첩된 비할당 페인의 다른 도면.
도47은 완성된 프로세싱 구성의 다른 예를 도시한 도면.
도48은 특성 페인의 세부사항과 함께 도47의 완성된 프로세싱 구성을 도시한 도면.
도49는 플로우트 서브트랙트 아이콘에 관련된 플로우트 가산 아이콘을 이동시킴으로써 본 발명의 동적 특성을 증명하면서 특성 페인의 세부사항과 함께 도47의 완성된 프로세싱 구성을 도시한 도면.
도50은 완성된 프로세싱 구성의 또 다른 예를 도시한 도면.
도51은 도50의 완성된 프로세싱 구성의 제1 사용자 오브젝트의 상세도.
도52는 도51의 제1 사용자 오브젝트 내의 제2 사용자 오브젝트의 상세도.
도53은 프로젝트 익스플로러 페인의 세부사항과 함께 도50의 완성된 프로세싱 구성을 도시한 도면.
도54는 완성된 프로세싱 구성의 다른 예를 도시한 도면.
여러 도면들에 걸쳐 동일하거나 대응하는 부분들에는 동일한 참조 번호가 병기되어 있는 도면들을 참조하면, 프로세싱 시스템의 하나의 고려되는 애플리케이션의 개략적인 도면이 일반적으로 도1에서 10으로 도시되어 있다. 특히, 프로세싱 시스템(10)은 다수의 노드들을 갖는 분산된 멀티프로세싱 시스템(10)으로서 구성된다. 분산된 멀티프로세싱 시스템(10)의 하나의 고려되는 애플리케이션은 차량의 테스팅과 같이 데이터를 컴파일링하고 분석하기 위한 것이다. 당업자들이 인식하는 바와 같이, 본 발명의 프로세싱 시스템(1)은 다수의 애플리케이션을 가지며, 데이 터 수집 및 차량 테스팅에 관한 그 다음 논의는 단지 설명을 위한 것이며, 본 발명의 범위를 국한하고자 하는 것이 아니다.
도1에 도시된 바와 같이, 서보밸브(14)를 갖는 유입 액추에이터(12)가 개략적으로 도시되어 있다. 유압 액추에이터(12)는 차량과 같은 테스트 견본(16)에 작용한다. 로드 셀(18) 및 변위 트랜스듀서(20)는 힘 및 변위와 같은 신호들을 인터페이스(22)에 제공하기 위하여 액추에이터(12)에 접속된다. 인터페이스(22)는 또한 필요한 제어 신호들을 제공하기 위하여 서보밸브(14)에 접속된다. 인터페이스(22)는 바람직하게는 도면에서 노드 1로 라벨링되는 서보-제어기 노드의 파트이다. 노드 1은 또한 하나 이상의 프로세서들 및 통신 인터페이스(24)를 포함한다. 바람직하게는, 노드 1의 프로세서(들)는 디지털 신호 프로세서들(DSPs)이다. 노드 1은 차례로 통신 링크(26)를 통하여 라우팅 허브(28)에 접속된다. 도시된 바와 같이, 허브(28)에 또한 접속되는 다른 노드들 및 호스트 노드가 존재한다. 임의의 수의 노드가 허브(28)에 접속될 수 있고, 이러한 노드들은 임의의 적절한 수 및 유형의 프로세서들을 갖는다. 호스트 노드는 바람직하게는 모니터(32), 키보드(34), 마우스(36), 및 임의의 다른 적절한 주변 장치와 함께 PC 프로세서(30)를 갖는 컴퓨터이다. 호스트 노드는 버스 인터페이스(38), 하나 이상의 DSP 프로세서들, 및 통신 인터페이스(40)를 갖는 DSP 카드를 포함한다. 노드 1에서와 같이, 호스트 노드의 통신 인터페이스(40)는 호스트 노드를 통신 링크(26)를 통하여 허브(28)에 접속시킨다. 또한 노드 1에서와 같이, 호스트 노드에서 프로세서들의 유형 또는 크기에 대한 제한이 존재하지 않는다. 허브(28)의 특정하고 특수한 구조 및 노드 구성 뿐 만 아니라, 노드들 자신들의 특성은 그 명세서들이 본원에 참조되어 있는 미국 특허 출원 일련 번호 제09/692,852호 및 제09/982,601호에 게시되어 있다.
상기 배경 섹션에서 논의된 바와 같이, 종래 기술의 프로세싱 시스템들은 프로그램하기 어렵고 비-직관적일 수 있다. 도1에 도시된 분산된 멀티프로세싱 시스템의 논리 확장자는 또한 프로그래밍하기 어려울 수 있다. 이와 같이, 본 발명은 이러한 요구들을 처리하기 위하여 발명되었다. 본 발명은 사용하기가 직관적이고, 매우 다재다능하며, 실제로 그래픽적인 분산된 멀티플로세싱 시스템을 프로그래밍하는 이하에 상세히 논의되는 다수의 개선된 방법들을 포함한다. 상기 프로그래밍 방법들은 또한 실제로 동적이며, 프로그래밍 프로세스 동안 그리고 동작 동안 변경될 수있다.
도2-10을 참조하면, 프로그래밍 방법들에서 사용되는 많은 기본적인 구성요소들이 도시되어 있다. 컴퓨터 모니터의 블랭크 스타트 업 스크린이 도2에 도시되어 있다. 이 스크린 또는 윈도우는 비쥬얼 구성 에디터(VCE)로서 라벨링된다. VCE 또는 스타트 업 스크린에 나타난 많은 특성들은 윈도우 기반 시스템에서 전형적이다. VCE는 프로젝트의 동작을 생성, 편집, 실행 및 모니터하기 위하여 사용자에 의해 사용되는 환경이다. 용어 REDGRID®는 미국 특허청으로 등록된 상표이며, 본 특허 출원에서 이 용어를 임의로 사용하는 것이 이 상표에 이용 가능한 세기 및/또는 보호를 결코 감소시키지 않는다는 것이 주의되어야 한다. 또한, 본 특허 출원에서 사용되는 바와 같은, 용어 비쥬얼 구성 에디터 및 VCE, 뿐만 아니라 REDGRID®에 인접한 그래픽 설명은 이러한 상표에 이용 가능한 세기 및/또는 보호를 결코 감소 시키지 않는다.
도3은 새로운 프로젝트들을 생성하고, 프로젝트 파일들을 개방하고, 프로젝드들을 저장하는 명령들을 포함하는 스타트 업 스크린의 파일 메뉴를 도시한다. 도4는 뷰 메뉴를 도시하고, 도5는 스타트 업 스크린의 툴 메뉴를 도시한다. 뷰 메뉴는 사용자가 도6에 도시된 것과 같은 다양한 페인들을 개방하도록 한다. 도6을 참조하면, 시스템 셋업 페인, 프로젝트 익스플로러 페인, 툴박스 페인, 특성 페인, 및 비할당 페인이 스타트 업 스크린 상에서 개방된다. 페인들은 플로팅이거나 로킹 가능하고, 희망하는 바와 같이 재크기화될(re-sizeable) 수 있다. 각각의 이러한 페인들은 사용자가 이하에 상세히 논의되는 프로젝트를 생성하고 있고, 변경하고 있고, 실행하고 있을 때, 특정한 목적들을 갖는다. 도5의 툴 메뉴는 특정한 복합 태스크들을 수행하도록 설계되는 고-레벨 소프트웨어 특성들을 포함한다. 이러한 소프트웨어 특성들은 사용자들을 보조하기 위한 특수화된 계산 프로그램들일 수 있다. 따라서, 이러한 소프트웨어 특성들은 효율적인 노동-절약 장치들이다.
시스템 셋업 페인 또는 프로세서 페인은 도7에 더 상세히 도시되어 있다. 시스템 셋업 페인은 현재 사용자에게 이용 가능한 모든 프로세서들의 트리 뷰(tree view)를 나타낸다. 프로세서들은 노드들 아래에 구성된다. 이 예에서, 이용 가능한 두 개의 노드들이 존재한다. 하나의 노드는 상술된 호스트 노드에 대한 다른 명칭인 로컬 노드이다. 즉, 로컬 노드는 컴퓨터의 파트이다. 로컬 노드는 프로세서 페인에서 식별된 5개(5)의 다른 이벤트들을 갖는 386으로 라벨링된 PC 프로세서를 포함한다. 이하에 더 상세히 논의되는 바와 같이, PC 프로세서 하에서 식별되는 이벤 트들은 실행 경로들을 개시하기 위하여 프로세싱 시스템에서 개별적으로 사용될 수 있다. 이용 가능한 다른 노드는 상술된 노드 1에 대한 특정한 명칭인 REDgrid DSP 카드이다. 상술된 바와 같이, REDgrid®은 등록된 상표이며, 단지 본 특허 출원에서 고려되는 실시예의 설명을 보조하는데만 사용된다. 노드 1은 '1' 및 '2'로서 라벨링된 2개의 프로세서들을 포함한다. 프로세서들은 바람직하게는 DSPs이며 사용자에 의해 선택될 수 있는 3개(3)의 이벤트들을 각각 포함한다. 그러나, 프로세싱 시스템의 이러한 특정한 구현에서, DSPs는 노드 1 하의 이러한 프로세서들 각각이 프로세싱 시스템에서 단지 한번 사용될 수 있도록 설계되지만, 이것은 본 발명을 결코 국한하지 않으며, 여기서 각 이벤트가 독립적으로 선택될 수 있도록 DSPs를 구현하는 것이 가능하다.
상술된 이벤트들은 프로세서들에 대한 다수의 상이한 실행 레이트들을 구별한다. 실시간 프로세싱 시스템에서, 사용자는 전형적으로 실행 경로가 특정한 레이트로 주기적인 방식으로 반복되는 것을 필요로 할 것이다. 즉, 이하에 더 상세히 논의되는 실행 경로는 반복적이고 연속적일 수 있다. 사용자는 제어되는 장치의 요구들에 기초하여 이러한 파라미터들을 선택하고 나서, 이에 따라 프로세서 이벤트 및 레이트를 선택할 수 있다. 주기적인 이벤트들 이외에, 비주기적인 방식으로 실행을 개시할 수 있는 이용 가능한 이벤트들이 존재할 수 있다.
툴박스 페인은 도8 및 9에 보다 상세히 도시되어 있다. 툴박스 페인은 임의의 특정 애플리케이션에 의해 희망되는 바와 같은 임의의 수의 아이템들을 가상으로 가질 수 있다. 폴더들의 예들로는 드로잉 오브젝트들, 비반복 오브젝트들, 프리 미티브들, 및 비쥬얼 인스트루먼트들이 있을 수 있다. 그림 오브젝트들은 논리적인, 이해 가능한 프로젝트 구성들을 생성하는데 있어서 사용자를 보조하는 시각적인 요소들이다. 그림 오브젝트들은 일반적으로 확장 가능한 오브젝트들이 아니다. 비쥬얼 인스트루먼트들은 이하에 보다 상세히 논의될 것이다.
도9에 도시된 바와 같이, 프리미티브 폴더는 큰 등급의 서브-폴더들, 서브-서브-폴더들 등을 포함한다. 프리미티브 폴더 내에는 다수의 기능 오브젝트들 또는 프리미티브들이 있다. 기능 오브젝트들의 예들이 인스트루먼트 서브-서브-폴더 및 소스 서브-서브-폴더 하에 나타난다. 기능 오브젝트들은 각각의 기능 오브젝트들이 특정 기능을 수행하도록 사전-프로그래밍되었던 기본적인 실행 가능한 코드 또는 명령들을 포함한다. 후술되는 바와 같은 기능 오브젝트들은 더 복잡한 태스크들을 수행하기 위하여 어셈블링되고 접속되는 기본적인 요소들 또는 빌딩 블록들이다. 기능 오브젝트들은 프로세서 또는 프로세서들의 군을 특정하게 실행시키도록 기록될 수 있다. 도8의 예에서, 두 등급의 기능 오브젝트들, 즉 호스트 및 SHARC가 존재한다. 호스트 기능 오브젝트들은 PC 또는 호스트 프로세서 상에서만 실행하도록 설계된다. SHARC 기능 오브젝트들은 SHARC DSPs 상에서만 실행되도록 설계된다. 기능 오브젝트들의 수집인 사용자 오브젝트들이 이하에 더욱 상세하게 설명된다.
도10은 스타트 업 스크린 상에서 개방되고 스타트 업 스크린의 에지들을 따라서 도킹되는 특성 페인, 툴박스 페인, 프로젝트 익스플로러 페인, 및 시스템 셋업 페인을 도시한다. 명백하게 도시된 바와 같이, 특성 페인 및 프로젝트 익스플로러 페인은 현재 비워있다. 또한, 현재 비워있는 할당되지 않은 페인 또는 일시적 페인은 뷰로부터 감춰져 있다.
도11 내지 도16을 참조하면, 프로그래밍 방법들뿐만 아니라 프로젝트의 초기화에 사용되는 부가적인 기본 요소들이 도시된다. 도11에 도시된 바와 같이, 사용자는 파일 메뉴를 개방하고 뉴/프로젝트 명령들을 선택함으로써 시작한다. 도12는 스타트 업 스크린 내에서 크리에이트 뉴 프로젝트 윈도우를 도시하고, 사용자는 '심플 프로젝트'와 같은 프로젝트에 명칭을 할당한다. 도13에 도시된 바와 같이, 블랭크 구성 캔버스는 현재, 스타트 업 스크린의 에지들을 따라서 개방된 채 유지되는 특성 페인, 툴박스 페인, 프로젝트 익스플로러 페인, 및 시스템 셋업 페인으로 나타난다. 프로젝트 익스플로러는 현재 캔버스 상의 프로젝트를 추적할 트리의 시작을 도시한다.
프로젝트가 초기화되면, 3개의 새로운 메뉴 선택들이 나타난다. 도14에 도시된 바와 같은 구성 캔버스의 편집 메뉴는 친숙한 윈도우 편집 제어들을 포함한다. 도15에 도시된 바와 같이, 구성 캔버스의 삽입 메뉴는 사용자에게 구성 캔버스로 삽입될 수 있는 드로잉 오브젝트들의 리스트를 제공한다. 툴박스 페인 내의 상술된 드로잉 오브젝트 폴더는 드로잉 오브젝트의 동일한 리스트를 포함한다. 도16은 완성된 프로젝트의 실행을 제어하기 위한 선택들을 포함하는 구성 캔버스의 제어 메뉴를 도시한다. 사용자를 지원하기 위하여, 실행 제어들은 또한 스크린의 툴바상에 위치된다.
도17 내지 도31을 참조하면, 프로세싱 시스템을 위하여 상술된 '심플 프로젝트'와 같은 기본 프로젝트를 프로그램하는 방법뿐만 아니라 다수의 다른 특징들이 지금부터 상세하게 설명된다. 도17에 도시딘 바와 같이, 프로세서들 중 한 프로세서와 관련된 프로세서 아이콘은 캔버스 상으로 배치된다. 특히, 프로세서 페인으로부터의 이벤트들 중 한 이벤트는 이 선택을 캔버스 상으로 드래그 및 드롭함으로써 이동되어 캔버스 상에 프로세서 아이콘을 생성한다. 이 예에서, REDgrid DSP 카드 노드 아래의 수 '1' DSP 는 캔버스 상으로 이동된다. 사용자는 특히 IRQ2 이벤트를 선택하고 이 이벤트는 프로세서의 라벨링으로 식별된다. IRQ2 이벤트는 초당 20, 480에서 실행 경로들을 실행하는 반복적인 이벤트이다. 이 프로세서에서 모든 이벤트들은 현재 이 프로세서가 이 프로젝트에서 더이상 이용될 수 없다는 것을 나타내도록 셰이딩된다. 한 이벤트가 선택되면 모든 이벤트들의 비이용율은 프로세싱 시스템의 특정 구현방식의 특성이라는 점에 유의하여야 한다. 게다가, 프로세서로 프로젝트를 시작할 필요가 없고 사용자는 프로세싱 구성을 구축시 임의의 소망 시퀀스를 추종할 수 있다.
도18에 도시된 바와 같이, 사용자는 소망의 기능 오브젝트를 위한 툴박스 페인을 브라우즈하고 나서 제1 기능 오브젝트와 관련된 제1 오브젝트 아이콘을 제1 위치에 있는 캔버스상으로 배치한다. 특히, 툴박스 페인으로부터의 관련된 심볼은 제1 오브젝트 아이콘을 규정하는 캔버스 상으로 복제된다. 이 에에서, 제1 오브젝트 아이콘은 사인파 발생기 기능 오브젝트와 관련되고 툴박스 페인 내의 소스 폴더하에서 사인파 발생기 심볼로부터 캔버스상으로 드래그되고 드롭된다. 프로젝트 익스플로러 페인은 트리에서 사인파 발생기를 자동적으로 표시하고 프로젝트가 수정될 때마다 자동적으로 갱신될 것이다. 사인파 발생기가 강조되고, 특성 페인은 사 인파 발생기에 관한 각종 정보로 파퓨레이트(populate)된다.
도19 내지 도22를 참조하면, 속성 페인이 더욱 상세하게 도시된다. 이 예에서, 플로우트 가산 기능 오브젝트가 캔버스 상으로 배치되어 강조된다. 특성 페인은 이 구성 오브젝트 다음의 플로우팅으로 도시된다. 특성 페인(pain)은 프로젝트 내 모든 기능 오브젝트들의 모든 특성들을 가상적으로 검사하여 수정하도록 사용된다. 예를 들어, 기능 오브젝트의 시각적인 외양(visual apperarance), 커넥터들(데이터 포트들), 데이터 신호들의 특성들은 검사 및/또는 수정될 수 있다. 도19의 예에서, 사용자는 입력 1 및 입력 2를 위한 값들을 입력할 수 있는데, 이는 사용자가 입력 신호들에 대한 초기 조건들을 설정하도록 한다. 특성 페인은 또한 신호들, 커넥션들, 정보 및 비쥬얼들과 같은 여러 뷰들을 선택하기 위한 미니-툴바에서 탭들을 갖는다. 신호 뷰가 도19에 도시된다. 커넥션 뷰는 도20에 도시되는데, 이 도면에서 사용자는 임의의 데이터 커넥터들을 디스플레이하거나 감추도록 선택할 수 있다. 이는 사용자에게 이용될 수 있는 많은 입력들 및 출력을 갖는 매우 복잡한 기능 오브젝트들에 유용하다. 정보 뷰는 도21에 도시되고 비쥬얼 뷰는 도22에 도시된다. 비쥬얼 뷰에서, 그래픽 심볼이 나타나고 작용하는 방법에 관한 모든 양상이 검사되고 수정될 수 있다.
생성되는 기본 프로젝트를 다시 참조하면, 도23은 제2 위치에 있는 캔버 상으로 배치되는 제2 기능 오브젝와 관련된 제2 오브제트 아이콘을 도시한다. 제2 아이콘의 제2 위치는 제1 아이콘의 제1 위치와 다르다. 이 예에서, 제2 아이콘은 랜덤 수 발생기 기능 오브젝트와 관련된다. 도24 및 도25에 도시된 바와 같이, 제3 기능 오브젝트와 관련된 제3 오브젝트 아이콘은 다음에 제3 위치에 있는 캔버스 상으로 배치된다. 또 다시, 제3 위치는 제1 및 제2 위치들과 다르다. 이 예에서, 제3 아이콘은 플로우트 승산 기능 오브젝트와 관련된다.
본 발명의 한 가지 특징은 아이콘들 및 프로세서들이 캔버스 상에 배치될 때 실행 경로들의 라우팅 및 재라우팅에 관한 것이다. 도24 및 도25에 도시된 바와 같이, 실행 경로는 캔버스 상의 제1 오브젝트 아이콘의 제1 위치 및 제2 오브젝트 아이콘의 제2 위치에 대한 제3 오브젝트 아이콘의 제3 위치의 방향을 토대로 제1 및 제2 오브젝트 아이콘들 중 한 아이콘으로부터 제3 오브젝트 아이콘으로 자동적으로 라우팅된다. 또 다른 방법을 서술하면, 실행 경로는 캔버스 상의 제1 오브젝트 아이콘의 제1 위치 및 제2 오브젝트 아이콘의 제2 위치에 대한 제3 오브젝트 아이콘의 제3 위치의 방향을 토대로 제1 오브젝트 아이콘 및 제3 오브젝트 아이콘 중 한 아이콘으로부터 제2 오브젝트 아이콘으로 자동적으로 라우팅된다.
도24의 예에서, 실행 경로는 제2 오브젝트 아이콘으로부터 제3 오브젝트 아이콘으로 라우팅되는데, 그 이유는 상기 제2 오브젝트 아이콘의 제2 위치는 캔버스 상에서 좌에서 우로 바라볼 때 상기 제1 오브젝트 아이콘의 제1 위치 및 상기 제3 오브젝트 아이콘의 제3 위치 간에 있다. 실행 경로는 또한 제2 오브젝트 아이콘이 캔버스 상에 배치될 때 상기 제1 위치에서 제1 오브젝트 아이콘으로부터 상기 제2 위치에서 상기 제2 오브젝트 아이콘으로 자동적으로 라우팅된다. 다른 말로서, 도23에 도시된 바와 같이, 실행 경로는 상기 제2 아이콘의 상대적인 방향을 토대로 상기 제1 오브젝트 아이콘으로부터 상기 제2 오브젝트 아이콘으로 즉각적으로 그리 고 자동적으로 라우팅된다.
대안적으로, 도25에 도시된 바와 같이, 실행 경로는 제1 오브젝트 아이콘으로부터 제3 오브젝트 아이콘으로 자동적으로 라우팅되는데, 그 이유는 캔버스 상에서 좌에서 우로 바라볼 때 상기 제3 오브젝트 아이콘의 제3 위치가 상기 제1 오브젝트 아이콘의 제1 위치 및 제2 오브젝트의 제2 위치 간에 있기 때문이다. 이 대안적인 예에서, 상기 제1 오브젝트 아이콘으로부터 실행 경로는 상기 실행 경로가 제3 오브젝트 아이콘으로 재라우팅되도록 상기 제3 오브젝트 아이콘의 방향에 응답하여 도23에 도시된 것으로부터 자동적으로 그리고 무결절로(seamlessly) 재라우팅된다. 또한, 실행 경로는 제3 오브젝트 아이콘의 방향에 응답하여 상기 제3 위치에서의 제3 오브젝트 아이콘으로부터 상기 제2 위치에서의 제2 오브젝트 아이콘으로 자동적으로 라우팅된다. 그러므로, 이 대안적인 예에서, 실행 경로는 제1 아이콘으로부터 제3 아이콘으로 라우팅되고 나서 제2 아이콘으로 라우팅된다.
실행 경로는 또한 아이콘들의 방향들을 토대로 프로세서 아이콘으로부터 제1, 제2 및 제3 오브젝트 아이콘들 중 한 아이콘으로 자동적으로 라우팅된다. 프로세서 아이콘으로부터 제1, 제2 및 제3 오브젝트 아이콘들 중 한 아이콘으로의 실행 경로는 캔버스 상에서 좌에서 우로 바라볼 때 제1, 제2 및 제3 도브젝트 아이콘들의 최좌측 위치를 토대로 자동적으로 라우팅된다. 이 에에서, 도17 및 도18에 도시된 바와 같이, 프로세서는 우선 캔버스 상에 배치되고 나서, 제1 아이콘은 상기 캔버스 상에 배치된다. 도18에 도시된 바와 같은 실행 경로는 제1 아이콘으로 자동적으로 라우팅되는데, 그 이유는 이 제1 아이콘이 최좌측 위치에 있기 때문이다. 프 로세서가 우선 캔버스 상에 배치될 필요가 없고 부가적으로 프로세서가 캔버스의 좌측 위치를 따라서 위치될 필요가 없다는 것을 인지하여야 한다.
실행 경로들은 칼러화된 화살표들 또는 특정하게 구성된 화살표들로 식별될 수 있다. 이하에 더욱 상세하게 설명된 바와 같이, 상이한 프로세서들로부터 오브젝트 아이콘들의 상이하게 구성된 그룹들로 라우팅되는 다수의 상이한 실행 경로들일 수 있다. 이들 유형들의 멀티프로세싱 구성들에서, 상이한 프로세서들로부터 라우팅되는 상이한 프로세싱 구성들을 식별하도록 하기 위하여 상이하게 칼러화되거나 상이하게 구성된 화살표들을 갖는 것이 바람직하다. 현재 검토되거나 수정되는 실행 경로는 툴바상에서 식별된다.
도24 및 도25를 비교하면, 본 발명의 동적 특성이 도시된다. 오브젝트 아이콘들은 초기에 도24에 도시된 방향들에서 캔버스상으로 배치될 수 있다. 그 후, 오브젝트 아이콘들 중 한 아이콘(이 예에서 제3 오브젝트 아이콘)은 여러 위치로 이동될 수 있다. 도25의 예에서, 플로우트 승산(제3 오브젝트 아이콘)은 제1 및 제2 아이콘들 간의 위치로 이동된다. 상술된 바와 같이, 실행 경로들은 캔버스 상의 다른 아이콘들에 대해서 제3 오브젝트 아이콘의 이동된 방향을 토대로 자동적으로 그리고 무결절로 재라우팅된다. 이 실행 경로들 및 재드로우잉 프로세스의 발생은 실시간으로 수행되고 아이콘이 한 방향에서 또 다른 방향으로 드래그되는 동안 계속된다.
도24 및 도26을 비교하면, 본 발명의 동적 특성의 또 다른 예가 도시된다. 프로세서 및 오브젝트 아이콘들은 초기에 도24에 도시된 방향들에서 캔버스 상으로 배치될 수 있다. 그 후, 랜덤 수 발생기(제2 오브젝트 아이콘)는 도26에 도시된 바와 같은 제1 오브젝트 아이콘 및 프로세서 간의 위치로 이동될 수 있다. 제2 오브젝트 아이콘은 현재 상기 프로세서로부터의 실행 경로가 제2 오브젝트 아이콘으로 자동적으로 그리고 무결절로 재라우팅되도록 (도26 참조) 하는 최좌측 아이콘이다. 응답시, 남아있는 실행 경로들은 또한 도27에 도시된 바와 같이 실행 경로들이 프로세서로부터 제2 오브젝트 아이콘으로, 제1 오브젝트 아이콘으로 그리고 제3 오브젝트 아이콘으로 라우팅한다.
또한 도27에 도시된 바와 같이, 제4 기능 오브젝트와 관련된 제4 오브젝트 아이콘은 제4 위치에 있는 캔버스상으로 배치되는데, 상기 제4 위치는 제1, 제2 및 제3 위치들과 다르다. 이 예에서, 제4 아이콘은 스코우프(scope) 기능 오브젝트와 관련된다. 실행 경로는 또한 제4 오브젝트 아이콘이 캔버스 상에 배치될 때 제3 위치에 있는 제3 오브젝트 아이콘으로부터 제4 위치에 있는 제4 오브젝트 아이콘으로 자동적으로 라우팅된다. 동일하거나 상이한 기능 오브젝트들과 관련되는 캔버스 상으로 배치되는 임의의 부가적인 아이콘들의 수일 수 있다는 것을 인지하여야 한다. 이 예에서, 캔버스 상에 배치되는 스코우프와 또한 관련되는 하나의 부가적인 아이콘이 존재한다.
기능 오브젝트 및 관련된 오브젝트 아이콘들 각각은 적어도 하나의 입력 및/또는 적어도 하나의 출력을 포함한다. 입력들 및 출력들은 수신 및 송신 데이터를 위한 데이터 포트들로서 설계된다. 도27A는 2개의 입력들 및 단일 출력을 갖는 플로우트 승산 아이콘을 도시한다. 기능 오브젝트들 및 오브젝트 아이콘들이 원하는 경우 임의의 적절한 수의 입력들 및/또는 출력들을 가질 수 있다는 것을 인지하여야 한다.
도27A 및 도27B를 참조하면, 상기 오브젝트 아이콘들 각각과 관련된 또 다른 특징이 도시된다. 특히, 제1, 제2 및 제3 오브젝트 아이콘들 각각은 텍스트와 같은 디스크립터들 및 수학적 또는 엔지니어링 심볼들과 같은 다수의 심볼들을 포함한다. 캔버스 상의 공간 제한들로 인해, 사용자가 원하는 경우 동적으로 변경될 수 있는 다수의 심볼들 및 디스크립터들을 갖는 것이 유용하다. 심볼 만으로도 사용자가 기능 오브젝트의 기능 또는 동작을 이해하도록 하는데 충분한 시간이 존재한다. 다른 시간에서, 사용자는 예를 들어 입력들 및 출력들의 세부사항 및 설명을 알 수 있다. 도27A는 사용자에게 가시화되는 텍스트 디스크립터들을 갖는 플로우트 승산 아이콘을 도시한다. 특히, 입력 및 출력 데이터 포트들이 가시화된다. 입력들 및 출력들의 라벨들은 사용자에 의해 구성될 수 있다. 도시된 예에서, 입력들 및 출력들을 위한 명칭의 단지 제1 문자는 공간을 보존하기 위하여 디스플레이된다. 바람직한 실행 경로가 좌에서 우 양태로 진행하기 때문에, 입력들은 촤측 에지상에 도시되고 출력들은 우측 에지 상에 도시된다. 도27B는 현재 사용자에게 가시화되는 심볼을 갖는 상기 플로우트 승산 아이콘을 도시한다. 사용자가 특정 입력 또는 출력을 가리키면, 입력 또는 출력의 명칭은 가시화될 수 있다. 바람직한 실시예에서, 오브젝트 아이콘들 각각은 그래픽 심볼 및 텍스트 디스크립터 둘 다를 포함하는데, 심볼 및 디스크립터 중 단지 하나만이 임의의 시간에서 가시화될 수 있다. 더욱 바람직하게는, 사용자는 오브젝트 위에 커서를 위치시켜 뷰들을 동적으로 변경시킨 다.
이 예의 프로젝트에서 그리고 도27에 도시된 바와 같은 이 지점에서, 실행 경로들이 모두 설정된다. 그러나, 바람직한 실시예에서, 실행 경로들은 데이터 흐름 경로들로부터 독립적이다. 도28 및 도29를 참조하면, 데이터 흐름 경로는 현재 캔버스 상의 실행 경로들의 라우팅들로부터 별도로 캔버스 상의 제1, 제2, 제3 및 제4 오브젝트 아이콘들 간에서 생성된다. 특히, 오브젝트 아이콘들 간의 데이터 흐름 경로들의 생성은 오브젝트 아이콘들중 한 아이콘으로부터 캔버스 상의 또 다른 오브젝트 아이콘의 입력으로 출력을 수동 접속시킴으로써 수행된다. 더욱더 구체적으로, 사용자는 입력 또는 출력을 클릭 온하고 캔버스 상의 포인터를 대향하는 입력 또는 출력을 향하여 드래그한다. 허용가능한 데이터 접속이 얻어지면, 접속된 데이터 흐름 경로를 나타내는 실선이 도시된다. 도28에 도시된 예에서, 랜덤 수 발생기의 출력은 이들 데이터 포트들 간의 데이터 흐름 경로를 접속시킴으로써 플로우트 승산의 입력에 접속된다. 실행 경로들은 데이터 흐름 경로의 접속에 의해 영향받지 않는다.
도29는 각종 오브젝트 아이콘들 간의 완성된 데이터 흐름 경로들을 도시한 것이다. 데이터 흐름 경로는 다수의 입력들이 하나 이상의 오브젝트 아이콘들에 의해 필요로 될 때 하나 이상의 입력으로 자동적으로 분포됨으로써, 데이터 흐름 경로 상의 분포 지점을 생성한다. 데이터 흐름 경로의 분포는 데이터의 실제 값들에 결코 영향을 미치지 않는다. 데이터 흐름 경로들을 통과하는 데이터의 값들은 간단히 하나 이상의 오브젝트 아이콘으로 전송된다. 도시된 예에서, 플로우트 승산 및 스코우프 2 둘 다는 다수의 입력들을 필요로 한다. 그러므로, 사인파 발생기 및 랜덤수 발생기로부터의 출력들은 분포되고 분포 지점은 데이터 흐름 경로의 에어리어 상에 배치된다. 또 다른 기능 목적과 관련된 분포 아이콘은 데이터 흐름 경로 상의 분포 지점에서 자동적으로 생성된다. 게다가, 실행 경로들은 자동적으로 재루팅되어 아이콘들의 상대적인 방향들을 토대로 상기 분포 지점에서 상기 분포 아이콘을 포함한다. 대안적으로, 또 다른 기능 오브젝트와 관련된 분포 아이콘은 데이터 흐름 경로상에 수동으로 배치되어 하나 이상의 입력이 하나 이상의 아이콘들에 의해 필요로 될 때 데이터 흐름 경로를 분포시킨다.
도30 및 도31을 참조하면, 프로젝트는 현재 완성된다. 프로세싱 시스템은 기능 오브젝트들이 오브젝트 아이콘들 간의 실행 경로의 순서로 관련된 기능들을 수행하도록 하고 데이터가 상기 아이콘들 간의 데이터 흐름 경로를 따라서 통과되도록 동작될 수 있다. 프로세싱 시스템의 동작은 또한 캔버스 상에서 바라볼 때 좌에서 우의 순서로 아이콘들 간의 실행 경로들을 동작시키는 것으로 규정된다. 그러므로, 최좌측 오브젝트 아이콘이 가장 먼저, 바로 우측에 있는 오브젝트가 두번째로, 등등으로, 특정 실행 경로 상의 모든 오브젝트 아이콘들이 실행될 때까지 실행된다. 상술된 바와 같이, 전형적인 프로세싱 시스템은 최우측 오브젝트 아이콘과 관련된 기능 오브젝트가 실행되면, 이 동작이 연속적으로 반복되도록 반복될 것이다. 바람직한 실시예에서, 데이터 흐름 경로를 통과하는 값들은 실행 경로의 각 패스 간에서 유지된다. 그러므로, 최종 실행시 생성되는 값들은 다음 실행을 위한 입력들로서 이용될 수 있다. 동작 순서는 본 발명의 전체 범위를 벗어남이 없이 변경될 수 있다는 것을 인지하여야 한다.
프로젝트의 동작은 스톱, 포즈 및 실행과 같은 툴바상의 명령들에 의해 제어된다. 도31에 도시된 바와 같은 본 예에서, 스코우프 2는 사인파 발생기 및 랜덤 수 발생기로부터의 원래 신호들을 디스플레이 한다. 스코우프 1는 이들 신호들의 실시간 승산을 디스플레이 한다.
본 발명이 또 다른 특징은 오브젝트 아이콘들 중 한 아이콘이 여러 위치로 이동될 수 있고, 실행 경로들이 실시간으로 재라우팅되도록 프로세싱 시스템이 동작하는 동안 실행 경로들이 캔버스 상에서 서로에 대해 오브젝트 아이콘들의 이동된 방향을 토대로 자동적으로 재라우팅된다는 것이다. 다른 말로서, 프로세싱 시스템을 프로그램할 때 상술된 아이콘들의 이동 및 실행 경로들의 재라우팅은 또한 프로세싱 시스템이 동작하는 동안 수행될 수 있음으로, 본 발명의 다재다능성을 더욱 증가시킨다.
도32 내지 도36을 참조하면, 또 다른 완성된 프로젝트가 도시된다. 구성 캔버스는 이 프로젝트를 위하여 더욱 크게되는데, 그 이유는 시스템 셋업 페인, 프로젝트 익스플로러 페인, 툴박스 페인, 특성 페인 및 비할당 페인 모두가 스크린의 우측상에 도킹되기 때문이다. 상술된 바와 같이, 페인들은 스크린 상에 임의의 적절한 방식으로 배열될 수 있다. 도32에 도시된 특정 구성은 페인들 모두에 액세스를 허용하면서 구성 캔버스를 위한 공간을 최대화한다.
도32 내지 도36에 도시된 프로젝트는 멀티프로세싱인데, 즉, 하나 이상의 프로세서가 캔버스 상에 위치된다. 도32에 도시된 구성을 생성하기 위하여, 제1 프로 세서와 관련된 제1 프로세서 아이콘은 캔버스 상으로 배치된다. 제1 다수의 기능 오브젝트들과 관련된 제1 다수의 오브젝트 아이콘들은 다수의 상이한 위치들에서 캔버스 상으로 배치된다. 제1 다수의 실행 경로들은 제1 다수의 오브젝트 아이콘들이 제1 프로세싱 구성을 규정하기 위하여 캔버스 상에 배치될 때 상기 제1 프로세서 아이콘으로부터 상기 제1 다수의 오브젝트 아이콘들 각각으로 자동적으로 라우팅된다. 유사하게, 제2 프로세서 아이콘은 캔버스 상으로 배치된다. 제2 다수의 기능 오브젝트들과 각각 관련된 제2 다수의 오브젝트 아이콘들은 다수의 상이한 위치들에 있는 캔버스 상으로 배치된다. 제2 다수의 실행 경로들은 제2 다수의 오브젝트 아이콘들이 제2 프로세싱 구성을 규정하기 위하여 캔버스 상에 배치될 때 제2 프로세서 아이콘으로부터 제2 다수의 오브젝트 아이콘들 각각으로 자동적으로 라우팅된다. 도시된 바와 같이, 많은 제2 프로세싱 구성은 시스템 내의 용장성을 생성하기 위하여 제1 프로세싱 구성의 복제가 된다. 최종적으로, 제3 프로세서 아이콘은 캔버스 상으로 배치된다. 제3 다수의 기능 오브젝트들과 각각 관련된 제3 다수의 오브젝트 아이콘들은 다수의 상이한 위치들에 있는 캔버스 상으로 배치된다. 제3 다수의 실행 경로들은 제3 다수의 오브젝트 아이콘들이 제3 프로세싱 구성을 규정하도록 캔버스 상에 배치될 때 상기 제3 프로세서 아이콘으로부터 상기 제3 다수의 오브젝트 아이콘들 각각으로 자동적으로 라우팅된다. 제1, 제2 및 제3 다수의 실행 경로들 간을 구별하기 위하여, 이들 실행 경로들은 특정하게 라벨링된다. 제1, 제2 및 제3 다수의 실행 경로들은 각 실행 경로를 위한 특정 칼러들을 이용함으로써 구별될 것이다.
제1 데이터 흐름 경로는 캔버스 상의 제1 프로세서 아이콘으로부터 실행 경로들의 라우팅들과 별도로 캔버스 상의 제1 다수의 오브젝트 아이콘들 간에서 생성된다. 이 예에서, 제1 데이터 흐름 경로는 신호 발생기 1, 신호 발생기 2, 플로우트 기판 1, 파워 1, 및 메뉴 1 간에 생성된다. 유사하게, 제2 데이터 흐름 경로는 캔버스 상의 제2 프로세서 아이콘으로부터 실행 경로들의 라우팅들과 별도로 캔버스 상의 제2 다수의 오브젝트 아이콘들 간에서 생성된다. 이 예에서, 제2 데이터 흐름 경로는 한쌍의 분포 아이콘들, 플로우트 감산 2, 파워 2, 및 메뉴 2 간에 생성된다. 이 데이터 흐름 경로들의 분포로 인해, 신호 발생기 1 및 신호 발생기 2는 데이터를 제1 및 제2 데이터 흐름 경로들 둘 다로 전송한다. 최종적으로, 제3 데이터 흐름 경로는 캔버스 상의 제3 프로세서 아이콘으로부터 실행 경로들의 라우팅들로부터 별도로 캔버스 상의 제3 다수의 오브젝트 아이콘들 간에 생성된다. 이 예에서, 제3 데이터 흐름 경로는 제1 데이터 흐름 경로의 메뉴 1, 제2 데이터 흐름 경로의 메뉴 2, 플로우트 감산 3, 플로우트 절대값 1, 및 미터 1간에 생성된다. 명백하게 도시된 바와 같이, 데이터 흐름 경로들은 캔버스 상의 임의의 오브젝트 아이콘들 간에 데이터를 흐로도록 하기 위하여 생성될 수 있다. 특히, 제1, 제2 및 제3 데이터 흐름 경로들 중 적어도 하나는 제1 다수의 오브젝트 아이콘들, 제2 다수의 오브젝트 아이콘들, 및 제3 다수의 오브젝트 아이콘들 중 적어도 하나의 사이에 흐르도록 라우팅됨으로써, 데이터가 제1,제2 및 제3 프로세싱 구성에 걸쳐서 그리고 이들 사이에 통과되도록 한다. 데이터 흐름 경로들은 또한 상술된 절차에 따라서 필요에 따라 분포될 수 있다. 현재 완성되는 이들 프로세싱 구성들의 생성은 상술 된 방법론들에 의해 수행된다.
도33에 도시된 바와 같이, 오브젝트 아이콘들은 캔버스 상의 여러 방향들로 이동될 수 있다. 데이터 흐름 경로들은 아이콘들이 이동될 때 수정되지 않는다. 데이터 흐름 경로들은 새로운 방향을 토대로 간단히 다시 드로잉된다. 각 프로세싱 구성의 실행 경로들은 다른 프로세싱 구성의 실행 경로와 자동적으로 상호작용하지 않는다. 그러므로, 도33에 도시된 바와 같이, 제3 프로세싱 구성의 오브젝트 아이콘들은 캔버스의 최상부로 이동된다. 제3 프로세싱 구성의 프로세서로부터 실행 경로는 제3 프로세싱 구성의 최좌측 오브젝트 아이콘을 따라고 제1 및 제2 프로세싱 구성들의 다른 실행 경로와 자동적으로 상호작용하지 않는다.
도34는 캔버스 내의 오브젝트 아이콘 변경 방향들의 또 다른 예이다. 특히, 제2 프로세싱 구성의 오브젝트 아이콘(플로우트 감산 2)은 캔버스 상의 여러 방향으로 이동된다. 또 다시, 데이터 흐름 경로들은 변경되지 않고 오브젝트 아이콘의 새로운 방향을 토대로 간단히 다시 드로잉된다. 이 도면은 데이터 흐름 경로들이 좌에서 우로, 우에서 좌로, 최상부에서 최하부 등으로 데이터를 통과할 수 있다는 것을 명백하게 도시한다. 그러나, 우에서 좌로 데이터를 통과시키는 데이터 흐름 경로들이 존재한다. 상술된 바와 같이, 실행 경로들은 좌에서 우로 진행한다. 그러므로, 데이터 접속들이 실행 경로에서 나중에 있는 오브젝트 아이콘들로부터 이루어질 때, 지연이 발생된다. 그러므로, 데이터 흐름 경로가 데이터를 좌에서 우로 통과시키도록 오브젝트 아이콘들을 이동시키는 것이 데이터 경로에서 지연을 초기화하는 한 가지 수단일 수 있다. 도34의 본 예에서, 단일 지연은 프로세싱 시스템 의 반복적인 실행에서 발생되는데, 그 이유는 플로우트 감산 2 아이콘이 제2 프로세싱 구성의 실행 경로에서 나중 위치에서 지향되기 때문에 파워 2 아이콘을 위한 데이터가 수신되지 않기 때문이다.
더욱 상세하게 설명된 바와 같이, 제2 프로세싱 구성의 실행 경로들은 이동되는 오브젝트 아이콘이 이미 최좌측 아이콘이기 때문에 제2 프로세싱 구성의 실행 경로들은 재라우팅된다. 그러므로, 제2 프로세싱 구성의 프로세서를 위한 실행 경로는 새로운 최좌측 오브젝트 아이콘(파워 2)로 재라우팅된다. 이동된 오브젝트 아이콘으로의 실행 경로는 현재 오브젝트 아이콘(평균 2)으로부터 이동된 오브젝트 아이콘의 좌측(플로우트 감산 2)으로 라우팅하도록 재라우팅된다. 또 다시, 제1 및 제3 프로세싱 구성들의 실행 경로들은 영향받지 않는다.
도35는 본 발명의 또한 다른 특징을 도시하는데, 이 도면에서 멀티프로세싱 환경에서 실행 경로들은 수동으로 재라우팅될 수 있다. 특히, 제1 프로세싱 구성으로부터 제1 다수의 오브젝트 아이콘들 중 한 아이콘은 재라우팅된 오브젝트 아이콘과 관련된 제1 다수의 실행 경로들을 자동적으로 제거하고 재라우팅된 오브젝트 아이콘에 제2 다수의 실행 경로들을 자동적으로 라우팅함으로써 제2 프로세싱 구성으로 재라우팅된다. 도35에 도시된 에에서, 제1 프로세싱 구성의 실행 경로들의 사전 파트인 신호 발생기 1은 제2 프로세싱 구성의 실행 경로들의 파트가 되도록 이동된다. 이 동작은 이동될 오브젝트 아이콘(이 예에서 신호 발생기 1)을 강조함으로써 수행된다. 그 후, 툴바의 사용을 통해서 실행 경로를 변경하라. 구(old) 구성(제1 프로세싱 구성) 및 신 구성(제2 프로세싱 구성) 둘 다의 실행 경로들은 자동적으로 재라우팅된다. 데이터 흐름 경로들은 영향받지 않는다. 이 유형의 변경은 사용자에게 실제 유용할 수 있다. 특히, 계산 부담이 현재 2개의 DSPs에 걸쳐서 더욱 균등하게 확산될 수 있다.
도36은 도35에 도시된 바와 같은 본 발명의 유사한 특징을 도시한 것이다. 그러나, 오브젝트 아이콘은 제1 프로세싱 구성으로부터 제3 프로세싱 구성으로 이동된다. 그러므로, 재라우팅된 오브젝트 아이콘과 관련된 제1 다수의 실행 경로들은 자동적으로 제거되고 제3 다수의 실행 경로들은 재라우팅된 오브젝트 아이콘으로 자동적으로 라우팅된다. 도36에 도시된 예에서, 제1 프로세싱 구성의 실행 경로들의 이전 파트인 신호 발생기 1는 현재 제3 프로세싱 구성의 실행 경로들의 파트가 되도록 이동된다. 또 다시, 데이터 흐름 경로들은 영향받지 않는다.
각종 프로세싱 구성의 안과 밖으로 오브젝트 아이콘들의 이동은 극히 다재다능한 도구이고 프로세서들의 기계어에 의해 감춰지지 않는다. 특히, 제1 프로세서는 제1 기계어를 포함할 수 있고 제2 프로세서는 제1 기계어와 다른 제2 기계어를 포함할 수 있다. 상이한 기계어들 하에서 동작하는 프로세싱 구성들로부터 오브젝트 아이콘들의 재라우팅은 무절결이고 상이한 기계어들에 의해 영향받지 않는다.
도36A를 참조하면, 동기화 오브젝트는 제1 프로세싱 구성의 아이콘들 간의 실행 경로 내로 그리고 제2 프로세싱 구성의 아이콘들 간의 실행 경로 내로 삽입되어 삽입 지점에서 이들 실행 경로들을 동기화시킨다. 그러므로, 이들 프로세싱 구성들 각각에 걸쳐서 데이터의 프로세싱은 삽입 지점들에서 실시간으로 동기화될 것이다. 동기화 오브젝트는 멀티프로세싱 환경들에서 기능 오브젝트들의 실행을 정렬 시키는 간단한 그래픽 수단을 제공한다. 인지된 바와 같이, 상이한 프로세서들 및/또는 상이한 이벤트들은 상이한 레이트들을 실행될 수 있다. 동기화 오브젝트는 사용자로 하여금 특히 다수의 프로세서들의 다수의 실행 경로들에 동기화 포인트들을 강제하도록 한다. 특히 실행 경로의 실행이 동기화 오브젝트에 도달할 때, 이 실행은 모든 동기화된 실행 경로들이 이들 각각의 동기화 오브젝트들을 도달할 때까지 대기할 것이다. 이때, 모든 실행 경로들이 진행하도록 허용된다.
도37 내지 46을 참조하면, 본 발명의 비쥬얼 인스트루먼트 특징이 상세하게 논의될 것이다. 비쥬얼 인스트루먼트들은 컴퓨터의 모니터상에 나타나고 사용자가 동작 동안 프로세싱 시스템과 사용하도록 하는 제어들 및 표시자들을 사용자가 생성하도록 한다. 도37에 도시된 바와 같이, 컴퓨터는 또한 인스트루먼트 캔버스를 포함한다. 인스트루먼트 캔버스는 구성 캔버스 위에 배치된다. 임의의 시간에서 개방되는 다수의 인스트루먼트 캔버스일 수 있다는 것을 인지하여야 한다. 도38에 도시된 바와 같이, 프로세싱 시스템은 적어도 하나의 비쥬얼 인스트루먼트를 포함한다. 비쥬얼 인스트루먼트들은 툴박스 페인에서 비쥬얼 인스트루먼츠 폴더하에서 발견되는 것이 바람직하다.
적어도 하나의 비쥬얼 인스트루먼트는 도39에 도시된 바와 같은 인스트루먼트 캔버스 상으로 배치될 수 있다. 특히, 비쥬얼 인스트루먼트를 위한 심볼은 툴박스 페인에 위치디고 복제들이 비쥬얼 인스트루먼트를 규정하기 위하여 인스트루먼트 캔버스로 드래그되고 드롭된다. 비쥬얼 인스트루먼트들은 인스트루먼트 캔버스 내에서 위치되고 원하는 대로 재크기화될 수 있다. 도시된 예에서, 인스트루먼트 캔버스는 Knob 및 미터를 포함한다.
도40은 구성 캔버스 상으로 배치되는 기능 오브젝트와 관련된 적어도 하나의 오브젝트 아이콘을 갖는 또 다른 구성 캔버스를 구성한다. 프로세서와 관련된 하나 이상의 프로세서 아이콘들은 또한 캔버스 상으로 배치된다. 하나 이상의 실행 경로들은 오브젝트 아이콘들이 프로세싱 구성을 규정하기 위하여 구성 캔버스 상에 배치될 때 프로세서들 아이콘들 및 오브젝트(들) 간에서 자동적으로 라우팅된다. 데이터 흐름 경로들은 또한 구성 캔버스 상에 프로세서 아이콘들 및 오브젝트 아이콘들 간에 생성된다.
도39 내지 도41을 참조하면, 비쥬얼 인스트루먼트와 관련된 인스트루먼트 아이콘은 비쥬얼 인스트루먼트가 인스트루먼트 캔버스 상에 배치될 때 비할당된 페인 또는 일시적 페인 상으로 자동적으로 배치된다. 그 후, 인스트루먼트 아이콘은 일시적 페인으로부터 이동되어 인스트루먼트 아이콘을 구성 캔버스 상으로 배치된다. 이 예에서, Knob 및 Meter와 관련된 인스트루먼트 아이콘들은 Knob 및 Meter가 인스트루먼트 캔버스 상으로 배치될 때 비할당된 페인 또는 일시적 페인 상으로 자동적으로 배치된다. 도40에 도시된 바와 같이, Knob은 Meter가 비할당된 페인 또는 일시적 페인에 유지되는 동안 구성 캔버스로 이동된다. 특히, Knob은 비할당된 페인으로부터 구성 캔버스로 드래그되고 드롭된다. 도41은 Knob 및 Meter는 비할당된 페인 또는 일시적 페인이 다시 비워있도록 구성 캔버스로 이동되는 것을 도시한다.
도42에 도시된 바와 같이, 데이터 흐름 경로들은 구성 캔버스 상에 프로세싱 구성 내에서 오브젝트 아이콘들 중 적어도 하나와 인스트루먼트 아이콘들 간에서 생성됨으로써, 상기 인스트루먼트 캔버스 상에 비쥬얼 인스트루먼트들이 구성 캔버스 상에 프로세싱 구성에 동작적으로 접속되도록 한다. 이 프로세싱 구성이 현재 완성된다.
도43에 도시된 바와 같이, 프로세싱 구성은 동작됨으로써, 기능 오브젝트들이 아이콘들 간에서 실행 경로들의 순서에서 관련된 기능들을 수행하도록 하고 데이터는 아이콘들 간의 데이터 흐름 경로를 따라서 통과되도록 한다. 비쥬얼 인스트루먼트는 실시간으로 데이터 흐름 경로들을 따라서 통과하는 데이터 값들을 자동적으로 변경하도록 조정될 수 있다.
비쥬얼 인스트루먼트는 인스트루먼트 아이콘에 링크됨으로써, 명령은 구성 캔버스 상에 인스트루먼트 아이콘 및 인스트루먼트 캔버스 상에 비쥬얼 인스트루먼트 간에서 스위칭하도록 초기화되도록 한다. 이 명령 특징은 사용자로 하여금 프로세싱 구성의 각종 뷰들 및 파트들 간에서 신속하게 이동하도록 도움을 주는 네비게이션이다. 구성이 크고 복잡하기 때문에, 인스트루먼트들의 이들의 접속성을 계속해서 추적하는 것은 곤란하다. 이와 같이, 이 명령 특징은 사용자에게 큰 생산성 및 품질을 지원함으로써, 사용자가 인스트루먼트 아이콘으로부터 비쥬얼 인스트루먼트를 신속하게 탐색 또는 그 반대로 탐색할 수 있도록 한다.
도44 내지 도46을 참조하면, 구성 캔버스상에 명령 아이콘들 및 인스트루먼트 캔버스 상에 비쥬얼 인스트루먼튿르을 배치하는 대안적인 수단이 도시되어 있다. 프로세싱 구성의 생성은 상술된 바와 동일하고 도42에 도시되어 있다. 이 차이는 인스트루먼트 아이콘과 비쥬얼 인스트루먼트의 배치 및 비할당된 페인의 왕복 특성(reciprocal nature)에 있다. 이 실시예에서, 적어도 하나의 인스트루먼트 아이콘은 우선 구성 캔버스 상으로 배치된다. 특히, 인스트루먼트 아이콘과 관련된 심볼은 툴박스 페인으로부터 구성 캔버스 상으로 직접 드래그된다. 그 후, 인스트루먼트 아이콘과 관련된 비쥬얼 인스트루먼트는 인스트루먼트 아이콘이 구성 캔버스 상으로 배치될 때 비할당된 페인 또는 일시적 페인 상으로 자동적으로 배치되는데, 도45를 참조하라. 데이터 흐름 경로는 인스트루먼트 아이콘 및 구성 캔버스 상의 프로세싱 구성 내에서 오브젝트 아이콘들 중 적어도 한 아이콘 간에서 생성된다. 도46에 도시된 바와 같이, 비쥬얼 인스트루먼트는 비할당된 페인으로부터 일시적 페인으로 이동되어, 구성 캔버스 상의 프로세싱 구성에 동작적으로 접속되는 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트를 갖는 인스트루먼트 캔버스 상으로 비쥬얼 인스트루먼트를 배치시킨다. 이 실시예의 비쥬얼 인스트루먼트는 또한 인스트루먼트 아이콘에 링크됨으로써, 명령이 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트 및 구성 캔버스 상의 인스트루먼트 아이콘 간에 스위칭을 위하여 제공되도록 한다. 사용자는 인스트루먼트 아이콘들 및 비쥬얼 인스트루먼트들을 각각의 캔버스 상에 배치시키는 방법 중 하나를 사용하는데 자유롭다.
또 다른 완성된 프로세싱 구성이 도47 내지 도49에 도시된다. 이 프로세싱 구성은 상술된 바와 동일한 방식으로 생성된다. 도48 및 도49를 비교하면 재지향동안 동적으로 변경된 실행 경로들로 또 다른 오브젝트 아이콘에 대해 한 오브젝트 아이콘을 지향시키는 또 다른 예를 도시한다. 이 예에서, 플로우트 가산 아이콘은 플로우트 감산 아이콘 및 플로우트 승산 아이콘에 대해서 이동된다. 특성 페인은 또한 프로세싱 구성 다음에 도시된다. 플로우트 가산 아이콘이 이동될 때, 출력들은 자동적으로 갱신된다. 특히, 다음 코드는 플로우트 감산(도48)으로부터 플로우트 승산(도49)로 변경된다. 유사하게, 다음 데이터는 플로우트 감산(도48)으로부터 플로우트 승산(도49)로 변경된다. 이들 출력들은 코드 및 데이터 포인터들로서 공지되고 특히 미국 특허 출원 09/692,852 및 09/982,601dp 더욱 상세하게 설명되어 있으며, 이들 특허의 개시내용이 본원에 참조되어 있다.
또한, 본 발명의 부가적인 특징들이 도50 내지 도53에 도시된다. 프로세싱 구성은 사용자 오브젝트들을 이용하여 도50에서 생성된다. 사용자 오브젝트들은 특정 유형의 기능 오브젝트이고 사용자가 네비게이션 계층을 생성하도록 설계된다. 특히, 사용자 오브젝트들은 다른 오브젝트 아이콘들의 수집들이다. 사용자 오브젝트들은 원하는 대로 세이브되고 재사용될 수 있다. 도50의 사용자 오브젝트 1을 이중 클릭 온하면 도51에 도시된 바와 같은 서브 구성을 드러낸다. 입력 및 출력 심볼들은 데이터 흐름의 방향을 나타내도록 사용된다. 도51의 서브 구성 내에는 사용자 오브젝트 2가 존재한다. 사용자 오브젝트 2를 이중 클릭 온하면 도52에 도시된 바와 같은 서브-서브 구성을 드러낸다. 이는 최저 레벨의 계층이다. 사용자 오브젝트들의 수는 툴바에서 리스트된다. 도53에 도시된 바와 같이, 프로젝트 익스플로러 페인은 프로세싱 구성 다음에 개방된다. 프로젝트 익스플로러는 사용자를 지원하기 위한 현재 구성의 각종 계층을 도시한다. 상술된 바와 같이, 프로젝트 익스플로러 페인은 아이콘이 부가, 이동, 대체, 삭제, 등이 될 때마다 자동적으로 재생된다. 프로젝트 익스플로러는 프로젝트 구성에 대한 중요한 항해 툴 또는 인덱스이다. 사 용자는 구성에 걸쳐서 아이콘들을 클릭 온할 수 있고, 프로젝트 익스플로러는 계층에서 아이콘의 위치를 반영한다. 또한, 사용자는 프로젝트 익스플로러 트리 상에 심볼 또는 다른 오브젝트를 클릭 온할 수 있고, 캔버스는 선택된 오브젝트 아이콘을 디스플레이하도록 자동적으로 스위치할 것이다.
도54는 프로세싱 시스템의 유압식 서보제어기 구현방식을 도시한 것이다. 특히, 프로젝트 구성은 폐루프 서보제어기를 위하여 생성된다. 프로세싱 구성의 생성은 극히 복잡하고 본 발명의 이용은 이들 구성들의 프로그래밍 및 동작을 크게 지원한다는 것을 인지하여야 한다.
본 발명은 예시적으로 방식으로 설명되었고, 사용되는 용어는 제한하는 것이 아니라 설명을 위한 것이다. 당업자가 알 수 있는 바와 같이 본 발명의 많은 수정들 및 변형들이 상기 개시 내용에 비추어 행할 수 있다. 그러므로, 달리 규정되지 않는 한 첨부된 청구범위 내에서 본 발명은 실시될 수 있다는 것을 이해하여야 한다.

Claims (26)

  1. 구성 캔버스, 인스트루먼트 캔버스, 및 일시적 페인을 갖는 컴퓨터를 이용하는 프로세싱 시스템을 프로그램하는 방법으로서, 상기 프로세싱 시스템은 적어도 하나의 프로세서, 특정 기능을 수행하기 위한 명령들을 포함하는 기능 오브젝트 각각을 갖는 다수의 기능 오브젝트 및 적어도 하나의 비쥬얼 인스트루먼트를 포함하는 프로세싱 시스템을 프로그램하는 방법에 있어서,
    다수의 기능 오브젝트들과 각각 관련된 다수의 오브젝트 아이콘들을 다수의 상이한 위치들에 있는 구성 캔버스상으로 배치하는 단계;
    프로세싱 구성을 규정하기 위하여 상기 다수의 오브젝트 아이콘들이 상기 구성 캔버스 상에 배치될 때 상기 다수의 오브젝트 아이콘들 각각 사이에 다수의 실행 경로들를 자동적으로 라우팅하는 단계;
    상기 구성 캔버스 상에 상기 오브젝트 아이콘들 간에 데이터 흐름 경로들을 생성하는 단계;
    적어도 하나의 비쥬얼 인스트루먼트를 상기 인스트루먼트 캔버스 상으로 배치하는 단계;
    상기 비쥬얼 인스트루먼트가 상기 인스트루먼트 캔버스 상으로 배치될 때 상기 비쥬얼 인스트루먼트와 관련된 인스트루먼트 아이콘을 상기 일시적 페인 상으로 자동적으로 배치하는 단계;
    상기 인스트루먼 아이콘을 상기 구성 캔버스 상으로 배치하기 위하여 상기 일시적 페인으로부터 상기 인스트루먼트 아이콘을 이동시키는 단계; 및,
    상기 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트가 상기 구성 캔버스 상의 프로세싱 구성에 동자적으로 접속되도록 상기 구성 캔버스 상의 상기 프로세싱 구성 내에서 상기 오브제트 아이콘들 중 적어도 하나 및 상기 인스트루먼트 아이콘 간의 데이터 흐름 경로를 생성하는 단계를 포함하는 프로세싱 시스템 프로그램 방법.
  2. 제1항에 있어서, 상기 기능 오브젝트들이 상기 아이콘들 간의 실행 경로들의 순서로 상기 관련된 기능을 수행하도록 하고 데이터가 상기 아이콘들 간의 데이타 흐름 경로를 따라서 통과하도록 상기 프로세싱 구성을 동작시키는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  3. 제2항에 있어서, 상기 오브젝트 아이콘들 중 적어도 한 아이콘을 여러 위치로 이동시키는 단계 및 상기 실행 경로들이 실시간으로 재라우팅되도록 상기 프로세싱 시스템이 동작하는 동안 상기 캔버스 상의 상기 오브젝트 아이콘의 상기 이동된 방향을 토대로 상기 실행 경로들을 자동적으로 재라우팅하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  4. 제3항에 있어서, 상기 프로세싱 시스템을 동작시키는 단계는 상기 캔버스 상에서 바라볼 때 좌에서 우의 순서로 상기 아이콘들 간의 상기 실행 경로들을 동작 시키는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  5. 제1항에 있어서, 상기 다수의 오브젝트 아이콘들 간의 다수의 실행 경로들을 자동적으로 라우팅시키는 단계는 상기 오브젝트 아이콘들의 상대적인 방향들을 토대로 상기 다수의 오브젝트 아이콘들 간에 상기 다수의 실행 경로들을 자동적으로 라우팅시키는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  6. 제5항에 있어서, 상기 다수의 오브젝트 아이콘들 간의 다수의 실행 경로들을 자동적으로 라우팅시키는 단계는 상기 오브젝트 아이콘들의 상대적인 좌에서 우 방향들을 토대로 상기 캔버스 상에서 바라볼 때 좌에서 우로 상기 다수의 오브젝트 아이콘들 간의 상기 다수의 실행 경로들을 자동적으로 라우팅시키는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  7. 제5항에 있어서, 상기 오브젝트 아이콘들 중 적어도 한 아이콘을 여러 위치로 이동시키는 단계 및 상기 캔버스 상의 오브젝트 아이콘의 이동된 방향을 토대로 상기 실행 경로들을 자동적으로 재라우팅시키는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  8. 제1항에 있어서, 실시간으로 상기 데이터 흐름 경로들을 따라서 통과하는 데이터 값들을 자동적으로 변경시키도록 비쥬얼 인스트루먼트를 조정하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  9. 제1항에 있어서, 상기 인스트루먼트 아이콘에 비쥬얼 인스트루먼트를 링킹시키는 단계 및 상기 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트 및 상기 구성 캔버스 상의 인스트루먼트 아이콘 간의 스위칭을 위한 명령을 제공하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  10. 제1항에 있어서, 상기 오브젝트 아이콘들 간에 데이터 흐름 경로를 생성하는 단계는 상기 실행 경로들 및 데이터 흐름 경로가 서로로부터 독립적이 되도록 상기 캔버스 상의 상기 실행 경로들의 라우팅들과 별도로 상기 캔버스 상의 상기 오브젝트 아이콘들 간에 데이터 흐름 경로를 생성하는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  11. 제1항에 있어서, 상기 프로세서와 관련된 프로세서 아이콘을 상기 캔버스 상으로 배치하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  12. 제11항에 있어서, 상기 아이콘들의 방향을 토대로 상기 프로세서 아이콘으로부터 상기 오브젝트 아이콘들 중 한 아이콘으제스템 프로그램 방법.
  13. 제12항에 있어서, 상기 프로세서 아이콘으로부터 상기 오브젝트 아이콘들 중 한 아이콘으로 상기 실행 경로를 라우팅하는 단계는 캔버스 상에서 좌에서 우로 바라볼 때 상기 오브젝트 아이콘들의 최좌측 위치를 토대로 상기 프로세서 아이콘으로부터 상기 오브젝트 아이콘들 중 한 아이콘으로 실행 경로를 자동적으로 라우팅하는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  14. 구성 캔버스, 인스트루먼트 캔버스, 및 일시적 페인을 갖는 컴퓨터를 이용하는 프로세싱 시스템을 프로그램하는 방법으로서, 상기 프로세싱 시스템은 적어도 하나의 프로세서, 특정 기능을 수행하기 위한 명령들을 포함하는 기능 오브젝트 각각을 갖는 다수의 기능 오브젝트들 및 적어도 하나의 비쥬얼 인스트루먼트를 포함하는 프로세싱 시스템을 프로그램하는 방법에 있어서,
    다수의 기능 오브젝트들과 각각 관련된 다수의 오브젝트 아이콘들을 다수의 상이한 위치들에 있는 구성 캔버스상으로 배치하는 단계;
    프로세싱 구성을 규정하기 위하여 상기 다수의 오브젝트 아이콘들이 상기 구성 캔버스 상에 배치될 때 상기 다수의 오브젝트 아이콘들 각각 사이에 다수의 실행 경로들를 자동적으로 라우팅하는 단계;
    상기 구성 캔버스 상의 상기 오브젝트 아이콘들 간에 데이터 흐름 경로들을 생성하는 단계;
    적어도 하나의 인스트루먼트 아이콘을 상기 구성 캔버스 상으로 배치하는 단계;
    상기 인스트루먼트 아이콘이 상기 구성 캔버스 상으로 배치될 때 상기 인스 트루먼트 아이콘과 관련된 상기 비쥬얼 인스트루먼트를 상기 일시적 페인 상으로 자동적으로 배치하는 단계;
    상기 구성 캔버스 상의 상기 프로세싱 구성 내에서 상기 오브젝트 아이콘들 중 적어도 한 아이콘 및 상기 인스트루먼트 아이콘 간에 데이터 흐름 경로를 생성하는 단계; 및,
    상기 구성 캔버스 상의 프로세싱 구성에 동작적으로 접속되는 상기 인스트루먼트 캔버스 상의 상기 비쥬얼 인스트루먼트를 갖는 상기 인스트루먼트 캔버스 상으로 상기 비쥬얼 인스트루먼트를 배치하도록 상기 일시적 페인으로부터 비쥬얼 인스트루먼트를 이동시키는 단계를 포함하는 프로세싱 시스템 프로그램 방법.
  15. 제14항에 있어서, 상기 기능 오브젝트들이 상기 아이콘들 간의 실행 경로들의 순서로 상기 관련된 기능들을 수행하고 데이터가 상기 아이콘들 간의 데이트 흐름 경로를 따라서 통과되도록 상기 프로세싱 구성을 동작시키는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  16. 제15항에 있어서, 상기 오브젝트 아이콘들 중 적어도 한 아이콘을 여러 위치로 이동시키는 단계 및 상기 실행 경로들이 실시간으로 재라우팅되도록 상기 프로세싱 시스템이 동작하는 동안 상기 캔버스 상의 상기 오브젝트 아이콘의 상기 이동된 방향을 토대로 상기 실행 경로들을 자동적으로 재라우팅하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  17. 제16항에 있어서, 상기 프로세싱 시스템을 동작시키는 단계는 상기 캔버스 상에서 바라볼 때 좌에서 우의 순서로 상기 아이콘들 간의 상기 실행 경로들을 동작시키는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  18. 제14항에 있어서, 상기 다수의 오브젝트 아이콘들 간의 다수의 실행 경로들을 자동적으로 라우팅시키는 단계는 상기 오브젝트 아이콘들의 상대적인 방향들을 토대로 상기 다수의 오브젝트 아이콘들 간에 상기 다수의 실행 경로들을 자동적으로 라우팅시키는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  19. 제18항에 있어서, 상기 다수의 오브젝트 아이콘들 간의 다수의 실행 경로들을 자동적으로 라우팅시키는 단계는 상기 오브젝트 아이콘들의 상대적인 좌에서 우 방향들을 토대로 상기 캔버스 상에서 바라볼 때 좌에서 우로 상기 다수의 오브젝트 아이콘들 간의 상기 다수의 실행 경로들을 자동적으로 라우팅시키는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  20. 제18항에 있어서, 상기 오브젝트 아이콘들 중 적어도 한 아이콘을 여러 위치로 이동시키는 단계 및 상기 캔버스 상의 오브젝트 아이콘의 이동된 방향을 토대로 상기 실행 경로들을 자동적으로 재라우팅시키는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  21. 제14항에 있어서, 실시간으로 상기 데이터 흐름 경로들을 따라서 통과하는 데이터 값들을 자동적으로 변경시키도록 비쥬얼 인스트루먼트를 조정하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  22. 제14항에 있어서, 상기 인스트루먼트 아이콘에 비쥬얼 인스트루먼트를 링킹시키는 단계 및 상기 인스트루먼트 캔버스 상의 비쥬얼 인스트루먼트 및 상기 구성 캔버스 상의 인스트루먼트 아이콘 간의 스위칭을 위한 명령을 제공하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  23. 제14항에 있어서, 상기 오브젝트 아이콘들 간에 데이터 흐름 경로를 생성하는 단계는 상기 실행 경로들 및 데이터 흐름 경로가 서로로부터 독립적이 되도록 상기 캔버스 상의 상기 실행 경로들의 라우팅들과 별도로 상기 캔버스 상의 상기 오브젝트 아이콘들 간에 데이터 흐름 경로를 생성하는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
  24. 제14항에 있어서, 상기 프로세서와 관련된 프로세서 아이콘을 상기 캔버스 상으로 배치하는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  25. 제24항에 있어서, 상기 아이콘들의 방향을 토대로 상기 프로세서 아이콘으로 부터 상기 오브젝트 아이콘들 중 한 아이콘으로 실행 경로를 자동적으로 라우팅시키는 단계를 더 포함하는 프로세싱 시스템 프로그램 방법.
  26. 제25항에 있어서, 상기 프로세서 아이콘으로부터 상기 오브젝트 아이콘들 중 한 아이콘으로 상기 실행 경로를 라우팅하는 단계는 캔버스 상에서 좌에서 우로 바라볼 때 상기 오브젝트 아이콘들의 최좌측 위치를 토대로 상기 프로세서 아이콘으로부터 상기 오브젝트 아이콘들 중 한 아이콘으로 실행 경로를 자동적으로 라우팅하는 것으로 또한 규정되는 프로세싱 시스템 프로그램 방법.
KR1020067017290A 2004-02-25 2005-02-25 프로세싱 시스템을 프로그래밍하는 방법 KR101169702B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US54758804P 2004-02-25 2004-02-25
US60/547,588 2004-02-25
PCT/US2005/006204 WO2005083533A1 (en) 2004-02-25 2005-02-25 Method of programming a processing system

Publications (2)

Publication Number Publication Date
KR20060134087A true KR20060134087A (ko) 2006-12-27
KR101169702B1 KR101169702B1 (ko) 2012-08-03

Family

ID=34910919

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067017290A KR101169702B1 (ko) 2004-02-25 2005-02-25 프로세싱 시스템을 프로그래밍하는 방법

Country Status (7)

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

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
US10678225B2 (en) 2013-03-04 2020-06-09 Fisher-Rosemount Systems, Inc. Data analytic services for distributed industrial performance monitoring
US10909137B2 (en) 2014-10-06 2021-02-02 Fisher-Rosemount Systems, Inc. Streaming data for analytics in process control systems
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
US10649424B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9558220B2 (en) 2013-03-04 2017-01-31 Fisher-Rosemount Systems, Inc. Big data in process control systems
US10282676B2 (en) 2014-10-06 2019-05-07 Fisher-Rosemount Systems, Inc. Automatic signal processing-based learning in a process plant
US9823626B2 (en) 2014-10-06 2017-11-21 Fisher-Rosemount Systems, Inc. Regional big data in process control systems
US9665088B2 (en) 2014-01-31 2017-05-30 Fisher-Rosemount Systems, Inc. Managing big data in process control systems
US10649449B2 (en) 2013-03-04 2020-05-12 Fisher-Rosemount Systems, Inc. Distributed industrial performance monitoring and analytics
US9804588B2 (en) 2014-03-14 2017-10-31 Fisher-Rosemount Systems, Inc. Determining associations and alignments of process elements and measurements in a process
US9397836B2 (en) 2014-08-11 2016-07-19 Fisher-Rosemount Systems, Inc. Securing devices to process control systems
US10866952B2 (en) 2013-03-04 2020-12-15 Fisher-Rosemount Systems, Inc. Source-independent queries in distributed industrial system
EP3200131A1 (en) * 2013-03-15 2017-08-02 Fisher-Rosemount Systems, Inc. Data modeling studio
US9678484B2 (en) 2013-03-15 2017-06-13 Fisher-Rosemount Systems, Inc. Method and apparatus for seamless state transfer between user interface devices in a mobile control room
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
USD810101S1 (en) 2016-12-22 2018-02-13 Palantir Technologies, Inc. Display screen or portion thereof with graphical user interface
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

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4914568A (en) * 1986-10-24 1990-04-03 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
US4901221A (en) * 1986-04-14 1990-02-13 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 対話型アニメーション作成・再生方法および装置
WO1998040817A1 (fr) * 1997-03-11 1998-09-17 Mitsubishi Denki Kabushiki Kaisha Methode et systeme de programmation visuelle
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
US7302675B2 (en) * 2001-08-14 2007-11-27 National Instruments Corporation System and method for analyzing a graphical program using debugging graphical programs
US7062718B2 (en) * 2001-08-14 2006-06-13 National Instruments Corporation Configuration diagram which graphically displays program relationship
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
KR100763339B1 (ko) * 2001-10-17 2007-10-04 벱테크 인코포레이티드 운영 시스템 전반에 대한 통신 방법
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
EP1719026A1 (en) 2006-11-08
KR101169702B1 (ko) 2012-08-03
US20050278059A1 (en) 2005-12-15
JP2007524176A (ja) 2007-08-23
CN1934511A (zh) 2007-03-21
EP1719026B1 (en) 2012-12-26
JP4995071B2 (ja) 2012-08-08
CN101976051A (zh) 2011-02-16
WO2005083533A1 (en) 2005-09-09
MXPA06009769A (es) 2007-04-23
US7992093B2 (en) 2011-08-02

Similar Documents

Publication Publication Date Title
KR101169702B1 (ko) 프로세싱 시스템을 프로그래밍하는 방법
JP6170212B2 (ja) プロセス制御システム内の操作者インターフェースディスプレイのためのアニメーションおよびイベントの構成
US7409679B2 (en) System and method for computer-aided graph-based dependency analysis
North et al. Applications of graph visualization
Foley et al. An object based graphical user interface for power systems
Vlissides et al. Unidraw: A framework for building domain-specific graphical editors
CA1285655C (en) Graphical system for modelling a process and associated method
US20030067481A1 (en) System and method for computer-aided graph-based dependency analysis with integrated documentation
US20070266329A1 (en) Graphical state machine based programming for a graphical user interface
WO2006055720A1 (en) Dynamic generation of formatted user interfaces in software environments
US10417355B1 (en) Systems and methods for constructing and modifying computer models
Kasyanov Methods and tools for structural information visualization
US9170783B1 (en) Class creation assistant for textual programming languages
Koike et al. VRCS: Integrating version control and module management using interactive three-dimensional graphics
Toyoda et al. Supporting design patterns in a visual parallel data-flow programming environment
Haase Symbiosis of virtual reality and scientific visualization system
Kacsuk et al. The GRED graphical editor for the GRADE parallel program development environment
Homrighausen et al. Tool support for the model-based development of interactive applications-The Fluid approach
DeSoi et al. A graphical environment for user-interface design and development
Nagar et al. XCOS
Korhonen et al. Algorithm simulation–a novel way to specify algorithm animations
Harb Web-based Circuit Design Simulation Package For Solving Electrical Eng
BLISS VITUS J. LEUNG, MICHAEL B. DILLENCOURT, AND
Fisher et al. Tools for building image processing and graphics applications in a workstation environment
Abrahám et al. CUBE3-Qt—User Manual

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180712

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 8