따라서, 본 발명의 목적은 전술한 현재 존재하는 문제점을 해결할 수 있는 장치를 제공하는데 있다.
본 발명은 후술하는 장치에 의해 상기 목적을 달성할 수 있는데, 여기서 철도설비의 소프트웨어 시뮬레이션 프로그램을 컴퓨터 메모리에 로딩하여 컴퓨터로 실행할 수 있고, 이 시뮬레이션 프로그램은 제어/명령 논리프로그램의 제어와 명령을 받아야만 하고 설비구조와 이 설비의 작동유닛의 운전모드를 신뢰성 있게 재생한다.
설비구조와 관련 작동유닛, 예컨대 열차의 존재, 스위치 포인트 액튜에이터, 시그널링 액튜에이터 기타 장치를 검색하는 궤도회로의 시뮬레이션은 불리언 알고리즘에 의한 시뮬레이션 프로그램에서 제공되고, 이 알고리즘에 관련된 변수들은 여러 작동유닛들의 여러 상태 또는 운전 조건들의 제어신호와, 상기 여러 작동유닛의 상태 또는 운전 조건들을 전환하거나 유지하기 위한 명령신호들을 표현하도록 정의된다.
첫번째 예로, 제어/명령 논리프로그램의 검사하에 생기는 설비거동의 영상은 여러 작동유닛에 관련된 변수 리스트 형태로 디스플레이된다. 이 경우, 프로그램은 리포트파일을 디스플레이하는데, 리포트파일에는 여러 작동유닛과 관련 상태 또는 명령어 변수들이 리스트된다.
시뮬레이션 프로그램에 의하면, 설비의 시작 운전조건이나 설비 작동유닛의 비정상 세팅상황을 사용자가 설정하여 이들 조건들에 대한 설비 반응을 확인할 수 있다.
바람직한 실시예에 따르면, 각각의 설비 작동유닛이나 관련 구조요소에 작동유닛이나 구조요소의 가상영상을 분명하게 관련시킬 수 있는데, 이 영상은 본 발명의 장치의 컴퓨터로 로딩하거나 실행할 수 있는 그래픽 프로그램에 의해 생긴다. 가상영상은 설비의 구조요소나 작동유닛을 생성하기 위해 논리프로그램에 연계되며, 각각의 작동유닛의 가상영상을 생성하기 위한 그래픽 프로그램은 작동유닛의 다양한 그래픽 종횡비 조건들을 생성하며, 이들 조건 각각은 작동유닛 자체의 운전조건에 관련된 변수나 작동유닛의 운전조건을 전환하거나 유지하기 위한 명령어 변수들의 소정 값에 각각 관련된다.
본 발명의 다른 특징에 따르면, 제어/명령 논리프로그램의 동작이 릴레이 네트웍, 릴레이의 운전 시뮬레이션 프로그램 및 릴레이 네트웍의 운전 시뮬레이션은 물론, 릴레이들을 시뮬레이션하는 각각의 프로그램에 그리고 릴레이 네트웍을 그래픽으로 디스플레이하는 프로그램에 관련된 릴레이들을 표현하는 그래픽 프로그램들로 구성된 등가적인 명령 하드웨어 논리의 거동 형태로 병렬로나 교대로 표현된다.
이 경우, 작동유닛의 경우와 마찬가지로, 불리언 타입의 논리프로그램에 의해 각각의 릴레이가 시뮬레이션되는데, 릴레이나 전환 명령어들의 각각의 상태조건은 상태나 명령어 변수들로 표현되고, 그래픽 프로그램은 상기 상태나 명령어 변수들이 취한 값에 관련된 각종 릴레이 그래픽 종횡비를 관련시킨다.
이에 따라, 본 발명의 장치는 현재 사용되는 확인/입증에 관련된 분명한 장점으로 실제 설비의 믿을만한 소프트웨어 모델을 기초로 시스템의 제어/명령 논리프로그램의 입증이나 확인을 할 수 있다.
작동유닛의 시뮬레이션 논리프로그램에서 처리되는 프로그램에 의해 생성되는 상태변수들의 값을 디스플레이하는 리포트파일 형태와, 작동유닛의 운전조건의 그래픽 표현 형태로 설비의 기능적 거동을 디스플레이하는 2개의 레벨로 설비 작동유닛을 자세히 점검할 수 있으므로, 물리적 운전조건의 분석적 방법과 직접적인 비주얼 방법 양쪽으로 운전모드를 점검할 수 있다.
종래의 릴레이 네트웍 형태로 명령/제어 논리엔진의 디스플레이를 하면, 추가적인 비주얼 점검메뉴를 제공하는 종래의 하드웨어 논리에 다른 엔진동작을 점검할 수 있다. 그러나, 이 경우에도, 운전조건에 관한 릴레이의 종횡비 젼경을 물리적으로 디스플레이함은 물론, 작동유닛과 마찬가지로 상태 및 명령어 변수들을 분석적으로 디스플레이할 수 있다. 주지하듯이, 종래의 릴레이 네트웍 형태의 불리언 명령/제어 논리의 그래픽 표현에 의해 상기 논리의 내부 동작을 시각적으로 점검할 수 있으므로, 작동유닛으로 보내진 틀린 명령어를 기초로 논리 내부의 에러의 확인이 더 간단해진다. 따라서, 제어/명령 논리엔진에 대한 입출력 변수들의 상황은 물론, 이들 변수가 입력에서 출력으로 처리되는 동안 받게되는 변경 상태도 디스플레이된다.
또, 설비의 특정 운전조건이나 비정상 조건들을 설정하기 위한 인터페이스를 제공하면, 다른 운전환경을 참고해 설비의 반응을 점검할 수 있다. 이런 설정은 제어/명령 논리엔진의 실행사이클 초기에 특정 상태조건들을 여러 작동유닛에 수동으로 부여하면 할 수 있는데, 적당한 스케쥴링으로 작동유닛들이 작동하지 않거나 비정상으로 작동하는 조건들도 제공할 수 있다.
본 발명의 경우, 소정의 운전상태로 설비의 적절하거나 원하는 운전이나 상태조건에 대응하는 가상 작동유닛의 영상과 상태/명령어 변수 리스트를 프로그램하거나 구성할 수 있음을 쉽게 알 수 있다. 이 경우, 가상 작동유닛의 상태/명령어 변수들의 공칭 값과 공칭 그래픽 영상을 제공하면, 적절한 운전을 직접 눈으로 확인할 수 있음은 물론 자동확인도 가능한데, 이런 자동확인은 철로설비의 가상모델로 제어/명령 논리가 작동하는 순간 효과적으로 처리된 영상, 상태 및 명령어 변수들과 이전에 준비된 원하는 상태/명령어 변수들의 공칭 리스트와 공칭 영상 사이의 비교를 기초로 하는데, 불일치할 경우 에러메시지가 전송된다. 이런 자동 확인중에, 잘못된 조건과 상대적인 상태/명령어 변수를 취하는 작동유닛을 그래픽으로 분석적으로 디스플레이할 수 있다.
이런 모드를 릴레이 네트웍의 시뮬레이션 표현으로 확대하여, 올바른 조건과 상대적 상태/전환 명령어 변수들로 전환되지 않은 릴레이를 표시할 수도 있다.
더 개발하면, 릴레이 네트웍의 가상모델로 구성된 명령 논리회로내의 릴레이나 가상 작동유닛의 상태나 명령 에러의 존재하에 수동으로 변경된 상태나 명령 변수들에 대해 사용자가 한 수정을 기초로 제어/명령 논리프로그램을 수정하는 자동수단을 제공할 수 있다.
이 경우, 상태나 명령어 변수들의 리포트파일에 이루어진 영숫자(alphanumeric; 영문자(aphabet)와 숫자(numeric)의 합성어로서, 프로그램 작성에서 자열(字列)의 구성 요소가 영문과 숫자로 이루어진 IT 용어임) 타입의 중재와, 상기 작동유닛이나 릴레이의 상태에 대응하는 작동유닛이나 릴레이의 종횡비를 그래픽적으로 변경하기 위한 중재 둘다를 하고; 잘못된 값을 수정하기 위해 수동으로 설정된 상태나 명령어 변수값의 분석, 제어/명령 논리프로그램의 분석, 및 제어/명령 논리프로그램이 이전에 에러라고 했던 작동조건이 생길 때 작동유닛이나 릴레이를 옳은 상태로 전환하기 위한 코드 변경을 하는 분석/번역 수단을 더 포함한다.
또, 가상의 역사설비 지역과, 여러 역사설비에서 반복되는 종래의 설비구조를 갖는 제어/명령 프로그램의 상대적 부분들을 저장하여, 불리언 시뮬레이션 프로그램과 그래픽 디스플레이 프로그램은 물론 제어/명령 논리프로그램의 이루분을 동일한 지역의 신규 역사설비에 로딩하여 재사용할 수 있다.
본 발명에 따른 장치의 하드웨어/소프트웨어 구조에 의하면, 제어/명령 논리프로그램을 생성하기 위한 프로그램의 다양성을 기초로 불리언 알고리즘 점검기라 하는 입증확인 시스템에까지 확장할 수 있다.
여러가지 가능성이 있을 수 있다. 첫째, 입증기간 동안 제어/명령 논리프로그램을 생성하는데 사용되는 것과는 다른 코드에 맞춰 작업하는 장치로 제어/명령 논리프로그램을 생성하기 위한 추가 프로그램을 제공할 수 있다. 점검기에 의해 생긴 제어/명령 프로그램을 입장기간동안 제어/명령 논리프로그램과 비교하여 2가지 프로그램 사이의 일치를 통지할 수 있다. 그 외에, 점검기에 의해 생긴 제어/명령 프로그램이 전술한 장치에 의해 확인 또는 입증을 받고, 그 결과를 첫번째 제어/명령 논리프로그램의 입증이나 확인중에 얻은 결과와 비교할 수 있다. 이 경우, 숫자 형태와 그래픽 형태로 릴레이 가상 네트웍의 릴레이와 작동유닛의 상태/명령어 변수들에 대한 비교입증이 행해진다. 예컨대, 2가지 제어/명령 논리프로그램에서 얻은 설비 상태조건의 그래픽 영상들을 오버랩할 수 있다. 이렇게 설비 상태조건의 영상들을 오버랩하면 그 차이점을 그래픽에서 반짝이게 하거나 사용자의 눈으로 직접 확인할 수 있다.
이상 설명한 2가지 모드는 서로 교대로나 연속적으로 이루어지고, 2가지 다른 비교모드의 연속적인 순차적 변경도 가능하다.
2가지 제어/명령 논리프로그램에서 얻은 설비 조건들에 관한 비교를 먼저 하면, 비교동작과 그 수정동작이나 디버깅 문의(에러검색)을 제한할 수 있는 프로그램 부분을 더 잘 확인할 수 있다.
제어 논리프로그램 이외에도, 각각의 작동유닛과 설비구조를 시뮬레이션하는 논리프로그램은 물론 릴레이나 릴레이 네트웍을 시뮬레이션하는 논리프로그램에 대한 다양성을 기초로 확인을 할 수 있고, 이 경우 생성 프로그램의 다양성을 기초로 한 이런 확인동작을 작동유닛이나 릴레이를 그래픽으로 표현하는 프로그램에도 확장할 수 있다.
한편, 불리언 점검기는 설비 자체를 시뮬레이션하여 철도설비의 제어/명령 논리프로그램을 확인하기 위한 병령장치를 포함하고, 점검기는 다양성 기준에 따라 개발된 철도설비의 시뮬레이션 프로그램과 테스트 프로그램을 포함하는바, 다른 생성 또는 기록 프로그램에 의해 이런 점검기는 본 발명에 따른 장치의 확인을 하는바, 동일한 제어/명령 논리프로그램에서 첫번째 점검기를 확인하고, 2가지 병렬테스트 결과를 비교하고, 테스트 결과에 따라 테스트결과가 같거나 다양성을 가지면 이런 비교정보나 에러메시지를 생성한다.
본 발명에 따른 장치와 같은 분야에서는, 불리언 코드를 생성하는 프로그램과 노변장비를 그래픽 표현하는 프로그램과 같은 디자인 프로그램이 있다.
본 발명의 장치가 종래의 처리장치를 기초로 하기는 하지만, 실제로는 실제 설비구조의 가상 시뮬레이터를 구성하는 기술적 장치이므로 여러가지 장점과 기술적 효과를 가짐을 알아야 한다.
명령논리가 소프트웨어이므로 소프트웨어에 의한 구현이 최선의 방법이라는 사실을 근거로 소프트웨어를 선택한다.
본 발명에 따른 장치는 적절한 네트웍 인터페이스를 구비할 수 있고, 이것은 철도설비의 비핵심 노드일 수 있으므로, 명령/제어 논리프로그램을 쉽게 변경하여, 예컨대 해당 작동유닛에 라인을 추가하거나 제거하는 등의 역사 철도설비의 구조적 변경의 경우에도 가상시스템에 의해 구조변경이 가능하다는 것을 알아야 한다.
또, 철도설비에 연결되고 인터페이스된 노드 네트웍과 같은 본 발명에 따른 장치는 실제 철도설비의 올바른 동작을 위한 감독이나 진단기능도 가질 수 있는데, 이는 실제 설비가 취한 상태조건과 제어/명령 논리를 위한 실제설비와 동일한 입력변수들로 본 발명의 장치에 의한 시뮬레이션 설비가 취하는 상태조건을 쉽게 비교할 수 있기 때문이다. 이런 비교는, 다양성 기준을 근거로 한 추가적인 입증이나 확인을 위해 전술한 바와 같은 2가지 제어/명령 프로그램으로 얻어진 설비조건들의 비교와 비슷하게 이루어질 수 있다.
본 발명에 따른 장치에 의하면, 역사설비의 제어/명령 시스템의 일부가 노드이기 때문에, 긴급사태시 플랜트 자체에 대해 최선의 선택을 하도록 설비를 중재하고 명령하기 위한 다양한 기능성들을 시뮬레이션할 수 있다.
본 발명에 따른 장치는 마이크로소프트사의 윈도우 프로그램에서 사용되는 타입의 유저 인터페이스로 시뮬레이션 기능들을 실행하되, 마우스나 포인터, 숫자데이터를 입력하기 위한 키보드와 선택명령 입력시스템 이외에도 상기 인터페이스의 기능버튼, 단축선택메뉴 및 기타 기능들로 작동윈도우를 비교하여, 설비 구조의 작동유닛, 릴레이 또는 다른 부분의 그래픽 영상을 생성하거나 변경할 수 있다.
이하, 첨부 도면들을 참조하여 본 발명에 대해 자세히 설명한다.
도 1의 본 발명의 장치는 일단의 불리언 방정식들로 구현되는 명령/제어 응용 논리프로그램의 테스트에 관한 핵심 컴퓨터와 함께 역사장치로 구성되는 하나 이상의 시스템들의 기능 시뮬레이터로 구성된다. 이 장치는 모든 작동조건에 대해 핵심 컴퓨터로 역사장치를 시뮬레이션하도록 형성된다.
철도설비를 명령하고 제어하는 종래의 시스템에서, 시스템을 작동하기 위한 응용논리는 릴레이 네트웍 형태이다. 최근에는 신뢰성과 일관성이 훨씬 좋아진 컴퓨터의 도입으로, 컴퓨터로 실행되는 명령/제어 논리프로그램으로 응용논리를 대체하고 있다. 이 프로그램은 철도의 일정 위치에 열차가 있는지 검색하는 궤도회로, 신호장치, 스위치 지점 등 노변장비라 불리우는 다수의 작동장치의 상태조건들을 순환적으로 읽고, 상기 조건들을 기초로 상태 변수 형태로 코드화된 일단의 불리언 방정식들로 구성되는데, 이들 불리언 방정식은 작동장치의 작동상태를 입력변수로 표현된 조건으로 조정하여 유지하거나 계산하는 명령어들로 이루어진 새로운 출력상태 변수들을 계산하거나 정의한다.
불리언 방정식 그룹은 철도설비의 기능적 거동 테이블, 소위 조건테이블에 코드화된 소정의 작동모드에 맞는 길로 노변장치의 상태조건들의 계산을 실행해야 만 한다. 본 발명에 따른 장치는 핵심 컴퓨터 철도장치인 철도설비의 기능적 거동을 에뮬레이션해야 한다. 이런 에뮬레이션에 의해, 불리언 방정식 시스템 형식으로 표현된 제어명령 논리프로그램을 확인할 수 있는데, 이 확인은 마치 실제 설비 자체에서 실행되는 것같다. 이것은 설비가 제대로 작동되는 조건에 있을 때와 노변장비들에 이상이 있을 때 일어난다.
도 2에 도시된 본 발명에 따른 장치는 테스트/시뮬레이션 프로그램을 저장한 컴퓨터를 포함하고, 데이타 및/또는 명령어 입력수단, 디스플레이 수단, 및 핵심 컴퓨터를 갖춘 역사설비, 병렬과정 등을 실행하기 위한 원격 컴퓨터 등의 원격장치 연결수단에 대한 인터페이스를 구비한다. 에뮬레이션 프로그램은 아래와 같은 여러가지 루틴을 갖는다:
프로그램 자체에 포함된 불리언 방정식들을 실행하기 위한 루틴;
불리언 방정식 시스템의 입력 또는 초기화 변수들, 즉 설비의 작동 배경의 설정값들을 구성하기 위한 루틴;
설비와 이곳에 포함된 작동장치의 그래픽 영상, 즉 작동장치나 노변장비가 취할 수 있는 작동상태마다 다른 그래픽 영상으로서, 노변장비의 상기 작동조건이나 상태에는 물론 테스트 동작을 완성하고 단순화하는 다른 병렬 루틴들에도 연결되는 그래픽 영상을 디스플레이하기 위한 루틴.
설비의 작동요소나 구조요소를 확인하고 그 기능적 거동을 불리언 방정식에 의해 복구하는 역사설비의 가상 모델을 만들면 설비 시뮬레이션이 일어난다.
시스템의 물리적 구조는 상기 구조장치나 작동장치들의 관계에 의해 정의되 는데, 이들 관계는 설비도면의 각각의 배열을 설명하거나 디스플레이하며 어느 작동요소가 동시에 작동해야 하는지 정의한다.
뒤에 자세히 설명하겠지만, 작동유닛, 즉 노변장비들은 작동조건을 설명하고 제어하는 출력상태 변수와, 작동장치의 상태를 바꿀지 여부 및 어느 상태를 향해 천이가 되어야 하는지를 지시하는 입력상태를 유지 및/또는 변조하기 위한 변수들로 설명된다.
철도설비의 가상 모델을 만들기 위해, 본 발명에 따른 장치는 논리 프로그램의 형성시 노변장비의 기능적 거동을 불리언 방정식 형태로 시뮬레이션할 뿐만 아니라 노변장비의 그래픽 표현도 제공한다. 이런 그래픽 표현은 노변장비의 여러가지 그래픽 모양들을 포함하되, 각각의 모양은 노변장비의 작동상태에 대응하고 노변장비의 시뮬레이션 논리프로그램의 상태변수가 취한 값에 관련되거나, 또는 이런 시뮬레이션 논리프로그램이 제공하는 상태변수들중 2개 이상을 조합한 값에 관련된다. 분명한 것은, 노변장비의 그래픽이 노변장비의 모양을 개략적으로 나타내고, 각 장비의 여러가지 작동조건들에 대응하는 여러가지 모양을 가능한한 여러 작동조건에서 노변장비의 실제 변경상태를 재생하도록 서로 다르다는 것이다.
본 발명에 따른 장치는 노변장비의 시뮬레이션 논리프로그램들을 변경하거나 생성하고 또는 이 장비의 여러가지 작동조건들을 표현하는 그래픽 모양을 변경하거나 생성하는 툴을 포함할 수 있다. 이들 툴은 저장되었다가, 설비의 다른 노변장치나 구조적 요소들과의 ID와 관계나 기능적 관계는 물론 설비의 그래픽 표현으로 설치에 관련된 공간적 배치관계를 정의함으로써 소정 설비의 다이아그램에서 구체적 이고 고유한 역할을 취하는 일반 루틴으로 호출될 수 있다.
분명한 것은, 도 1의 구성에 의해, 설비가 제어/명령 논리프로그램을 생성하는 장치 및/또는 실제 핵심 컴퓨터 장치 및 실제 철도설비와 직접 연계되어 작동하여, 상기 장치와의 연결 네트웍의 비핵심 노드가 되는 것이다.
도 3의 장치는 PC를 기반으로 한 웍스테이션이다. 바람직한 작동환경은 소프트웨어를 시뮬레이션하는 장치가 설치된 Windows NT 환경이다. Windows NT 환경과 그 기본 기능은 널리 알려져 있다는 점에서 유리하다. 따라서, 역사나 설비의 다이아그램을 포함한 여러개의 윈도우를 디스플레이하도록 작동환경을 구성하되, 사용자는 시뮬레이션 장치 자체의 구성 및/또는 제어요소에서 작업한다. 하나 또는 2개의 모니터를 이용해 사용자는 선택된 기능이나 설정된 동작을 직접 볼 수 있는데, 이는 메인 시뮬레이션 논리프로그램과 그래픽 관리프로그램이 서로 연계되기 때문이다.
Windows 환경에 제공된 데스크탑 확장기능으로 보조 디스플레이를 제어한다.
이 장치의 소프트웨어는 전형적인 Windows 애플리케이션이므로, 전형적인 작동환경 툴을 채택한다. Windows의 모든 기능과 구조는 기본상식으로 널리 알려져 있으므로 자세한 설명은 생략한다.
본 발명에 따른 장치를 시뮬레이션으로 점검하려면, 다음 단계들을 포함한 여러가지 시동활동을 할 필요가 있다:
점검수단용 그래픽파일 생성;
그래픽파일 점검;
제어/명령 논리프로그램의 핵심 시스템의 불리언 방정식 생성;
변환테이블 생성;
암호화된 조건테이블 생성;
일괄명령어를 포함한 텍스트파일 생성.
명령 논리프로그램의 점검활동에서는 널리 알려진 점검수단을 이용한다.
철도설비 시뮬레이션에 의한 점검 프로그램은 다음 데이타를 포함한다:
점검할 역사나 지역을 설명하는 불리언 방정식을 갖는 파일;
시뮬레이션할 역사나 지역의 그래픽파일;
변환테이블을 포함한 파일;
조건테이블을 포함한 파일; 및
배치파일을 포함한 텍스트파일.
테스트 결과는 리포트 파일로 출력되고, 이것은 사용자가 사용하거나 저장된다. 테스트중에, 철도설비의 작동은 실시간으로 제어됨은 물론 뒤에 제어되기도 하는데, 이런 제어는 영숫자 메시지의 디스플레이나 상태변수값에 의해, 그리고 설비 자체의 그래픽 표현에 의해 이루어진다.
작업이 시작되면 신규 프로젝트가 생성되거나 이미 시작된 프로젝트가 로딩될 수 있다. 신규 프로젝트일 경우, 하나 이상의 역사나 설비 지역을 선택해 시뮬레이션해야 한다.
프로젝트 데이타의 로딩 및/또는 생성 후, 장치를 구성해야 한다.
철도설비로 테스트하기 위해 실행할 활동은 다음과 같다: 시스템 사이클시간 설정; 노변장치마다 식별어 정의; 노변장치의 시뮬레이터 정의; 제어할 지역, 변수와 시뮬레이터의 관계 추가; 그래픽 대상이 취할 수 있는 컬러와 상태를 정의하고, 이들을 그래픽 대상에 할당.
전술한 바와 같이, 장비의 상태와 대상물의 컬러를 정의하기 위해 설비 지역이나 역사의 그래픽 다이아그램에서 직접 작동하는 명령어도 있다.
윈도우에 삽입하거나 커맨드바를 (아직 활성화되지 않았을 경우) 활성화시킬 윈도우나 대상물을 선택해 제어윈도우를 활성화할 수 있다. 분명한 것은, 프로젝트의 현재 상태를 테스트하고 저장할 수 있다는 것이다. 이를 위해, 시뮬레이션 상태를 저장하되, 항상 옛날 구성을 덮어쓰지 않고 다른 이름으로 저장하는 것이 편리하다. 각각의 구성을 재로딩하여 신규 시뮬레이션 단계를 시작한다. 시뮬레이션중에, 설비의 다른 동작이나 구성 배경 또는 다른 명령어에 대응하는 구성 배치파일을 실행할 수 있다.
이 장치는 원격 스테이션의 명령어와 원격 접속모듈을 통해, 구체적으로는 네트웍 프로토콜을 통해, 바람직하게는 TCP/IP 프로토콜을 통해 완벽히 관리될 수 있다.
사용자는 프로젝트를 저장하되 기 실행된 작업의 손실 없이 언제라도 시뮬레이션에 의해 점검과정을 끝낼 수 있다. 프로젝트는 테스트 과정 전에 생긴 모든 파일과, 구성과정 및 시뮬레이션 단계중에 생긴 모든 파일을 의미한다.
도 4는 테스트 실행중에 모니터에 나타나는 것을 보여주는 스크린의 일례이다.
시스템을 개시하여 나타나는 첫번째 스크린은 도 5와 비슷하다. 윈도우 상단부(10)에서는 애플리케이션 개폐를 관리하고, 윈도우(110)는 시뮬레이션용 커맨드바이다. 이 두번째 윈도우는 사용자가 편리한 위치로 드래그하여 움직일 수 있다.
메인 커맨드라인(110; file, Views 등) 바로밑에는 몇가지 명령어를 신속히 활성화하기 위한 단축버튼이 디스플레이된다. 이들 버튼에 대해서는 후술한다.
또, 안내파일에 들어가거나 문의하기 위한 헬프메뉴를 활성화하는 버튼도 제공된다. 안내는 양방향이거나 Windows 환경과 비슷하다. 윈도우 환경과 마찬가지로, 명령어가 활성화되면 나타나는 안내창에서 디스플레이, 인쇄 옵션 등을 선택할 수 있다.
커맨드바(110)의 파일 명렁어로 신규 프로젝트를 시작하거나 기존의 프로젝트를 열되, 현재 프로젝트를 저장하고 애플리케이션을 진행할 수 있다. 모든 명령어 옵션이 열거된 일반적인 드롭다운 메뉴에서 명령어에 접속해 선택할 수 있다.
명령어 전체나 일부는 단축버튼에 루틴을 만들어 개별화할 수 있다.
단축버튼(210)을 통해 신규프로젝트를 시작하되 시뮬레이션의 배경 전체를 정의할 수 있는바; 예컨대 검사할 역사, 활성화할 제어윈도우, 디스플레이할 변수, 및 윈도우 비율, 컬러, 중간색, 수치파 형태의 디스플레이 등의 디스플레이 모드를 정의할 수 있다.
프로젝트가 이미 장치에 로딩되었으면, 위의 여러 옵션들을 실행하기 위한 명령어 버튼을 갖는 대화창을 통해 이 프로젝트를 저장할 것인지 또는 삭제할 것인지 사용자에게 문의한다.
로딩된 프로젝트를 저장하려면, "file" 메뉴의 해당 명령어를 사용하거나 단축저장버튼(410)을 사용하는 것이 바람직하다.
로딩할 때, 프로그램은 철도설비, 부근지역 및 노변장비의 구성파일과 그래픽 파일의 구문과 의미를 제어한다. 또, 시뮬레이터 모델을 확인하는바, 작동장치인 노변장비의 시뮬레이션 프로그램과 그래픽 디스플레이 모드나 그래픽 대상의 컬러와 같은 상태를 확인한다. 상기 파일들에 심각한 에러가 있으면, 장치는 이들 파일을 로딩하지 않는다. 이들 에러는 철도설비, 역사 또는 부근 지역을 디스플레이하는 윈도우의 요약상자에 리스트된다.
오퍼레이터가 확인을 하고 로딩 결과 도 6의 2개 윈도우(10,30)가 열리면 종료기능이 끝난다. 메인 윈도우(10) 외에, 철도설비, 역사 또는 부근 지역의 그래픽 레이아웃과 제어 윈도우(30)가 디스플레이된다.
프로젝트가 로딩되면 다음 데이타가 디스플레이된다:
철도설비, 역사 또는 지역의 이름, 철도설비를 설명하는 방정식에 포함된 변수의 갯수, 철도설비 등의 불리언 방정식에서 얻어진 Pterm, 즉 곱셈항의 갯수, 시뮬레이션 진행중에 처리되는 변수의 비율인 변수 커버링, 및 시뮬레이션 진행중에 처리된 비율인 Pterm의 커버링.
단축버튼(510)은 프로젝트를 닫는 기능을 담당한다. 윈도우(10)의 커맨드바(110)를 통해 열 수 있는 프로젝트 관리메뉴에서는 Add Station/Area, Cancel Station/Area의 2가지 명령이 가능하다. 이들 명령에는, 단축버튼바의 610과 710의 두개 명령버튼이 관련된다.
Add Station/Area 명령어나 대응 단축버튼(610)을 통해 이미 메모리에 로딩된 프로젝트에 새로운 역사나 새로운 지역을 추가할 수 있다.
Station/Area를 지정하기 위한 대화창이 디스플레이된다. 사용자는 해당 역사나 지역에 속하고 대화창의 필드에 타이핑해야 하는 파일명을 정할 수 있다. 파일명을 타이핑하지 않고, 검색버튼을 이용해 검색메뉴를 찾을 수도 있다. 이 경우, 저장된 역사나 지역이 디스플레이되는 윈도우가 열린다. 사용자는 리스트중에서 원하는 역사나 지역을 포인팅 수단을 이용해 선택할 수 있다. 또, 역사나 지역의 그래픽 도면을 포함하는 그래픽 파일의 포맷을 예컨대 CAD, TGIF 파일 형태로 선택할 수도 있다.
"layout" 버튼으로 사용자는 역사나 지역의 그래픽 도면을 구성하는 특정 파일을 정할 수 있다. 도면 종류에 따라, 해당 역사나 지역을 특정하기 위한 대화창이 열린다. 사용자는 소정 필드에서 도면의 파일명을 예컨대 CAD 형태로 지정할 수 있다. 보조 CAD 파일 필드를 통해 CAD 도면에 자연적으로 결합될 다른 그래픽 심볼들을 포함하는 파일을 정할 수 있다. 선택이 끝나면, 프로그램은 역사나 지역의 구성파일과 도면파일들을 로딩한다. 로딩중에, 이들 파일은 구문과 의미적으로 제어된다. 파일에 치명적 에러가 있으면, 시스템은 이런 파일은 로딩하지 않는다. 프로그램은 요약박스에 이들 에러를 리스트한다. 구성 정의 파일에 중대한 에러가 있으면, 그 역사나 지역은 저장되지 않는다. 로딩이 적절히 완료되면, 해당 역사나 지역이 저장되고 스크린에 그래픽 도면이 나타난다.
Cancel Station or Area 또는 해당 단축버튼(710)을 이용해 프로젝트에서 역 사나 지역을 삭제할 수 있다.
커맨드바(110)는 추가적인 "configure" 명령어를 제공한다. 이 명령어를 이용해 메뉴에서 여러가지 옵션들을 선택할 수 있다. 첫번째 옵션은 사이클시간 정의 명령어이다. 이 명령어 외에 도 5, 6의 단축버튼(810)도 제공된다.
철도설비, 특히 핵심 제어장치를 제어하거 명령하는 논리프로그램은 노변장비가 보낸 제어신호를 읽고 사이클 동작에 맞는 명령신호를 전송한다. 통상 전반적인 전송/처리 판독사이클은 약 500ms 내에 실행된다. 매 사이클마다, 제어/명령 논리프로그램을 형성한 불리언 방정식들이 재계산된다. 본 발명의 장치의 프로그램에서, 사용자는 실시간에 대응하도록 사이클시간을 설정할 수 있다. 이를 위해, 단축버튼(810)이나 메뉴상의 명령에 의해 사이클시간을 설정하는 윈도우를 열어 사이클시간을 정할 수 있다.
"Configuration-Modification suffixes" 명령어로는 식별어를 결정할 수 있다. 시스템 구성파일, 즉 방정식 파일의 불리언 변수들의 거동과 구문 의미를 결정하는 것이 식별어이기 때문에 이것은 아주 중요한 기능이다. 식별어를 잘못 붙이면 시스템 정의파일의 처리중에 치명적 에러가 생길 수 있고, 이런 에러가 있으면 해당 역사나 지역 또는 노변장비, 즉 작동장치의 관리를 할 수 없다. 식별어는 시스템 정의파일, 즉 시스템 EPROM 메모리에서 프로그램되는 데이타파일에 포함된 비슷한 정의와 어울려야만 한다. 식별어의 설정은 대화창의 도움으로 이루어진다.
식별어를 바꿔 명칭을 규정하는데 박스를 사용할 수 있다. 이 명칭은 블록체를 포함할 수 있다. "Type" 메뉴에는 선택할 수 있는 모든 글자체가 들어있다.
식별어의 의미는 다음과 같다:
Input: 시스템 구성파일내의 불리언 방정식의 우변(곱셈 항 요소)에만 "input" 변수를 사용할 수 있다. 불리언 방정식의 좌변의 "input" 변수에 조회하면, 프로그램은 시스템 정의파일 로딩중에 에러를 지적한다.
Output: "output" 타이핑은 불리언 방정식의 좌변에 한번만 사용해야 한다. 불리언 방정식의 우변의 "output" 변수나 좌변에 1회 이상 조회하면 시스템 구성파일 로딩중에 프로그램이 에러를 지적한다.
Current cycle: 불리언 방정식의 양변에 "current cycle" 변수를 타이핑할 수 있다. 이 변수에 대한 조회는 좌변에서는 1회만 가능하고, 동일한 사이클에서 연속적으로 계산되는 방정식 우변에서는 원하는 만큼 여러번 가능하다. "current cycle" 변수의 이용이 위의 기준에 맞지 않으면, 프로그램은 에러를 지적한다.
Subsequent cycle: "subsequent cycle"에 대한 조회는 불리언 방정식 양변에서 가능하다. 이 변수는 언제라도 방정식 우변에 배치될 수 있다. 방정식 좌변의 변수에 조회를 했으면, 더이상 우측의 변수, 즉 연속적으로 계산되지 않은 동일한 처리 사이클에서 실행된 방정식에서는 이 변수를 사용할 수 없다.
Shared input: "shared input" 변수는 "input"과 비슷하지만, 프로그램은 매 계산사이클이 끝난 뒤 다른 지역이나 다른 장비의 적절한 "shared outputs"를 이용해 이들 입력값들을 업데이트하는 점에서 차이가 있다.
Shared output: "shared output" 변수는 "output"과 비슷하지만, 프로그램은 매 계산사이클이 끝난 뒤 다른 지역이나 다른 장비의 적절한 "shared inputs"를 이 용해 이들 출력값들을 채택하는 점에서 차이가 있다.
Timed: "timed"는 "current cycle"과 비슷하되, "timed"와 관련된 변수를 계산하는 방정식이 참이고 이 변수에 대해 규정된 지연시간이 끝났으면 이 변수가 참이어서, 시작 방정식이 참으로 될 때 카운트하기 시작한다는 점에서 차이가 있다. 타이머에 관련된 변수가 이미 참으로 계산되었고 관련 방정식이 이제 거짓으로 계산되면, timed 변수의 값은 지체없이 바로 거짓으로 된다. 시스템 사이클시간을 설정하기 위한 명령어에 대한 조회에서 전술한 바와 같이, "timed" 변수를 계산하는데 사용된 방정식은 지연의 정의대로 처리되어야 한다. "Timed" 형태가 아닌 방정식에 대한 지연이 규정되었거나 "Timed" 형태의 방정식이 지연 규정대로 처리되지 않으면 프로그램은 에러라고 지적한다.
Blinking Output FLS: 이 형태의 변수는 "Output"과 동일하다. "Blinking Output FLS" 형태의 변수값을 계산하는 방정식은 "Output"으로 정의된 변수값을 계산하는 방정식으로 처리되어야 한다. 이들 방정식이 이 조건을 만족하지 않으면, 프로그램이 에러라고 지적한다.
커맨드바는 "Configure-Add equipment simulator"란 명령어를 더 포함한다. 다른 명령어와 비슷하게, 이 명령어도 도면의 단축버튼(910)으로 실행될 수 있다. 이 명령어로는 물리적인 장비나 작동장치의 시뮬레이터를 정의할 수 있다. 물리적, 논리적 장비의 시뮬레이터의 정의는 다음 3단계의 모델의 정의로 이루어진다:
신규 시뮬레이터의 명칭 정의;
인터페이스 명세;
거동 디자인;
도 7의 윈도우가 활성화된다. 이 윈도우에서 시뮬레이터의 명칭을 선택한다. 윈도우의 적당한 박스에 명칭을 타이핑해도 된다. Add 버튼을 이용해 기존의 시뮬레이터 리스트에 특정 명칭을 추가함과 동시에 인터페이스를 정의하는 대화창과, 신규 시뮬레이터의 진리표(truth table) 윈도우를 연다. 시뮬레이터에 기존의 것과 같은 명칭을 주면, 프로그램이 이를 거부하고 사용자에게 경고하는 대화창이 열린다. Modify 버튼으로는 기존의 시뮬레이터를 변경할 수 있다. 변경기능을 통해 시뮬레이터의 명칭은 물론 컨텐츠도 바꿀 수 있다. 프로그램은 시뮬레이터를 동시에 하나 이상 변경할 수 있다.
시뮬레이터 리스트에서 시뮬레이터를 삭제하려면, Cancel 버튼을 사용해 선택 대화상자에서 명칭이 반짝이는 시뮬레이터를 제거할 수 있다.
각각의 시뮬레이터를 정의하는 2단계를 구성하는 시뮬레이터 인터페이스는 form set, 대응 alias, types 및 functions으로 구성된다. 이 인터페이스를 지정하기 위해 인터페이스를 정의하는 대화창이 도 8과 같이 디스플레이된다.
사용자는 대화창의 "modify" 명령어 버튼을 이용해 형식을 지정할 수 있다. 이 형식은 시뮬레이터-변수를 관련짓는 동안 가변적인 옳바른 명칭을 지정하는데 사용된다. 형식은 형식 자체의 문구에 따라 임의의 순서의 매개변수나 상수 성분을 포함할 수 있다. 형식 정의는 필수단계이다. Alias는 이 형식의 별명으로서 시뮬레이터의 진리표에서 형식을 확인하는데 사용된다. 별명은 인터페이스 정의 대화창의 alias 상자에 규정되어야하고, 상세설명이 필요하다.
이 형식의 종류는 시뮬레이션에서 이 형식으로 표현되는 변수법칙을 설명한다. "type" 옵션상자로 사용된 종류를 선택할 수 있다.
변수의 종류:
Parameter: 파라메터형 변수는 외부의 시뮬레이터 인터페이스를 나타낸다. 핵심 컴퓨터 역사장치의 방정식이 이들 변수를 이용해 시뮬레이터를 제어하는데, 단 이들 변수가 "inputs"일 경우에만 그렇다. 변수들이 "outputs"이면, 이들은 제어명령 논리프로그램의 방정식 입력변수로 사용되어 시스템의 상태를 결정하고 업데이트함을 의미한다.
Control: 이 변수는 시뮬레이터의 거동을 제어하는데 사용된다. 이 변수는, 시뮬레이션중에 시뮬레이터 거동을 변경하거나 가능한 고장상황을 시뮬레이션하는 인터페이스를 사용자에게 제공하는 버튼에 관련된다. control 변수는 속성상 입력이거나 입출력이다. 출력속성은 방해되지는 않지만 control 변수의 경우 아무 의미도 없다. 입력속성을 갖는 변수들은 마우스로 클릭하면 눌려졌다가 한번 더 클릭하면 해제되는 버튼에 관련된다. 변수가 입출력 속성을 가지면, 시뮬레이터와 사용자 모두 버튼의 상태를 정할 수 있다. 예를 들어, 사용자는 버튼을 클릭하여 활성화시키고, 시뮬레이터는 몇회의 작동사이클이 지난 뒤 버튼을 해제할 수 있다. "control"의 종류에 관련된 형식은 상수성분만을 가질 수 있다.
Local State: "local" 타입 변수는 시뮬레이터의 내부상태를 저장하는데 사용된다. 즉, 이 종류의 변수를 이용하면 순차적인 거동은 물론 복합적인 거동을 정의할 수 있다. 이 변수는 시뮬레이터 외부에서는 볼 수 없고, 입출력 속성만을 가 질 수 있다. local 타입 변수에 관련된 형식은 상수성분만을 가질 수 있다.
입력속성과 출력속성은 "input/output" 옵션상자를 이용해 선택할 수 있다.
구체적인 form, alias, type "input/output" 속성을 갖춘 뒤, 사용자는 "add" 버튼 명령어로 인터페이스에 이들 정보를 추가할 수 있다. alias와 form의 상세내역은 의무적이고 단성적(univocal)이어야 한다.
대화창 리스트의 선택기능과 "modify" 기능버튼을 이용해 form, alias, type, "input/output"과 같은 구체적인 속성그룹을 바꿀 수 있다. 마찬가지로, 구체적인 속성을 제거할 수도 있다.
시뮬레이터 정의를 위한 3단계는 기능적인 거동의 디자인에 있다. 이를 위해, 윈도우에서 진리표를 프로그램에 제공한다(도 9의 우측 참조). 신규 시뮬레이터가 원하는대로 추가되었다고 사용자가 정의하면 이 윈도우는 자동으로 열린다. 진리표는 수직 이중선에 의해 2 부분으로 나누어진다. 진리표의 좌측 부분은 시뮬레이터의 현재상태를 나타내고, 우측 부분은 후속 상태를 나타낸다. 진리표의 열은 인터페이스에서 정의된 각각의 변수를 포함한다. "input" 속성을 갖는 변수는 좌측에, "output" 속성을 갖는 변수는 우측에 나타난다. "input/output" 속성을 갖는 변수들은 양쪽에 모두 나타난다. 진리표의 상단에는 변수의 별명이 있다.
이런 구성에 의하면, 시뮬레이터의 거동을 모델화하도록 기능하는 순차적이고 결합적인 논리를 모두 설계할 수 있다. 사용자가 순차논리(즉, "input/output" 속성의 변수를 포함하는 논리)를 설계하면, 좌측에 Markov 논리모델이 나타난다. 원은 논리상태를, 아치는 천이를 의미한다. 프로그램은 아치형 화살표에 위치할 때 천이를 시작하기 위한 가능한 입력상태와 천이중에 설정된 출력상태를 디스플레이한다. 이 윈도우 구조가 도 9에 도시되었다.
신규 시뮬레이터의 경우, 진리표의 우측에는 초기화되지 않은 상태를 나타내는 "+" 표시가 보인다. 사용자는 마우스버튼으로 우측의 셀을 클릭하여 이 셀의 값(출력값)을 오버라이트할 수 있다. 실제로는, 입력조건이 (진리표 좌측에) 나타날 때 결정된 출력상태를 정의함을 의미한다. 도 10의 진리표는 각 셀이 취할 수 있는 값들을 합한 것이다.
"*" 값은 초기화되지 않은 셀 값.
"X" 값은 진리표 우측 셀에 위의 값이 주어지면 좌측의 모든 동일한 행에 "X" 값이 주어짐을 의미. 즉, 해당 행에서 확인된 상태를 아직 이용할 수 없음을 의미한다. 실제로는, 시뮬레이션중에 허가되거나 사용되지 않은 조합이다.
"0"은 이런 사이클의 입력조건들이 확인되었을 때 다음 사이클의 출력이 "0" 값으로 감을 의미한다.
마찬가지로, "1" 값을 가지면, 후속 사이클에서 출력이 "1" 값으로 갈 수 있다.
사용자를 돕기위해, 윈도우는 도 11, 12에 예시된 추가기능을 제공한다.
메뉴를 이용하거나 단축버튼을 이용해 기능을 입력할 수 있는데, 이에 대해서는 후술한다.
Modify-Parameters 명령어는 도 9의 단축버튼(20)으로 실행할 수 있다. 이 명령어는 인터페이스 정의 대화창을 닫는다. 대화창이 닫히면, 위의 단축버튼을 클 릭하거나 이 명령어를 이용해 열 수 있다.
Modify-Copy 명령어 또는 도 9의 단축버튼(21)의 경우, 선택활성 툴로서 마우스를 이용해 진리표의 임의의 사각영역을 선택하고 반짝이게 할 수 있다. 선택된 영역은 주석파일(note file)에 복사될 수 있다.
Modify-Paste를 누르면, 선택된 영역의 내용을 제어할 수 있다. 선택된 영역은 사이즈에 있어서 주석파일에 저장된 영역과 대응해야 한다.
다른 명령어도 이 단계에서 실행할 수 있다. 예를 들어, 사용자는 캐릭터 폰트나 타스크 레이아웃 폰트를 선택, 변경하면서 컬러를 바꿀 수 있다.
시뮬레이터의 변수에 대한 관련기능을 통해 시스템에 정의된 시뮬레이터를 적당한 변수 그룹에 상관시킬 수 있다. 이런 기능은 Device Configuration-Definition 명령어나 도 5, 6의 단축버튼(1010)을 통해 활성화된다. 시뮬레이터의 종류와 이에 관련된 논리변수 사이의 링크를 만들려면, 사용자는 역사/지역 또는 적용장비, 시뮬레이터의 종류, 시뮬레이션할 노변장비나 명령어의 라벨을 규정해야만 한다. 사용자를 돕기 위해, 대화창의 옵션상자를 이용해 이들 정보를 선택할 수 있다. 옵션상자를 이용해, 지역이나 역사나 이미 정의된 장비의 명칭, 정의된 시뮬레이터의 종류, 그리고 도면파일이 있을 경우 도면의 그래픽 대상에 포함된 라벨 등을 로딩할 수 있다. 프로그램이 가능한 정보를 프롬프트한다 해도, 사용자는 원하는 어떤 문자열도 자유롭게 타이핑할 수 있다. 이때문에, 뒤에 실현될 시뮬레이터를 규정하여 비로딩 역사에 참고하고 도면에 아직 그래픽 표시되지 않은 시뮬레이션할 대상물을 규정할 수 있다.
변수와 시뮬레이터 사이의 결합은 close 명령어를 처리한 뒤 이루어지는 프로젝트 로딩처리중에 일어난다. 로딩처리가 원하는 결합을 실행할 수 없으면, 프로그램은 에러를 지적하고 로더 대화상자에 메시지를 디스플레이한다. 이들 결합에러는 유효한 결합으로 진행될 수 있는 시뮬레이션을 방해하지 않는다. 식별 문자열은 "," 캐릭터로 구분되는 라벨들을 하나 이상 포함할 수 있다. 식별 문자열은 관련 시뮬레이터의 인터페이스에 정의된 형식에 대응해야만 한다. 프로그램은 적절한 에러메시지를 디스플레이하여 설명어의 다중정의를 방지한다.
도면 대상물의 컬러와 상태의 정의는 Configuration 메뉴의 Layout Configuration 명렁어나 도 5, 6의 단축버튼(1110)에 의해 이루어진다.
노변장비, 지역 또는 역사를 나타내는 그래픽 대상물의 상태와 컬러는 역사/지역 구성파일에 정의된 변수그룹에 의해 결정된다. 변수그룹은 그룹의 각 변수에 대한 형식을 이용해 설명된다. 이들 형식은 "assignment of state and colours to the drawing" 단계중에 변수를 찾는데 이용된다. 시뮬레이터의 정의에서와 마찬가지로, 도면 대상물의 상태와 컬러를 3단계로 정의할 수 있다:
도면에 있는 그래픽 대상물의 타이핑;
이전 단계(그래픽 대상물의 타이핑)동안 추가되거나 변경된 각각의 요소에 대해 행해지는 인터페이스 규정;
이전 단계의 각각의 인터페이스에 대해 행해지는 도면 대상물의 상태와 컬러.
따라서, 1단계는 도면에 있는 그래픽 대상물의 종류를 규정하는 것이다. 이 를 위해, Configuration-Configuration Layout 명령어를 활성화하거나 단축버튼(1110)을 누르면, 프로그램에 의해 도 13의 대화창이 디스플레이된다.
사용자는 대화창의 "Type" 상자에 그래픽 대상물의 새로 정의한 명칭을 타이핑할 수 있다. 인터페이스를 정의하고 컬러를 정의하는 후속 단계들은 요소를 추가하고 변경하면 일어난다.
대응 버튼에 의해 변경옵션이 활성화되면, 도 14, 15의 새로운 대화창이 각각 열려 그래픽 대상물을 변경하거나 추가할 수 있다.
인터페이스 규정은 대상물의 상태와 컬러를 정의하기 위한 2단계에서 일어난다. 인터페이스는 그래픽 대상물의 현재 컬러상태를 결정하기 위한 변수그룹이다. 도 15의 대화창을 이용해 변수그룹을 정의할 수 있다. 사용자는 전술한 바바와 동일한 구문을 이용해 대화상자에 변수 명칭을 규정할 수 있다. 다른 기능에 대해 여러번 앞서 설명한 바와 마찬가지로, 대화창의 여러 버튼중에 Add 버튼이 있다. 이 경우, 이 버튼을 이용해 변수 형식 리스트에 루틴을 추가할 수 있다. 프로그램은 구문 규칙에서 이 형식을 제어한다. 또, 프로그램은 잘못된 형식을 제거하고ㅡ 메시지 영역에 디스플레이된 에러메시지를 전송한다. 프로그램은 형식에 정의되지 않은 식별어 이용은 금지한다.
인터페이스 규정 후, 도면 대상물의 상태와 컬러를 정의할 필요가 있다. 사용자는 도 15의 테이블을 이용해 도면의 그래픽 대상물에 대한 상태 문장, 아웃트라인 또는 삽입 컬러를 규정할 수 있다.
스크린의 최대 사이즈에 맞게 조정될 수 있는 윈도우에는 첫번째 행(헤더)의 변수 리스트(형식)를 포함한다. 전술한 바와 같이, 테이블은 두꺼운 수직선으로 2부분으로 나누어진다. 좌측부분은 상태테이블을 포함하는데, 상태테이블은 윈도우보다 클 경우 커서에 의해서 또는 개별적으로 스크롤될 수 있는 것이고, 우측부분은 컬러표시된 시그널링과 관련 텍스트를 포함한다. 사용자는 마우스로 셀을 클릭하여 형식 상태를 규정할 수 있고, 프로그램은 셀값을 선택하기 위한 요약상자를 디스플레이한다. 요약상자의 엔트리는 다음과 같다:
"0": 거짓일 경우의 변수 형태.
"1": 참일 경우의 변수 형태.
"X": 마우스로 활성화된 셀을 포함한 전체 행을 제거.
상태 테이블의 빈 첫행의 셀을 마우스로 클릭하여 정의 테이블에 신규 행을 추가할 수 있다. 이 경우, 프로그램에 의해 동일한 상태테이블이 디스플레이되지만, 선택된 "0", "1" 값을 이용해 전체 행을 초기화한다. 행이 초기화되었으면, 전술한 바와 같이 그 행의 각각의 셀에 원하는 값을 설정할 수 있다.
윈도우 우측은 시그널링을 위해 선택된 컬러를 나타낸다. 각 상자는 내부색깔과 아우트라인인 프레임 색깔을 갖는 정사각형으로서, 두가지 색 모두 바뀔 수 있다. 테이블에서 내부가 채워진 각 행에 대해, 아우트라인의 색, 충전 색 및 상태표시 텍스트를 정의할 수 있다. 행을 정의한 뒤, 프로그램에 의해 소정의 색과 상태가 할당되고 이들 색과 상태가 테이블 가장 오른쪽의 2개 열에 디스플레이된다. 아우트라인 색은 밝은 회색이지만, 충전 색은 암회색이고 상태 텍스트는 "no defined state"이다.
행의 컬러 정의 사각형의 두꺼운 변을 클릭하면 아우트라인 색을 바꿀 수 있다. 마찬가지로, 컬러정의 사각형의 내부를 마우스포 클릭하면 충전 색을 바꿀 수 있다. 색을 바꾸기 위해 대화상자가 디스플레이된다. 전술한 바와 마찬가지로, 반짝이게 하고 싶은 구간에 마우스를 대고 우측버튼으로 클릭하면 반짝임 형태도 바꿀 수 있다. 이 동작을 반복하면 반짝임이 중지된다. 또, 테이블 맨 우측 열의 변경할 텍스트에 대고 마우스로 클릭하면 상태 텍스트를 바꿀 수 있다.
본 발명의 장치의 다른 특징에 의하면, 이 장치는 웍스테이션이나 다른 원격지 장치에 연결하기 위한 네트웍에 연결하는 수단을 포함할 수 있다. 네트웍은 다양한 프로토콜에 따라 실현될 수 있다. 네트웍 프로토콜로 많이 사용되는 것은 확산성이 큰 TCP/IP이다. 본 발명의 장치를 제어함은 물론 이전에 기록된 기존의 시뮬레이션 명령파일들을 로딩하고 실행하는데에도 원격장치를 사용할 수 있다. "배치파일"로 불리우는 상기 명령파일들은 기존의 적당한 리딩 인터페이스, 예를 들어 플로피 디스크, CD-ROM 등에 저장된 파일들에 의해 본 발명의 장치에 직접 로딩될 수 있다.
그러나, 위의 두가지 경우 모두, 배치파일 명령어는 본 발명의 장치의 애플리케이션으로 실행되는 언어로 번역되어야 한다. 이를 위해, 변환테이블이라고 하는 번역테이블이 제공된다. 이것은 오프라인으로 기록되고, 배치파일을 실행하기 전에 또는 원격 웍스테이션의 명령어와 연결을 실행하기 전에 본 발명의 장치에 로딩되어야 한다.
조건테이블 선택명령어에 의해 경로를 지적하는 Condition table을 선택할 수 있다. 도 17과 같이 대화창이 열린다. Condition Table 파일경로를 직접 기록할 수 있거나, 대화창의 "Search" 버튼으로 서치기능을 활성화할 수 있다. Condition Table 파일이 발견되면, 대화창의 기능버튼으로 이 파일을 선택하여 로딩상태를 확인할 수 있다.
Condition Table 파일은 Windows 파일 .INI와 같은 구성을 갖는 것이 좋다. 도 18은 이런 구성의 기본을 보여준다.
도 19는 Condition Table 파일의 일례이다. 테스트할 제어/명령 논리프로그램과 역사나 지역의 노변장비의 논리 시뮬레이터 양쪽을 구성하는 불리언 방정식으로 이해할 수 있는 정보를 만들기 위해, 소정 작동조건으로 노변장비의 여러 작동상태를 추정하기 위한 규칙인 설비 거동규칙들이 condition table에 들어있다.
전술한 대로, 본 발명의 장치를 이용하면 불리언 시뮬레이터에서 재생된 역사나 지역의 제어/명령 논리프로그램의 최종 거동을 점검함은 물론, 방정식 시스템의 내부 거동을 점검할 수 있다. 이런 점검은, 사용자 자신이 번호와 관련해 정의할 수 있는 제어창에 의해 일어난다. 사용자는 원하는 모든 변수를 각각의 단일 제어창에 할당할 수 있다. 이 프로그램에 의해 각 변수가 순서대로 유지되므로, 사용자는 제어창을 이용해 이전 상태를 리콜할 수 있다. 제어창을 정의하는데 사용된 툴을 "Views"라 한다. 이런 툴을 이용해, 여러가지 옵션을 갖는 메뉴를 열 수 있다. 옵션의 하나는 Add Control Window 명령어이다. 이 명령어는 도 5, 6의 단축버튼(1210)으로 실행될 수도 있다. 이 명령어를 통해 새로운 제어창을 열 수 있다. 새로운 제어창 각각에 대해 고유한 명칭을 붙여야 하고, 명칭 정의를 위해 신규 대 화창이 열린다. 일반적인 제어창이 도면에 30으로 표시되어 있다. 열린 제어창에는 디스플레이될 변수를 설정하도록 기능하는 툴바가 있다. 다른 경우에서 전술한 바와 마찬가지로, 명령어들은 항상 메뉴에서 선택하거나 단축버튼을 눌러 실행될 수 있다.
Add 명령어나 단축버튼(130)을 누르면 제어할 변수들을 선택할 수 있다. 검색 대화창을 이용하면 디스플레이할 변수들을 사전선택할 수 있다.
검색 대화창에는 선택취소, 선택된 변수 추가, 하나 이상의 변수 취소, 제어창에서 선택된 변수 확인 등의 기능을 실행할 수 있는 다양한 버튼이 있다. 현재 선택과정 취소를 위한 버튼도 있다.
Cancel Variable 명령어나 단축버튼(230)을 통해, 디스플레이된 변수를 제어창에서 삭제할 수 있다. 이 경우에도, 이전의 명령어와 마찬가지로, 명령어를 실행할 대화창이 디스플레이되고, 이 대화창에는 Cancel, Cancel all, Close와 같은 특정 기능을 활성화하는 버튼들이 있다.
Display Wave/Numerical Form 명령어나 단축버튼(330,430)을 통해, 제어창에 디스플레이되는 변수의 웨이브모드나 수치모드 선택이 가능하다.
마찬가지로, 사용자가 정의하는 여러가지 가능한 제어창들 사이를 스크롤하거나 브라우즈하는 단축버튼이나 명령어를 제공할 수도 있다.
Cancel Control Window 명령어나 단축버튼(1310)을 통해 제어창의 취소가 가능하다. 이 경우, 대화창이 디스플레이되고, 모든 열린 제어창들이 리스트되며, 이중에서 제거할 제어창을 선택할 수 있고, "Cancel" 버튼으로 취소가 가능하다.
다른 명령어로 커맨드바의 View_Activation으로 나타나는 시뮬레이션 명령어가 있다. 도 6의 단축버튼(1410)으로도 실행가능한 이 명령어에 의해 커맨드바가 활성화되고 디세이블(disable)될 수 있다. 시뮬레이터에 명령하기 위해, 프로그램은 도 20에 예시된 제어창을 디스플레이한다. 제어창은 명령어용 툴바와 메시지용 영역으로 구성되는데, 이들은 시뮬레이션 실행중에 명령어와 변경사항을 디스플레이하기 위한 것이다. 단축버튼 형태의 단축명령어도 가능하고, 드롭다운 메뉴 명령어도 가능한데, 이에 대해서는 전술한바와 같다.
simulation Mode 명령어를 통해 사용자는 드롭다운 메뉴에서 각종 옵션을 선택할 수 있다. 이들 옵션중에서 다음 옵션이 중요하다:
단축버튼(40)으로 활성화될 수 있는 싱글 사이클 옵션. 이 옵션을 선택하면 싱글 계산사이클을 실행할 수 있다. 실행 후, 프로그램에 의해 역사나 지역의 디자인/레이아웃을 포함한 메시지창이 신규상태에 맞게 자동으로 업데이트된다.
단축버튼(41)으로 가능한 연속사이클 옵션. 이 경우, 프로그램은 연속으로 사이클을 계산하기 시작한다. 계산중에, 역사의 디자인/레이아웃을 갖는 메시지창이 자동으로 업데이트된다.
다중사이클 옵션. 이 옵션은 단축버튼(42)으로 활성화된다. 연속해서 계산될 사이클 수를 지정할 수 있다. 사이클 수의 지정은 대화창에서 이루어지고, 대화창에서 원하는 사이클 수를 지적할 수 있다.
정지명령어나 단축버튼(43)으로 언제라도 계산을 멈출 수 있다.
끝으로 배치명령어나 단축버튼(44)이 있는데, 이것으로 기설정된 명령어 시 퀀스를 포함하는 배치파일을 로딩하고 실행한다. 배치파일 실행은 매크로 실행방법과 비슷하다. 전술한 바와 같이, 배치파일 명령어들은 변환테이블에 의해 번역되어야 하고 소정의 구조를 가져야만 한다. Write®나 Word-pad®와 같은 텍스트 편집기로 배치파일을 편집할 수 있다.
Image file Generation 명령어나 단축버튼(45)으로는, 현재의 시뮬레이션 상태를 "snapshot" 파일에 저장할 수 있다. Snapshot 파일은 프로그램이 제시한 명칭으로 사용자에 의해 저장되는 것으로서, 날짜와 현재시간을 갖는다.
Reload Image file 명령어나 단축버튼(46)을 누르면, 이전에 저장된 스냅샷 파일을 불러 특정 시뮬레이션 상태를 복구할 수 있다. 스냅샷 파일 선택을 위해, 프로그램은 대화창을 디스플레이하고, 이 대화창에서 원하는 스냅샷 파일을 선택하여 열 수 있다.
Restart 명령어나 단축버튼(47)을 누르면, 시뮬레이션을 재개할 수 있다. 재개한 뒤, 모든 방정식 시스템 변수들과 시뮬레이터는 "0"으로 설정되고 사이클 카운터가 리셋된다. 시뮬레이션을 다시 시작하려면, 노변장비 시뮬레이터의 정상 상태의 리셋 시퀀스를 실행해야 한다.
User Commands 명령어를 실행하면 드롭다운 메뉴가 열려 Commands Management, Variable Value Definition 기능들을 실행할 수 있다.
Command management는 단축버튼(48)으로도 부를 수 있다. 이런 툴을 통해, 시뮬레이터 구성중에 정의되는 제어변수들에 관련된 버튼을 이용해 (물리적이고 논리적인) 각 종류의 장비의 시뮬레이터 거동을 변경할 수 있다. 적절한 버튼에 접속 하기 위해, 프로그램은 도 21의 대화창을 디스플레이한다. 대화창 좌측의 리스트에는 기존의 시뮬레이터가 있다. 사용자는 마우스로 원하는 타입을 클릭해 대화창의 리스트에서 시뮬레이터를 디스플레이할 수 있다. 앞서 설명한 시뮬레이터-변수 관계에서 규정한 식별문자열의 첫번째 요소로 시뮬레이터가 확인된다. 원하는 시뮬레이터를 마우스로 클릭하고 "control" 키를 누르면 제어버튼을 부를 수 있다.
한편, 사용자의 명령어 메뉴를 이용해 Variable Value Definition 명령어를 선택할 수 있다. 또, 단축버튼(49)으로 이 명령어를 활성화할 수도 있다. 이 명령어나 툴을 이용해 시뮬레이션에 사용되는 변수를 수동으로 설정할 수 있다. 변수 선택을 위해 도 22와 같은 대화창이 뜬다.
이 대화창은 제어할 변수를 선택하는데 사용되는 대화창과 아주 비슷하다. 선택과정도 "control of variables"의 선택과정과 비슷하다. 필요한 적당한 값을 설정하는데, 대화창 우측 하단 구석에 위치한 2개의 선택옵션과 선택적 "True/false"를 사용할 수 있다.
50으로 표시된 버튼을 이용해 원격장치에 대한 원격 접속과정을 활성화할 수 있다.
도 4를 참조하면, 역사나 지역이나 설비의 레이아웃의 그래픽 대상물의 상태와 컬러를 도면의 그래픽 대상을 마우스로 클릭하여 간단히 바꿀 수 있다.
도 4에의 예를 들면, 도시된 레이아웃 좌측에 있는 흑색 원으로 표시된 신호(05d)를 이용한다. 프로그램에 의해 컬러와 상태를 정할 대화창이 뜬다.
대화창에는 해당 TGIF나 CAD 도면파일로 추출된 그래픽 대상물의 내부 라벨 을 갖는 "label" 필드가 있다. 사용자는 이것을 변경할 수 없다. 이 필드의 컨텐츠는 forms의 "0" 파라미터 성분을 해결하는데 이용된다. "Auxiliary string" 변경상자에서, forms의 파라미터 성분을 정의할 수 있다. 각각의 파라미터는 "," 문자로 구분되어야 한다. 파라미터 인덱싱은 1로 시작하고, 이것은 보조문자열(auxiliary string)에 포함된 요소이다. 이 문자열의 상세설명은 의무사항이 아니다.
또, 특정 대상물의 별명을 규정하기 위한 "alias" 변경상자를 사용할 수 있다. 별명은 명령어 윈도우에서 시뮬레이션중에 상태가 변경되는 대상물이 프로그램에 의해 리스트될 때 TGIF나 CAD 파일로부터 추출되는 라벨을 대신하는데 사용된다. 이런 변경상자에서는 어떤 문자라도 입력할 수 있다. 별명의 상세설명은 의무사항이 아니다. 프로그램에 의해, 별명이 특정되지 않으면 명령어 윈도우의 원래 라벨이 인쇄된다.
"Type" 리스트에는 미리 정의된 컬러/상태 테이블이 있다. 사용자는 이들중 하나를 선택할 수 있다. 대상물이 이미 정의된 컬러/상태 테이블을 갖고있다면, 리스트는 자동으로 현재의 "type"를 밝혀준다.
확인버튼을 마우스로 클릭하면 그래픽 대상물을 지정할 수 있다. 새로운 컬러와 상태를 정하는 것은 후속 시뮬레이션 사이클 이후에 일어난다. 특정 라벨과 보조문자열을 이용해 특정 type의 형식을 발견할 수 없으면, 프로그램은 경고메시지를 보내고 그 지정을 무시한다.
전술한 다른 기능들과 마찬가지로, 대화창은 지정을 취소할 수 있는 Cancel 버튼이나 지정을 무시할 수 있는 Cancel 등의 다른 기능버튼을 포함할 수 있다.
본 발명에 따른 장치는 불리언 시뮬레이터 툴과 설비의 최종 기능테스트에 사용되는 툴 둘다에 대해 다른 자동 테스트 배경을 실행하기 위한 기능을 가질 수도 있다. 분명한 것은, 이런 기능의 실행으로, 명령어나 옵션을 선택하거나 그래픽을 선택하거나 대상물을 제어할 수 있는 창을 열 수 있는데, 이는 다른 기능들에 대해 전술한 것과 비슷하다.
상기 윈도우로 구성된 그래픽 인터페이스의 시작으로, 역사설비의 장비의 타이핑과 지역을 선택하기 위한 리스트들이 테스트중인 역사에 관한 대응 데이타와 함께 디스플레이된다. 사용자는 각 리스트의 내부요소, 즉 영역과 장비의 형식을 선택해야 한다. 이제, 프로그램은 선택된 영역의 선택된 장비 형식의 장비리스트와, 선택된 장비 형식에 할 수 있는 자동 테스트 리스트에 관련된 값들을 디스플레이한다.
사용자는 상기 리스트로부터 한가지 이상의 요소, 즉 한가지 이상의 자동 테스트를 실행할 수 있는 한가지 이상의 장비를 선택할 수 있다. 각각의 리스트에서 각각의 선택에 대해 관련 리스트의 선택된 요소의 디스플레이가 대응한다. 지역, 장비 형식, 장비 라벨 및 테스트 라벨 각각에 대해 이루어진 올바른 선택을 통해, "Launch Test" 버튼을 눌러 테스트의 실행을 개시할 수 있다. 사용자는 대화창에서 테스트 실행을 확인하라는 질문을 받는다. 응답이 긍정적이면, 시그마 "execution test"를 확인하는 테스트 상자에 현재의 테스트 라벨과 테스트 대상인 장비의 라벨이 디스플레이되면서, 그래픽 인터페이스의 다른 리스트에는 리포트 메시지가 디스플레이된다.
자동 테스트를 시작한 뒤, "Launch Test" 버튼 라벨이 "End Test"로 변하여, 언제라도 자동 테스트를 멈출 수 있다. 테스트를 멈춘 뒤, 버튼 라벨은 다시 "Launch Test" 상태로 바뀐다. 개별적으로 명령어를 하나씩 실행할 수도 있다.
자동 테스트의 배경의 일례가 A1 내지 A4 페이지에 해당 리포트 파일로 첨부되었다. 이 테스트를 "switch points on route (on routing)"이라 한다. 테스트중에, 루트의 커버된 스위치 포인트들이 먼저 루트 자체에 의해 예상되는 위치에 대해 반대 위치에 고정된다. 이어서, 모든 스위치 포인트들이 자유로와질 때까지 루트가 차단하지 않음을 테스트 배경이 체크한다. 테스트 실행이 완벽하면 본 발명의 주제가 아니면서 단점때문에 예로 들지 않은 일련의 다른 행위들이 제공됨을 알아야 한다.
도 1에 의하면, 본 발명의 장치를 불리언 확인 또는 점검기라 불리는 다른 장치와 같이 사용할 수도 있다.
이 경우, 본 발명에 따른 장치의 컴퓨터일 수도 있는 것은 하드웨어/소프트웨어 장치인 컴퓨터나 PC이고, 제어/명령 논리프로그램의 점검을 하는 프로그램, 즉 불리언 방정식 점검기를 로딩한다. 점검 프로그램은 다양성 원리에 따른 형식의 동작을 할 수 있다. 구체적으로, 불리언 점검기는 본 발명의 장치에서 테스트 단계에 있는 명령/제어 논리프로그램과 테스트단계의 것과는 다른 수단을 생성하여 이루어진 다른 제어/명령 논리프로그램 사이를 비교하는 비교기로 구성될 수 있다. 2가지 제어/명령 논리프로그램에 관한 비교와, 2가지 프로그램에 대해 실행된 시뮬레이션 테스트의 결과에 관한 비교를 할 수 있다.
이 경우, 프로그램 시뮬레이션 작동장치, 즉 역사장비, 지역 또는 역사들은 불리언 점검기의 도움으로 비슷한 다양성 테스트를 받을 수 있다.
바람직한 점검기는 본 발명의 장치와 다르거나 같은 컴퓨터에서 실행되는 독립 프로그램으로 구성된다. 이 프로그램은 점검할 제어/명령 논리프로그램을 구성하는 불리언 방정식 시스템의 테스트를 병렬로 실행한다. 이 경우, 철도설비를 제어하고 명령하기 위한 동일한 논리프로그램은 2가지 별도 프로그램으로 전술한 바와 같이 이루어진 철도설비 시뮬레이션에 의한 이중점검 테스트에 속하고, 2가지 별도의 병렬 점검테스트에서 제어/명령 논리프로그램의 제어하에 얻어진 시뮬레이션된 설비의 거동을 비교하여, 다른 경우 에러나 경보 파일이 생성된다.
본 발명의 다른 특징에 의하면, 철도설비를 제어하고 명령하기 위한 논리프로그램을 구성하는 방정식 시스템의 불리언 방정식 각각에 대해, 디스플레이된 방정식의 일부분인 곱셈항 리스트와 디스플레이된 방정식에 해당하는 회로 둘다를 디스플레이할 수 있다. 해당 히로를 선택해 여는 것은 버튼이나 마우스에 의해 이루어질 수 있다.
본 발명의 또다른 특징에 의하면, 본 발명의 장치는 새로운 거동을 갖는 신규 장비를 생성할 수 있는 작동장치나 장비의 불리언 시뮬레이터를 설계제작하는 프로그램을 포함한다.
장비는 기본기능을 시뮬레이션하는 기본요소와, 좀더 복잡한 구조를 갖는 시뮬레이터에서 동작하는 기본요소 그룹인 복합요소로 구성될 수 있다.
기본요소는 기존의 요소의 리스트에서 선택하거나 새로 만들 수 있다. 기본 요소 생성창은 도 9의 창과 거의 비슷하다. 도 9에서 알 수 있듯이, 기본요소는 이미 생성된 요소이거나 이와 아주 비슷한 것이다. 전술한 바와 마찬가지로, 입력변수, 출력변수, 제어변수, 코멘트를 정의한 상태테이블이 생긴다. 변수값들은 진리표의 변수값과 비슷하게 선택되고, 제공된 기능들은 서로 비슷하다. (장비 시뮬레이터를 만드는 것과 아주 비슷한) 도 9의 좌측에 예시된 오토메이션은 Markov 오토메이션으로서, 상대적으로 긴 상태의 설명에 따라 계산된 간격을 이용해 수평선을 따라 그려진 원으로 상태가 표시된다. 상태의 설명은 원 우측의 변수로 표시되고, 이 상태는 로컬 변수 별명으로 구성되며, "false" 조건을 취하는 변수는 그 위에 마크가 붙어있다. 반대로, 상태 천이는 처음상태에서 최종상태로 가는 아치로 표시되고, 상태의 천이 방향은 해당 천이 아치에 화살표로 표시된다. 마우스 커서를 화살표 위에 두면 하나 이상의 입력, 제어 및 출력 변수 그룹으로 천이상태가 자동으로 디스플레이된다. 원과 아치의 색깔은 이미 정해진 선택에 따라 다른 방식으로 주어진다.
이렇게 정의된 각각의 기본요소를 조합하거나 연계하여 복합요소들을 만들 수 있는데, 인터페이싱 변수나 입출력 내부변수들ㄹ을 표시하여 복합요소들 사이를 인터페이스한다.
도 25와 같이 시뮬레이터의 블록도를 디스플레이할 수도 있다.
전술한 것과 도 1의 결과로부터 분명한 것은, 역사, 지역 또는 노변장비의 제거나 추가로 시스템이 바뀔 때 제어/명령 논리프로그램을 변경하고 업그레이드하기 위한 장치와 같은 백업장치로서는 물론 제어/명령 논리프로그램을 주기적으로 점검하도록 비상모드로 작동될 수 있는 다른 비핵심 노드처럼 설비를 제어하고 명령하기 위해 시스템이 항상 존재하는 장치로서 본 발명의 장치를 제공할 수 있다는 것이다.
본 발명에 따른 장치는, 전술한 철도설비와 구조적으로 비슷한 모든 설비에 사용할 수 있고, 역사설비, 설비 지역, 작동장치 및 노변장치 등에도 사용할 수 있음을 알 수 있다.
첨부자료 A1
첨부자료 A2
첨부자료 A3
첨부자료 A4