KR20130040254A - 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램을 기록한 컴퓨터 판독 가능 기록매체, 및 제어 프로그램 생성 방법 - Google Patents

제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램을 기록한 컴퓨터 판독 가능 기록매체, 및 제어 프로그램 생성 방법 Download PDF

Info

Publication number
KR20130040254A
KR20130040254A KR1020137004242A KR20137004242A KR20130040254A KR 20130040254 A KR20130040254 A KR 20130040254A KR 1020137004242 A KR1020137004242 A KR 1020137004242A KR 20137004242 A KR20137004242 A KR 20137004242A KR 20130040254 A KR20130040254 A KR 20130040254A
Authority
KR
South Korea
Prior art keywords
program
information
control
pattern
control program
Prior art date
Application number
KR1020137004242A
Other languages
English (en)
Other versions
KR101400657B1 (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 KR20130040254A publication Critical patent/KR20130040254A/ko
Application granted granted Critical
Publication of KR101400657B1 publication Critical patent/KR101400657B1/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
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • 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
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/23008Computer aided software engineering, program generation, case tools, CASE
    • 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/23261Use control template library
    • 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/26Pc applications
    • G05B2219/2614HVAC, heating, ventillation, climate control

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

제어 프로그램 생성 장치(100)는, 제어 모듈을 복수 기억하는 제어 프로그램 재이용 라이브러리(130)와, 아키텍처 패턴을 나타내는 패턴 정보를 복수 기억하는 아키텍처 패턴 라이브러리(120)를 구비한다. 또한, 제어 프로그램 생성 장치(100)는, 아키텍처 패턴 라이브러리(120)로부터 선택된 아키텍처 패턴과 당해 아키텍처 패턴을 갖는 제어 프로그램의 프로그램 구조와 제어 모듈의 실행 시간과 시간적 제한을 대응지어서 표시한다. 또한, 제어 프로그램 생성 장치(100)는, 프로그램 구조에 의거하여 제어 프로그램 재이용 라이브러리(130)의 제어 모듈을 연결한다.

Description

제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램, 및 제어 프로그램 생성 방법{CONTROL PROGRAM GENERATION DEVICE, CONTROL PROGRAM GENERATION PROGRAM, AND CONTROL PROGRAM GENERATION METHOD}
본 발명은, 하드웨어를 제어하는 제어 프로그램을 생성하는 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램, 및 제어 프로그램 생성 방법에 관한 것이다.
근래, 단기간에 다양한 사양의 제품을 개발하기 위해, 제품 라인 개발이 행하여지고 있다. 이 제품 라인 개발에서는, 개발하는 제품의 이용 범위를 도메인으로서 특정하고, 특정된 도메인에 속하는 다른 복수 제품에 공통된 기능을 갖는 부분을 재이용(즉, 유용(流用))함과 함께, 공통되지 않는 기능을 갖는 부분(즉, 차분(差分))에 한하여 개발을 행함으로써, 제품의 개발 효율을 향상시키고 있다.
이와 같이 개발이 끝난 소프트웨어 프로그램을 신제품의 개발에 재이용하기 위해, 소정의 전기기기에 대해 소정의 동작을 행하게 하기 위한 프로그램을 복수 기억한 기억부로부터, 당해 전기기기에 실행시키는 일련의 동작 순서에 의거하여 복수의 프로그램을 선택함과 함께, 선택한 복수의 프로그램을 연결함으로써, 당해 전기기기를 제어하는 마이크로 프로세서의 실행 프로그램을 자동 생성하는 방법이 제안되어 있다(예를 들면, 특허 문헌 1 참조).
또한, 프로그램의 설계에 이용되는 다이어그램의 작성을 지원하기 위해, 어느 프로그램의 설계에 이용된 어느 종류의 다이어그램과, 다른 프로그램의 설계에 이용된 다른 종류의 다이어그램 사이의 관계 지식에 의거하여, 다른 종류의 다이어그램 사이에서 생기는 모순을 검증하는 시스템이 제안되어 있다(예를 들면, 특허 문헌 2 참조).
또한, 생성된 제어 프로그램에 의해 제어되는 하드웨어를, 컴퓨터를 이용하여 가상적으로 형성함과 함께, 형성한 가상적인 하드웨어의 동작 타이밍과, 가상적인 하드웨어에 대해 실행시키는 제어 프로그램의 동작 타이밍을 현실의 동작 타이밍에 대응시키는 소프트웨어 실행 장치가 제안되어 있다(예를 들면, 특허 문헌 3 참조).
일본 특개평04-283802호 공보 일본 특개평07-152544호 공보 일본 특개평10-161906호 공보
그러나, 특허 문헌 1에 개시된 방법에서는, 프로그램의 기본 설계(즉, 아키텍처)에 의거하여 프로그램을 생성하고 있지 않다. 이 때문에, 이미 생성된 프로그램과 아키텍처의 패턴이 공통되는 프로그램을 작성한 경우라도, 이미 작성되고, 실제로 운용되는 등으로 신뢰성이 확보된 아키텍처 패턴을 재이용할 수가 없기 때문에, 신뢰성이 높은 프로그램을 효율 좋게 개발할 수 없었다.
또한, 특허 문헌 2에 개시된 시스템에서는, 프로그램의 구조를 기술하는 방법이 개시되어 있지 않다. 이 때문에, 프로그램의 구조를 프로그램의 설계자가 인식하는 것이 곤란하고, 프로그램 모듈 및 아키텍처의 재이용이 곤란하였다.
또한, 특허 문헌 3에 개시된 소프트웨어 실행 장치에서는, 제어 프로그램에 부과되는 시간적 제한과, 제어 프로그램을 구성하는 제어 모듈의 실행 시간을 표시할 수가 없다. 이 때문에, 어떤 제어 모듈을 재이용하여 제어 프로그램을 작성하면, 시간적 제한을 만족할 수 있는 프로그램을 생성할 수 있는지를 설계자가 인식하는 것이 곤란하고, 프로그램 모듈 및 아키텍처의 재이용이 곤란하였다.
본 발명은, 상기 실정을 감안하여 이루어진 것이고, 그 목적으로 한 점은, 프로그램 모듈 및 아키텍처를 재이용함으로써, 신뢰성이 높은 하드웨어의 제어 프로그램을 효율적으로 생성할 수 있는 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램, 및 제어 프로그램 생성 방법을 제공하는 것에 있다.
상기 목적을 달성하기 위해, 본 발명의 제어 프로그램 생성 장치는,
하드웨어의 동작을 제어하는 제어 모듈을 복수 기억하는 제어 모듈 기억 수단과,
상기 복수의 제어 모듈의 하나 이상으로 구성되는 제어 프로그램의 아키텍처에 공통된 프로그램 구조인 아키텍처 패턴을 나타내는 패턴 정보를 복수 기억하는 패턴 정보 기억 수단과,
상기 기억된 패턴 정보를 선택하는 패턴 선택 정보를 취득하는 패턴 선택 정보 취득 수단과,
상기 패턴 선택 정보로 선택된 패턴 정보로 표시되는 아키텍처 패턴을 갖는 제어 프로그램의 실행 시간에 부과되는 시간적 제한을 나타내는 제한 정보를 취득하는 제한 정보 취득 수단과,
상기 선택된 패턴 정보로 표시되는 아키텍처 패턴과, 상기 아키텍처 패턴을 갖는 제어 프로그램의 프로그램 구조와, 상기 제어 프로그램을 구성하는 제어 모듈의 실행 시간과, 상기 취득된 제한 정보로 표시되는 시간적 제한을 대응지어서 표시부에 표시시키는 표시 제어 수단과,
상기 제어 프로그램의 프로그램 구조에 대한 변경 내용을 기술하는 기술 정보를 취득하는 기술 정보 취득 수단과,
상기 취득된 기술 정보에 의거하여, 상기 제어 프로그램의 프로그램 구조를 편집하는 프로그램 편집 수단과,
상기 편집된 프로그램 구조에 의거하여 상기 제어 모듈 기억 수단에 기억된 제어 모듈을 연결함으로써, 하드웨어를 제어하는 제어 프로그램을 생성하는 프로그램 생성 수단을 구비한다.
본 발명에 관한 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램, 및 제어 프로그램 생성 방법에 의하면, 신뢰성이 높은 하드웨어의 제어 프로그램을 효율적으로 생성할 수 있다.
도 1(a)는, 본 발명의 실시 형태에 관한 제어 프로그램 생성 장치로 구성되는 시스템의 한 예를 도시하는 시스템 구성도. (b)는, 제어 프로그램 생성 장치의 한 구성례를 도시하는 하드웨어 구성도.
도 2는 제어 프로그램 생성 장치가 실행하는 제어 프로그램 생성 처리의 한 예를 도시하는 플로 차트.
도 3(a)는, 제어 프로그램 생성 장치가 갖는 기능의 한 예를 도시하는 기능 블록도. (b)는, 프로그램 편집부의 한 구성례를 도시하는 도면.
도 4(a)는, 도메인 패턴 테이블의 한 예를 도시하는 도면. (b)는, 패턴 구조 기술 테이블의 한 예를 도시하는 도면. (c)는, 구조 기술 테이블의 한 예를 도시하는 도면. (d)는, 사양 테이블의 한 예를 도시하는 도면. (e)는, 제어 모듈 테이블의 한 예를 도시하는 도면.
도 5(a)는, 편집 화면의 한 예를 도시하는 도면. (b)는, 구조 템플릿 표시 에어리어의 한 예를 도시하는 도면.
도 6은 프로그램 구조의 한 예를 도시하는 도면.
도 7은 언어 온톨로지(사양)의 한 예를 도시하는 도면.
도 8(a)는, 결합점 사양 및 제한 사양에 관해 상세히 설명하기 위한 도면. (b)는, 제어 모듈의 실행 시간의 표시예를 도시하는 도면. (c)는, 여유 시간의 표시예를 도시하는 도면.
도 9(a)는, 처리의 반복 구조를 나타내는 언어 온톨로지(사양)의 한 예를 도시하는 도면. (b)는, 다입력 처리 또는 다출력 처리를 나타내는 언어 온톨로지(사양)의 한 예를 도시하는 도면.
도 10은 제어 프로그램 생성 장치가 실행하는 제한 정보 표시 제어 처리의 한 예를 도시하는 플로 차트.
도 11(a)는, 검증 범위의 한 예를 도시하는 도면. (b)는, 해석 결과 표시 화면의 한 예를 도시하는 도면. (c)는, 해석 결과 표시 화면의 다른 예를 도시하는 도면.
이하, 본 발명의 실시 형태에 관한 제어 프로그램 생성 장치(100)로 구성되는 제어 프로그램 생성 시스템(1)에 관해, 첨부 도면을 참조하면서 설명한다.
제어 프로그램 생성 시스템(1)은, 도 1(a)에 도시하는 바와 같은 제어 프로그램 생성 장치(100)와, 시험용 실기(實機)(200)를 포함하여 구성된다.
우선, 제어 프로그램 생성 장치(100)에 관해 설명하기 전에, 시험용 실기(200)에 관해 설명한다.
시험용 실기(200)는, 예를 들면, 공조 기기(이하, 공조(空調)라고 한다)의 컨트롤러로 구성되고, 제어 프로그램 생성 장치(100)와, 도시하지 않은 공조에 접속되어 있다. 시험용 실기(200)는, 제어 프로그램 생성 장치(100)에서 생성된 제어 프로그램을 실행함으로써 하드웨어인 공조 기기를 제어하는 실기로서, 제어 프로그램의 시험을 행하는 기능이 추가되어 있다. 이 시험용 실기(200)는, 제어 프로그램 생성 장치(100)로부터 제어 프로그램을 수신하면, 수신한 제어 프로그램을 시험 실행한다. 그 후, 시험용 실기(200)는, 실행이 종료되면 실행 결과를 도시하는 시험 결과 정보를 제어 프로그램 생성 장치(100)에 회신한다. 이 시험 결과 정보는, 예를 들면, 제어 프로그램을 구성하는 제어 모듈을 식별하는 모듈 ID 또는 모듈명과, 제어 모듈의 실행 시각을 나타내는 실행 시각 정보를 대응지은 정보를 포함한다.
또한, 제어 모듈의 실행 시각은, 실행 시작 시각과 실행 종료 시각을 포함하고, 시험 결과는, 제어 모듈을 식별하는 모듈 ID 또는 모듈명과, 제어 모듈의 실행 시작 시각부터 실행 종료 시각까지의 실행기간을 나타내는 실행기간을 포함한다. 또한, 시험 결과는, 실행 시각과, 당해 실행 시각에서의 제어 모듈의 변수치를 또한 포함하여도 좋다.
또한, 실기는, 공조의 컨트롤러로 한정되지 않고, 빌딩에서 이용되는 엘리베이터, 조명, 주차장, 및 시큐리티 장치 등의 하드웨어를 제어하는 컨트롤러라도 좋고, 가정(이하, 홈이라고 한다)에서 이용되는 태양광 발전기, 에어컨, 바닥 난방, 급탕기, 환기 장치, 및 시큐리티 장치 등의 하드웨어를 제어하는 컨트롤러라도 좋다.
제어 프로그램 생성 장치(100)는, 도 1(b)에 도시하는 바와 같이, CPU(Central Processing Unit)(100a), ROM(Read Only Memory)(100b), RAM(Random Access Memory)(100c), 하드 디스크(100d), 미디어 컨트롤러(100e), LAN 카드(Local Area Network)(100f), 비디오 카드(100g), LCD(Liquid Crystal Display)(100h), 키보드(100i), 및 포인팅 디바이스(이하 단지, 마우스라고 한다)(100j)를 포함하여 구성된다.
CPU(100a)는, ROM(100b) 또는 하드 디스크(100d)에 보존된 프로그램에 따라 소프트웨어 처리(즉, 정보 처리)를 실행함으로써, 제어 프로그램 생성 장치(100)의 전체 제어를 행한다. RAM(100c)은, CPU(100a)에 의한 프로그램의 실행시에 있어서, 처리 대상으로 하는 정보(즉, 데이터)를 일시적으로 기억한다.
하드 디스크(100d)는, 후술하는 바와 같은, 각종의 정보(즉, 데이터)를 보존한 표(즉, 테이블)를 기억한다. 또한, 제어 프로그램 생성 장치(100)는, 하드 디스크(100d) 대신에, 플래시 메모리를 구비하여도 좋다.
미디어 컨트롤러(100e)는, 기록 매체로부터 각종의 데이터 및 프로그램을 판독한다. 또한, 기록 매체는, 플래시 메모리, CD(Compact Disc), DVD(Digital Versatile Disc), 및 블루 레이 디스크(Blu-ray Disc)를 포함한다.
LAN 카드(100f)는, 통신망(10)을 통하여 접속하는 시험용 실기(200)와의 사이에서 데이터 및 커맨드를 송수신한다.
비디오 카드(100g)는, CPU(100a)로부터 출력된 디지털 신호에 의거하여 화상을 묘화(즉, 렌더링)함과 함께, 묘화된 화상을 나타내는 화상 신호를 출력한다. LCD(100h)는, 비디오 카드(100g)로부터 출력된 화상 신호에 따라 화상을 표시한다. 또한, 제어 프로그램 생성 장치(100)는, LCD(100h) 대신에, PDP(Plasma Display Panel) 또는 EL(Electroluminescence) 디스플레이를 구비하여도 좋다.
키보드(100i) 및 마우스(j)는, 유저의 조작에 응한 신호를 입력한다. 또한, 제어 프로그램 생성 장치(100)는, 키보드(100i) 및 마우스(j) 대신에 터치 패널을 구비하여도 좋다.
다음에, 제어 프로그램 생성 장치(100)가 실행하는 처리에 관해 설명한다.
제어 프로그램 생성 장치(100)의 CPU(100a)가, 도 2의 제어 프로그램 생성 처리를 실행함으로써, 도 3(a)에 도시하는 프로그램 편집부(110), 아키텍처 패턴 라이브러리(이하, 패턴 정보 기억부라고 한다)(120), 제어 프로그램 재이용 라이브러리(이하, 제어 모듈 기억부라고 한다)(130), 제어 프로그램 구조 기술(記述) 언어 사양 라이브러리(이하, 기술 정보 기억부)(140), 도메인 선택 정보 취득부(151), 패턴 선택 정보 취득부(152), 제한 정보 취득부(153), 기술 정보 취득부(154), 검증 범위 정보 취득부(155), 표시 제어부(160), 프로그램 생성부(170), 정보 통신부(180), 프로그램 모의부(模擬部)(190), 및 동작 해석부(195)로서 기능한다.
도 2의 제어 프로그램 생성 처리의 실행을 시작하면, 프로그램 편집부(110)는, 도 3(a)의 패턴 정보 기억부(즉, 아키텍처 패턴 라이브러리)(120)에 기억된 복수의 테이블의 하나인, 도 4(a)에 도시하는 바와 같은 도메인 패턴 테이블로부터, 프로그램 생성부(170)에서 생성되는 제어 프로그램으로 제어된 하드웨어의 도메인을 나타내는 도메인 정보를 취득한다(스텝 S01).
여기서, 도메인이란, 하드웨어가 이용되는 범위를 말한다. 예를 들면, 하드웨어가 엘리베이터, 공조, 조명, 주차장, 또는 시큐리티 장치라면, 이들의 하드웨어는, 빌딩에서 사용된다. 이 때문에, 이들의 하드웨어의 도메인은, 빌딩 분야를 포함한다. 또한 예를 들면, 하드웨어가 태양광 발전기, 에어컨, 환기 장치, 급탕기, 또는 시큐리티 장치라면, 이들의 하드웨어는, 일반 가정에서 사용된다. 이 때문에, 이들의 하드웨어의 도메인은, 홈 분야를 포함한다. 또한, 도 4(a)의 도메인 패턴 테이블은, 도메인 정보로서 도메인명을 나타내는 정보와 도메인을 식별하는 도메인 ID를 보존하고, 도메인명에는, 빌딩 분야 및 홈 분야가 포함된다.
다음에, 도 3(a)의 표시 제어부(160)는, 프로그램 편집부(110)가 취득한 도메인 정보에서 표시되는 도메인명을 일람 표시하도록, 도 1(a)의 LCD(100h)를 제어한다(스텝 S02).
다음에, 도 3의 도메인 선택 정보 취득부(151)는, 유저(즉, 제어 프로그램의 개발자)에 조작된 키보드(100i) 및 마우스(100j)의 하나 이상(이하, 입력부라고 한다)으로부터, 표시된 도메인명의 도메인으로서, 생성하는 제어 프로그램의 도메인으로서 선택된 도메인(이하, 선택 도메인이라고 한다)을 나타내는 도메인 선택 정보를 취득한다(스텝 S03). 예를 들면, 일반 가정에서 사용되는 하드웨어를 제어하는 제어 프로그램을 생성한 경우에는, 홈 분야를 도메인으로서 선택한다.
다음에, 프로그램 편집부(110)는, 스텝 S03에서 취득된 선택 도메인을 나타내는 도메인 정보(이하, 선택 도메인 정보라고 한다)와 대응지어진 패턴 정보를, 도 4(a)의 도메인 패턴 테이블로부터 하나 이상 검색한다(스텝 S04). 여기서, 패턴 정보는, 패턴을 식별하는 패턴 ID와, 패턴명을 나타내는 정보와, 패턴 내용을 나타내는 정보를 포함한다.
또한, 본 명세서에서 사용되는 패턴이라는 단어는, 어느 도메인에서 사용되는 제어 프로그램의 아키텍처에 공통된 프로그램 구조(이하, 공통 구조라고 한다)인 아키텍처 패턴을 말한다. 또한, 아키텍처란, 프로그램의 구조적인 기본 설계를 말한다.
프로그램 편집부(110)는, 스텝 S04에서, 선택 도메인 정보에 의거하여 패턴 ID를 검색하고, 검색된 패턴 ID와 대응지어진 패턴명을 나타내는 정보 및 패턴 내용을 나타내는 정보를, 도 3(a)의 패턴 정보 기억부(즉, 아키텍처 패턴 라이브러리)(120)에 기억된 복수의 테이블의 하나인, 도 4(b)의 패턴 구조 기술 테이블로부터 검색한다.
도 2의 스텝 S04의 후, 도 3(a)의 표시 제어부(160)는, 프로그램 편집부(110)가 검색한 정보에 의거하여, 선택 도메인의 도메인 ID와 대응지어진 패턴 ID로 식별되는 하나 이상의 패턴의 패턴명 및 패턴 내용의 일람을 생성한 후, 생성한 일람을, 도 5(a)에 도시하는 바와 같은 편집 화면(F)의 구조 템플릿 표시 에어리어(FS)에 표시하도록 LCD(100h)를 제어한다(스텝 S05). 어느 도메인에서 사용되는 복수의 하드웨어는, 공통의 기능을 갖는 것이 많기 때문에, 그들의 하드웨어를 제어하는 제어 프로그램은, 기본적인 설계를 공통으로 하는(즉, 공통의 아키텍처를 갖는) 것이 많기 때문이다.
또한, 편집 화면(F)은, 제어 프로그램의 프로그램 구조 및 프로그램 구조의 편집 내용이 표시되는 화면이다. 또한, 편집 화면(F)의 구조 템플릿 표시 에어리어(FS)는, 도 5(b)에 도시하는 바와 같은, 선택된 도메인에 속하는 제어 프로그램에 공통의 프로그램 구조로서, 견본(즉, 템플릿)이 되는 것(즉, 아키텍처 패턴)의 패턴명 및 패턴 내용이 표시된 영역이다.
또한, 편집 화면(F)의 아이콘 IC는, 예를 들면, 편집 화면(F)을 이용한 제어 프로그램의 작성 작업의 순서를 안내한 내비게이션 표시, 헬프 표시, 또는 후술하는 시뮬레이션 결과의 요약 표시를 행하도록 명(命)하는 커맨드와 관련지어져 있다.
도 5(b)의 구조 템플릿 표시 에어리어(FS)에 표시되는 아키텍처 패턴에 관해 구체적으로 설명하면, 「운전 정지」라는 아키텍처 패턴의 패턴 내용은, 하드웨어인 컨트롤러에 제어 화면 등의 소정의 「화면」을 표시시키는 처리를 최초로 하고, 제어 화면에 표시된 운전 정지 버튼에 대한 터치 조작을 검출한 후에, 운전 정지 상태를 나타내는 파리미터에 운전 정지를 나타내는 값을 「격납」하는 처리를 중번(中番)으로 하고, 운전 정지를 명하는 커맨드를 하드웨어에 「통신」하는 처리를 최후로 하는 프로그램 구조이다.
도 2의 스텝 S05의 후에, 패턴 선택 정보 취득부(152)는, 유저에게 조작된 입력부로부터, 표시된 패턴명의 패턴으로서, 생성하는 제어 프로그램의 아키텍처로서 사용하는 아키텍처 패턴을 선택하는 패턴 선택 정보를 취득한다(스텝 S06).
다음에, 프로그램 편집부(110)는, 스텝 S06로 취득된 패턴 선택 정보로 선택된 선택 패턴의 패턴 ID와 대응지어진 구조 기술 ID를, 도 4(b)의 패턴 구조 기술 테이블로부터 검색한다. 다음에, 프로그램 편집부(110)는, 검색한 구조 기술 ID와 대응지어진 구조 기술 정보를, 도 3(a)의 패턴 정보 기억부(즉, 아키텍처 패턴 라이브러리)(120)에 기억된 복수의 테이블의 하나인, 도 4(c)에 도시하는 바와 같은 구조 기술 테이블로부터 검색한다(스텝 S07).
여기서, 구조 기술(記述) ID란, 구조 기술을 식별한 정보를 말하고, 구조 기술 정보란, 구조 기술을 나타내는 정보를 말한다. 또한, 구조 기술이란, 본 실시 형태에 있어서, 프로그램 구조를 기술하는 특별한 언어인 프로그램 구조 기술 언어를 이용하여 나타낸 프로그램 구조의 기술을 말한다.
여기서, 일단, 도 6을 참조하여, 프로그램 구조 기술 언어로 기술된 프로그램 구조의 한 예에 관해 설명한다.
도 6의 프로그램 구조는, 공조를 제어하는 컨트롤러에서 실행되는 제어 프로그램의 프로그램 구조를 나타낸다. 이 제어 프로그램은, 컨트롤러가 시작부터 10초 후에, 스케줄 리스트에 보존된 공조 제어를 하나씩 실행함과 함께, 공조의 제어 상태를 나타내는 변수를 갱신하는 프로그램이다.
도 6의 프로그램 구조는, 언어 온톨로지(이하 단지, 사양이라고 한다)(N01부터 N11)로 표시된다. 사양(N01)은, 프로그램 함수의 시작점을 나타낸다. 사양(N01)부터 사양(N02)을 향하는 화살표와 연결된 사양(N02)은, 함수의 실행을 시작하면, 하부의 사각형중에 기재된 숫자로 표시되는 초(즉, 「10」초)만큼 웨이트 처리(이하, 대기 처리라고 한다)를 행하는 것을 나타낸다.
사양(N02)부터 사양(N03)을 향하는 화살표와 연결된 사양(N03)은, 사양(N02)의 처리의 후에 어떠한 조건 분기를 행하는 것을 나타낸다. 마찬가지로, 사양(N04)은, 사양(N03)의 처리의 후에 어떠한 조건 분기를 행하는 것 나타낸다. 사양(N04)과 사양(N05)을 잇는 선분과 연결된 사양(N05)은, 스케줄 리스트의 요소 번호를 나타내는 변수 「Schedule」에 대해 사양(N04)의 조건 분기에서의 판별 처리에서 사용된 변수치를 격납(즉, 데이터 스토어)하는 것을 나타낸다.
「N」의 문자가 우측에 붙여진, 사양(N04)부터 사양(N03)으로 되돌아오는 화살표는, 사양(N04)의 조건 분기에서의 판별 결과가 「위(僞)」인 경우에, 재차 사양(N03)의 처리가 반복되는 것을 나타낸다. 이에 대해, 「Y」의 문자가 하측에 붙여진, 사양(N04)부터 사양(N06)을 향하는 화살표와 연결된 사양(N06)은, 사양(N04)의 조건 분기에서의 판별 결과가 「진(眞)」인 경우에, 공조의 제어 상태를 갱신하는 함수를 실행하는 것을 나타낸다. 또한, 사양(N06)과 사양(N07)을 잇는 선분과 연결된 사양(N07)은, 변수 「Schedule」에 대해 사양(N06)의 처리에서 사용되는 변수치를 격납하는 것을 나타낸다. 사양(N08 및 N09)은, 각각 사양(N07 및 N04)과 마찬가지이기 때문에 설명을 생략한다.
「N」의 문자가 좌측에 붙여진, 사양(N09)부터 사양(N10)을 향하는 화살표와 연결된 사양(N10)은, 사양(N09)의 조건 분기에서의 판별 결과가 「위(僞)」인 경우에, 변수 「Schedule」의 값을 값「1」만큼 잉크리먼트한 처리를 나타낸다.
사양(N10)부터 N03을 향하는 화살표는, 사양(N10)의 처리의 후에, 사양(N03)의 처리가 재차 반복되는 것을 나타낸다. 또한, 「Y」의 문자가 하측에 붙여진, 사양(N09)부터 사양(N11)을 향하는 화살표와 연결된 사양(N11)은, 사양(N09)의 조건 분기에서의 판별 결과가 「진(眞)」인 경우에, 함수 처리의 실행을 종료하는 것을 나타내다. 또한, 사양은, 재귀적(再歸的)으로 기재되어도 좋다. 즉, 함수를 나타내는 사양은, 함수에 포함되는 복수의 처리를 나타내는 복수의 사양으로 나타내어도 좋다.
여기서, 프로그램 구조를 나타내는 언어 온톨로지(즉, 사양)는, 도 6에 도시한 사양(N01부터 N11)으로 한정되는 것이 아니다. 예를 들면, 도 7에 도시하는 바와 같은, 값 조작 처리(즉, 데이터에 대한 연산 처리)를 나타내는 사양(N25), 초기화 처리를 나타내는 사양(N26), 메시지 통신 처리를 나타내는 사양(N28), 예외 처리를 나타내는 사양(N29), 결합점(즉, 싱크로나이제이션 포인트)을 나타내는 사양(N30), 제어 프로그램의 실행 시간 또는 제어 프로그램을 구성하는 복수의 제어 모듈의 실행 시간의 총합에 부과되는 시간적 제한을 나타내는 사양(N31) 및 시간적 제한 조건을 나타내는 사양(N32), 및 프로세스의 제어를 나타내는 사양(N33)을 포함한다. 또한, 사양(N21부터 N24) 및 사양(N27)에 관해서는, 도 6을 이용하여 이미 설명하였기 때문에 반복 설명을 생략한다.
다음에, 도 7의 결합점을 나타내는 사양(이하, 결합점 사양이라고 한다)(N30)과, 시간적 제한을 나타내는 사양(이하, 제한 사양이라고 한다)(N31)에 대해, 도 8(a)를 참조하여 상세히 설명한다.
도 8(a)에 도시하는 프로그램 구조는, 함수를 나타내는 사양(이하, 함수 사양이라고 한다)(N21a부터 N21c), 결합점 사양(N30a 및 N30b), 및 제한 사양(N31)으로 표시된다.
결합점 사양(N30a)부터는, 2개의 화살표가 생기고 있기 때문에, 결합점 사양(N30a)은, 2개의 프로세스를 생성하는 포크 처리를 나타낸다. 결합점 사양(N30a)으로부터 생긴 상측의 화살표는, 함수 사양(N21a)에 도달한 후에, 결합점 사양(N30b)에 도달한다. 이에 대해, 결합점 사양(N30a)으로부터 생긴 하측의 화살표는, 함수 사양(N21b 및 N21c)에 차례로 도달한 후에, 결합점 사양(N30b)에 도달한다. 이 때문에, 결합점 사양(N30b)은, 결합점 사양(N30a)의 처리에서 생성된 2개의 프로세스가, 각각 함수 사양(N21a)의 처리, 및 함수 사양(N21b)의 처리 및 함수 사양(N21c)의 처리를 실행하고 마치는 것을 기다리는(즉, 동기를 취하다) 처리를 나타낸다. 또한, 제한 사양(N31)은, 결합점 사양(N30a)으로부터 늘어나는 점선과 결합점 사양(N30b)으로부터 늘어나는 점선을 이용하여, 결합점 사양(N30a)의 처리부터, 결합점 사양(N30b)의 처리까지를 3밀리초에 실행 완료한다(즉, 단위 시간당 처리량이 3밀리초가 된다)는 시간적 제한이 제어 프로그램에 부과되어 있는 것을 나타낸다.
이 구성에 의하면, 제어 대상으로 하는 하드웨어에 의해 정해지는 제어 프로그램의 실행 시간에 부과되는 제한(즉, 시간적 제한)을 명확하게 할 수 있다.
또한, 프로그램 구조를 나타내는 언어 온톨로지(즉, 사양)는, 도 9(a)에 도시하는 「while문」을 나타내는 사양(N41), 「Do-while문」을 나타내는 사양(N42), 및 「For문」을 나타내는 사양(N43)과 같이, 처리의 반복 구조(즉, 루프 구조)를 나타내어도 좋다.
또한, 언어 온톨로지는, 도 9(b)에 도시하는 바와 같은, 예를 들면, 구조체(즉, Structure Value) 등을 입력하는 처리(즉, 다입력 처리)를 나타내는 사양(N51), 및 구조체 등을 출력하는 처리(즉, 다출력 처리)를 나타내는 사양(N52)을 포함하여도 좋다.
여기서, 도 2로 되돌아와, 스텝 S07부터 계속해서 제어 프로그램 생성 처리의 설명을 행한다.
스텝 S07에서 검색에 이용되는 도 4(c)의 구조 기술 테이블은, 구조 기술 ID와, 구조 기술 ID로 식별되는 구조 기술을 나타내는 구조 기술 정보를 대응지어서 보존하는 테이블이다. 구조 기술 테이블의 구조 기술 정보는, 사양(즉, 언어 온톨로지)를 식별하는 사양 ID와, 사양으로부터 늘어나는 화살표와 연결한(즉, 연결처인) 사양의 사양 ID(이하, 연결처 ID라고 한다)와, 사양이 조건 분기를 나타내는 경우에, 화살표의 옆에 기재된 「Y」 또는 「N」을 나타내는 분기 조건 정보 등을 포함하는 기타 정보를 대응지은 정보이다.
이 사양 ID는, 도 3(a)의 기술 정보 기억부(즉, 제어 프로그램 구조 기술 언어 사양 라이브러리)(140)가 기억하는 복수의 테이블의 하나인, 도 4(d)의 사양 테이블에, 사양을 나타내는 사양 정보와 대응지어서 보존되어 있다. 또한, 사양 정보는, 도 6부터 도 9를 참조하여 설명한 사양의 종류, 및 각각의 사양 종류가 처리를 나타내기 위해 필요한 기타 정보를 말한다. 예를 들면, 사양이 함수를 나타내는 경우에는, 기타 정보는 함수명을 나타내고, 사양이 시간 제한을 나타내는 경우에는, 기타 정보는 제한 시간과, 제한이 부과되는 복수의 사양을 나타낸다.
여기서, 도 2로 되돌아와, 계속해서 제어 프로그램 생성 처리에 관해 설명을 행한다.
스텝 S07의 후에, 도 3(a)의 표시 제어부(160)는, 프로그램 편집부(110)가 검색한 구조 기술 정보에 의거하여, 선택 패턴의 프로그램 구조를, 도 5(a)의 편집 화면(F)의 작업 에어리어(FW)에 표시하도록 도 1(b)의 LCD(100h)를 제어한다(스텝 S08).
다음에, 예를 들면, 도 1(b)의 마우스(100j)를 유저가 조작함으로써, LCD(100h)에 표시된 커서를, 도 5(a)의 작업 에어리어(FW)에 표시된 버튼(BT)에 겹친 후에, 유저가 행하는 클릭 조작에 응하여 마우스(100j)가 입력한 신호에 의거하여, 도 3(a)의 프로그램 생성부(170)는, 제어 프로그램의 생성이 지시되었는지의 여부를 판별한다(스텝 S09).
스텝 S09에서, 제어 프로그램의 생성을 지시되지 않았다고 프로그램 생성부(170)가 판별하면(스텝 S09 ; No), 프로그램 편집부(110)는, 유저에게 조작된 입력부로부터, 도 3의 제한 정보 취득부(153)가 제한 정보와, 대상 정보를 취득하였는지의 여부를 판별한다(스텝 S10). 또한, 제한 정보란, 생성한 제어 프로그램의 실행 시간에 부과되는 시간적 제한, 또는, 생성하는 제어 프로그램을 구성하고, 또한 순차적으로 실행되는 복수의 제어 모듈로 표시되는 함수의 총 실행 시간에 대한 시간적 제한을 나타내는 정보를 말한다. 또한, 대상 정보는, 시간적 제한이 부과되는 제어 프로그램 또는 함수를 나타내는 정보를 말한다.
스텝 S10에서, 제한 정보가 취득되었다고 프로그램 편집부(110)가 판별하면, 도 10에 도시하는 바와 같은 제한 정보 표시 제어 처리가 실행된다(스텝 S11).
도 10의 제한 정보 표시 제어 처리가 시작되면, 도 3(b)에 도시하는 바와 같은 프로그램 편집부(110)가 갖는 실행 시간 추정부(111)는, 취득된 제한 정보로 표시되는 시간 제한이 부과되는 각각의 함수의 함수 ID 또는 함수명에 의거하여, 도 4(e)에 도시하는 바와 같은 제어 모듈 테이블로부터, 함수 처리를 나타내는 제어 모듈을 특정한다. 또한, 제어 모듈 테이블은, 도 3(a)의 제어 모듈 기억부(즉, 제어 프로그램 재이용 라이브러리)(130)에 기억된 복수의 테이블의 하나이다.
다음에, 실행 시간 추정부(111)는, 예를 들면, 특정한 제어 모듈의 각각에 관해, 제어 모듈의 스텝 수와, 입력부로부터 입력된 정보로 표시되는 제어 프로그램을 실행하는 실기의 성능(즉, CPU 성능 등)에 의거하여, 함수의 실행 시간을 추정한다(스텝 S31). 다음에, 표시 제어부(160)는, 추정된 실행 시간을, 제어 모듈에 대응한 함수 사양과 대응지어서 표시하도록 LCD(100h)를 제어한다(스텝 S32). 그 후, 실행 시간 추정부(111)는, 시간 제한이 부과되는 하나 이상의 제어 모듈의 실행 시간의 총합을 산출한다(스텝 S33).
다음에, 도 3(b)에 도시하는 프로그램 편집부(110)가 갖는 여유 시간 산출부(112)는, 제한 정보로 나타내는 시간 제한으로부터, 스텝 S33에서 산출된 총 추정 실행 시간을 감산함으로써, 여유 시간을 산출한다(스텝 S34). 다음에, 도 3(b)에 도시하는 프로그램 편집부(110)가 갖는 프로그램 구조 편집부(113)는, 산출된 여유 시간이 정의 값인지의 여부를 판별한다(스텝 S35).
스텝 S35에서, 여유 시간이 부의 값이라고 프로그램 구조 편집부(113)에 의해 판별되면(스텝 S35 ; No), 도 3(a)의 표시 제어부(160)는, 여유 시간을 표시하고, 또한 시간적 제한에 위반하는 취지의 에러 메시지를 표시하도록, 도 1(b)의 LCD(100h)를 제어한다(스텝 S36). 그 후, 제한 표시 제어 처리의 실행이 종료된다.
스텝 S35에서, 여유 시간이 정의 값이라고 프로그램 구조 편집부(113)에 의해 판별되면(스텝 S35 ; Yes), 도 3(a)의 표시 제어부(160)는, 여유 시간을 표시하도록, 도 1(b)의 LCD(100h)를 제어한다(스텝 S37). 다음에, 프로그램 구조 편집부(113)는, 제어 대상으로 하는 하드웨어의 제어를 행하지 않는 처리, 또는 하드웨어를 여유 시간만큼 대기시키는 제어 처리(즉, 대기 처리)를 행하는 제어 모듈을, 도 3(a)의 제어 모듈 기억부(즉, 제어 프로그램 재이용 라이브러리)(130)로부터 검색한다. 다음에, 프로그램 구조 편집부(113)는, 검색한 제어 모듈을 이용하여 실행되는 함수를 나타내는 사양을, 시간적 제한이 부과되는 복수의 사양의 실행 순서의 선두, 중간, 및 최후의 어느 한쪽에 추가한다. 그 후, 표시 제어부(160)는, 추가된 사양을 표시하도록 LCD(100h)를 제어한다(스텝 S38). 그 후, 제한 표시 제어 처리의 실행이 종료된다.
구체예로서는, 도 8(b)에 도시하는 바와 같이, 사양(N30a로부터 N30b)의 사이에 사양(N21a) 및 사양(N21b)이 기술되고, 이들의 사양(N21a)으로 표시된 함수(A)와, N21b로 표시되는 함수(B)가, 총 실행 시간 3밀리초에 실행될 필요가 있다는 시간적 제한이 부과되어 있는 경우를 예로 들어 설명한다. 이 경우에, 실행 시간 추정부(111)는, 함수(A)의 실행 시간과 함수(B)의 실행 시간이 함께 「0.5」밀리초라고 추정하고, 추정한 실행 시간의 총합을 「1」밀리초로 산출한다. 다음에, 표시 제어부(160)는, 함수(A)를 나타내는 사양(N21a)보다도 소정량만큼 아래의 표시 위치와 함수(B)를 나타내는 사양(N21b)보다도 소정량만큼 아래의 표시 위치에, 추정된 실행 시간이 「0.5」밀리초인 취지의 표시를 행하도록 LCD(100h)를 제어한다.
다음에, 여유 시간 산출부(112)는, 시간적 제한 「3」밀리초로부터 추정된 함수(A)의 실행 시간과 함수(B)의 실행 시간의 합 「1」밀리초를 감산하고, 여유 시간을 「2」밀리초라고 산출한다. 또한, 표시 제어부(160)는, 사양(N21a)과 함수(B)와 관련지어서, 총 실행 시간이 「1」밀리초인 취지의 표시를 행하도록 표시 제어하여도 좋다.
그 후, 프로그램 구조 편집부(113)는, 도 8(c)에 도시하는 바와 같이, 「2」밀리초에 걸쳐서 실행되는 대기 처리를 나타내는 사양(N21c)을, 사양(N21a) 및 사양(N21b)의 후이고, 사양(N30b)의 전에 추가하고, 표시 제어부(160)는, 사양(N21c)보다도 소정량만큼 아래의 표시 위치에, 여유 시간이 「2」밀리초인 취지의 표시를 행하도록 LCD(100h)를 제어한다. 또한, 대기 처리를 나타내는 사양(N21c)은, 사양(N21a)과 사양(N21b)의 전에 추가되어도 좋고, 사양(N21a)과 사양(N21b)의 사이에 추가되어도 좋다.
도 2의 스텝 S11의 후에, 프로그램 편집부(110)는, 유저에게 조작된 입력부로부터, 표시된 프로그램 구조에 대한 변경 내용을 기술하는 기술 정보를, 도 3(a)의 기술 정보 취득부(154)가 취득하였는지의 여부를 판별한다(스텝 S12).
또한, 도 5에 도시하는 편집 화면의 부품 표시 에어리어(FP)에는, 도 3(a)의 기술 정보 기억부(즉, 제어 프로그램 구조 기술 언어 사양 라이브러리)(140)에 기억된 언어 온톨로지(즉, 사양)가 표시되는 영역이고, 유저는, 입력부를 조작함으로써, 부품 표시 에어리어(FP)에 표시된 언어 온톨로지를, 프로그램 구조가 표시된 작업 에어리어(FW)에 드래그 앤드 드롭하거나, 드롭한 사양을 편집하는 등으로, 프로그램 구조의 변경 내용을 기술하는 기술 정보를 입력부에 입력시킨다.
스텝 S12에서, 프로그램 편집부(110)는, 기술 정보가 취득되지 않았다고 판별하면(스텝 S12 ; No), 스텝 S09로 되돌아와 상기 처리가 반복된다. 이에 대해, 프로그램 편집부(110)는, 기술 정보가 취득되었다고 판별하면(스텝 S12 ; Yes), 취득된 기술 정보에 의거하여, 표시된 프로그램 구조를 편집한다(스텝 S13). 그 후, 표시 제어부(160)는, 편집된 프로그램 구조를 표시하도록 LCD(100h)를 제어한다(스텝 S14). 그 후, 스텝 S09로 되돌아와 상기 처리가 반복된다.
스텝 S09에서, 제어 프로그램의 생성을 지시되었다고 프로그램 생성부(170)가 판별하면(스텝 S09 ; Yes), 프로그램 생성부(170)는, 표시된 프로그램 구조(이하, 표시 프로그램 구조)에 이용되는 제어 모듈을, 이미 설명한 도 4(d)의 사양 테이블 및 도 4(e)의 제어 모듈 테이블을 이용하여, 도 3(a)의 제어 모듈 기억부(즉, 제어 프로그램 재이용 라이브러리)(130)로부터 취득한다(스텝 S15). 또한, 프로그램 생성부(170)는, 취득할 수 없는 제어 모듈(즉, 재이용할 수 없는 새로운 제어 모듈 등)을, 표시된 사양에 의거하여 생성한다. 다음에, 프로그램 생성부(170)는, 취득한 제어 모듈을, 표시 프로그램 구조에 의거하여 연결함으로써, 제어 프로그램을 생성한다(스텝 S16).
또한, 프로그램 생성부(170)는, 예를 들면, 표시된 사양에 의거하여 생성된 제어 프로그램을 식별하는 식별 정보 또는 프로그램명을 나타내는 정보와, 표시된 사양으로 표시된 제한 정보 및 대상 정보를 대응지어서, 도 3의 기술 정보 기억부(140)에 보존한다.
그 후, 도 3(a)의 정보 통신부(180)는, 생성된 제어 프로그램을 시험용 실기(200)에 송신한다(스텝 S17). 또한, 시험용 실기(200)는, 송신된 제어 프로그램을 인스톨하고, 인스톨한 프로그램을 시험 모드로 실행한다. 시험용 실기(200)는, 시험 모드로 제어 프로그램을 실행하면, 제어 프로그램의 실행 상태와 실행 시각을 대응지은 실행 결과를 나타내는 시험 결과 정보를 시험용 실기(200)가 갖는 기억부에 보존한다. 또한, 본 실시 형태에서, 실행 결과는, 제어 프로그램의 실행 시각과, 제어 프로그램을 구성하는 제어 모듈을 식별하는 식별 정보 또는 명칭, 또는 당해 제어 모듈의 함수를 식별하는 식별 정보(즉, 함수 ID) 또는 명칭(즉, 함수명)과, 당해 제어 모듈이 실행된 프로세스를 식별하는 ID를 포함한다. 그 후, 시험용 실기(200)는, 시험 결과 정보를 정보 통신부(180)에 회신한다.
스텝 S17의 후에, 도 3(a)의 검증 범위 정보 취득부(155)는, 유저에게 조작된 입력부로부터, 제어 프로그램의 실행을 검증하는 검증 범위를 나타내는 검증 범위 정보를 취득한다(스텝 S18).
구체예로서, 생성한 제어 프로그램의 프로그램 구조가, 도 11(a)에 도시하는 바와 같은 사양(N21a부터 N21h)으로 표시되는 경우를 들어 설명한다. 유저는, 검증 범위를 지정하기 위해, 입력부를 조작함으로써, 도 11(a)에 도시하는 바와 같은 프로브를, 사양(N21a부터 N21h)의 사이의 위치에 삽입한다. 예를 들면, 유저가, 프로브(PB1)를 사양(N21a, N21d, 및 N21g)의 전에 삽입하고, 프로브(PB2)를 사양(N21e, 및 N21h)의 후에 삽입한 경우에는, 검증 범위는, 어느 스레드에서의 사양(N21d)으로 표시되는 처리의 시작부터 사양(N21e)으로 표시되는 처리의 종료까지, 및 다른 스레드에서의 사양(N21g)으로 표시되는 처리의 시작부터 사양(N21h)으로 표시되는 처리의 종료까지가 된다.
또한 예를 들면, 유저가, 프로브(PB1)를 사양(N21a, N21d, 및 N21g)의 전에 삽입하고, 프로브(PB3)를 사양(N21c, 및 N21f)의 후에 삽입한 경우에는, 검증 범위는, 제 1 스레드에서의 사양(N21a)의 처리 시작부터 사양(N21c)의 처리 종료까지, 제 2 스레드에서의 사양(N21d)의 처리 시작부터 사양(N21f)의 처리 종료까지, 및 제 3 스레드에서의 사양(N21g)의 처리 시작부터 사양(N21h)의 처리 종료까지가 된다.
도 2의 스텝 S18의 후에, 도 3(a)의 프로그램 모의부(190)는, 제어 대상으로 하는 하드웨어를 모의하는 시뮬레이션 프로그램을 실행함으로써 가상적인 하드웨어를 형성한다. 다음에, 프로그램 모의부(190)는, 생성된 제어 프로그램을 검증 범위 정보로 표시되는 검증 범위에서 실행함으로써, 가상적인 하드웨어를 제어하는 제어 동작을 모의한다(스텝 S19). 프로그램 모의부(190)는, 제어 프로그램의 제어 동작을 모의할 때에, 모의 결과를 나타내는 모의 결과 정보를 생성한다.
구체적으로는, 프로그램 모의부(190)는, 스텝 S18에서 취득된 검증 범위 정보로 표시되는 검증 범위에 포함되는 함수의 내에서, 가장 빠른 실행 순서의 함수와, 가장 느린 실행 순서의 함수를 특정한다. 다음에, 프로그램 모의부(190)는, 검증 범위에서 제어 프로그램을 실행하기 위해 사용되는 변수치에 대해, 유저에게 조작된 입력부로부터 취득된 값을 초기치로서 대입한다. 그 후, 프로그램 모의부(190)는, 가장 빠른 실행 순서의 함수를 콜하는 처리우로부터, 가장 느린 실행 순서의 함수로부터 리턴하는 처리까지를 모의 실행한다.
이 모의 결과 정보는, 시험 결과 정보와 마찬가지로, 예를 들면, 제어 프로그램의 실행 시각과, 제어 프로그램을 구성하는 제어 모듈을 식별하는 식별 정보(즉, 모듈 ID) 또는 명칭(즉, 모듈명), 또는 당해 제어 모듈의 함수를 식별하는 식별 정보(즉, 함수 ID) 또는 명칭(즉, 함수명)과, 당해 제어 모듈이 실행된 프로세스를 식별하는 ID를 포함한다. 또한, 제어 모듈의 실행 시각은, 실행 시작 시각과 실행 종료 시각을 포함하고, 모의 결과는, 제어 모듈의 모듈 ID 또는 모듈명과, 제어 모듈의 모의 실행이 시작된 실행 시작 시각으로부터 모의 실행이 수료된 실행 종료 시각까지의 실행기간을 포함한다. 또한, 검증 결과는, 실행 시각과, 당해 실행 시각에서의 제어 모듈의 변수치를 더욱 포함하여도 좋다.
스텝 S19의 후에, 도 3(a)의 정보 통신부(180)는, 시험용 실기(200)로부터 시험 결과 정보를 수신한다(스텝 S20). 그 후, 동작 해석부(195)는, 스텝 S19에서 생성된 모의 결과 정보로 표시된 모의 결과, 또는 스텝 S20에서 수신된 시험 결과 정보로 표시되는 시험 결과로부터, 스텝 S18에서 취득된 검증 범위 정보로 표시되는 검증 범위에서, 제어 모듈 및 당해 제어 모듈을 구성하는 각 함수가 모의 실행 또는 시험 실행된 시각과, 당해 제어 모듈을 식별하는 식별 정보 또는 명칭과, 당해 제어 모듈의 함수를 식별하는 식별 정보 또는 명칭과, 당해 제어 모듈이 실행된 프로세스를 식별하는 식별 정보를 해석한다(스텝 S21). 그 후, 표시 제어부(160)는, 스텝 S21의 해석 결과를 표시하도록, 도 1(b)의 LCD(100h)를 제어한 후에(스텝 S22), 제어 프로그램 생성 처리의 실행을 종료한다.
구체적으로는, LCD(100h)는, 도 11(b)에 도시하는 바와 같은 해석 결과 표시 화면(FA1)을 표시한다. 도 11(b)의 해석 결과 표시 화면(FA1)은, 횡축으로 표시된 실행 시간축을 가지며, 제어 프로그램의 실행에 의해 생성되는 제 1 프로세스로 실행되는 제어 모듈의 함수명 「A」부터 「C」 및 함수 ID 「F0001」부터 「F0003」, 제 2 프로세스로 실행되는 제어 모듈의 함수명 「D」부터 「F」 및 함수 ID 「F0004」로부터 「F0006」, 제 3 프로세스로 실행되는 제어 모듈의 함수명 「G」 및 「H」 및 함수 ID 「F0007」 및 「F0008」을, 화면의 상측부터 차례로 표시한다. 즉, 제 1 프로세스로 실행되는 함수 ID 「F0001」로 식별되는 함수(A)와, 제 2 프로세스로 실행되는 함수 ID 「F0002」로 식별되는 함수(B)는, 개략 동일한 시각에 실행이 시작되는 것을 나타내다. 또한, 해석 결과 표시 화면(FA1)에 표시되는 함수명 및 함수 ID는, 각각 모듈명 및 모듈 ID라도 좋다.
또한, 동작 해석부(195)는, 상기 각 함수의 실행 시각에 의거하여 제어 모듈 및 제어 모듈을 구성하는 함수의 실행 시간을 해석한다. 다음에, 동작 해석부(195)는, 시험 실행 또는 모의 실행된 제어 프로그램의 식별 정보 또는 명칭에 의거하여, 당해 제어 프로그램에 부과된 제한을 나타내는 제한 정보 및 당해 제한이 부과되는 대상을 나타내는 대상 정보를, 도 3의 기술 정보 기억부(140)로부터 검색한다. 그 후, 동작 해석부(195)는, 검색한 대상 정보로 표시되는 함수의 총 실행 시간 또는 제어 모듈의 실행 시간을 산출하고, 산출한 실행 시간이 검색된 제한 정보로 표시되는 시간적 제한에 위반하는지(즉, 해석된 시험 실행 시간 또는 모의 실행 시간이 제한 시간보다도 긴지)의 여부를 판별한다.
그 후, 표시 제어부(160)는, 동작 해석부(195)의 판별 결과 등을 나타낸다, 도 11(c)의 해석 결과 표시 화면(FA2)을 LCD(100h)에 표시시킨다. 도 11(c)의 해석 결과 표시 화면(FA2)은, 도 11(b)의 해석 결과 표시 화면(FA1)과 마찬가지로, 횡축으로 표시되는 실행 시간축을 갖는다. 또한, 도 11(c)의 해석 결과 표시 화면(FA2)은, 제 1 프로세스를 식별하는 프로세스 ID 「P0001」와, 제 1 프로세스로 실행된 제어 모듈의 함수명 「A」 및 함수 ID 「F0001」 등, 제 2 프로세스를 식별한 프로세스 ID 「P0002」와, 제 2 프로세스로 실행된 제어 모듈의 함수명 「D」 및 함수 ID 「F0004」 등, 제 3 프로세스를 식별한 프로세스 ID 「P0003」와, 제 3 프로세스로 실행되는 제어 모듈의 함수명 「G」 및 함수 ID 「F0007」 등을 화면의 상측에서 차례로 표시한다.
또한, 해석 결과 표시 화면(FA2)은, 함수 ID 「F0001」부터 「F0008」로 각각 식별되는 함수의 시험 실행 시간 또는 모의 실행 시간을, 함수명의 하측에 표시한다. 특히, 함수 ID 「F0007」로 식별되는 함수(G) 및 함수 ID 「F0008」로 식별되는 함수(H)는, 각각의 시험 실행 시간 또는 모의 실행 시간의 하측에, 함수(G) 및 함수(H)의 총 실행 시간에 부과된 시간 제한을 표시한다. 또한, 해석 결과 표시 화면(FA2)은, 함수(G) 및 함수(H)의 총 시험 실행 시간 또는 총 모의 실행 시간이 시간 제한을 위반하였는지의 여부라는 동작 해석부(195)의 판정 결과를, 시간 제한의 표시로부터의 말풍선 문자로 표시한다.
이들의 구성에 의하면, 복수의 태스크(즉, 멀티 프로세스)가 병행 실행됨에 의해, 복수의 태스크가 같은 하드웨어를 제어하는 것 등에 의해 발생하는 데드 로크 등의 교대 간섭을 유저가 용이하게 파악할 수 있다.
이들의 구성에 의하면, 생성하는 제어 프로그램의 아키텍처뿐만 아니라, 생성하는 제어 프로그램에 부과되는 시간 제한, 및 제어 프로그램을 구성하는 제어 모듈의 실행 시간도 표시부에 표시할 수 있다. 이 때문에, 하드웨어를 제어하는 제어 프로그램의 프로그램 구조뿐만 아니라, 제어 프로그램을 구성하는 각각의 제어 모듈에 부과되는 시간적 제한도, 제어 프로그램의 설계자가 용이하게 파악할 수 있다. 따라서, 기억된 작성이 끝난 제어 모듈 및 아키텍처를 재이용하여, 신뢰성이 높은 새로운 제어 프로그램을 효율적으로 생성할 수 있다.
또한, 이들의 구성에 의하면, 제어 프로그램에 부과되는 실행 시간의 시간적 제한과, 시간적 제한에 대한 여유 시간을 표시하기 위해, 유저는, 생성하는 제어 프로그램이 시간적 제한을 만족하였는지의 여부를 용이하게 확인할 수 있기 때문에, 제어 프로그램을 효율적으로 생성할 수 있다. 또한, 이들의 구성에 의하면, 제어 프로그램의 시험 실행 또는 모의 실행에 필요로 한 시간과, 당해 제어 프로그램에 부과된 시간적 제한을 표시하기 때문에, 유저는, 생성한 제어 프로그램이 시간적 제한을 만족하였는지의 여부를 용이하게 확인할 수가 있어서, 제어 프로그램을 효율적으로 시험할 수 있다. 또한, 이들의 구성에 의하면, 제어 프로그램의 시험 실행 또는 모의 실행에 필요로 한 시간이, 당해 제어 프로그램에 부과된 시간적 제한에 위반하였는지의 여부를 표시하기 때문에, 유저는, 생성한 제어 프로그램이 시간적 제한에 위반하였는지의 여부를 보다 용이하게 확인할 수가 있어서, 제어 프로그램을 보다 효율적으로 시험할 수 있다.
또한, 이들의 구성에 의하면, 실행 시간의 길이가 여유 시간의 길이와 동등한 대기 모듈이 시간적 제한이 부과된 복수의 제어 모듈의 실행 순서의 선두, 중간, 및 최후의 어느 한쪽에서 실행되도록, 제어 프로그램의 프로그램 구조가 편집되기 때문에, 시간적 제한을 만족하는 신뢰성이 높은 제어 프로그램을 용이하게 생성할 수 있다.
또한, 이들의 구성에 의하면, 검증 범위에서 제어 프로그램의 실행을 모의함과 함께, 모의 결과에 의거하여 제어 모듈의 식별 정보와, 제어 모듈이 모의 실행된 시각을 표시하기 때문에, 적은 계산 시간으로 제어 모듈의 실행 결과를 용이하게 확인할 수 있다.
또한, 이들의 구성에 의하면, 선택 도메인에서 사용되는 프로그램을 제어하는 제어 프로그램으로서, 선택 도메인에서 이미 운용된 제어 프로그램에 공통된 하나 이상의 아키텍처 패턴을 갖는 제어 프로그램을, 이미 선택 도메인에서 운용된 하나 이상의 제어 모듈에 연결하여 생성한다. 이와 같이, 이미 선택 도메인에서 운용된 아키텍처 및 제어 모듈을 재이용하여 제어 프로그램을 생성함으로써, 선택 도메인에서 사용되는 하드웨어의 제어를 행하는 신뢰성이 높은 제어 프로그램을 단시간이면서 적은 공수로 효율적으로 생성할 수 있다.
또한, 이들의 구성에 의하면, 재이용한 아키텍처 패턴에 의거하여 제어 프로그램을 생성하기 때문에, 제어 모듈과 같은 컴퓨터 프로그램뿐만 아니라, 아키텍처 패턴이라는 프로그램 구조의 기본적인 설계 노하우도 재이용할 수 있다.
또한, 본 실시 형태에 관한 기능을 실현하기 위한 구성을 미리 구비한 제어 프로그램 생성 장치(100)로서 제공할 수 있는 것은 물론이고, 프로그램의 적용에 의해, 기존의 제어 프로그램 생성 장치를 본 실시 형태에 관한 제어 프로그램 생성 장치(100)로서 기능시킬 수도 있다. 즉, 상기한 실시 형태에서 예시한 제어 프로그램 생성 장치(100)에 의한 각 기능 구성을 실현시키기 위한 제어 프로그램을, 기존의 제어 프로그램 생성 장치를 제어하는 컴퓨터(CPU 등)가 실행할 수 있도록 적용함으로써, 본 실시 형태에 관한 제어 프로그램 생성 장치(100)로서 기능시킬 수 있다. 또한, 본 발명에 관한 제어 프로그램 생성 방법은, 제어 프로그램 생성 장치(100)를 이용하여 실시할 수 있다.
또한, 상술한 기능을, OS(Operating System)가 분담하여 실현하는 경우 또는 OS와 어플리케이션과의 협동에 의해 실현하는 경우 등에는, OS 이외의 부분만을 매체에 격납하여 배포하여도 좋고, 또한, 다운로드 등 하여도 좋다.
이와 같은 프로그램의 배포 방법은 임의이고, 예를 들면, 메모리 카드, CD-ROM, 또는 DVD-ROM 등의 기록 매체에 격납하여 배포할 수 있는 외에, 인터넷 등의 통신 매체를 통하여 배포할 수도 있다.
또한, 본 발명은, 본 발명의 광의의 정신과 범위를 일탈하는 일 없이, 다양한 실시 형태 및 변형이 가능하게 되는 것이다. 또한, 상술한 실시 형태는, 본 발명을 설명하기 위한 것이고, 본 발명의 범위를 한정하는 것이 아니다. 즉, 본 발명의 범위는, 실시 형태가 아니라, 특허청구의 범위에 의해 표시된다. 그리고, 특허청구의 범위 내 및 그것과 동등한 발명의 의의의 범위 내에서 행하여지는 다양한 변형이, 본 발명의 범위 내로 간주된다.
이상 본 발명의 바람직한 실시례에 관해 상세히 기술하였지만, 본 발명은 이러한 특정한 실시례로 한정되는 것이 아니고, 특허청구의 범위에 기재된 본 발명의 요지의 범위 내에서, 여러 가지의 변형, 변경이 가능하다.
본 출원은, 2010년 8월 16일에 출원된 일본국 특허출원2010-181897호에 의거한다. 본 명세서중에 일본 특허출원 2010-181897호의 명세서, 특허청구의 범위, 도면 전체를 참조로서 받아들이는 것으로 한다.
[산업상의 이용 가능성]
본 발명은, 하드웨어를 제어하는 제어 프로그램을 생성하는 제어 프로그램 생성 장치에 있어서, 빌딩 분야 또는 홈 분야에서 사용되는 설비 기기를 제어하는 제어 프로그램을 생성하는 제어 프로그램 생성 장치에 적합하다.
1 : 제어 프로그램 생성 시스템
100 : 제어 프로그램 생성 장치
100a : CPU
100b : ROM
100c : RAM
100d : 하드 디스크
100e : 미디어 컨트롤러
100f : LAN 카드
100g : 비디오 카드
100h : LCD
100i : 키보드
100j : 마우스
110 : 프로그램 편집부
111 : 실행 시간 추정부
112 : 여유 시간 산출부
113 : 프로그램 구조 편집부
120 : 아키텍처 패턴 라이브러리
130 : 제어 프로그램 재이용 라이브러리
140 : 제어 프로그램 구조 기술 언어 사양 라이브러리
151 : 도메인 선택 정보 취득부
152 : 패턴 선택 정보 취득부
153 : 제한 정보 취득부
154 : 기술 정보 취득부
155 : 검증 범위 정보 취득부
160 : 표시 제어부
170 : 프로그램 생성부
180 : 정보 통신부
190 : 프로그램 모의부
195 : 동작 해석부
200 : 시험용 실기

Claims (7)

  1. 하드웨어의 동작을 제어하는 제어 모듈을 복수 기억하는 제어 모듈 기억 수단과,
    상기 복수의 제어 모듈의 하나 이상으로 구성되는 제어 프로그램의 아키텍처에 공통된 프로그램 구조인 아키텍처 패턴을 나타내는 패턴 정보를 복수 기억하는 패턴 정보 기억 수단과,
    상기 기억된 패턴 정보를 선택하는 패턴 선택 정보를 취득하는 패턴 선택 정보 취득 수단과,
    상기 패턴 선택 정보로 선택된 패턴 정보로 표시되는 아키텍처 패턴을 갖는 제어 프로그램의 실행 시간에 부과되는 시간적 제한을 나타내는 제한 정보를 취득하는 제한 정보 취득 수단과,
    상기 선택된 패턴 정보로 표시되는 아키텍처 패턴과, 상기 아키텍처 패턴을 갖는 제어 프로그램의 프로그램 구조와, 상기 제어 프로그램을 구성하는 제어 모듈의 실행 시간과, 상기 취득된 제한 정보로 표시되는 시간적 제한을 대응지어서 표시부에 표시시키는 표시 제어 수단과,
    상기 제어 프로그램의 프로그램 구조에 대한 변경 내용을 기술하는 기술 정보를 취득하는 기술 정보 취득 수단과,
    상기 취득된 기술 정보에 의거하여, 상기 제어 프로그램의 프로그램 구조를 편집하는 프로그램 편집 수단과,
    상기 편집된 프로그램 구조에 의거하여 상기 제어 모듈 기억 수단에 기억된 제어 모듈을 연결함으로써, 하드웨어를 제어하는 제어 프로그램을 생성하는 프로그램 생성 수단을 구비하는 것을 특징으로 하는 제어 프로그램 생성 장치.
  2. 제 1항에 있어서,
    상기 제한 정보는, 상기 제어 프로그램을 구성한 복수의 제어 모듈의 총 실행 시간의 제한을 나타내고,
    상기 프로그램 편집 수단은, 상기 제한 정보로 표시되는 총 실행 시간의 제한이 부과된 복수의 제어 모듈의 각각에 대해 실행 시간을 추정하는 실행 시간 추정 수단과,
    상기 제한 정보로 표시되는 총 실행 시간의 제한과, 상기 실행 시간 추정 수단에서 추정된 실행 시간에 의거하여, 상기 제한에 대한 여유 시간을 산출하는 여유 시간 산출 수단을 가지며,
    상기 표시 제어 수단은, 상기 여유 시간 산출 수단에서 산출된 여유 시간을 표시하도록 상기 표시부를 제어하는 것을 특징으로 하는 제어 프로그램 생성 장치.
  3. 제 2항에 있어서,
    상기 제어 모듈은, 상기 하드웨어의 제어를 행하지 않는, 또는 상기 하드웨어를 대기시키는 제어를 행하는 대기 모듈을 포함하고,
    상기 프로그램 편집 수단은, 상기 여유 시간 산출 수단에서 산출된 여유 시간이 정의 값인 경우에, 상기 복수의 제어 모듈의 실행 순서의 선두, 중간, 및 최후의 어느 하나에서, 실행 시간의 길이가 상기 여유 시간의 길이와 동등은 대기 모듈이 실행되도록, 상기 제어 프로그램의 프로그램 구조를 편집하는 프로그램 구조 편집 수단을, 또한 갖는 것을 특징으로 하는 제어 프로그램 생성 장치.
  4. 제 3항에 있어서,
    상기 생성된 제어 프로그램의 실행을 검증하는 검증 범위를 나타내는 검증 범위 정보를 취득하는 검증 범위 정보 취득 수단과,
    상기 취득된 검증 범위 정보로 표시된 검증 범위에서, 상기 생성된 제어 프로그램의 실행을 모의하는 프로그램 실행 모의 수단과,
    상기 프로그램 실행 모의 수단의 모의 결과로부터, 상기 생성된 제어 프로그램을 구성하는 제어 모듈을 식별하는 식별 정보와, 상기 제어 모듈이 모의 실행된 시각을 해석하는 해석 수단을 또한 구비하고,
    상기 표시 제어 수단은, 상기 해석 수단에 의한 해석 결과를 표시하도록 상기 표시부를 제어하는 것을 특징으로 하는 제어 프로그램 생성 장치.
  5. 제 1항 내지 제 4항중 어느 한 항에 있어서,
    상기 패턴 정보 기억 수단은, 하드웨어가 사용되는 범위인 도메인을 나타내는 도메인 정보와, 상기 범위에서 사용되는 복수의 하드웨어를 각각 제어하는 복수의 제어 프로그램의 아키텍처에 공통된 아키텍처 패턴을 나타내는 패턴 정보를 대응지어서 복수 기억하고,
    상기 기억된 도메인 정보를 선택하는 도메인 선택 정보를 취득하는 도메인 선택 정보 취득 수단을 또한 구비하고,
    상기 패턴 선택 정보 취득 수단은, 상기 취득된 도메인 선택 정보로 선택된 도메인 정보에 대응지어서 기억된 패턴 정보를 선택하는 패턴 선택 정보를 취득하는 것을 특징으로 하는 프로그램 생성 장치.
  6. 컴퓨터를,
    하드웨어의 동작을 제어하는 제어 모듈을 복수 기억하는 제어 모듈 기억 수단,
    상기 복수의 제어 모듈의 하나 이상으로 구성되는 제어 프로그램의 아키텍처에 공통된 프로그램 구조인 아키텍처 패턴을 나타내는 패턴 정보를 복수 기억하는 패턴 정보 기억 수단,
    상기 기억된 패턴 정보를 선택하는 패턴 선택 정보를 취득하는 패턴 선택 정보 취득 수단,
    상기 패턴 선택 정보로 선택된 패턴 정보로 표시되는 아키텍처 패턴을 갖는 제어 프로그램의 실행 시간에 부과되는 시간적 제한을 나타내는 제한 정보를 취득하는 제한 정보 취득 수단,
    상기 선택된 패턴 정보로 표시되는 아키텍처 패턴과, 상기 아키텍처 패턴을 갖는 제어 프로그램의 프로그램 구조와, 상기 제어 프로그램을 구성하는 제어 모듈의 실행 시간과, 상기 취득된 제한 정보로 표시되는 시간적 제한을 대응지어서 표시부에 표시시키는 표시 제어 수단,
    상기 제어 프로그램의 프로그램 구조에 대한 변경 내용을 기술하는 기술 정보를 취득하는 기술 정보 취득 수단,
    상기 취득된 기술 정보에 의거하여, 상기 제어 프로그램의 프로그램 구조를 편집하는 프로그램 편집 수단,
    상기 편집된 프로그램 구조에 의거하여 상기 제어 모듈 기억 수단에 기억된 제어 모듈을 연결함으로써, 하드웨어를 제어하는 제어 프로그램을 생성하는 프로그램 생성 수단으로서 기능시키는 것을 특징으로 하는 제어 프로그램 생성 프로그램.
  7. 하드웨어의 동작을 제어하는 하나 이상의 제어 모듈로 각각 구성되는 복수의 제어 프로그램의 아키텍처에 공통된 프로그램 구조인 아키텍처 패턴을 나타내는 패턴 정보를, 패턴 정보 기억 수단이 기억하는 복수의 패턴 정보로부터 선택하는 패턴 선택 정보를 취득하는 패턴 선택 정보 취득 스텝과,
    상기 패턴 선택 정보로 선택된 패턴 정보로 표시되는 아키텍처 패턴을 갖는 제어 프로그램의 실행 시간에 부과되는 시간적 제한을 나타내는 제한 정보를 취득하는 제한 정보 취득 스텝과,
    상기 선택된 패턴 정보로 표시되는 아키텍처 패턴과, 상기 아키텍처 패턴을 갖는 제어 프로그램의 프로그램 구조와, 상기 제어 프로그램을 구성하는 제어 모듈의 실행 시간과, 상기 취득된 제한 정보로 표시되는 시간적 제한을 대응지어서 표시부에 표시시키는 표시 제어 스텝과,
    상기 제어 프로그램의 프로그램 구조에 대한 변경 내용을 기술하는 기술 정보를 취득하는 기술 정보 취득 스텝과,
    상기 취득된 기술 정보에 의거하여, 상기 제어 프로그램의 프로그램 구조를 편집하는 프로그램 편집 스텝과,
    상기 편집된 프로그램 구조에 의거하여 상기 제어 모듈을 연결함으로써, 하드웨어를 제어하는 제어 프로그램을 생성하는 프로그램 생성 스텝을 갖는 것을 특징으로 하는 제어 프로그램 생성 방법.
KR1020137004242A 2010-08-16 2011-01-26 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램을 기록한 컴퓨터 판독 가능 기록매체, 및 제어 프로그램 생성 방법 KR101400657B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2010-181897 2010-08-16
JP2010181897 2010-08-16
PCT/JP2011/051515 WO2012023296A1 (ja) 2010-08-16 2011-01-26 制御プログラム生成装置、制御プログラム生成プログラム、及び制御プログラム生成方法

Publications (2)

Publication Number Publication Date
KR20130040254A true KR20130040254A (ko) 2013-04-23
KR101400657B1 KR101400657B1 (ko) 2014-05-28

Family

ID=45604964

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137004242A KR101400657B1 (ko) 2010-08-16 2011-01-26 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램을 기록한 컴퓨터 판독 가능 기록매체, 및 제어 프로그램 생성 방법

Country Status (6)

Country Link
US (1) US9176490B2 (ko)
JP (1) JP5536892B2 (ko)
KR (1) KR101400657B1 (ko)
CN (1) CN103069386B (ko)
DE (1) DE112011102727T5 (ko)
WO (1) WO2012023296A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4905597B1 (ja) * 2011-03-15 2012-03-28 オムロン株式会社 コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体
JP2015056153A (ja) * 2013-09-13 2015-03-23 三菱電機株式会社 ソフトウェア開発支援装置、仕様作成支援方法、及び、プログラム
DE102014112639C5 (de) * 2014-09-02 2020-07-02 Cavos Bagatelle Verwaltungs Gmbh & Co. Kg System zum Erstellen von Steuerungsdatensätzen für Roboter
WO2017023085A1 (ko) * 2015-08-04 2017-02-09 한국전력공사 패턴 기반 서비스 조합 방법을 이용한 애플리케이션 생성 장치 및 방법
CN105426200B (zh) * 2015-10-30 2018-11-09 小米科技有限责任公司 通讯模组固件和插件生成方法及装置
JP6576884B2 (ja) * 2016-07-12 2019-09-18 株式会社日立製作所 制御アプリケーション生成支援装置、及び制御アプリケーション生成支援方法
JP6895803B2 (ja) * 2017-05-24 2021-06-30 三菱電機株式会社 プラント監視制御システムの保守計算機及び保守プログラム
DE112017007655T5 (de) * 2017-06-19 2020-03-05 Mitsubishi Electric Corporation Verteilte Zuweisungseinrichtung, verteiltes Zuweisungssystem, sowie verteiltes Zuweisungsverfahren
JP6871207B2 (ja) * 2018-09-05 2021-05-12 ファナック株式会社 加工時間予測装置
JP7067406B2 (ja) * 2018-10-12 2022-05-16 オムロン株式会社 制御システム、制御装置および制御方法
AT522186B1 (de) * 2019-05-20 2020-09-15 Dipl Ing Dipl Ing Fh Markus Gruber Computerimplementiertes Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms zur Steuerung und/oder Regelung eines technischen Prozesses
EP3835958A1 (de) 2019-12-10 2021-06-16 Siemens Aktiengesellschaft Verfahren und vorrichtung zur ansteuerung eines iot-geräts durch einen programmcode
JP6761158B1 (ja) * 2019-12-16 2020-09-23 株式会社安川電機 プログラム作成装置、プログラム作成方法、及びプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1300265C (en) * 1987-06-22 1992-05-05 William Curtis Newman Block diagram simulator
JPH0322002A (ja) * 1989-06-19 1991-01-30 Mitsubishi Electric Corp プログラミング装置
ATE180337T1 (de) * 1989-09-01 1999-06-15 Amdahl Corp Betriebssystem und datenbank mit einer regelsprache zum bedingungsgesteuerten rechnerbetrieb
JPH0438522A (ja) * 1990-06-05 1992-02-07 Mitsubishi Electric Corp ソフトウェアプログラムシミュレータ
JPH04283802A (ja) 1991-03-13 1992-10-08 Sanyo Electric Co Ltd マイクロプロセッサ用プログラムの自動生成方法
JP3140262B2 (ja) * 1993-06-16 2001-03-05 三菱電機株式会社 プログラム実行状態確認方法
JPH07152544A (ja) 1993-09-17 1995-06-16 Toshiba Corp ダイヤグラム作成支援システム及びダイアグラム作成支援方法
JPH08278804A (ja) * 1995-04-06 1996-10-22 Fanuc Ltd シーケンス・プログラムの診断方式
JPH10161906A (ja) 1996-11-29 1998-06-19 Toshiba Corp ソフトウェア実行装置及びソフトウェア実行方法
EP1122640A1 (en) * 2000-01-31 2001-08-08 BRITISH TELECOMMUNICATIONS public limited company Apparatus for automatically generating source code
JP2001216006A (ja) * 2000-02-04 2001-08-10 Meidensha Corp プログラミング支援方式
JP2002351509A (ja) * 2001-05-25 2002-12-06 Mitsubishi Electric Corp プログラミングツール及びプログラミング方法
JP2003067007A (ja) * 2001-08-27 2003-03-07 Mitsubishi Electric Corp エンジニアリングツール及びエンジニアリングシステム
US20040064804A1 (en) * 2002-09-26 2004-04-01 Daniels Bruce K. Generation of partitioned enterprise application using a high-level specification
JP2004272718A (ja) * 2003-03-11 2004-09-30 Mitsubishi Electric Corp 制御プログラム作成装置および制御プログラム作成方法
US7809545B2 (en) * 2003-04-16 2010-10-05 The Mathworks, Inc. System and method for using execution contexts in block diagram modeling
US7669185B2 (en) * 2003-08-07 2010-02-23 National Instruments Corporation Graphical program having a hierarchy of timed loops
US7900188B2 (en) * 2006-09-01 2011-03-01 The Mathworks, Inc. Specifying implementations of code for code generation from a model
CN101583932B (zh) * 2007-01-16 2011-05-25 三菱电机株式会社 客户终端、应用程序提供服务器以及应用程序提供系统
JP4963637B2 (ja) 2007-07-09 2012-06-27 キヤノン株式会社 表示処理装置及び表示処理方法
US7684892B2 (en) * 2007-10-30 2010-03-23 Gm Global Technology Operations, Inc. Process for generating control sequence of operations
JP5076967B2 (ja) * 2008-02-27 2012-11-21 富士通株式会社 情報処理システム、情報処理システムの制御方法、および情報処理システムの制御プログラム
CN101533349B (zh) 2009-04-15 2012-06-27 哈尔滨工业大学 一种大粒度构件的平台相关模型的代码自动生成方法
JP2010181897A (ja) 2010-03-08 2010-08-19 Seiko Epson Corp 光量制御装置およびプロジェクタ
EP2645255B1 (en) * 2010-11-26 2019-10-02 Mitsubishi Electric Corporation Program generating device, program generating program, and program generating method
JP5644642B2 (ja) * 2011-04-07 2014-12-24 富士通株式会社 コード変換方法、装置、プログラム、およびリクエストの残り時間応答方法

Also Published As

Publication number Publication date
CN103069386A (zh) 2013-04-24
KR101400657B1 (ko) 2014-05-28
JPWO2012023296A1 (ja) 2013-10-28
US9176490B2 (en) 2015-11-03
WO2012023296A1 (ja) 2012-02-23
DE112011102727T5 (de) 2013-06-27
CN103069386B (zh) 2016-06-22
JP5536892B2 (ja) 2014-07-02
US20130144409A1 (en) 2013-06-06

Similar Documents

Publication Publication Date Title
KR101400657B1 (ko) 제어 프로그램 생성 장치, 제어 프로그램 생성 프로그램을 기록한 컴퓨터 판독 가능 기록매체, 및 제어 프로그램 생성 방법
US9501594B2 (en) Graphical design verification environment generator
CN109840206B (zh) 数据测试方法、装置、终端及存储介质
US7895575B2 (en) Apparatus and method for generating test driver
CN112270149A (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
JP4978233B2 (ja) シミュレータ開発システム及びシミュレータ開発方法
JPH09244921A (ja) ソフトウエア試験の自動化システム
JP5327019B2 (ja) ソフトウェア自動試験方式
JP4767309B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP2007157128A (ja) 機器設定装置、機器設定方法、情報取得装置、情報取得方法、記録媒体及びプログラム
JP2005301568A (ja) 表示情報記憶制御装置および表示情報記憶制御プログラム
JP4198374B2 (ja) 設備のシミュレーション方法および設備のシミュレーションプログラム
CN112765041A (zh) 游戏自动化测试方法、装置及电子设备
WO2012053392A1 (ja) ソフトウェアプロダクトライン開発支援装置、その方法およびそのプログラム
Karlsson et al. Automation of the creation and execution of system level hardware-in-loop tests through model-based testing
JP6579911B2 (ja) ログ比較方法、ログ比較プログラム、およびログ比較装置
KR101510058B1 (ko) 이산 사건 시스템 명세 기반의 임베디드 장치 모의 모델링 및 시뮬레이션 시스템 및 그의 방법
JPH07219980A (ja) テスト実行方式
CN112817872B (zh) 开发测试系统及方法
JP7219389B2 (ja) 情報処理装置、その制御方法及びプログラム
JP2001306352A (ja) 分析計システムおよび分析計検査プログラムを記録したコンピュータ読取可能な記録媒体
JP2010002977A (ja) 業務システムプログラムの作成システム
JP2021177272A (ja) デバッグ支援装置、デバッグ支援方法およびプログラム
CN117670608A (zh) 设备维护实训任务的处理方法及系统
KR100317504B1 (ko) 로토스정형명세의확인장치및방법

Legal Events

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

Payment date: 20170421

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180503

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190503

Year of fee payment: 6