KR20060128747A - 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램 - Google Patents

프로그램 생성 장치, 프로그램 생성 방법 및 프로그램 Download PDF

Info

Publication number
KR20060128747A
KR20060128747A KR1020060052181A KR20060052181A KR20060128747A KR 20060128747 A KR20060128747 A KR 20060128747A KR 1020060052181 A KR1020060052181 A KR 1020060052181A KR 20060052181 A KR20060052181 A KR 20060052181A KR 20060128747 A KR20060128747 A KR 20060128747A
Authority
KR
South Korea
Prior art keywords
program
gui
input
microcomputer
panel
Prior art date
Application number
KR1020060052181A
Other languages
English (en)
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 KR20060128747A publication Critical patent/KR20060128747A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • 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
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)
  • Studio Circuits (AREA)

Abstract

프로그램 생성 장치는, 입력부, 프로세서 및 출력부를 포함하는 마이크로컴퓨터용 프로그램을 생성한다. 그 장치는, 입력부, 프로세서 및 출력부의 각각의 동작에 각각 대응하는 복수의 아이콘을 디스플레이하는 GUI 디스플레이부, 및 사용자에 의한 아이콘의 조작에 따라 프로그램을 생성하는 프로그램 생성기를 포함한다.
프로그램 생성 장치, GUI 컴포넌트, 프로그램 생성기

Description

프로그램 생성 장치, 프로그램 생성 방법 및 프로그램{PROGRAM CREATION APPARATUS, PROGRAM CREATION METHOD AND PROGRAM}
도 1 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치를 포함하는 시스템의 구성을 도시한 도면.
도 2 는, 본 발명의 일 실시형태에 따른 하드웨어의 구성을 도시한 도면.
도 3 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 구성을 도시한 블록도.
도 4 는, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 스크린 디스플레이의 일 실시예를 도시한 도면.
도 5 는, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 스크린 디스플레이의 일 실시예를 도시한 도면.
도 6 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 스크린 디스플레이의 일 실시예를 도시한 도면.
도 7 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 스크린 디스플레이의 일 실시예를 도시한 도면.
도 8 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 스크린 디스플레이의 일 실시예를 도시한 도면.
도 9 는, 본 발명의 일 실시형태에 따른 프로그램 생성 장치에 저장된 매크로의 일 실시예를 도시한 도면.
도 10 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 동작을 도시한 플로우차트.
도 11 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 스크린 디스플레이의 일 실시예를 도시한 도면.
도 12 는, 본 발명의 일 실시형태에 따른 프로그램 생성 장치에 저장된 위치 파일의 일 실시예를 도시한 도면.
도 13 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치에 저장된 소스 파일의 일 실시예를 도시한 도면.
도 14 는, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 동작을 도시한 플로우차트.
도 15a 내지 도 15c 는, 본 발명의 일 실시형태에 따른 프로그램 생성 장치에 저장된 컴파일 테이블의 실시예를 도시한 도면.
도 16 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치에 저장된 배선 테이블의 일 실시예를 도시한 도면.
도 17 은, 본 발명의 일 실시형태에 따른 프로그램 생성 장치의 동작을 도시한 플로우차트.
*도면의 주요부분에 대한 부호의 설명*
100: 프로그램 생성 장치 101: CPU
102: 입력 유닛 103: 디스플레이 유닛
104: 메모리 105: HDD
106: I/O 200: 마이크로컴퓨터 보드
201: 마이크로컴퓨터 202: 마이크로컴퓨터 입력부
203: 마이크로컴퓨터 출력부
본 발명은 일반적으로 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램에 관한 것으로, 더 상세하게는, 마이크로컴퓨터상에서 실행되는 프로그램을 생성하는 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램에 관한 것이다.
마이크로컴퓨터는, 다양한 디바이스로 통합되고 각각의 디바이스의 동작을 제어하는 제어기로서 널리 이용된다.
마이크로컴퓨터는, 내부 메모리에 저장된 프로그램에 따라, 다양한 제어 프로세싱을 구현하도록 동작한다. 따라서, 마이크로컴퓨터를 이용하는 시스템의 구성은 마이크로컴퓨터의 동작에 대한 소프트웨어의 생성을 요구한다. 마이크로컴퓨터 소프트웨어의 개발은, C 와 BASIC 을 포함하는 하이-레벨 언어 및 기계 언어에 더 가까운 어셈블리 언어와 같은 프로그래밍 언어를 이용한다. 마이크로컴퓨터용 프로그램을 생성하기 위하여, 프로그래밍 언어에 대한 충분한 지식을 가질 필요가 있다. 그러나, 프로그래밍 언어는, 각각의 언어에 고유한 워드, 수치적 표현 등의 세트이며, 매우 복잡하다. 따라서, 사용자가 프로그램을 생성하기 위해 그 언어를 배우려면 많은 시간이 걸리며, 그것은 사용자에게 큰 부담이 된다.
또한, 마이크로컴퓨터용 프로그램은 일반적으로 사용자에 의한 수동 입력에 의해 설명되며, 스펠링 에러 및 수치적 표현과 같은 입력 에러 또는 논리 디스크립션 (description) 에러로 인한 버그가 발생할 수 있다. 버그를 제거하기 위하여, 소프트웨어 시뮬레이터, 하드웨어 시뮬레이터 등을 이용한 기계 디버깅 (machine debugging) 또는 데스크 디버깅을 수행할 필요가 있다. 따라서, 마이크로컴퓨터 시스템의 구성은 많은 작업을 필요로 하며, 그것은, 프로그램의 품질의 저하를 초래한다.
상기 단점을 극복하기 위하여, 프로그램을 생성하도록 상태 천이도를 입력하는 장치 또는 프로그램을 생성하도록 플로우차트를 입력하는 장치가, 예를 들어, 미심사된 일본 특허 공보 제 08-63345 호 및 제 11-353164 호에서 제안되었다. 그러나, 관련 기술의 프로그램 생성 장치는, 사용자가 소프트웨어 개발에 있어 약간의 경험을 갖는다는 가정에 기초하며, 사용자가 소프트웨어의 플로우 (flow) 를 이해하지 못하고 상태 천이도 또는 플로우차트를 생성할 수 없다면, 소프트웨어를 생성할 수 없다.
상술된 바와 같이, 관련 기술의 프로그램 생성 장치는, 프로그램 언어를 기술하거나 프로그램 동작의 플로우를 이해하는데 소프트웨어 지식을 요구하며, 그 지식 없이는 사용자가 마이크로컴퓨터용 프로그램을 생성하기 어렵다.
본 발명의 일 양태에 의하면, 입력 신호를 입력하는 입력부, 입력 신호에 대한 소정의 프로세싱을 구현하는 프로세서, 및 프로세싱의 결과를 출력하는 출력부를 포함하는 마이크로컴퓨터용 프로그램을 생성하기 위한 프로그램 생성 장치가 제공된다. 프로그램 생성 장치는, 입력부, 프로세서 및 출력부의 각각의 동작에 각각 대응하는 복수의 GUI 컴포넌트를 디스플레이하는 그래픽 사용자 인터페이스 (GUI) 디스플레이부, 및 사용자에 의한 복수의 GUI 컴포넌트의 조작 (manipulation) 에 따라 프로그램을 생성하는 프로그램 생성기를 포함한다. 프로그램 생성 장치는, 입력부, 프로세서 및 출력부에 대응하는 GUI 컴퓨넌트를 조작함으로써 마이크로컴퓨터 프로그램의 생성을 가능하게 하며, 그로 인해, 소프트웨어의 지식 없이도 사용자로 하여금 마이크로컴퓨터 프로그램을 더 용이하게 생성하게 한다.
본 발명의 또 다른 양태에 의하면, 입력 신호를 입력하는 입력부, 입력 신호에 대한 소정의 프로세싱을 구현하는 프로세서, 및 프로세싱의 결과를 출력하는 출력부를 포함하는 마이크로컴퓨터용 프로그램을 생성하는 프로그램 생성 방법이 제공된다. 프로그램 생성 방법은, 입력부, 프로세서 및 출력부의 각각의 동작에 각각 대응하는 복수의 GUI 컴포넌트를 디스플레이하는 단계, 및 사용자에 의한 복수의 GUI 컴포넌트의 조작에 따라 프로그램을 생성하는 단계를 포함한다. 프로그램 생성 방법은, 입력부, 프로세서 및 출력부에 대응하는 GUI 컴포넌트를 조작함 으로써 마이크로컴퓨터 프로그램의 생성을 가능하게 하며, 그로 인해, 소프트웨어에 대한 지식 없이도 사용자로 하여금 마이크로컴퓨터 프로그램을 더 용이하게 생성하게 한다.
본 발명의 또 다른 양태에 의하면, 컴퓨터로 하여금, 입력 신호를 입력하는 입력부, 입력 신호에 대한 소정의 프로세싱을 구현하는 프로세서, 및 프로세싱의 결과를 출력하는 출력부를 포함하는 마이크로컴퓨터용 프로그램을 생성하게 하는 프로그램 생성 프로세스를 구현하게 하는 컴퓨터에 의해 실행되는 명령어를, 컴퓨터 판독가능 매체에 포함하는 컴퓨터 프로그램 프로덕트 (product) 가 제공된다. 프로그램 생성 프로세스는, 입력부, 프로세서 및 출력부의 각각의 동작에 각각 대응하는 복수의 GUI 컴포넌트를 디스플레이하는 단계, 및 사용자에 의한 복수의 GUI 컴포넌트의 조작에 따라 프로그램을 생성하는 단계를 포함한다. 프로그램 프로덕트는, 입력부, 프로세서 및 출력부에 대응하는 GUI 컴포넌트를 조작함으로써 마이크로컴퓨터 프로그램의 생성을 가능하게 하며, 그로 인해, 소프트웨어의 지식 없이도 사용자로 하여금 마이크로컴퓨터 프로그램을 더 용이하게 생성하게 한다.
본 발명은, 소프트웨어의 지식 없이도 사용자로 하여금 마이크로컴퓨터용 프로그램을 더 용이하게 생성하게 하는 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램을 제공한다.
본 발명의 상기 및 다른 목적, 이점 및 특징은, 첨부된 도면과 관련하여 얻어진 다음의 설명으로부터 더 명백해질 것이다.
바람직한 실시형태의 설명
다음에, 본 발명은, 예시적인 실시형태를 참조하여 여기에서 설명된다. 당업자는, 다수의 또 다른 실시형태가 본 발명의 교시 (teaching) 를 이용하여 달성되며, 본 발명이 설명을 목적으로 예시된 실시형태로 제한되는 것은 아니라는 것을 알 수 있다.
제 1 실시형태
이하, 본 발명의 제 1 실시형태에 따른 프로그램 생성 장치를 설명한다. 이 실시형태의 프로그램 생성 장치는, 사용자로 하여금, 그래픽 사용자 인터페이스 (GUI) 의 조작을 통해 마이크로컴퓨터의 동작을 입력하게 하고, 그 조작에 따라 마이크로컴퓨터용 프로그램을 생성하게 한다.
우선, 도 1 을 참조하면, 이 실시형태의 프로그램 생성 장치를 포함하는 시스템이 여기에 설명된다. 그 시스템은, 마이크로컴퓨터용 프로그램을 생성하는 프로그램 생성 장치 (100), 및 마이크로컴퓨터가 실장되는 마이크로컴퓨터 보드 (200) 를 포함한다. 프로그램 생성 장치 (100) 및 마이크로컴퓨터 보드 (200) 는 기록용 케이블에 의해 접속된다. 예를 들어, 프로그램 생성 장치 (100) 에서 생성된 프로그램이 마이크로컴퓨터 보드 (200) 상의 마이크로컴퓨터 (201) 에 기록되고, 그 프로그램을 마이크로컴퓨터 (201) 가 실행한다면, 사용자는 프로그램의 동작을 학습하거나 평가할 수 있다.
마이크로컴퓨터 보드 (200) 는 마이크로컴퓨터 (201), 마이크로컴퓨터 입력부 (202), 및 마이크로컴퓨터 출력부 (203) 를 갖는다.
마이크로컴퓨터 (201) 는, 기록된 HEX 파일의 프로그램을 실행하고, 그 프로 그램에 따라 다양한 프로세싱을 구현하는 프로세서이다. 예를 들어, 마이크로컴퓨터 (201) 는, 프로그램이 프로그램 생성 장치 (100) 로부터 기록되는 내장형 플래시 메모리를 갖는 단일-칩 마이크로컴퓨터일 수도 있다.
마이크로컴퓨터 입력부 (202) 는, 마이크로컴퓨터 (201) 의 입력 포트에 접속되고, 입력 유닛 등을 통해 마이크로컴퓨터 (201) 에 입력 신호를 공급한다. 예를 들어, 스위치, 디지털 신호 입력 단자, 아날로그 신호 입력 단자, 시리얼 데이터 입력 단자 또는 사용자의 필요에 따른 다른 디바이스가 마이크로컴퓨터 입력부 (202) 에 제공될 수도 있으며 마이크로컴퓨터 (201) 의 입력 포트에 접속될 수도 있다. 마이크로컴퓨터 (201) 의 입력 포트와 출력 포트로서 기능을 하는 포트는, 고정된 포트 넘버 (포트 포지션) 또는, 사용자에 의해 선택된 임의의 포트 넘버일 수도 있다.
마이크로컴퓨터 출력부 (203) 는, 마이크로컴퓨터 (201) 의 출력 포트에 접속되고, 출력 유닛 등을 통해 마이크로컴퓨터 (201) 로부터 외부로 출력 신호를 출력한다. 예를 들어, LED (램프), 버저 (buzzer), 디지털 신호 출력 단자, 시리얼 데이터 출력 단자 또는 사용자의 필요에 따른 다른 디바이스가 마이크로컴퓨터 출력부 (203) 에 제공될 수도 있으며 마이크로컴퓨터 (201) 의 출력 포트에 접속될 수도 있다.
프로그램 생성 장치 (100) 는, 사용자에 의한 GUI 조작에 응답하여, 소정의 프로그래밍 언어로 마이크로컴퓨터 (201) 의 동작을 기술하는 소스 파일을 생성한다. 프로그램 생성 장치 (100) 는 그 생성된 소스 파일을 HEX 파일로 어셈블링 하고, 그 생성된 HEX 파일을 마이크로컴퓨터 (201) 에 기록한다. 프로그램 생성 장치 (100) 는, 예를 들어, 개인용 컴퓨터 또는 서버 컴퓨터와 같은 컴퓨터일 수도 있다.
도 2 는, 프로그램 생성 장치 (100) 를 구현하는 하드웨어 구성의 일 실시예를 도시한 것이다. 예를 들어, 프로그램 생성 장치 (100) 는, 중앙 프로세싱 유닛 (CPU; 101) 과 메모리 (104) 를 포함할 수도 있다. CPU (101) 와 메모리 (104) 는, 버스를 통해 보조 저장장치로서 기능을 하는 하드 디스크 디바이스 (HDD; 105) 에 접속된다. 통상, 프로그램 생성 장치 (100) 는, 사용자 인터페이스 하드웨어를 포함한다. 사용자 인터페이스 하드웨어는, 예를 들어, 사용자에 의해 입력을 수신하기 위한 포인팅 디바이스 (예를 들어, 마우스, 조이스틱) 및 키보드와 같은 입력 유닛 (102), 및 사용자에게 비쥬얼 데이터를 표시하기 위한 CRT 및 액정 디스플레이와 같은 디스플레이 유닛 (103) 을 포함한다. HDD (105) 와 같은 저장 매체는, 프로그램 생성 장치 (100) 의 기능을 구현하도록 동작 시스템과 협동하여, CPU (101) 등에 명령어를 공급하는 프로그램을 저장할 수도 있다. 그 프로그램은, 메모리 (104) 에 로딩된 이후에 실행된다. 또한, 프로그램 생성 장치 (100) 는, 외부 디바이스 등과 접속될 입/출력 인터페이스 (I/O; 106) 를 포함한다. I/O (106) 는 예를 들어, 마이크로컴퓨터 접속용 어댑터일 수도 있고, 마이크로컴퓨터 보드 (200) 에 접속될 수도 있다. 프로그램 생성 장치 (100) 가 반드시 단일의 컴퓨터로 구성될 필요는 없으며, 복수의 컴퓨터로 구성될 수도 있다.
그 후, 도 3 의 블록도를 참조하여, 본 실시형태에 따른 프로그램 생성 장치 (100) 의 구성이 이하에서 설명된다. 도 3 에 도시된 바와 같이, 프로그램 생성 장치 (100) 는, 제어 프로세서 (110), 정보 저장장치 (120), 디스플레이부 (130), 입력부 (140) 및 출력부 (150) 를 포함한다. 도 3 의 블록은, 도 2 에 도시된 하드웨어 또는 하드웨어를 통해 실행되는 소프트웨어에 의해 구현된다.
제어 프로세서 (110) 는, 프로그램 생성 장치 (100) 에서의 프로세싱을 실행한다. 예를 들어, 제어 프로세서 (110) 는 CPU 와 같은 제어 프로세싱 유닛이며, 정보 저장장치 (120) 에 미리 저장된 OS 프로그램 또는 응용 프로그램에 따라 다양한 프로세싱을 실행한다.
상세하게는, 제어 프로세서 (110) 는, GUI 프로세서 (111), 위치 파일 생성기 (112), 위치 파일 컴파일러 (113), 어셈블러 (114), 및 마이크로컴퓨터 기록기 (microcomputer writer; 115) 를 포함한다. 예를 들어, 이들 엘리먼트의 프로세싱을 기술하는 프로그램은 정보 저장장치 (120) 에 저장된다. 프로그램은 메모리 상에 확장되고, CPU 는 그 프로그램에 따라 프로세싱을 실행하고 다른 하드웨어 구성과 협동함으로써, 각각의 엘리먼트를 구성한다.
정보 저장장치 (120) 는, 하드 디스크 및 메모리와 같은 내부 저장 수단 및 광학 디스크와 같은 외부 저장 수단을 포함하며, OS 프로그램, 응용 프로그램 또는 다른 프로그램의 프로세싱에 필요한 다양한 데이터를 저장한다. 상세하게는, 정보 저장장치 (120) 는, GUI 정보 저장장치 (121), 위치 파일 저장장치 (122), 컴파일 테이블 저장장치 (123), 매크로 정보 저장장치 (124), 소스 파일 저장장치 (125) 및 HEX 파일 저장장치 (126) 를 포함한다.
GUI 정보 저장장치 (121) 는 디스플레이부 (130) 상에 GUI 를 디스플레이하는 GUI 정보를 저장한다. 예를 들어, GUI 정보는, 프로그램 생성 윈도우, 입/출력 팔레트 (pallet), 프로세싱 패널 및 아이콘과 같은 GUI 컴포넌트의 이미지 데이터일 수도 있으며, GUI 정보 저장장치 (121) 에 미리 저장된다.
위치 파일 저장장치 (122) 는, GUI 를 통해 사용자에 의해 제어되는 GUI 컴포넌트의 포지션을 표시하는 위치 파일을 저장한다. 예를 들어, 위치 파일은 윈도우 (에디팅 패널) 상에 배치된 패널 및 아이콘의 포지션 (좌표) 정보이다.
컴파일 테이블 저장장치 (123) 는, 위치 파일을 컴파일하기 위해 이용되는 컴파일 테이블을 저장한다. 예를 들어, 컴파일 테이블은, 후술되는 배선 테이블과 함수 테이블을 포함한다.
매크로 정보 저장장치 (명령어 블록 저장장치; 124) 는 복수의 프로그램 명령어에 따라 기술된 소정의 프로세싱을 포함하는 매크로 정보 (명령어 블록) 를 저장한다. 매크로 정보는, GUI 정보 저장장치 (121) 에서의 마이크로컴퓨터 입/출력 및 프로세싱을 표시하는 각각의 아이콘에 대해 준비된다. 통상적으로, 매크로 정보는 어셈블리 언어로 기술된 매크로이지만, C 언어 등으로 기술된 함수와 같은 또 다른 명령어 블록일 수도 있다.
소스 파일 저장장치 (125) 는 마이크로컴퓨터의 동작의 디스크립션을 포함하는 마이크로컴퓨터 프로그램인 소스 파일을 저장한다. 소스 파일은, 예를 들어, C 및 BASIC 과 같은 하이-레벨 언어 또는 어셈블리 언어로 기술된다. 소스 파일이 C 언어로 기술되는 경우가 이하에 설명되지만, 어셈블리 언어와 같은 프로그램을 실행하는 어셈블러 (예를 들어, 컴파일러) 및 마이크로컴퓨터를 포함하는 환경에 적합한 언어의 사용이 바람직하다.
HEX 파일 저장장치 (126) 는, 마이크로컴퓨터상에 존재할 때, 실행가능한 기계 언어 프로그램인 HEX 파일을 저장한다.
GUI 프로세서 (GUI 디스플레이; 111) 는 GUI 의 디스플레이 및 조작과 같은 GUI 디스플레잉 프로세싱을 수행한다. 상세하게는, GUI 프로세서 (111) 는 GUI 정보 저장장치 (121) 에 저장된 GUI 정보를 수신하며, 디스플레이부 (130) 상에 GUI 를 디스플레이한다. 후술되는 바와 같이, GUI 프로세서 (111) 는, 마이크로컴퓨터 입력부 (202), 마이크로컴퓨터 (프로세서; 201), 및 마이크로컴퓨터 출력부 (202) 의 동작에 대응하는 복수의 아이콘 및 이들 아이콘이 배치된 에디팅 패널을 디스플레이한다. 또한, GUI 프로세서 (111) 는, 입력부 (140) 에, 마우스 등을 통한 사용자에 의한 입력인 조작에 응답하여, GUI 를 디스플레이한다.
위치 파일 생성기 (112) 및 위치 파일 컴파일러 (113) 는 사용자에 의한 GUI 조작에 따라 마이크로컴퓨터용 프로그램을 생성하는 프로그램 생성기 (116) 로서 기능을 한다. 프로그램 생성기 (116) 는 사용자에 의해 배열되는 아이콘들의 포지션인 위치 파일에 따라 프로그램을 생성한다. 또한, 프로그램 생성기 (116) 는 사용자에 의해 배열된 아이콘에 대응하는 매크로를 이용함으로써 프로그램을 생성한다.
위치 파일 생성기 (포지션 정보 생성기; 112) 는 아이콘의 포지션 정보를 포 함하는 위치 파일의 생성을 구현한다. 상세하게는, 위치 파일 생성기 (112) 는 사용자의 조작에 응답하여, GUI 프로세서 (111) 에 의해 디스플레이된 GUI 의 포지션을 획득하여, 위치 파일을 생성하며, 그 생성된 파일을 위치 파일 저장장치 (122) 에 저장한다.
위치 파일 컴파일러 (113) 는 위치 파일을 소스 파일로 변환하는 컴파일을 구현한다. 상세하게는, 위치 파일 컴파일러 (113) 는 위치 파일 저장장치 (122) 에 저장된 위치 파일 및 매크로 정보 저장장치 (124) 에 저장된 매크로 정보를 수신하여, 소스 파일을 생성하고, 그 생성된 파일을 소스 파일 저장장치 (125) 에 저장한다. 더 상세하게는, 위치 파일 컴파일러 (113) 는 위치 파일에 기초하여 컴파일 테이블을 생성하고 그 생성된 테이블을 컴파일 테이블 저장장치 (123) 에 저장한 후, 컴파일 테이블과 매크로 정보에 기초하여 소스 파일을 생성한다. 후술되는 바와 같이, 위치 파일 컴파일러 (113) 는 위치 파일을, 아이콘의 접속을 표시하는 배선 테이블 (접속 정보) 로 변환하고, 그 배선 테이블에 기초하여 매크로의 입력 파라미터를 결정한다.
어셈블러 (114) 는 소스 파일을 기계 언어 프로그램으로 변환하는 어셈블링을 구현한다. 상세하게는, 어셈블러 (114) 는 소스 파일 저장장치 (125) 에 저장된 소스 파일을 수신하여, 그 소스 파일을 HEX 파일로 변환하며, 그 파일을 HEX 파일 저장장치 (126) 에 저장한다.
마이크로컴퓨터 기록기 (115) 는 기계 언어 프로그램을 마이크로컴퓨터 (201) 에 기록한다. 상세하게는, 마이크로컴퓨터 기록기 (115) 는, 출력부 (150) 를 통해, HEX 파일 저장장치 (126) 에 저장된 HEX 파일을 마이크로컴퓨터 (201) 에 기록한다.
디스플레이부 (130) 는, 프로그램 생성 장치 (100) 의 프로세싱에 대한 정보를 디스플레이한다. 예를 들어, 디스플레이부 (130) 는 GUI 프로세서 (111) 로부터 GUI 등을 수신하고, CRT 또는 LCD 와 같은 디스플레이 유닛을 통해 그 정보를 디스플레이한다.
입력부 (140) 는, 사용자로부터 프로그램 생성 장치 (100) 의 프로세싱에 필요한 정보를 수신한다. 예를 들어, 입력부 (140) 는, 키보드 또는 마우스와 같은 입력 유닛을 통해 사용자로부터 GUI 조작을 수신하고, 그 수신된 정보를 GUI 프로세서 (111) 등에 입력한다.
출력부 (150) 는 마이크로컴퓨터 보드 (200) 에 접속된 인터페이스이다. 예를 들어, 출력부 (150) 는 마이크로컴퓨터 기록기 (115) 로부터 HEX 파일을 수신하고, 그 수신된 파일을 마이크로컴퓨터 보드 (200) 상의 마이크로컴퓨터 (201) 에 기록한다.
이하, GUI 정보 저장장치 (121) 와 매크로 정보 저장장치 (123) 에 각각 저장된 GUI 정보 및 매크로 정보를 설명한다. 이들 정보는 프로그램 생성의 실행에 앞서 미리 저장된다.
도 4 내지 도 8 은, GUI 정보 저장장치 (121) 의 GUI 정보에 따라 GUI 프로세서 (111) 에 의해 디스플레이된 디스플레이 스크린의 실시예를 도시한 것이다. 도 4 에 도시된 프로그램 생성 윈도우 (500) 는 GUI 프로세서 (111) 에 의해 디스 플레이된다. 사용자는 프로그램 생성 윈도우 (500) 의 아이콘을 조작하여, 마이크로컴퓨터의 동작을 입력하거나 프로그램 생성 장치 (100) 의 프로세싱을 실행한다. 프로그램 생성 윈도우 (500) 는, 도 4 에 도시된 바와 같이, 입/출력 팔레트 (510), 프로세싱 팔레트 (520) 및 에디팅 패널 (530) 을 갖는다.
입/출력 팔레트 (510) 및 프로세싱 팔레트 (520) 에, 미리 결정된 아이콘이 디스플레이된다. 후술되는 바와 같이, 대응 동작을 표시하는 단순한 그림이 각각의 아이콘 상에 디스플레이되어, 사용자는 아이콘의 동작을 시각적으로, 그리고 용이하게 이해할 수 있다.
입/출력 팔레트 (510) 는 마이크로컴퓨터 입력부 (202) 와 마이크로컴퓨터 출력부 (203) 의 동작을 설정하기 위한 복수의 아이콘을 포함한다. 프로세싱 팔레트 (520) 는 마이크로컴퓨터 (201) 상에서 실행될 프로세싱의 동작을 설정하기 위한 복수의 아이콘을 포함한다. 입/출력 팔레트 (510) 와 프로세싱 팔레트 (520) 의 디스플레이 포지션이 반드시, 도 4 에 도시된 바와 같을 필요는 없다. 팔레트는, 사용자에 대한 용이한 조작을 허용하는 상이한 포지션에 있을 수도 있다. 예를 들어, 그들은 반드시, 에디팅 패널 (530) 의 양측에 있을 필요는 없으며, 상측 또는 하측에 있을 수도 있다. 에디팅 패널 (530) 의 구성에 따라, 에디팅 패널 (530) 의 좌측과 우측에 각각 입/출력 팔레트 (510) 의 입력 아이콘과 출력 아이콘을 배열하고, 에디팅 패널 (530) 의 하측에 프로세싱 팔레트 (520) 를 배열하는 것이 가능하다.
에디팅 패널 (530) 은, 사용자로 하여금 여기에 디스플레이된 컨텐츠를 에디 팅하게 하는 영역이다. 에디팅 패널 (530) 은, 입/출력 팔레트 (510) 와 프로세싱 팔레트 (520) 의 아이콘을 이용함으로써, 마이크로컴퓨터 (201) 의 일련의 프로세싱 및 입/출력을 설정한다. 예를 들어, 사용자는 입/출력 팔레트 (510) 및 프로세싱 팔레트 (520) 의 아이콘을 드래그 앤 드롭 (drag and drop) 하여, 에디팅 패널 (530) 상의 임의의 포지션에 아이콘을 배열시킨다. 아이콘을 드래깅함으로써 에디팅 패널 (530) 상에 배열되어진 아이콘의 포지션을 변경시키는 것이 가능하다. 또한, 우측 클릭과 같은 조작에 의해 에디팅 패널 (530) 상에 배열된 아이콘의 파라미터 (즉, 입/출력 포트 넘버, 타이머 값 및 최대 카운트 값 등) 의 설정을 변경시키는 것이 가능하다.
프로그램 생성 윈도우 (500) 는 툴바 (540) 를 더 포함한다. 프로그램 생성 장치 (100) 의 프로세싱은, 툴바 (540) 상의 아이콘에 대한 사용자의 선택 (클릭) 에 따라 구현될 수 있다. 예를 들어, 위치 파일의 기록 또는 판독, 컴파일링, 어셈블링 및 마이크로컴퓨터로의 기록과 같은 프로세싱은 툴바 (540) 상의 아이콘의 사용으로 실행될 수 있다. 툴바 대신에, 각각의 프로세싱에 따른 커맨드 (command) 의 선택을 위해 복수의 커맨드를 포함하는 메뉴를 디스플레이하는 것이 가능하다.
도 5 는, 입/출력 팔레트 (510) 상에 디스플레이된 아이콘의 실시예를 도시한 것이다. 아이콘 (601 내지 605) 은, 마이크로컴퓨터 입력부 (202) 의 동작 설정용이며, 마이크로컴퓨터 (201) 의 입력 포트에 입력된 신호를 설정하기 위해 이용된다. 예를 들어, 아이콘 (601 내지 605) 은 마이크로컴퓨터 입력부 (202) 의 입력 유닛에 대응하여 배치된다.
아이콘 (601) 은, 푸시-버튼 스위치용이며, 아이콘 (602) 은 슬라이딩 스위치용이다. 아이콘 (601 및 602) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 입력부 (202) 상의 스위치의 동작에 대응하는 신호가 마이크로컴퓨터 (201) 의 소정의 입력 포트에 입력된다. 아이콘 (603) 은 디지털 신호 입력용이다. 아이콘 (603) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 입력부 (202) 의 디지털 신호 입력 단자를 통해 입력된 신호가 마이크로컴퓨터 (201) 의 소정의 입력 포트에 입력된다.
아이콘 (604) 은 아날로그 신호 입력용이다. 아이콘 (604) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 입력부 (202) 의 아날로그 신호 입력 단자를 통해 입력된 신호가 A/D 변환기가 내장된 마이크로컴퓨터 (201) 의 소정의 입력 포트에 입력된다. 아이콘 (605) 은 UART 시리얼 데이터 입력용이다. 아이콘 (605) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 입력부 (202) 의 시리얼 데이터 입력 단자를 통해 입력된 시리얼 데이터가 마이크로컴퓨터 (201) 의 소정의 입력 포트에 입력된다.
아이콘 (606 내지 611) 은 마이크로컴퓨터 출력부 (203) 의 동작 설정용이며, 마이크로컴퓨터 (201) 의 출력 포트로부터 출력된 신호를 설정하기 위해 이용된다. 예를 들어, 아이콘 (606 내지 611) 은 마이크로컴퓨터 출력부 (203) 의 출력 유닛에 대응하여 배치된다.
아이콘 (606) 은 LED (램프) 출력용이다. 아이콘 (606) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 출력부 (203) 의 LED 가 마이크로컴퓨터 (201) 로부터의 출력에 응답하여 점등한다. 아이콘 (607) 은 버저 출력용이다. 아이콘 (607) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 출력부 (203) 의 버저가 마이크로컴퓨터 (201) 로부터의 출력에 응답하여 사운드를 낸다.
아이콘 (608) 은 PWM 신호 출력용이다. 아이콘 (608) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 (201) 로부터 출력된 PWM 신호가 마이크로컴퓨터 출력부 (203) 의 PWM 신호 출력 단자로부터 출력된다. 아이콘 (609) 은 디지털 신호 출력용이다. 아이콘 (609) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 (201) 로부터 출력된 디지털 신호가 마이크로컴퓨터 출력부 (203) 의 디지털 신호 출력 단자로부터 출력된다.
아이콘 (610) 은 UART 시리얼 데이터 출력의 트리거용이다. 아이콘 (610) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 (201) 로부터 시리얼 데이터를 출력하기 위해 트리거가 생성된다. 트리거에 응답하여, 시리얼 데이터는 시리얼 데이터 출력 프로세싱 (후술되는 아이콘 (710)) 을 통해 출력된다. 아이콘 (611) 은 7-세그먼트 LED 출력용이다. 아이콘 (611) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 출력부 (203) 의 7-세그먼트 LED 의 소정의 LED 가 7-세그먼트 LED 상에 소정의 넘버를 디스플레이하기 위해 점등한다.
도 6 은, 프로세싱 팔레트 (520) 상에 디스플레이된 아이콘의 실시예를 도시한 것이다. 아이콘 (701 내지 715) 은 마이크로컴퓨터상에서 실행될 프로세싱의 동작 설정용이다. 복수의 아이콘의 조합은, 일련의 프로세싱이 마이크로컴 퓨터 (201) 상에서 실행되게 한다. 아이콘의 프로세싱으로, 온/오프 디지털 값 (이진 정보) 이 입력 또는 출력된다.
아이콘 (701) 은 프로세싱을 접속시키기 위한 배선용이다. 아이콘 (701) 이 에디팅 패널 (530) 상에 배치되면, 온/오프 디지털 값이 아이콘의 화살표의 방향으로 송신된다. 상세하게는, 아이콘 (701) 은 상측 또는 좌측으로부터 입력된 디지털 값을 하측 또는 우측으로 출력한다.
아이콘 (702 및 703) 은, 각각, 점퍼 엔트리 (entry) 와 점퍼 엑시트 (exit) 용이다. 아이콘 (702 및 703) 이 에디팅 패널 (530) 상에 배치되면, 온/오프가 점퍼 엔트리 아이콘 (702) 으로부터 엑시트 아이콘 (703) 으로 송신된다. 상세하게는, 아이콘 (702 및 703) 은, 점퍼 엔트리로 입력된 디지털 값을, 그 엔트리로부터 이격되어 배치된 점퍼 엑시트로 전달한다.
아이콘 (704 내지 707) 은 논리 연산용이다. 아이콘 (704 내지 707) 이 에디팅 패널 (530) 상에 배치되면, AND 연산, OR 연산, NOT 연산 및 XOR 연산이 입력 디지털 값에 대해 수행되고, 그 연산 결과가 출력된다.
아이콘 (708 및 709) 은 고정 레벨 신호 출력용이다. 아이콘 (708 및 709) 이 에디팅 패널 (530) 상에 배치되면, 일정한 (constant) 온 또는 일정한 오프가 출력된다.
아이콘 (710) 은 UART 시리얼 데이터 출력용이다. 아이콘 (710) 이 에디팅 패널 (530) 상에 배치되면, 입력 온/오프가 마이크로컴퓨터 출력부 (203) 의 시리얼 데이터 출력 단자에 직접 출력된다.
아이콘 (711) 은 7-세그먼트 LED 출력용이다. 아이콘 (711) 이 에디팅 패널 (530) 상에 배치되면, 마이크로컴퓨터 출력부 (203) 의 7-세그먼트 LED 의 소정의 LED 가 입력 온/오프에 응답하여 직접 점등한다.
아이콘 (712) 은 플립-플롭 프로세싱용이다. 아이콘 (712) 이 에디팅 패널 (530) 상에 배치되면, 플립-플롭의 각각의 타입에 대응하는 연산이 입력 디지털 값에 대해 수행되며, 그 연산 결과가 출력된다. 예를 들어, 아이콘 (712) 은 RS-FF, D-FF, T-FF 등과 유사하게 연산한다.
아이콘 (713) 은 타이머 프로세싱용이다. 아이콘 (713) 이 에디팅 패널 (530) 상에 배치되면, 입력 디지털 값이 변경되는 시점으로부터 설정 시간 주기 (타이머 주기) 이후에, 소정의 디지털 값이 출력된다. 예를 들어, 입력 값이 오프로부터 온으로 변경될 경우, 그 시간 이후에, 설정 시간 주기가 경과한 후, 온이 출력된다.
아이콘 (714) 은 카운터 프로세싱용이다. 아이콘 (714) 이 에디팅 패널 (530) 상에 배치되면, 입력 디지털 값의 변경이 카운팅되고, 그 카운트 값이 미리 설정된 값에 도달할 때, 소정의 디지털 값이 출력된다. 예를 들어, 입력이 오프로부터 온으로 변경될 때마다 카운팅하고, 그 카운트 값이 미리 설정된 값에 도달할 때, 온을 출력한다. 또한, 모두 카운팅된 후, 카운트 값은 0 으로 재설정된다.
아이콘 (715) 은 지연 프로세싱용이다. 아이콘 (715) 이 에디팅 패널 (530) 상에 배치되면, 입력 디지털 값은 입력으로부터의 설정 시간 주기 이후에 출 력된다.
도 7 은, 아이콘이 에디팅 패널 (530) 상에 배치되지 않은 경우의 디스플레이 실시예를 도시한 것이다. 에디팅 패널 (530) 은 입력 패널 (810), 출력 패널 (820) 및 프로세싱 패널 (830) 을 갖는다. 입력 패널 (810), 출력 패널 (820) 및 프로세싱 패널 (830) 은 각각, 각각의 아이콘 배치 (placement) 를 위해 복수의 패널로 분할된다. I_0, O_0, F_00 은 각각의 패널의 포지션을 표시하는 패널 넘버이다. 패널의 넘버가 반드시 도 7 에 도시된 바와 같이 존재할 필요는 없으며, 어떠한 임의의 넘버일 수도 있다.
입력 패널 (810) 은 일방향으로 정렬된 I_0 내지 I_9 의 10 개의 패널을 포함한다. 입/출력 팔레트 (510) 의 입력 동작 설정용 아이콘 (아이콘 601 내지 605) 이 입력 패널 (810) 상에 배치될 수도 있다.
출력 패널 (820) 은 일방향으로 정렬된 O_0 내지 O_9 의 10 개의 패널을 포함한다. 입/출력 팔레트 (510) 의 출력 동작 설정용 아이콘 (아이콘 606 내지 611) 이 출력 패널 (820) 상에 배치될 수도 있다.
프로세싱 패널 (830) 은, 래티스 패턴 (lattice pattern) 의 2-차원적으로 배열된 F_00 내지 F_99 의 100 개의 패널을 포함한다. 패널의 넘버의 제 1 숫자 (digit) 는 열 넘버 (row number) 를 표시하고 제 2 숫자는 행 넘버를 표시한다. 프로세싱 팔레트 (520) 의 프로세싱 동작 설정용 아이콘 (아이콘 701 내지 715) 이 프로세싱 패널 (830) 상에 배치될 수도 있다.
이 실시예에서, 입력 패널 (810) 은 프로세싱 패널 (830) 의 일측 (좌측) 에 배치되고, 출력 패널 (820) 은 프로세싱 패널 (830) 의 타측 (우측) 에 배치된다. 이런 배열은, 사용자로 하여금, 입력부로의 입력 신호, 프로세싱부를 통한 송신 및 출력부로부터의 신호의 출력의 일련의 동작을 용이하게 트래킹하게 한다.
도 8 은, 아이콘이 에디팅 패널 (530) 상에 배치된 특정 디스플레이 실시예를 도시한 것이다. 도 8 은 팬의 제어를 위한 프로세싱의 일 실시예를 도시한 것이다. 이 실시예에서, 마이크로컴퓨터 (201) 는, 마이크로컴퓨터 입력부 (202) 에 배치된 동작 키 또는 슬립 키 (sleep key) 의 프레싱에 따른 프로세싱을 구현하여, 팬을 활성화시키거나, 마이크로컴퓨터 출력부 (203) 에 배치된 디지털 지연에 의해 LED 를 켠다 (turn on).
이하, 아이콘이 도 8 에 도시된 바와 같이 배열될 경우의 동작을 설명한다. 입력 패널 (810) 의 I_1 상에 배치된 동작 키 (901) 를 프레싱할 때마다, 프로세싱 패널 (830) 의 F_01 내지 F_03 상에 배치된 카운터 (903) 의 카운트 값은 2,1 및 0 사이에서 스위칭한다. 이 실시예에서, 카운터 (903) 및 카운터 (904) 는 카운트 값을 감소시키는 다운 카운터 (down counter) 이지만, 그들은, 카운트 값을 증가시키는 업 카운터 (up counter) 일 수도 있다.
카운터 (903) 의 카운트 값이 2 이면, 출력 패널 (820) 의 O_1 상에 배치된 디지털 하이 릴레이 (digial HIGH relay; 910) 에 온이 공급된다. 하이 출력 릴레이가 디지털 신호 출력 단자에 접속되도록 디지털 하이 릴레이 (910) 가 존재하여, 팬이 다량의 공기로 동작한다.
카운터 (903) 의 카운트 값이 1 이면, 출력 패널 (820) 의 O_2 상에 배치된 디지털 로우 (LOW) 릴레이 (911) 에 온이 공급된다. 로우 출력 릴레이가 디지털 신호 출력 단자에 접속되도록 디지털 로우 릴레이 (911) 가 존재하여, 팬이 소량의 공기로 동작한다.
카운터 (903) 의 카운트 값이 0 이면, 디지털 하이 릴레이 (910) 와 디지털 로우 릴레이 (911) 에 오프가 공급되어, 팬은 동작을 멈춘다. 또한, 카운터 (904) 의 카운트 값을 재설정하고 타이머 동작을 종료하기 위해 온이 카운터 (904) 에 공급된다.
입력 패널 (810) 의 I_4 상에 배치된 슬립 키 (902) 를 프레싱할 때마다, 프로세싱 패널 (830) 의 F_14 내지 F_15 상에 배치된 카운터 (904) 의 카운트 값이 2 와 1 사이에서 스위칭한다.
카운터 (904) 의 카운트 값이 2 이면, 출력 패널 (820) 의 O_4 상에 배치된 2H-LED 램프 (912) 에 온이 공급되어, LED 를 점등한다. 또한, 120M-타이머 (905) 에 온이 공급된다. 그 후, 120M-타이머 (905) 는, 온의 입력으로부터 120 분 후에, OR (907), 점퍼 (908), 및 점퍼 (909) 를 통해, 카운터 (903) 에 온을 송신하고, 그로 인해, 카운터 (903) 의 카운터 값을 재설정한다. 따라서, 팬의 동작은, 슬립 키 (902) 가 프레싱된 이후, 120 분 후에 종료한다.
카운터 (904) 의 카운트 값이 1 이면, 출력 패널 (820) 의 O_5 상에 배치된 1H-LED 램프 (913) 에 온이 공급되고, 그로 인해, LED 가 점등한다. 또한, 60M-타이머 (906) 에 온이 공급된다. 그 후, 60M-타이머 (906) 는, 온의 입력으로부터 60 분 이후에, OR (907), 점퍼 (908), 및 점퍼 (909) 를 통해, 카운터 (903) 에 온을 송신하고, 그로 인해, 카운터 (903) 의 카운트 값을 재설정한다. 따라서, 팬의 동작은, 슬립 키 (902) 가 프레싱된 이후, 60 분 후에 종료한다.
따라서, 동작 키를 프레싱할 때마다, 하이, 로우 및 오프 사이에서 팬의 공기량을 스위칭하는 동작, 및 도 8 에 도시된 바와 같이 아이콘을 배열함으로써 용이하게 슬립 키를 누를 때마다, 슬립-온 (2 시간), 슬립-온 (1 시간), 및 슬립-오프 사이에서 팬의 동작을 스위칭하는 동작을 설정하는 것이 가능하다.
도 9 는 매크로 정보 저장장치 (124) 에 저장된 매크로 정보의 일 실시예를 도시한 것이다. 도 9 는 소스 파일처럼, 어셈블리 언어로 기술된 ANDF 매크로의 정의의 실시예이다. 예를 들어, 매크로 네임 (ANDF) 과 파라미터 (Fout, Fin1 및 Fin2) 가 메인 프로그램에서 기술되면, 도 9 의 매크로의 복수의 명령어가 프로그램의 실행 동안에 수행된다. 이 실시예에서, ANDF 매크로의 Fin1 과 Fin2 로의 값의 입력은 Fout 에 Fin1 과 Fin2 의 AND 연산의 결과를 제공한다. 이 실시형태에서, 입/출력 팔레트 (510) 의 입력부 아이콘과 출력부 아이콘 및 프로세싱 팔레트 (520) 의 프로세싱 아이콘에 각각 대응하는 매크로가 매크로 정보 저장장치 (124) 에 준비되고 저장된다. 따라서, 메인 프로그램 상의 각각의 아이콘에 대응하는 매크로를 단순히 기술함으로써 프로그램이 생성될 수 있고, 그로 인해, 효율적이고 정확한 프로그램 생성이 가능하게 된다.
다음으로, 도 10 의 플로우차트를 참조하여, 본 실시형태에 따른 프로그램 생성 프로세스가 이하에 설명된다. 프로그램 생성 프로세스는 프로그램 생성 장치 (100) 의 제어 프로세서 (110) 에 의해 구현된다.
우선, GUI 프로세서 (111) 는 GUI 를 디스플레이한다 (S101). 예를 들어, 사용자가 컴퓨터상에 프로그램 생성을 위한 프로그램을 개시한다면, GUI 프로세서 (111) 는 GUI 정보 저장장치 (121) 로부터 GUI 정보를 판독하고, 도 4 에 도시된 프로그램 생성 윈도우 (500) 를 디스플레이한다. 이때, 프로그램 생성 윈도우 (500) 의 에디팅 패널 (530) 은, 아이콘이 배치되지 않은 초기 상태일 수도 있다. 또 다른 방법으로, 에디팅 패널 (530) 은 미리 배열된 소정의 아이콘을 가질 수도 있다. 예를 들어, 마이크로컴퓨터 입력부 (202) 와 마이크로컴퓨터 출력부 (203) 에 배치된 디바이스에 대응하는 아이콘이 에디팅 패널 (530) 의 입력 패널 (810) 과 출력 패널 (820) 에 각각 배치될 수도 있다. 이것은 입력부 또는 출력부의 구성 에러를 방지한다.
그 후, 사용자는 GUI 를 조작하여, 에디팅 패널 (530) 을 에디팅한다 (S102). 예를 들어, 사용자가 프로그램 생성 윈도우 (500) 상에 아이콘을 드래그 앤 드롭하면, GUI 프로세서 (111) 는 사용자 조작에 응답하여, 에디팅 패널 (530) 상에 선택된 아이콘을 배치한다.
도 11 은, 사용자가 에디팅 패널 (530) 상에 아이콘을 배열하는 일 실시예를 도시한 것이다. 입력 패널 (810) 에서, 스위치 (921, 922 및 923) 는, 각각, I_1, I_2 및 I_3 에 배치된다. 출력 패널 (820) 에서, 램프 (926) 는 O_3 에 배치된다. 프로세싱 패널 (830) 에서, AND (924) 는 F_12 에 배치되고, OR (925) 은 F_23 에 배치되며, 배선용 아이콘은 스위치 (921, 922, 923), AND (924), OR (925), 및 램프 (926) 의 접속을 행하도록 배치된다. 이런 프로세싱이 마이 크로컴퓨터상에서 실행되면, 스위치 (921 및 922) 모두를 프레싱할 때, 또는 스위치 (923) 를 프레싱할 때, 램프가 점등한다.
그 후, 위치 파일 생성기 (112) 가 위치 파일을 생성한다 (S103). 예를 들어, 사용자가 프로그램 생성 윈도우 (500) 의 툴바 (540) 상의 소정의 아이콘을 클릭하면, 위치 파일 생성기 (112) 는 S102 에서 사용자에 의해 에디팅된 에디팅 패널 (530) 상에 배열된 아이콘의 포지션에 따라 위치 파일을 생성하고, 그 파일을 위치 파일 저장장치 (122) 에 저장한다.
도 12 는, S103 에서 생성된 위치 파일의 일 실시예이며, 도 11 에 도시된 에디팅 패널 (530) 을 위치 파일로 변환한 결과이다. 도 12 에 "A" 로 표시된 부분은 입력 패널 (810) 로부터 변환된 정보를 포함하고, 부분 "B" 는 프로세싱 패널 (830) 로부터 변환된 정보를 포함하며, 부분 "C" 는 출력 패널 (820) 로부터 변환된 정보를 포함한다.
입력 패널 (810) 의 I_0 내지 I_9 가 순차적으로 선택되며 아이콘이 패널상에 배열된다면, 패널의 정보가, 위치 파일에 대해 기술된다. 유사하게, 프로세싱 패널 (830) 의 F_00 내지 F_99 이 순차적으로 선택되고, 입력 패널 (820) 의 O_0 내지 O_9 가 순차적으로 선택되며, 아이콘이 배열된 패널의 정보가, 위치 파일에 대해 기술된다.
입력 패널 (810) 과 출력 패널 (820) 의 각 패널은, 아이콘이 배치된 패널 넘버, 아이콘에 대응하는 매크로 네임, 및 매크로에 설정된 매크로의 파라미터로 변환된다. 예를 들어, 도 12 의 부분 A 에서, 입력 패널 (810) 의 스위치 (921) 는 패널 넘버 "I_1", 매크로 네임 "SW" 및 파라미터 "H, P4. 0" 으로 변환된다. 도 12 의 부분 C 에서, 출력 패널 (820) 의 스위치 (926) 는 패널 넘버 "O_3", 매크로 네임 "LAMP", 및 파라미터 "H, P4. 3" 으로 변환된다.
프로세싱 패널 (830) 의 각 패널은, 아이콘이 배치된 패널 넘버, 아이콘에 대응하는 매크로 네임, 및 패널의 입/출력 정보로 변환된다. 예를 들어, 도 12 의 부분 B 에서, F_01 의 배선 아이콘은, 패널 넘버 "F_01", 매크로 네임 "LINE", 및 입/출력 정보 "LR" 로 변환된다. AND (924) 는, 패널 넘버 "F_12", 매크로 네임 "AND" 및 입/출력 정보 "R" 로 변환된다. OR (925) 는, 패널 넘버 "F_23", 매크로 네임 "OR", 및 입/출력 정보 "R" 로 변환된다.
그 후, 소스 파일이 단계 S104 와 S105 에서 생성된다. 예를 들어, 사용자가 프로그램 생성 윈도우 (500) 의 툴바 (540) 에 배치된 소정의 아이콘을 클릭하면, S104 및 S105 의 프로세싱이 실행되며, 그로 인해 소스 파일이 생성된다.
소스 파일을 생성할 때, 우선, 위치 파일 컴파일러 (113) 는 컴파일 테이블 생성을 실행한다 (S104). 후술되는 바와 같이, 위치 파일 컴파일러 (113) 는, S103 에서 생성된 위치 파일에 기초한 배선 테이블 및 함수 테이블과 같은 컴파일 테이블을 생성한다.
그 후, 위치 파일 컴파일러 (113) 는 소스 파일 생성을 실행한다 (S105). 후술되는 바와 같이, 위치 파일 컴파일러 (113) 는 S104 에서 생성된 컴파일 테이블에 기초하여 소스 파일을 생성하고, 그 파일을 소스 파일 저장장치 (125) 에 저장한다.
도 13 은 S105 에서 생성된 소스 파일의 일 실시예이며, 도 12 에 도시된 위치 파일을 소스 파일로 변환한 결과이다. 이 실시예에서, 도 13 의 소스 파일은 C 언어로 기술된다.
도 13 에서 "A" 로 표시된 부분은, 위치 파일에서의 입력 패널 (810) 에 대응하는 부분으로부터 변환된 마이크로컴퓨터 입력부의 프로그램을 포함한다. 부분 "B" 는 위치 파일에서의 프로세싱 패널 (830) 에 대응하는 부분으로부터 변환된 마이크로컴퓨터 프로세서의 프로그램을 포함한다. 부분 "C" 는 위치 파일에서의 출력 패널 (820) 에 대응하는 부분으로부터 변환된 마이크로컴퓨터 출력부의 프로그램이다.
예를 들어, 도 13 의 부분 A 에서, 마이크로컴퓨터의 입력 포트 (40 내지 42) 의 SW 매크로의 출력은 변수 I_1 내지 I_3 에 할당된다. 도 13 의 부분 B 에서, 입력 I_1 및 I_2 를 수신할 때, AND 매크로의 출력은 F_12 에 할당되며, 입력 F_12 및 I_3 을 수신할 때, OR 매크로의 출력은 F_23 에 할당된다. 도 13 의 부분 C 에서, 입력 F_23 을 수신할 때, 출력 포트 (43) 의 LAMP 매크로를 통해, 출력이 라우팅된다. 따라서, 포트 (40) 의 스위치와 포트 (41) 의 스위치 모두를 프레싱할 때, 또는, 포트 (42) 의 스위치를 프레싱할 때, 포트 (43) 의 램프를 점등시키는 프로그램이, 도 11 에 도시된 바와 같은 배열의 이미지처럼 생성된다.
그 후, 어셈블러 (114) 는 소스 파일을 어셈블링하여, HEX 파일을 생성한다 (S106). 예를 들어, 사용자가 프로그램 생성 윈도우 (500) 의 툴바 (540) 상에 배치된 소정의 아이콘을 클릭하면, 어셈블러 (114) 는 소스 파일 저장장치 (125) 로부터, S105 에서 생성된 소스 파일을 판독하고, 그 검색된 소스 파일을 HEX 파일로 어셈블링하며, 그 생성된 HEX 파일을 HEX 파일 저장장치 (126) 에 저장한다.
그 후, 마이크로컴퓨터 기록기 (115) 는 HEX 파일을 마이크로컴퓨터에 기록한다 (S107). 예를 들어, 사용자가, 프로그램 생성 윈도우 (500) 의 툴바 (540) 상에 배치된 소정의 아이콘을 클릭하면, 마이크로컴퓨터 기록기 (115) 는 HEX 파일 저장장치 (126) 로부터, S106 에서 생성된 HEX 파일을 판독하고, 그 파일을 마이크로컴퓨터에 기록한다.
그 후, 도 14 의 플로우차트를 참조하여, 도 10 의 S104 에서 수행된 컴파일 테이블 생성 프로세스가 이하에 설명된다. 컴파일 테이블 생성은 상술된 바와 같이 위치 파일 컴파일러 (113) 에 의해 구현된다.
우선, 위치 파일 컴파일러 (113) 가 위치 파일을 판독한다 (S201). 예를 들어, 위치 파일 컴파일러 (113) 는, 위치 파일 생성기 (112) 가 위치 파일을 생성한 이후에, 위치 파일 저장장치 (122) 로부터 위치 파일을 판독한다.
그 후, 위치 파일 컴파일러 (113) 는 S202 내지 S204 에서 위치 파일을 생성한다. 상세하게는, 위치 파일 컴파일러 (113) 는 위치 파일의 입력 패널 (810) 에 대응하는 부분을 변환한다 (S202). 예를 들어, 위치 파일 컴파일러 (113) 는 S201 에서 판독된 위치 파일의 입력 패널에 대응하는 부분을 참조하며, 입력 패널 함수 테이블을 생성한다. 입력 패널 함수 테이블은, 입력 패널 (810) 상에 배치된 아이콘에 대응하는 매크로를 포함한다.
도 15a 는 S202 에서 생성된 입력 패널 함수 테이블의 일 실시예를 도시한 것이다. 이 테이블은 도 12 에 도시된 위치 파일에 기초하여 생성된다. 입력 패널 함수 테이블은 열 또는 아이콘 (매크로) 의 유닛의 복수의 데이터 세트 (열 데이터 세트) 를 포함할 수 있으며, 각각의 열 세트는 패널 넘버, 매크로 및 파라미터를 포함한다. 각각의 열 데이터 세트는, 패널 넘버의 순서인 위치 파일의 열의 순으로 위치 파일의 각각의 열에 대해 생성된다.
예를 들어, 도 12 의 위치 파일에서의 "I_1:SW H, P4. 0" 은 패널 넘버 "I_1", 매크로 네임 "SW" 및 파라미터 "H, P4.0" 으로서 입력 패널 함수 테이블에 저장된다.
그 후, 위치 파일 컴파일러 (113) 는, 위치 파일의 프로세싱 패널에 대응하는 부분을 변환한다 (S203). 예를 들어, 위치 파일 컴파일러 (113) 는 S201 에서 판독된 위치 파일의 프로세싱 패널에 대응하는 부분을 참조하며, 배선 테이블과 프로세싱 패널 함수 테이블을 생성한다. 배선 테이블은 프로세싱 패널 (830) 상에 배치된 아이콘의 접속을 표시하는 정보를 포함한다. 프로세싱 패널 함수 테이블은, 프로세싱 패널 (830) 상에 배치된 아이콘에 대응하는 매크로를 포함한다.
도 16 은 S203 에서 생성된 배선 테이블의 일 실시예를 도시한 것이다. 도 15b 는 S203 에서 또한 생성된 프로세싱 패널 함수 테이블의 일 실시예를 도시한 것이다. 이들 테이블은 도 12 에 도시된 위치 파일에 기초하여 생성된다.
배선 테이블은 프로세싱 패널의 열과 행에 대응하여 2-차원적인 어레이로 구성된다. 각각의 어레이 데이터 세트는 함수 인덱스, 상부 패널 넘버 및 좌측 패널 넘버를 포함한다. 함수 인덱스는 프로세싱 패널 함수 테이블의 인덱스이다. 예를 들어, "0" 의 함수 인덱스는 프로세싱이 없음을 구현하는 배선의 아이콘 등을 표시한다. 상부 패널 넘버는 상측에 접속된 패널의 넘버이고, 좌측 패널 넘버는 좌측에 접속된 패널의 넘버이다. 예를 들어, "-1" 의 상부 패널 넘버 또는 좌측 패널 넘버는, 상측 또는 좌측에 근접하게 접속된 패널이 존재하지 않음을 표시한다.
또한, 프로세싱 패널 함수 테이블은, 입력 패널 함수 테이블과 같은 복수의 열 데이터 세트를 포함할 수 있다. 각각의 열 세트는, 데이터 생성의 순으로, 패널 넘버, 매크로, 파라미터, 및 부가적인 인덱스를 포함한다. 각각의 열 데이터 세트는 프로세싱 패널의 각각의 프로세싱을 위해 생성된다.
배선 테이블 및 프로세싱 패널 함수 테이블은, 패널 넘버의 순서인 위치 파일의 디스크립션의 순으로 생성된다. 도 12 에 도시된 위치 파일의 실시예에서, 우선, F_01 내지 F_03 이 프로세싱되고, 그 다음으로, F_11 내지 F_13 이 프로세싱된 후, F_22 내지 F_23 이 프로세싱되며, 최종적으로, F_33 내지 F_93 이 프로세싱되어, 배선 테이블 및 프로세싱 패널 함수 테이블이 생성된다.
예를 들어, 위치 파일에서의 "F_01:LINE LR" 은, 배선 및 그에 따라 실행되는 프로세싱이 없음을 표시하므로, 함수 인덱스가 "0" 이며, 상측에 접속된 패널이 없음을 표시하므로, 상부 패널 넘버가 "-1" 이며, 좌측에 접속된 패널이 없음을 표시하므로, 좌측 패널 넘버가 "-1" 이다. 한편, 위치 파일에서의 "F_12:AND R" 은 AND 연산의 동작을 표시한다. 이 경우에, 프로세싱 패널 함수 테이블 및 배 선 테이블 모두에 데이터가 저장된다. 우선, 인덱스 "1", 패널 넘버 "F_12" 및 매크로 네임 "AND" 가 프로세싱 패널 함수 테이블에 저장된다. 매크로의 입력이 결정되지 않기 때문에, 파라미터가 설정되지 않는다. 그 후, 프로세싱 패널 함수 테이블에서와 동일한 함수 인덱스 "1", 상측에 접속된 패널의 존재로 인한 상부 패널 넘버 "11", 및 좌측에 접속된 패널의 존재로 인한 좌측 패널 넘버 "02" 가 배선 테이블에 저장된다.
위치 파일에서의 "F23:0R R" 은 OR 연산의 연산을 표시한다. 인덱스 "2", 패널 넘버 "F_23", 및 매크로 네임 "OR" 이 프로세싱 패널 함수 테이블에 저장된다. 배선 테이블에서, 함수 인덱스 "2", 상측에 접속된 패널의 존재로 인한 상부 패널 넘버 "22", 및 좌측에 접속된 패널의 존재로 인한 좌측 패널 넘버 "13" 이 저장된다.
그 후, 위치 파일 컴파일러 (113) 는 위치 파일에서의 출력 패널에 대응하는 부분을 변환한다 (S204). 예를 들어, 위치 파일 컴파일러 (113) 는 S201 에서 판독된 위치 파일의 출력 패널에 대응하는 부분을 참조하며, 출력 패널 함수 테이블을 생성한다. 출력 패널 함수 테이블은 출력 패널 (830) 상에 배치된 아이콘에 대응하는 매크로를 포함한다.
도 15c 는 S204 에서 생성된 출력 패널 함수 테이블의 일 실시예를 도시한 것이다. 이 테이블은 도 12 에 도시된 위치 파일에 기초하여 생성된다. 또한, 출력 패널 함수 테이블은 입력 패널 함수 테이블의 경우에서처럼 위치 파일의 열의 순으로 생성된 복수의 열 데이터 세트를 포함할 수 있다. 각각의 열 세트 는 패널 넘버, 매크로 및 파라미터를 포함한다.
예를 들어, 도 12 의 위치 파일에서의 "O_3:LAMP H, P4. 3" 은 패널 넘버 "O_3", 매크로 네임 "LAMP", 및 파라미터 "H, P4. 3" 으로서, 출력 패널 함수 테이블에 저장된다.
마지막으로, 도 17 의 플로우차트를 참조하여, 도 10 의 S105 에서 수행된 소스 파일 생성 프로세스가 이하에 설명된다. 소스 파일 생성은 위치 파일 컴파일러 (113) 에 의해 구현된다.
위치 파일 컴파일러 (113) 는 컴파일 테이블 저장장치 (123) 로부터 컴파일 테이블을 검색하고, 단계 S301 내지 S303 에서, 검색된 컴파일 테이블에 기초하여 도 13 에 도시된 바와 같은 소스 파일을 생성한다. 소스 파일의 생성에서, 매크로 명령어가 각각의 테이블에 기초하여 기술된다. 이때, 필요한 매크로 정보 (매크로 정의) 가 디스크립션을 위해 매크로 정보 저장장치 (124) 로부터 검색된다.
소스 파일을 생성할 때, 우선, 위치 파일 컴파일러 (113) 는 마이크로컴퓨터의 입력부에 대한 프로그램을 생성한다 (S301). 예를 들어, 위치 파일 컴파일러 (113) 는 입력 패널 함수 테이블을 참조함으로써 마이크로컴퓨터의 입력부의 소스 파일을 생성한다. 이때, 입력 패널 함수 테이블의 각각의 열 데이터 세트에 대해 하나의 열의 명령어가 생성된다. 패널 넘버를 변수로서 설정하면, 파라미터를 갖는 매크로의 결과가 변수에 할당된다. 예를 들어, 도 15a 의 입력 패널 함수 테이블에서의 패널 넘버 "I_1", 매크로 네임 "SW", 및 파라미터 "H, P4. 0" 이 "I_1=SW_H(P4. 0)" 으로 기술된다.
그 후, 위치 파일 컴파일러 (113) 는 마이크로컴퓨터의 프로세싱부에 대한 프로그램을 생성한다 (S302). 예를 들어, 위치 파일 컴파일러 (113) 는, 프로세싱 패널 함수 테이블과 배선 테이블을 참조함으로써 마이크로컴퓨터의 프로세싱부의 소스 파일을 생성한다. 도 14 에 도시된 컴파일 테이블 생성에서 프로세싱 패널 함수 테이블에 저장된 매크로 파라미터가 없기 때문에, 매크로의 파라미터는 배선 테이블을 탐색함으로써 결정된다. 현재의 매크로로부터 마이크로컴퓨터 입력부로 향하는 방향으로 배선 테이블이 탐색된다. 상세하게, 프로세스는, 입력측상의 패널을 반복적으로 참조하며, 참조된 패널이 다른 프로세싱의 마이크로컴퓨터 입력부인 경우에, 그것을 현재의 매크로의 파라미터로서 설정한다. 파라미터가 결정된 이후에, S301 에서와 같이, 매크로 결과가 프로세싱 패널 함수 테이블의 각각의 열 데이터 세트에 대한 패널 넘버의 변수에 할당되도록, 디스크립션이 수행된다.
예를 들어, 도 15b 의 프로세싱 패널 함수 테이블에서의 F_12 의 AND 매크로의 경우는 다음과 같다. 도 16 의 F_12 에 대응하는 배선 테이블의 어레이 데이터를 참조하면, 상부 패널 넘버는 "11" 이고 좌측 패널 넘버는 "02" 이다. 그 후, 화살표 (61) 로 표시된 바와 같이 상측 패널 F_11 을 참조하면, F_11 의 좌측 패널 넘버는 "01" 이다. F_01 을 참조하면, F_01 의 상부 패널 넘버 및 좌측 패널 넘버는 "-1" 이다. 따라서, F_01 에 입력된 입력부의 I_1 은 F_12 의 하나의 입력으로서 기능을 한다. 또한, 화살표 (62) 로 표시된 바와 같이 F_12 의 좌측의 F_02 를 참조하면, F_02 의 상부 패널 넘버와 좌측 패널 넘버는 "-1" 이다. 따라서, F_02 에 입력된 입력부의 I_2 는 F_12 의 다른 입력으로서 기능을 한다. 따라서, F_12 의 AND 매크로의 파라미터는 I_1 및 I_2 로서 결정된다. 그 후, 프로세싱 패널 함수 테이블의 인덱스 "1", 패널 넘버 "F_12" 및 매크로 네임 "AND" 는, 결정된 파라미터 "I_1, I_2" 와 함께, "F_12=AND (I_1, I_2)" 으로서 기술된다.
한편, 도 15b 의 프로세싱 패널 함수 테이블에서의 F_23 의 OR 매크로의 경우는 다음과 같다. 도 16 의 F_23 에 대응하는 배선 테이블의 어레이 데이터를 참조하면, 상부 패널 넘버는 "22" 이고 좌측 패널 넘버는 "13" 이다. 그 후, 화살표 (63) 로 표시된 바와 같이 상측 패널 F_22 를 참조하면, F_22 의 좌측 패널 넘버는 "12" 이다. F_12 를 참조하면, F_12 의 함수 인덱스는 "1" 이다. 따라서, F_12 는 F_23 의 하나의 입력으로서 기능을 한다. 또한, 화살표 (64) 로 표시된 바와 같이, F_23 의 좌측의 F_13 을 참조하면, F_13 의 좌측 패널 넘버는 "03" 이다. F_03 을 참조하면, F_03 의 상부 패널 넘버와 좌측 패널 넘버는 "-1" 이다. 따라서, F_03 에 입력된 입력부의 I_3 은 F_23 의 다른 입력으로서 기능을 한다. 따라서, F_23 의 OR 매크로의 파라미터가 F_12 및 I_3 으로서 결정된다. 그 후, 프로세싱 패널 함수 테이블의 인덱스 "2", 패널 넘버 "F_23" 및 매크로 네임 "OR" 은, 결정된 파라미터 "F_12, I_3" 과 함께, "F_23=OR(F_12, I_3)" 으로서 기술된다.
그 후, 위치 파일 컴파일러 (113) 는 마이크로컴퓨터의 출력부에 대한 프로 그램을 생성한다 (S303). 위치 파일 컴파일러 (113) 는, 예를 들어, 출력 패널 함수 테이블과 배선 테이블을 참조함으로써 마이크로컴퓨터의 출력부의 소스 파일을 생성한다. 이때, S302 에서처럼, 출력 패널 함수 테이블의 매크로의 파라미터가 배선 테이블을 탐색함으로써 결정되고, 출력 패널 함수 테이블의 각각의 열 데이터 세트에 대해 명령어가 기술된다.
예를 들어, 도 15c 의 출력 패널 함수 테이블에서의 O_3 의 LAMP 매크로의 경우는 다음과 같다. 도 16 의 O_3 으로 출력된 패널에 대응하는 F_93 을 참조하면, F_93 의 좌측 패널 넘버는 "83" 이다. 그 후, 화살표 (65) 로 표시된 바와 같이, F_83 의 좌측 패널 넘버는 "73" 이다. 그 후, 프로세스는, F_23 의 함수 인덱스가 "2" 가 되게 하는 이런 방식으로 패널을 반복적으로 참조한다. 따라서, F_23 은 O_3 으로의 입력으로서 기능을 한다. 따라서, O_3 의 LAMP 매크로의 파라미터는 F_23 으로서 결정된다. 그 후, 출력 패널 함수 테이블의 패널 넘버 "O_3", 매크로 네임 "LAMP", 및 출력 패널 함수 테이블의 파라미터 "H, P4. 3" 은, 결정된 파라미터 " F_23" 과 함께, "LAMP_H (IP4. 3, F_23)" 으로서 기술된다.
그 후, 위치 파일 컴파일러 (113) 는 생성된 소스 파일을 출력한다 (S304). 예를 들어, 위치 파일 컴파일러 (113) 는, 단계 S301 내지 S303 에서 생성된 소스 파일을 소스 파일 저장장치 (125) 에 저장한다.
전술된 바와 같이, 이 실시형태는 사용자로 하여금 GUI 를 조작하게 하여, 마이크로컴퓨터의 동작을 입력시키고, GUI 에 따라 마이크로컴퓨터에 대한 프로그 램을 자동으로 생성한다. GUI 는, 배선, 논리 회로 및 플립-플롭과 같은 마이크로컴퓨터 주변 회로의 널리-공지된 디바이스를 표시한 아이콘으로서 표현되어, 사용자는 각각의 동작을 용이하게 이해할 수 있다. 또한, 본 발명은, 입력으로부터의 동작에 대한 프로그램의 생성을, 퍼즐과 같은 아이콘을 단순히 결합함으로써 마이크로컴퓨터를 통해 출력하게 한다. 이것은, 프로그램 언어를 학습하기 이전의 엔지니어 또는 학생처럼, 소프트웨어의 지식 없이도 사용자로 하여금 용이하게 프로그램을 생성하게 한다.
또한, 본 실시형태는, GUI 에 따라 프로그램을 자동으로 생성하기 때문에, 인적 에러 (human error) 를 방지하고, 그로 인해, 디버깅을 위한 인-시 (man-hour) 를 감소시키고, 프로그램의 품질을 향상시킨다.
또한, 본 실시형태는, 에디팅 패널상에 배열된 아이콘의 포지션을 표시하는 위치 파일에 기초하여 프로그램을 생성한다. 아이콘의 접속을 표시하는 배선 테이블을 생성함으로써, 오직, 위치 파일로부터 불필요한 배선 정보를 제거함으로써 필요한 명령어를 포함하는 프로그램을 생성할 수 있다.
본 발명은, 상기 실시형태로 제한된 것이 아니며, 본 발명의 범위 및 사상으로부터 벗어남 없이 변형 및 변경될 수도 있음을 알 수 있다.
상술한 바와 같이 본 발명에 의하면, 소프트웨어의 지식 없이도 사용자로 하여금 마이크로컴퓨터용 프로그램을 더 용이하게 생성하게 하는 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램을 제공할 수 있다.

Claims (17)

  1. 입력 신호를 입력하는 입력부, 상기 입력 신호에 대한 소정의 프로세싱을 구현하는 프로세서, 및 상기 프로세싱의 결과를 출력하는 출력부를 포함하는 마이크로컴퓨터용 프로그램을 생성하는 프로그램 생성 장치로서,
    상기 입력부, 상기 프로세서 및 상기 출력부의 각각의 동작에 각각 대응하는 복수의 그래픽 사용자 인터페이스 (GUI) 컴포넌트를 디스플레이하는 그래픽 사용자 인터페이스 (GUI) 디스플레이부; 및
    사용자에 의한 상기 복수의 GUI 컴포넌트의 조작에 따라 상기 프로그램을 생성하는 프로그램 생성기를 포함하는, 프로그램 생성 장치.
  2. 제 1 항에 있어서,
    상기 GUI 디스플레이부는, 상기 복수의 GUI 컴포넌트 외에, 상기 복수의 GUI 컴포넌트가 사용자에 의해 배치되는 에디팅 영역을 디스플레이하며,
    상기 프로그램 생성기는, 상기 사용자에 의해 상기 에디팅 영역상에 배치된 상기 복수의 GUI 컴포넌트의 포지션에 따라 상기 프로그램을 생성하는, 프로그램 생성 장치.
  3. 제 2 항에 있어서,
    상기 복수의 GUI 컴포넌트 각각에 대한 복수의 명령어에 따라 기술된 소정의 프로세싱의 디스크립션을 포함하는 명령어 블록을 저장하는 명령어 블록 저장장치를 더 포함하며,
    상기 프로그램 생성기는, 상기 에디팅 영역상에 배치된 상기 복수의 GUI 컴포넌트 각각에 대응하는 상기 명령어 블록을 이용함으로써 상기 프로그램을 생성하는, 프로그램 생성 장치.
  4. 제 2 항에 있어서,
    상기 프로그램 생성기는,
    상기 에디팅 영역상에 배치된 상기 복수의 GUI 컴포넌트의 포지션 정보를 생성하는 포지션 정보 생성기; 및
    상기 생성된 포지션 정보를 상기 프로그램으로 변환하는 컴파일러를 더 포함하는, 프로그램 생성 장치.
  5. 제 4 항에 있어서,
    상기 컴파일러는, 상기 생성된 포지션 정보를, 상기 복수의 GUI 컴포넌트의 접속을 표시하는 접속 정보로 변환하며, 상기 접속 정보에 의해 결정된 상기 GUI 컴포넌트의 입력 정보 및 상기 GUI 컴포넌트를 상기 프로그램으로 변환하는, 프로그램 생성 장치.
  6. 제 5 항에 있어서,
    상기 접속 정보는, 상기 복수의 GUI 컴포넌트 각각의 입력측을 통한 접속을 표시하며,
    상기 컴파일러는, 상기 접속 정보에 따라 상기 GUI 컴포넌트의 상기 입력측에 접속된 상기 GUI 컴포넌트를 반복하여 참조하고, 상기 GUI 컴포넌트의 입력 정보를 결정하는, 프로그램 생성 장치.
  7. 제 1 항에 있어서,
    상기 생성된 프로그램을, 상기 마이크로컴퓨터상에서 실행가능한 기계 언어 프로그램으로 어셈블링하는 어셈블러를 더 포함하는, 프로그램 생성 장치.
  8. 제 7 항에 있어서,
    상기 어셈블링된 기계 언어 프로그램을, 상기 마이크로컴퓨터에 기록하는 기록부를 더 포함하는, 프로그램 생성 장치.
  9. 입력 신호를 입력하는 입력부, 상기 입력 신호에 대한 소정의 프로세싱을 구현하는 프로세서, 및 상기 프로세싱의 결과를 출력하는 출력부를 포함하는 마이크로컴퓨터용 프로그램을 생성하는 프로그램 생성 방법으로서,
    상기 입력부, 상기 프로세서 및 상기 출력부의 각각의 동작에 각각 대응하는 복수의 GUI 컴포넌트를 디스플레이하는 단계; 및
    사용자에 의한 상기 복수의 GUI 컴포넌트의 조작에 따라 상기 프로그램을 생 성하는 단계를 포함하는, 프로그램 생성 방법.
  10. 제 9 항에 있어서,
    상기 GUI 컴포넌트의 디스플레이 단계는, 상기 복수의 GUI 컴포넌트 외에, 상기 복수의 GUI 컴포넌트가 사용자에 의해 배치되는 에디팅 영역을 디스플레이하며,
    상기 프로그램의 생성 단계는, 상기 사용자에 의해 상기 에디팅 영역상에 배치된 상기 복수의 GUI 컴포넌트의 포지션에 따라 상기 프로그램을 생성하는, 프로그램 생성 방법.
  11. 제 10 항에 있어서,
    상기 복수의 GUI 컴포넌트 각각에 대한 복수의 명령어에 따라 기술된 소정의 프로세싱의 디스크립션을 포함하는 명령어 블록을 저장하는 단계를 더 포함하며,
    상기 프로그램의 생성 단계는, 상기 에디팅 영역상에 배치된 상기 복수의 GUI 컴포넌트 각각에 대응하는 상기 명령어 블록을 이용함으로써 상기 프로그램을 생성하는, 프로그램 생성 방법.
  12. 제 10 항에 있어서,
    상기 프로그램의 생성 단계는,
    상기 에디팅 영역상에 배치된 상기 복수의 GUI 컴포넌트의 포지션 정보를 생 성하는 단계; 및
    상기 생성된 포지션 정보를 상기 프로그램으로 변환하는 단계를 더 포함하는, 프로그램 생성 방법.
  13. 제 12 항에 있어서,
    상기 프로그램으로의 변환 단계는, 상기 생성된 포지션 정보를, 상기 복수의 GUI 컴포넌트의 접속을 표시하는 접속 정보로 변환하며, 상기 접속 정보에 의해 결정된 상기 GUI 컴포넌트의 입력 정보 및 상기 GUI 컴포넌트를 상기 프로그램으로 변환하는, 프로그램 생성 방법.
  14. 제 13 항에 있어서,
    상기 접속 정보는, 상기 복수의 GUI 컴포넌트 각각의 입력측을 통한 접속을 표시하며,
    상기 프로그램으로의 변환 단계는, 상기 접속 정보에 따라 상기 GUI 컴포넌트의 상기 입력측에 접속된 상기 GUI 컴포넌트를 반복하여 참조하고, 상기 GUI 컴포넌트의 입력 정보를 결정하는, 프로그램 생성 방법.
  15. 제 9 항에 있어서,
    상기 생성된 프로그램을, 상기 마이크로컴퓨터상에서 실행가능한 기계 언어 프로그램으로 어셈블링하는 단계를 더 포함하는, 프로그램 생성 방법.
  16. 제 15 항에 있어서,
    상기 어셈블링된 기계 언어 프로그램을, 상기 마이크로컴퓨터에 기록하는 단계를 더 포함하는, 프로그램 생성 방법.
  17. 컴퓨터로 하여금, 입력 신호를 입력하는 입력부, 상기 입력 신호에 대한 소정의 프로세싱을 구현하는 프로세서, 및 상기 프로세싱의 결과를 출력하는 출력부를 포함하는 마이크로컴퓨터용 프로그램을 생성하는 프로그램 생성 프로세스를 구현하게 하는 컴퓨터에 의해 실행되는 명령어를, 컴퓨터 판독가능 매체에 포함하는 컴퓨터 프로그램 프로덕트로서,
    상기 프로세스는,
    상기 입력부, 상기 프로세서 및 상기 출력부의 각각의 동작에 각각 대응하는 복수의 GUI 컴포넌트를 디스플레이하는 단계; 및
    사용자에 의한 상기 복수의 GUI 컴포넌트의 조작에 따라 상기 프로그램을 생성하는 단계를 포함하는, 컴퓨터 프로그램 프로덕트.
KR1020060052181A 2005-06-09 2006-06-09 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램 KR20060128747A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005170192A JP2006344076A (ja) 2005-06-09 2005-06-09 プログラム生成装置、プログラム生成方法及びプログラム
JPJP-P-2005-00170192 2005-06-09

Publications (1)

Publication Number Publication Date
KR20060128747A true KR20060128747A (ko) 2006-12-14

Family

ID=36997748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060052181A KR20060128747A (ko) 2005-06-09 2006-06-09 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램

Country Status (5)

Country Link
US (1) US7640509B2 (ko)
EP (1) EP1736869A3 (ko)
JP (1) JP2006344076A (ko)
KR (1) KR20060128747A (ko)
CN (1) CN100543672C (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007287025A (ja) 2006-04-19 2007-11-01 Nec Corp 画面遷移プログラム生成方法及び装置
JP2011022722A (ja) * 2009-07-14 2011-02-03 Optex Co Ltd プログラム生成装置
KR20160075629A (ko) * 2013-10-31 2016-06-29 미쓰비시덴키 가부시키가이샤 프로그램 작성 장치, 프로그램 작성 방법 및 프로그램
WO2015174120A1 (ja) 2014-05-15 2015-11-19 ソニー株式会社 情報処理装置、表示制御方法およびプログラム
JP2017199226A (ja) * 2016-04-28 2017-11-02 パナソニック デバイスSunx株式会社 プログラム編集方法、プログラム開発支援装置及びプログラマブルコントローラ
USD819686S1 (en) * 2016-11-21 2018-06-05 Google Llc Display screen with graphical user interface
BE1026448B1 (de) * 2018-06-27 2020-02-04 Phoenix Contact Gmbh & Co Verfahren und Vorrichtung zur Konfiguration einer Hardwarekomponente
JP7338096B2 (ja) * 2020-03-11 2023-09-05 千田 好弘 データ処理装置およびデータ処理方法
USD978910S1 (en) * 2020-09-14 2023-02-21 Samsung Electronics Co., Ltd. Display screen or portion thereof with transitional icon

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2645436B2 (ja) * 1986-09-19 1997-08-25 富士通株式会社 データフロー図作成システム
EP0321000A3 (en) * 1987-12-18 1990-08-01 Nec Corporation Assembler system
JPH0724022B2 (ja) * 1989-06-30 1995-03-15 横河電機株式会社 プログラム言語変換方法
JP2859511B2 (ja) * 1993-04-21 1999-02-17 三菱電機株式会社 プログラム作成支援装置およびプログラム作成支援方法
JP3007248B2 (ja) * 1993-12-16 2000-02-07 三菱電機株式会社 プログラミング装置
US5555369A (en) * 1994-02-14 1996-09-10 Apple Computer, Inc. Method of creating packages for a pointer-based computer system
JPH07319785A (ja) * 1994-05-30 1995-12-08 Sekisui Chem Co Ltd マイコン開発支援システム
JPH0863345A (ja) 1994-08-22 1996-03-08 Sony Corp プログラム自動生成装置
US5706456A (en) * 1995-04-18 1998-01-06 Unisys Corporation Application specific graphical user interface (GUI) that is window programmable and capable of operating above a windows operating system GUI
US5986652A (en) * 1997-10-21 1999-11-16 International Business Machines Corporation Method for editing an object wherein steps for creating the object are preserved
JPH11353164A (ja) 1998-06-09 1999-12-24 Toshiba Corp ソースプログラム生成システムおよびソースプログラム生成方法ならびにチャート生成システムおよびチャート生成方法
JP2000047857A (ja) * 1998-07-27 2000-02-18 Yamatake Corp イベント駆動型ファンクションブロックのプログラミング方法とプログラム記録媒体
US20020104067A1 (en) 1999-12-29 2002-08-01 Green David W. Method and system and article of manufacture for an N-tier software component architecture application
US6654009B2 (en) * 2000-05-23 2003-11-25 Seth Rubin Method and apparatus for arranging entities in a two-dimensional lattice
JP2001353678A (ja) * 2000-06-12 2001-12-25 Sony Corp オーサリング・システム及びオーサリング方法、並びに記憶媒体
US6654911B1 (en) * 2000-06-15 2003-11-25 International Business Machines Corporation Interactive test sequence generation
US7287230B2 (en) * 2000-12-13 2007-10-23 National Instruments Corporation Configuring a GUI element to subscribe to data
JP2002342091A (ja) * 2001-05-18 2002-11-29 Mitsubishi Electric Corp プログラム作成装置
KR100426035B1 (ko) 2001-08-01 2004-04-03 주식회사 마이크로로보트 마이크로로봇 제어프로그램 교육 시스템
WO2005017743A2 (en) * 2003-08-07 2005-02-24 National Instruments Corporation A graphical program which executes a timed loop

Also Published As

Publication number Publication date
EP1736869A3 (en) 2007-11-14
CN100543672C (zh) 2009-09-23
US20060290716A1 (en) 2006-12-28
CN1877524A (zh) 2006-12-13
JP2006344076A (ja) 2006-12-21
EP1736869A2 (en) 2006-12-27
US7640509B2 (en) 2009-12-29

Similar Documents

Publication Publication Date Title
KR20060128747A (ko) 프로그램 생성 장치, 프로그램 생성 방법 및 프로그램
CN110494843B (zh) 混合模式编程
US6690981B1 (en) System and method for encapsulating user interface code for a graphical program
US7543281B2 (en) Disabling and conditionally compiling graphical code in a graphical program
US9501594B2 (en) Graphical design verification environment generator
US8281242B2 (en) Editable data tooltips
US7137071B2 (en) System and method for providing suggested graphical programming operations
US7954097B2 (en) Automatically analyzing and modifying a remote graphical program via a network
US11010141B2 (en) Graphical interface to generate instructions to control a representation by an output interface of one or more objects
US7120877B2 (en) System and method for creating a graphical program including a plurality of portions to be executed sequentially
CN110271009B (zh) 基于plc仿机器人指令实现机械手示教功能方法
US20200151378A1 (en) Trigger-action-circuits: leveraging generative design to enable novices to design and build circuitry
Jeffrey LabVIEW for everyone
Arakliotis et al. Lawris: A rule-based Arduino programming system for young students
US8683364B2 (en) Graphical interconnection of hardware signals
KR20130053714A (ko) Vpl을 이용한 프로그램 개발 방법과 그 방법을 구현한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
Brown et al. Position paper: Lack of keyboard support cripples block-based programming
KR102445249B1 (ko) 작화 장치, 작화 프로그램 및 기억 매체
KR20100096554A (ko) Plc 제어 프로그램 설계방법, 및 그를 이용한 설계 시스템
JP2008293392A (ja) ラダープログラミングエディタ
JP2008176562A (ja) 電子機器および電子機器制御プログラム
Kretzschmar et al. MSP430 Microcontroller Lab Manual
ECE Automated Design Tool for Arduino Circuits
JP2007264694A (ja) 入出力模擬プログラム、該プログラムを記録した記録媒体、入出力模擬装置および入出力模擬方法
US20060179385A1 (en) Context-sensitive user help in a software-based development environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E601 Decision to refuse application