KR100322462B1 - 한세트의적어도3개의중복컴퓨터를가지는필드컴퓨터유니트,이필드컴퓨터유니트에연결된프로세스제어시스템및이들을제어하는방법 - Google Patents

한세트의적어도3개의중복컴퓨터를가지는필드컴퓨터유니트,이필드컴퓨터유니트에연결된프로세스제어시스템및이들을제어하는방법 Download PDF

Info

Publication number
KR100322462B1
KR100322462B1 KR1019940703353A KR19940703353A KR100322462B1 KR 100322462 B1 KR100322462 B1 KR 100322462B1 KR 1019940703353 A KR1019940703353 A KR 1019940703353A KR 19940703353 A KR19940703353 A KR 19940703353A KR 100322462 B1 KR100322462 B1 KR 100322462B1
Authority
KR
South Korea
Prior art keywords
output
circuit
signal
computer
redundant
Prior art date
Application number
KR1019940703353A
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 더 다우 케미칼 캄파니
Application granted granted Critical
Publication of KR100322462B1 publication Critical patent/KR100322462B1/ko

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • 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/0423Input/output
    • G05B19/0425Safety, monitoring
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B9/00Safety arrangements
    • G05B9/02Safety arrangements electric
    • G05B9/03Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
    • 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/10Plc systems
    • G05B2219/14Plc safety
    • G05B2219/14123Majority voting, dynamic redundant, persistency and integrity
    • 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/24Pc safety
    • G05B2219/24184Redundant I-O, software comparison of both channels
    • 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/24Pc safety
    • G05B2219/24187Redundant processors run identical programs
    • 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/24Pc safety
    • G05B2219/24189Redundant processors monitor same point, common parameters
    • 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/24Pc safety
    • G05B2219/24192Configurable redundancy
    • 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/25Pc structure of the system
    • G05B2219/25428Field device

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Hardware Redundancy (AREA)
  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

분산 3중 중복 입력/출력 필드컴퓨터 유니트(12)의 네트워크를 갖춘 프로세스 제어인터페이스 시스템(10)을 개시한다. 이 시스템은 적어도 2개의 동시 구동 통신채널(46,48)을 갖춘 양방향 통신네트워크를 통해 중복 프로세스 제어컴퓨터(14)를 만드는 결정에 연결된 다수의 원격적으로 위치한 독립 3중 중복 필드컴퓨터 유니트(12)를 포함한다. 각각의 필드컴퓨터 유니트는 입력뿐만 아니라 출력신호를 중재하기 위한 적어도 3개의 중복 필드컴퓨터(92,94,96) 한 세트를 포함한다. 필드컴퓨터 유니트는 또한 각각의 출력신호가 물리적 프로세스의 조작에 영향을 주는 디바이스(84,86)로 전송되는 개별적인 어보트 회로(510,606)를 포함한다. 이들 어보트 회로는 보우팅절차(voting procedure)를 사용하는 3개의 중복 필드컴퓨터 각각을 통해 독립적으로 중재된 출력값 신호를 효과적으로 강화할 수 있다.

Description

한 세트의 적어도 3개의 중복컴퓨터를 가지는 필드컴퓨터 유니트, 이 필드컴퓨터 유니트에 연결된 프로세스 제어시스템 및 이들을 제어하는 방법
자동화된 프로세스 제어 시스템을 설계함에 있어서 성취하기 가장 어렵고 힘든 목표중의 하나는 가능하다면 한번에 수년 동안 멈추지 않는 물리적인 프로세스를 제어해야 하는 까다로운 요구를 견딜 수 있는 정확하고 빠르면서도 상당히 신뢰성있는 제어시스템을 제공하는 것인데, 이것은 컴퓨터 시스템의 수리를 위해 복합대규모 프로세스의 가동을 중단시키는 비용이 이 프로세서를 다시 가동시키는데 걸리는 시간과 노력 및 낭비 때문에 막대해질 수도 있는 화학공장의 프로세스 제어에 대해서는 특히 그러하다.
최대의 경제적 효율과 최적의 생산품질을 얻기 위해, 보다 복잡한 프로세스자동제어에 대한 요구가 양과 정교함에 있어서 계속적으로 증가되어 왔다 화학 프로세스의 작동이 점점 더 컴퓨터 제어에 의존함에 따라, 원하는 제어작업 모두를수행하기 위해서는 다수의 컴퓨터가 공동작업할 것이 요구된다. 물론, 이렇게 되면 최대 결함허용도(fault tolerance)가 요구되는 제어시스템에 추가로 복잡성이 더해지게 된다.
프로세스 제어컴퓨터시스템의 신뢰성을 증가시키기 위해, 프로세스를 능동적으로 제어하는데 사용되는 하나 이상의 컴퓨터를 위하여 백업(backup)컴퓨터를 제공하려는 시도가 많이 있었다. 그러나, 동작중인 컴퓨터로부터 백업 컴퓨터로의 급격한 핸드오프(hand-off)는 만약 그 목표가 물리적인 프로세스의 동작에 영향을 주는 장치로 단절없는 또는 확실한 전달을 제공하기 위한 것이라면 성취하기가 곤란하다. 게다가, 제어의 전달이 이루어져야 하는 조건은 복잡하며 그리고 정상적으로 동작하는 동안에 요구되는 프로세서 시간을 소비할 수도 있다.
이 문제에 대한 다른 접근은 능동적으로 동작하는 3개의 컴퓨터를 이용하여 3중의 중복도(redundancy)를 제공하는 것이다. 3개의 컴퓨터 프로세서를 구비하게 되면 확실히 제어시스템의 전체 비용이 증가되지만, 의사결정을 위한 "과반수 투표(majority voting)"를 사용할 수 있다. 과반수 투표의 장점은 상기 컴퓨터중 하나의 고장을 견뎌내는 능력을 컴퓨터 시스템에 부여할 뿐만 아니라, 이루어지는 의사결정이 정확하다는 것을 보장하는데 도움을 준다. 즉, 어느 특별한 의사결정에 있어 3개의 컴퓨터중 2개가 일치하면 이 의사결정이 결국은 올바른 가능성이 커지게 된다.
그렇지만, 3중 중복 제어가 바람직하다고 생각될 때조차, 확실히 효율적인 3중 중복 제어시스템을 얻기 위해서는 3중 중복 제어시스템의 다른 영역들 내에서의내부결함의 취급을 포함하여 처음부터 무수한 설계상의 문제에 직면하게 된다. 3개 이상의 컴퓨터 사이의 상호관계를 적절히 중재하기 위하여 많은 시도가 있었지만, 이 분야의 진보를 위해 고려해야 할 여지가 여전히 남아 있으며, 그러한 여지는 특히 대규모 화학 프로세스 제어분야와 관련되어 있다.
발명요약
따라서, 정확도와 제어되는 물리적 프로세스에 영향을 줄 수 있는 프로세스 제어 시스템에 있어서의 결점에 전체 시스템의 허용한계(tolerance) 양쪽을 최대화하기 위해 중복 제어컴퓨터와 연결되는 3중 중복 필드컴퓨터 유니트의 분포된 네트워크를 제공하는 것이 본 발명의 중요한 목적이다.
연속적으로 제어되는 프로세스에 영향을 주는 일 없이 이들 유니트의 각각에 갱신된 소프트웨어의 동시통신 다운로딩(broadcast downloading)을 할 수 있는 3중 중복 필드컴퓨터 유니트의 분포된 네트워크를 제공하는 것이 본 발명의 또다른 목적이다.
제어되는 프로세스에 영향을 주거나 1개 또는 다른 잔류 컴퓨터에 강제되는 제어를 요구하는 일 없이 대체되는 유니트에 포함된 컴퓨터중의 하나에 회로 보드를 허가하는 3중 중복 필드컴퓨터 유니트를 제공하는 것이 본 발명의 그 이상의 목적이다.
필드입력과 얻어지는 출력의 유일한 중재 프로세스를 가능하게 하는 3중 중복 필드 제어유니트를 제공하는 것이 본 발명의 추가적인 목적이다.
잠재적으로 잘못된 출력신호를 자동적으로 저지할 수 있는 3중 중복 필드컴퓨터 유니트를 제공하는 것 또한 본 발명의 목적이다.
일시적인 리세트, 그리고 만약 필요하다면 보다 영속적으로 상기 남아있는 컴퓨터를 리세트할 수 있도록 유니트에 어느 2개의 컴퓨터가 포함될 수 있는 3중 중복 필드컴퓨터 유니트를 제공하는 것이 본 발명의 다른 목적이다.
원 센서 정보(raw sensor information)를 해석하기 위한 하나 이상의 "스마트" 다기능 입력회로와 원하는 출력값이 얻어지는 수단을 독립적으로 결정하기 위한 하나 또는 그 이상의 "스마트" 출력회로를 포함하는 3중 중복 필드컴퓨터 유니트를 제공하는 것이 본 발명의 추가적인 목적이다.
연속적으로 제어되는 프로세스에 대해 비강제적인 디지털 및 아날로그 출력회로 양쪽을 테스트하는 방법을 제공하는 것 또한 본 발명의 목적이다.
고전류 출력 전원 공급회로와 부하 상태하에서 주기적으로 테스트될 수 있는 예비 배터리를 포함하는 3중 중복 필드컴퓨터 유니트를 제공하는 것이 본 발명의 다른 목적이다.
상기한 목적을 달성하기 위해, 본 발명은 적어도 동시에 2개의 능동 통신 채널을 갖추고 있는 쌍방향 통신네트워크를 통해 중복 프로세스 제어컴퓨터를 만드는 결정에 관련되는 원격적으로 위치하고 있는 완비된 다수의 3중 중복 필드컴퓨터 유니트를 제공한다. 각각의 필드컴퓨터 유니트는 원래의 아날로그와 디지털 입력신호를 소정의 시간에 중재된 입력치 신호로 변환시키기 위해 적어도 3개의 중복 필드 컴퓨터 세트를 포함한다. 중복 필드 컴퓨터에 의해 제공된 입력 중재방법은 대다수의 일치(majority agreement)가 유효한 입력신호간에 도달할 수 없는 결과로서 선택된 "HIGH" 와 선택된 "LOW"와 같이 각각의 입력신호를 위한 다수의 선택할 수 있는 기본 입력상태(default input condition)를 가능하게 한다.
상기 중재된 입력치 신호를 포함하는 메시지는 다단계 광섬유 네트워크를 지나 각각의 필드컴퓨터 유니트로부터 중복 프로세스 제어컴퓨터로 전송된다. 광섬유 네트워크는 실질적인 통신 테스트를 허용하도록 설계되고, 통신 실패의 결과로서 반전되는 최초 레벨의 신호 분포상에 신호 전달을 지시할 수 있도록 한다. 일단 적절한 프로세스 제어결정이 만들어지면, 상기 필드컴퓨터 유니트는 광섬유 네트워크를 통해 중복 프로세스 제어컴퓨터로부터 출력치 신호를 수신한다.
또한 필드컴퓨터 유니트는 물리적 프로세스 조작에 영향을 주는 장치에 전송되는 각각의 출력신호를 위해 개별적인 어보트 회로(abort circuit) 한 세트를 포함한다. 이 어보트 회로는 3개의 중복 필드 컴퓨터 각각을 통해 독립적으로 중재된 출력치 신호를 효과적으로 실시할 수 있다. 소프트웨어 중재 프로세스는 페일 세이프(fail SAFE) 및 페일 라스트(fail LAST) 같은 다수의 선택할 수 있는 기본 조건을 포함하는 계단식으로 된 보우팅 절차(voting procedure)의 사용을 포함한다. 각각의 기본 입력 및 출력 조건은 중복 프로세스 제어컴퓨터에서와 같이 소프트웨어의 구현을 통해 결정된다. 본 발명에 따른 소프트웨어의 구현과 더불어, 각각의 기본 입력과 출력 조건은 변화하는 프로세스 조건에 따라 급속하게 변화할 수 있다.
본 발명의 추가적인 측면과 이익은 바람직한 실시예와 첨부된 도면으로써 보다 분명해 질 것이다.
본 발명은 일반적으로 프로세스 제어컴퓨터와 원격 필드장비 사이의 인터페이스에 관한 것이다. 더 상세하게는, 본 발명은 중복 광섬유 경로를 통해 중복 프로세스 제어컴퓨터와 통신하는 3중 중복 원격 필드유니트의 분산 네트워크를 구비하는 프로세스 제어 인터페이스 시스템에 관한 것이다.
제1도는 본 발명에 따른 프로세스 제어 인터페이스 시스템의 개략도,
제2도는 네트워크의 다기능 브레이크아웃(breakout circuit) 회로를 특별히 나타내는 제1도에 나타낸 광섬유 통신네트워크 부분의 개략적인 설명도,
제3도는 제1도에 나타낸 프로세스 제어 인터페이스 시스템의 블록도,
제4도는 제1도의 프로세스 제어 인터페이스 시스템에 있어서 데이터 통신의 흐름을 나타내는 블록도,
제5도는 제1도에 나타낸 3중 중복 필드컴퓨터 유니트를 위한 프로세서 샤시(chassis)의 투시도,
제6도(A) 내지 제6도(U)는 제5도에 나타낸 3중 중복 필드 컴퓨터중의 하나를 위한 도면,
제7도(A) 내지 제7도(C)는 본 발명에 따른 스마트 직렬 입력회로를 위한 도면,
제7도(D) 내지 제7도(M)은 제7도(A)내지 제7도(C)의 스마트 직렬 입력회로의 동작과 관련이 있는 일련의 흐름도를 나타낸 도면,
제8도(A) 내지 제8도(E)는 본 발명에 따른 복합모드(multiple-mode) 펄스 입력회로를 위한 도면,
제8도(F) 내지 제8도(Q)는 제8도(A) 내지 제8도(E)의 복합모드 펄스 입력회로의 동작과 관련이 있는 일련의 흐름도를 나타낸 도면,
제9도(A) 내지 제9도(D)는 본 발명에 따른 저항 측정회로를 위한 도면,
제10도(A)는 디지털 출력신호를 위한 어보트 회로를 부분적으로 나타낸 3중중복 필드컴퓨터의 부분 블록도이며, 제10도(B)는 아날로그 출력신호를 위한 어보트 회로를 부분적으로 나타내는 유사한 블록도,
제11도(A) 내지 제11도(C)는 비강제적인 테스트를 할 수 있는 디지털 출력회로를 위한 도면,
제12도(A) 내지 제12도(F)는 본 발명에 따른 스마트 아날로그 출력회로를 위한 도면,
제13도(A) 내지 제13도(D)는 본 발명에 따른 네트워크 제어회로를 위한 도면,
제24도(A) 내지 제24도(G), 제25도(A) 내지 제25도(Z), 제26도(A) 내지 제26도(Z), 제27도(A) 내지 제27도(M)은 본 발명에 따른 소프트웨어를 다운로딩하는 방법을 설명하는 한 세트의 흐름도를 나타낸 도면이다.
제1도에 분산 3중 중복 입력/출력 필드컴퓨터 유니트(12)의 네트워크를 갖춘 프로세스 제어 인터페이스 시스템(10)을 나타냈다. 제1도는 예시를 목적으로 2개의 필드컴퓨터 유니트(12)만을 포함하는데, 인터페이스 시스템(10)은 상당한 개수의 필드컴퓨터 유니트를 취급할 수 있는 능력을 갖추고 있음을 인식해야 한다. 예컨대, 본 발명에 따른 일실시예에 있어서, 인터페이스 시스템(10)은 최대 64개의 필드컴퓨터 유니트(12)를 사용할 수 있다.
필드컴퓨터 유니트(12)는 필드장비와 중앙 프로세스 제어컴퓨터 시스템간의 기본 인터페이스 역할을 한다. 본 실시예에 있어서, 중앙 프로세스 제어컴퓨터 시스템은 일반적으로 한쌍의 중복 프로세스 제어컴퓨터(14)를 구비한다. 동시에 동작하는 2개의 프로세스 제어컴퓨터의 중복도는 하나의 의사결정을 하는 프로세스 제어컴퓨터보다 확실한 결함허용도를 가지는 반면에, 본 발명의 원리는 어느 특별한 프로세스 제어컴퓨터 설계 또는 구성에 한정되지는 않는다는 것을 이해해야 한다. 따라서, 예컨대 적절한 상황에서는 제1도에 나타낸 2개의 프로세스 제어컴퓨터(14) 대신에 하나 또는 심지어 3개의 프로세스 제어컴퓨터를 채용하는 것이 바람직할 수 있다.
본 실시예에 있어서, 중복 프로세스 제어컴퓨터(14)는 필드컴퓨터 유니트(12)에서 전송된 신호 모두에 대하여 동시에 동작하는 것이 바람직하다. 즉, 각각의 프로세스 제어컴퓨터(14)는 필드컴퓨터 유니트(12)로부터 이들 중복 컴퓨터에 의해 수신된 데이터에 의거한 독립결정(independent decision)을 만들 수 있다. 프로세스 제어컴퓨터(14)에 의해 만들어진 결정은 최종적으로는 적절한 필드컴퓨터 유니트(12)에 의해 특정 출력장치(예컨대 밸브, 펌프모터 및 반응기 히터)로 향하게 되는 출력신호값을 결정한다. 출력신호값은 적당한 필드컴퓨터 유니트(12)로 전송되기 전에 2개의 프로세스 제어컴퓨터(14) 사이에서 적어도 어느 정도 중재되는 것이 바람직한 반면에, 출력신호값들중의 2개의 독립세트는 필드컴퓨터 유니트와 통신할 수 있어야 한다는 점을 이해해야 한다. 이러한 점에서, 필드컴퓨터 유니트(12)로부터 수신된 입력값은 프로세스 제어컴퓨터에서 중재될 수 있는데, 이렇게 하면 출력값을 중재하거나 중재시킬 필요가 없게 된다. 이것은 프로세스 제어컴퓨터들 모두가 동일한 세트의 중재된 입력값으로부터 동작될 수 있기 때문이다.
가능한 값중재의 바람직한 형태의 한예로서, 각각의 프로세스 제어컴퓨터(14)에 있어서의 대응하는 출력값 테이블은 소정의 주기동안 비교될 수 있고, 이들 값중의 하나는 각각의 출력값 신호가 필드컴퓨터 유니트(12)로 전송되도록 선택될 수 있다. 오른쪽 프로세스 제어컴퓨터(l4b)에 의해 결정된 값이 소정의 비율 범위(예컨대 2.5%)내에 있을 때 왼쪽 프로세스 제어컴퓨터(l4a)에 의해 결정된 값을 사용하는 것과 같이, 출력 제어값의 선택은 제어되고 있는 프로세스에 대해 적당한 기준을 가지고 만들어질 수 있다. 만약 그렇지 않으면, 왼쪽 및 오른쪽 프로세스 제어컴퓨터(14)의 개별적인 출력제어값은 이들 값이 소정의 비율범위 밖에서 발견될 때 적당한 필드컴퓨터 유니트(12)로 각각 보내질 수 있다. 대안으로, 왼쪽 및 오른쪽 프로세스 제어컴퓨터로부터 출력되는 상이한 출력 제어값들의 선택은 소프트웨어로 구현되는 우선권을 기초로 이루어질 수 있다. 따라서, 어떤 프로세스 조건하에서는, 왼쪽 또는 오른쪽 프로세스 제어컴퓨터에 의해 그 값이 결정되었는지에 관계없이 필드컴퓨터 유니트(12)로 전송하기 위한 하이 또는 로우값을 선택하는 것이 보다 바람직할 수 있다.
각각의 프로세스 제어컴퓨터(14)는 네트워크 제어기(16)와, 네트워크 제어기를 위한 디버그 패널(18) 및 다양한 광섬유관(24)이 연결되는 광섬유탑재보드(22)를 지지하는 트레이(tray)를 포함한다. 제l3a도 내지 제l3d도를 참조하면서 상세히 설명될 바와 같이, 네트워크 제어기(16)는 상기 광섬유관(24)을 통해 프로세스 제어컴퓨터(14)로부터 및 프로세스 제어컴퓨터(14)로 통신교통(communication traffic)을 지시하기 위해 사용된다. 디버그패널(18)은 네트워크 제어기(16)의 특정 조작용 윈도우를 제공하기 위해 산술/기능키 한 세트와 디스플레이를 포함한다.
제l5a도 내지 제l5b도를 참조하면서 보다 상세히 살명되는 바와 같이, 각각의 광섬유탑재 보드(22)는 광신호를 전기적신호로 변환하는데 필요한 수신회로 뿐만 아니라 전기적신호를 광신호로 변환하는데 요구되는 전송회로를 포함한다. 광섬유관의 경우, 이들 종래의 광전도체는 유리 또는 프라스틱으로 만들어질 수 있다. 그러나, 유리섬유의 사용이 보다 큰 전송거리를 얻을 수 있다는 점을 인식해야 한다. 광섬유관이 필드컴퓨터 유니트(12)와 그들의 고속의 처리량과 실질적인 안정성을 위한 프로세스 컴퓨터(14)간에 메시지를 전달하기 위해 채택되는 것이 바람직한데, 다른 적절한 통신 매체가 다른 적절한 장치에서 사용될 수 있음을 이해해야 한다.
제1도에 나타낸 바와 같이 각각의 필드컴퓨터 유니트(12)와 각각의 프로세스 제어컴퓨터(14)를 연결하는 광섬유 네트워크는 중복 프로세스 제어컴퓨터 각각을 위한 브레이크 아웃회로(26) 한 세트를 포함한다. 제l4a도 내지 제l4b도와 관련해서 보다 충분히 설명되는 바와 같이, 각각의 브레이크아웃회로는 다수의 필드컴퓨터 유니트(12)와 중복 프로세스 제어컴퓨터(14)중 하나와의 다중 직렬통신을 용이하게 할 수 있도록 설계되어 있다.
따라서, 예컨대 브레이크아웃회로(26a)는 왼쪽 프로세스 제어컴퓨터(l4a)와 최고 10개의 필드컴퓨터 유니트(12)간의 다중 직렬통신을 제공할 수 있도록 구성되어 있다. 브레이크아웃회로(26a)는 왼쪽 프로세스 제어컴퓨터(l4a)와 몇몇 필드컴퓨터 유니트(12) 그룹간의 다중 직렬통신을 제공하도록 구성되는브레이크아웃회로(26b)에 광섬유관(28)을 통해 연결된다. 이러한 점에서, 브레이크아웃회로(26a)는 브레이크아웃회로(26b)로의 필드컴퓨터 유니트(12)의 한 그룹을 대표한다.
브레이크아웃회로(26b)가 메인포트(30)와 반복포트(32;repeat port)를 통해 왼쪽 프로세스 제어컴퓨터(l4a)에 연결되는 점에 주의해야 한다. 특히, 광섬유관(34)은 브레이크아웃회로(26b)의 메인포트(30)와 왼쪽 프로세스 제어컴퓨터(l4a)간의 접속을 제공하며, 반면에 광섬유관(36)은 브레이크아웃회로의 반복포트(32)와 왼쪽 프로세스 제어컴퓨터간의 접속을 제공한다. 이에 의해 상기 광섬유관(34-36)은 왼쪽 프로세스 제어컴퓨터(l4a)와 브레이크아웃회로(26b) 주변에 링을 형성한다. 아래에 보다 상세히 설명되는 바와 같이, 브레이크아웃회로는 다기능으로 설계되는데, 즉 상기 회로는 다중통신뿐만 아니라 반복포트(32)로부터 메인포트(30)에서 수신되는 메시지를 이동시킬 수 있는 능력을 갖추고 있다. 메시지를 중계(repeat)할 수 있는 상기 능력은 또한 네트워크가 보다 먼거리로 확장될 수 있도록하며, 제4도에 이와 관련해서 상술한다.
게다가 네트워크제어기(16)는 메시지가 프로세스 제어컴퓨터(l4a)로부터 브레이크아웃회로(26b)의 반복포트(32)로 전송되는 것을 지시하는 능력 역시 갖추고 있다. 이 중요한 특징은 통신이 광섬유관(34)을 통해 진행될 수 없는 경우에 있어서는 심각한 인터럽션없이 통신을 계속 할 수 있도록 해주고 있다. 즉, 프로세스 제어컴퓨터(l4b)와 브레이크아웃회로(26b)간의 링에 있어서 신호 통신방향은 통신실패의 경우에는 반전될 수도 있다.
또한, 오른쪽 프로세스 제어컴퓨터(l4b)와 각각의 필드컴퓨터 유니트(12) 간의 대체로 동일한 통신네트워크는 브레이크아웃회로(26C - 26d) 및 이들과 피결합되는 광섬유관에 의해 제공된다는 것을 제1도를 통해 인식해야 한다. 따라서, 신호분포의 주(제1)레벨에서 신호흐름의 방향을 변화시킬 수 있는 능력이 각각의 네트워크 제어기(16)를 통해 왼쪽 및 오른쪽 프로세스 제어컴퓨터에 접속된 네트워크 통신링(communication rings)을 위해 제공되고 있음을 인식해야 한다.
본 발명에 따르면, 이들 각각의 네트워크 통신링의 무결성은 임의의 신호가 필드컴퓨터 유니트(12)로 전송되기 전에 테스트된다. 실제로, 본 발명의 경우 전체 네트워크의 무결성이 신호 통신프로세스의 예비부분으로서 주기적으로 테스트되도록 할 수 있다. 따라서, 예컨대 전체적인 프로세스 및 1초의 통신 사이클을 이용하여 적어도 주네트워크 통신링의 무결성이 매초 테스트되는 것이 바람직한데, 이러한 무결성 검사는 낭비적이거나 또는 불완전한 통신을 하는 수고를 피하는 데 도움을 줄 것이다.
특히, 제1도를 참조하면, 동기펄스(예컨대 1바이트 메시지)는 네트워크 제어기(16)로부터 광섬유관(34)과 브레이크아웃회로(26b) 및 광섬유관(36)에 의해 형성된 링주변으로 전송된다. 이 동기펄스의 목적은 신호가 성공적으로 반시계방향으로 전송되었는지의 여부를 왼쪽 프로세스 제어컴퓨터가 결정하도록 하는데 있다. 이러한 점에서, 소정 시간 이내(예컨대 300 마이크로 초의 타임아웃)에서 광섬유관(36)을 통해 브레이크아웃회로(26b)의 반복포트(32)로부터 동기펄스를 수신하면 네트워크의 부분상에 적절한 신호의 전송을 방해하는 회로결함 또는 통신경로 상의 어떤브레이크도 없음을 나타내게 될 것이다. 유사한 동기펄스가 다음에 반대방향으로, 즉 광섬유관(36), 브레이크아웃회로(26b) 및 광섬유관(34)에 의해 형성된 링 주변으로 네트워크 제어기(16)로부터 전송되어 신호가 성공적으로 시계방향으로 전송되는지의 여부를 결정할 것이다.
제2도를 참조하면, 다수의 브레이크아웃회로(26)가 네트워크를 위한 신호분포의 준레벨을 제공하기 위해 직렬로 연결될 수 있다. 이러한 점에서, 도시된 링주변의 제1동기펄스의 성공적인 유통은 각각의 브레이크아웃회로(26e-26k)가 이 펄스를 수신 및 반복할 수 있었다는 것을 입증할 것이다. 보다 상세히는, 각각의 브레이크아웃회로(26)는 네트워크 제어기(16)에 대해 그 자신을 확인하는 신호를 전송함으로써 동기펄스에 반응하는 것이 바람직하다. 그러나, 예컨대 브레이크아웃회로(26k)가 네트워크 제어기(16)에 대해 상기 동기펄스를 반복하지 않았다면, 반대방향으로의 동기펄스의 연속적인 전송은 어디서 신호 인터럽션이 발생했는지를 입증할 수 있도록 도움을 줄 뿐만 아니라 프로세스 제어컴퓨터(14)와 그 네트워크제어기(16)가 신호분포의 주레벨상에서 각각의 브레이크아웃회로(26)로부터 신호를 수신하거나 또는 브레이크아웃회로(26)로 신호를 전송하는데 필요한 경로를 결정하도록 할 수 있다. 상기 무결성 테스트 프로세스의 결과로서, 네트워크 제어기(16)는 각각의 필드컴퓨터 유니트(12)로부터 신호를 전송하거나 수신하는 데 필요한 경로정보를 랜덤액세스메모리("RAM'"에 저장한다. 즉, 필드컴퓨터 유니트(12)의 일부로 향하는 신호는 광섬유관(34)을 통해 전송될 수 있는 반면에, 다른 필드컴퓨터 유니트(12)로 향하는 신호는 동일한 전체 타이밍 사이클(예컨대 1초)구간에서 광섬유관(36)을 통해 전송될 수 있다.
제2도는 또한 브레이크아웃회로(26)가 브레이크아웃회로(26e-26f, 26h-26j)와 같은 신호 중계기(repeater)로서 기능하도록 할 수 있음을 나타낸다. 따라서, 필드컴퓨터 유니트(12)가 프로세스 제어컴퓨터로부터 상당한 거리(예컨대 1.6킬로미터)만큼 떨어져 위치하고 있는 경우, 하나 이상의 브레이크아웃회로(26)가 이 원격 필드컴퓨터 유니트에서 정확한 신호수신을 허용하기 위해 필요한 신호 재전송을 제공하는데 사용될 수 있다.
다시 제1도를 참조하면, 각각의 필드컴퓨터 유니트(12)는 프로세서 샤시(38), DC샤시(40) 및 확장된 DC샤시(42)를 포함한다. 프로세서 샤시(38)는 필드 I/O제어기로도 불리는 3개의 중복컴퓨터회로와 이와 피결합되는 아날로그입력("AI"), 아날로그출력("AO") 및 디지털출력("DO") 프로세싱회로를 포함한다. 본 발명의 한 태양에 있어서, 디지털 입력("DI")회로는 필드 I/O 제어기 회로 보드상에 포함될 수 있다. 제1도에 나타낸 바와 같이 프로세서 샤시는 기술자가 회로의 선택적인 내부동작을 볼 수 있도록 필드컴퓨터 유니트(12) 내에 각각의 중복 컴퓨터회로를 위한 디버그 패널(44)을 구비한다. DC샤시(40)는 일반적으로 3개의 기능을 제공한다. DC샤시(40)의 주기능은 DC 필드장비를 위한 접속포인트를 제공하는 것이다. 또한, 상기 DC샤시(40)는 통신 네트워크의 광섬유관(46,48)을 단자결합시키기 위해 사용되는 광섬유탑재보드를 위한 탑재장소를 제공한다. 또한 DC샤시는 수동소자 보드를 위한 탑재장소를 제공하는데, 이 수동소자 보드는 필드에서 직면할 수 있는 고에너지 충격(surge)(예컨대 번개)으로부터 필드컴퓨터유니트(12)의 회로소자를 보호하기 위해 사용된다, 수동소자 보드는 각각의 아날로그 및 디지털 입력신호를 위한 수동소자회로를 포함한다. 이들 수동소자회로는 종래의 회로보호 구성으로 된 양의 온도계수(PTC) 저항기와 제너 다이오드를 포함한다. 확장된 DC샤시(42)는 DI 회로와 AI 회로들 전부가 DC샤시(40)에 의해 수용되지 않는 경우에 추가적인 DI 회로와 AI회로들 및 수동소자회로를 위한 탑재장소를 제공한다.
제1도는 또한 프로세서 샤시(38)에 있어서 각각의 중복 컴퓨터회로가 개별적인 전원공급장치(50)에 연결되어 있는 것을 나타낸다. 전원공급장치(50)를 위한 회로는 제l6a도 - 제l6g도를 참조하면서 설명될 것이다. 각 전원공급장치(50)는 자체로 백업베터리(52)를 구비하는 것이 바람직하다. 상기 배터리(52)는 전원공급장치를 위해 정상적으로 공급되는 교류원이 일시적으로 사용불능이 되는 경우에 필드컴퓨터 유니트(12)의 작동이 중단되지 않도록 해준다. 따라서, 전원공급장치(50)중 어느 하나가 고장나거나 또는 필드컴퓨터 유니트(12)로의 교류전원의 공급이 중단되더라도 필드컴퓨터 유니트(12)에 의해 제어되는 물리적 프로세스에 영향을 주지않게 된다. 다르게는, 종래의 언인터럽터블 전원공급장치가 전력의 잠재적 손실을 피하기 위한 옵션으로서 사용될 수 있다.
제3도에, 분산 인터페이스 시스템(10)의 블록도를 나타냈다. 제3도는 반대방향을 가리키는 화살표(54)를 사용하여 신호통신 흐름의 쌍방향 성질을 나타내고 있다. 또한, 제3도는 각각의 브레이크아웃회로(26)가 디버그 패널(56)을 구비하고 있는 것을 보여준다. 여기서 설명되는 각 디버그 패널, 즉 디버그패널(18, 44, 56)은이들 디버그 패널이 부착되는 다양한 회로의 수리 또는 유지보수동안 필드 기술자들을 돕기 위해 제공된다. 그리고, 제3도는 필드컴퓨터 유니트(12)에 접속된 DI, DO, AI, AO를 위한 일반적인 디바이스를 나타낸다. 그러나, 이하의 설명으로부터 알 수 있는 바와 같이 각각의 필드컴퓨터 유니트(12)는 실질적으로 얼마간의 필드 장비의 입력 및 출력을 취급할 수 있다.
제4도는 인터페이스 시스템(10)을 위한 데이터/명령/프로그램 신호통신의 흐름을 나타내는 블록도이다. 여기에서, 3개의 원(58-62)은 필드컴퓨터 유니트(12)로 입력되는 예시적인 신호입력을 나타내기 위해 사용된다. 따라서, 예시적인 AI신호(58)는 4-2OmA 전류신호 입력으로 구성될 수 있고, 예시적인 Dl 신호(60)는 스위치의 폐쇄 또는 비폐쇄를 나타내는 신호로 구성될 수 있다. 이들 신호가 필드컴퓨터 유니트(12)에 의해 수신될 때, 상기 신호는 "원데이터(raw data)"라 부르는데(블록 64), 모든 원데이터 신호는 필드컴퓨터 유니트(12) 내의 각 중복 컴퓨터회로에 의해 판독됨을 이해해야 한다. 필드컴퓨터 유니트(12) 내의 각 중복 컴퓨터회로는 자체로 대응하는 입력센서 세트를 구비할 수 있지만, 각각의 중복 컴퓨터회로는 동일한 입력신호를 수신하는 것이 바람직하다. 특별한 프로세스 조건을 검출하기 위해 2개 또는 그 이상의 센서를 제공하는 것이 바람직한 경우, 각각의 중복 컴퓨터회로는 상기 각각의 대응하는 센서로부터 입력신호를 수신하는 것이 여전히 바람직하다. 이러한 경우에 있어서, 중복 컴퓨터회로는 개별적인 입력신호로서 이들 대응하는 신호 각각을 처리한다. 즉, 3개의 유량계가 유체흐름내의 동일 위치에서 유체의 유동속도를 측정하기 위해 사용되었다면, 3개의 중복 컴퓨터회로 각각은 상기 3개의 입력신호 각각을 처리하고 이웃하는 것끼리의 통신을 통해 서로 3개의 입력신호를 공유한다. 이런 방법으로 중복 컴퓨터회로의 풀파워(full power)는 최종적으로 만들어지는 정확한 결정을 위한 최고의 기회를 가능하게 하기 위해 사용된다. 또한 블록(64)은 원데이터 신호가 DOT와 AOT값을 포함하고 있음을 나타낸다는 점에 주목해야 한다. 이들 값은 만약 필드 장비로 보내진 출력값이 프로세스 제어컴퓨터(l4a-l4b)로부터 수신된 명령어 값에 따른 것인지를 필드컴퓨터 유니트(12)의 적절한 회로와 소프트웨어가 판단하도록 하기 위해 사용되는 피드백 또는 트랙신호이다. 이들 피드백 또는 트랙신호는 출력이 바람직한 상태에 있다는 보증으로서 사용이 가능하도록 프로세스 제어컴퓨터(l4a-l4b)로 역시 전송된다.
일단 원데이터 신호가 수신되면, 각각의 중복 컴퓨터회로는 상기 데이터가 유효한지의 여부를 독립적으로 결정한다(block 66). 이 초기 유효성검사는 만약 입력보드가 적절히 끼워지지 않았거나 또는 동작하지 않는 경우 발생할 수 있는 부정확한 입력 데이터의 전송을 방지하는 데 도움을 준다. 각각의 중복 컴퓨터회로는 또한 상기 회로가 필드로부터 판독해온 데이터를 교환한다. 아날로그 입력신호의 경우에 있어서, 각각의 중복 컴퓨터회로는 신호가 조건에 맞는 레벨의 비교적 좁은 범위와 그리고 비교적 넓은 범위 내에 있는지를 결정하기 위한 소정의 허용한계값에 대하여 채널기초(channel basis)에 의해 채널 상에서 그 입력 데이터신호와 그 네이버(neighbor)로부터의 입력 데이터신호간의 차를 비교한다.
각각의 입력을 위한 유효신호는 중복 컴퓨터회로(블록 68)에 의해 독립적으로 중재되며, 제l7a도 - 제l7e도와 제l8a도 - 제l8n도의 흐름도를 참조하면서 상세히 설명될 것이다. 일단 유효 데이터신호가 소프트웨어에서 중재되면, 중복 컴퓨터회로는 광섬유관(46-48)을 통해 프로세스 제어컴퓨터(l4a-l4b)로 전송될 특정 입력값을 효과적으로 선택한다(블록 70). 이와 관련하여 3개의 중복 컴퓨터회로가 필드 컴퓨터 유니트(12)에 포함되어 있는 반면에, 오직 2 세트의 광섬유관(46-48)만이 신호를 전달하기 위해 본 실시예에서 채택되고 있음을 이해해야 한다. 따라서, 중재된 데이터신호는 3개의 중복 컴퓨터회로중 2개로부터 브레이크아웃회로(26; 블록 72-74)와 네트워크 제어기(16; 블록 76)를 통해 프로세스 제어컴퓨터(l4a-l4b)로 부수적으로 전송됨을 인식해야 한다.
일단 프로세스 제어컴퓨터(l4a-l4b)가 그들의 프로세스 제어결정을 만들면, (독립 또는 중재된) 출력값 신호가 왼쪽과 오른쪽 네트워크 링 양쪽을 통해 적절한 필드컴퓨터 유니트(12)로 부수적으로 전송된다. 본 발명에 따르면, 출력값 신호가 왼쪽과 오른쪽 네트워크 가지 양쪽을 통해 적절한 필드컴퓨터 유니트(12)로 동시에 전송될 필요는 없다. 특히, 왼쪽과 오른쪽 프로세스 제어컴퓨터(l4a-l4b)를 위한 네트워크 제어기(16)가 그들 자신의 클록하에서 동작한다는 점에 주의해야 하며, 심지어 이들 클록의 타이밍이 그들 각각의 프로세스 제어컴퓨터에서의 클록신호에 대해 초당 한번씩 소프트웨어로 중재되는 것이 바람직하다. 유사한 방법으로 프로세스 제어컴퓨터중의 하나(예컨대 컴퓨터 l4b)는 다른 프로세스 제어컴퓨터(예컨대 컴퓨터 l4a)의 클록신호에 대해 자신의 클록신호를 중재하는 것이 바람직하다. 마찬가지로, 필드컴퓨터 유니트(12)에 있어서 각각의 중복 컴퓨터회로를 위한 클록은 각각의 프로세스 제어사이클을 사용하여 그것들의 클록중의 하나(예컨대 왼쪽 컴퓨터회로)에 그 자신들을 중재하는 것이 바람직하다. 따라서, 각각의 프로세스 제어컴퓨터(l4a-l4b)의 클록과 네트워크 제어기(16) 및 필드컴퓨터 유니트는 요구되는 허용한계(예컨대 4밀리초) 이내로 클록신호를 유지하기 위해 주기적으로 중재될 수 있음을 인식해야 한다.
하여간에 출력값 신호가 필드컴퓨터 유니트(12)에서 수신될 때, 상기 출력값 신호는 각각의 중복컴퓨터회로에 전달되는데, 이 신호는 블록 78에서는 비중재 데이터(Unarbitrated Data)로 불린다. 다음에, 본 발명에 따르면, 각 중복컴퓨터회로는 소프트웨어로 이들 출력값 신호를 독립적으로 중재한다(블록 80). 결국, 각각의 중복컴퓨터 회로는 제1Oa도와 제1Ob도를 참조하면서 다음에 설명되는 한 세트의 어보트 회로(abort circuit)를 통해 필드 DO디바이스(84)와 필드 AO디바이스(86)로 각각의 중재된 출력값 신호를 전송한다(블록82). 그러나, 이러한 접속에서 어보트 회로가 각각의 중복 컴퓨터회로에 의해 소프트웨어 중재를 매개로 만들어진 결정을 강화시킨다는 점을 주목해야 한다.
제5도는 프로세서 샤시(40)의 사시도이다. 프로세서 샤시(40)는 일반적으로 금속하우징(88)과 마더보드(90)를 포함한다. 마더보드(90)는 하우징(88)의 뒤벽에 대해 수직으로 지지되고 있는바, 백플레인보드(backplane board;90)라고도 불린다. 이 백플레인 보드(90)는 백플레인보드에 탑재되는 다양한 회로보드를 서로 연결시키기 위해 필수적인 커넥터(connector)와 도선들을 포함한다. 제5도는 개별적인 회로보드가 필드컴퓨터 유니트(12)에 포함된 3개의 중복컴퓨터회로(92-96) 각각을 위해 제공되고 있음을 나타낸다. 이렇게 하여, 이들 개별적인 컴퓨터회로 보드(92-96)는 빠르게 제거되어 남아있는 컴퓨터 회로보드의 동작에 영향을 주는 일 없이 교체될 수 있다. 실제로 이들 컴퓨터 회로보드(92-96)중의 하나는 수리 또는 교체를 위해 프로세서 샤시(40)로부터 간단히 뽑아 낼 수 있다. 그러나, 상기 컴퓨터 회로보드가 제거되거나 또는 프로세서 샤시(40)내에 재장착되는 동안 상기 컴퓨터 회로보드를 위한 전력공급이 일시적으로 중단되는 것이 바람직하다. 그럼에도 불구하고, 물리적 프로세스가 서비스되고 있는 필드컴퓨터 유니트로부터의 출력신호에 의해 계속 제어되더라도 교체하는 동안에 어떠한 명령어 또는 소프트웨어를 변경할 필요가 전혀 없다.
제5도는 개별적인 AI, DO, AO회로보드가 또한 백플레인보드(90)에 탑재되어 있음을 나타낸다, 이들 각각의 입력 및 출력회로보드는 상기한 경우에서처럼 다수의 다른 신호입력 또는 출력을 취급할 수 있다. 고속의 아날로그 입력회로 보드가 교류파형 파워시스템의 전기적 파라미터를 측정하기 위해 필드컴퓨터 유니트(12)내의 샤시 위치중 하나에 포함될 수도 있음에 주목해야 한다. 이 고속 파워분석기의 설명은 글래이저(Glaser) 등에게 공동양수된 특허출원 제502,050호(1990년 3월 30일 출원되어 현재 미국특허 제5,151,866호로 등록됨)의 "고속 파워분석기(High Speed Power Analyzer)'에 개시되어 있다. 이 미국특허는 본 명세서에 참조문헌으로 합체된다.
제6도(A) 내지 제6도(U)를 참조하면서 중복 컴퓨터회로중의 하나에 대하여 개략적으로 설명한다. 간단히 하기 위하여, 이 중복 컴퓨터회로 또는 필드 I/O제어기는 여기에서 제어기(100)라 한다. 본 실시예에 있어서, 제어기(100)는 각각의 중복 컴퓨터회로(92-96)를 위해 반복되고 있음을 또한 이해해야 한다. 그러나, 다른 적절한 중복 컴퓨터회로가 적절한 응용에서 채택될 수 있고, 이들 회로중 하나 이상은 모든 중복컴퓨터회로의 교체를 반드시 요구하는 일 없이 갱신된 회로로 교체될 수 있음을 인식해야 한다.
제6도(A)는 제어기(100)가 마이크로프로세서 회로칩(U4O)을 포함하고 있음을 나타낸다. 본 발명의 한 형태에 있어서, 상기 마이크로프로세서(U4O)는 인텔사에 의해 제조된 마이크로프로세서칩 8OC31BH-1으로 구성되었지만, 다른 적당한 칩이 본 발명을 대해 사용될 수 있으며 또는 응용적인 면이나 기술적 진전이 보증되는한 다른 회로칩이 사용될 수도 있음을 이해해야 한다. 제어기(100)를 위한 마이크로컴퓨터 커넬(kernel)은 또한 l28K × 8 EPROM메모리(58255P-551;U4l), l28K × 8 배터리 지원 RAM메모리(58255P-551;U42)와 메모리 어드레스 래치(74HC573)을 포함한다. 제어기(100)를 위한 마이크로컴퓨터 커넬은 또한 메모리 제어기(EPl810,U44)를 포함하는데, 제6도(B)에 나타나 있다. 본 실시예에 있어서, 제어기를 위한 프로그램은 EPROM회로 또는 배터리 지원 RAM회로에 저장될 수 있다. 배터리 지원 RAM을 사용하면 적어도 한 관점에 있어서는 특히 유리하다. 즉, 배터리 지원 RAM(U42)은 그안에 저장된 정보의 변경을 위해 메모리디바이스를 전기적으로 구성하는 일없이 임의의 사용가능한 통신 타임슬롯(time slot)에서 광섬유 네트워크를 통해 프로세스 제어컴퓨터(l4a-l4b)로부터 제어기(100)로 갱신된 프로그램이 다운로드되도록 돕는다.
특히, 필드컴퓨터 유니트(12)중 하나 이상에 대해 갱신된 프로그램을 다운로딩하는 프로세스는 제어되고 있는 물리적 프로세스의 진행동작을 방해하지 않음에 주목해야 한다. 더 상세하게는, 오직 하나의 제어기(100)를 위한 프로그램만이 한번에 갱신되고, 따라서 다른 2개의 남아있는 제어기는 그 존재하는 프로그램 하에서 필드 입력과 출력을 계속 진행할 수 있다. 본 발명의 한 형태에 있어서, 실제 요구되는 프로그램 저장용량은 64K를 초과하지 않지만 RAM(U42)은 l28Kbyte의 저장 용량을 갖는다. 이렇게 함으로써 데이터와 프로그램 메모리가 동일한 칩상에 저장될 수 있다. 제어기가 프로세스 제어를 하지 않는 동안, 메모리 저장용량의 배가(doubling)는 프로그램 메모리의 현재 내용을 방해하는 일없이 갱신된 프로그램이 로드(load)되고 검증(verify)되도록 한다. 이 타당성(validity) 검사가 완료된 후, 갱신된 프로그램이 다음 프로그램 사이클상에서 사용되기 위해 램(U42)의 하위 64K 메모리 위치로 이동된다.
갱신된 프로그램이 필드컴퓨터 유니트(12)의 제어기중의 하나를 위해 램(U42)으로 적절히 다운로드되면, 이어서 각각의 다른 제어기(100)를 위해 램(U42)내로 계속 로드된다. 다음에 설명하는 바와 같이, 각각의 제어기(100)는 다른 것들 사이에서 하나의 제어기로 보내진 갱신된 프로그램이 필드컴퓨터 유니트(12)에서의 다른 제어기의 램메모리(U42)로 복사되도록 할 수 있는 이웃하는 것 끼리의 직렬 통신 링크를 포함한다. 이러한 이웃하는 것 끼리의 링크는 또한 상기 제어기중의 하나가 그러한 동작이 요구되고 있는 다른 제어기에 프로그램메모리를 완전히 저장할 수 있도록 한다. 따라서, 분산 인터페이스 시스템(10)에 있어서의 각각의 필드컴퓨터 유니트(12)는 어떠한 수동단계가 필드컴퓨터 유니트에서 취해질 필요없이 또는 어떠한 인터럽션이 물리적 프로세스 그 자체에서 요구되는 일 없이 갱신된 응용프로그램을 구비할 수 있다. 게다가, 필드컴퓨터 유니트(12)의 전부 또는 일부가 일반적으로 어드레스된 네트워크 메시지를 통해 갱신된 프로그램을 부수적으로 수신하는 광섬유 네트워크와 동시통신(broadcast) 다운로딩 동작이 채택되도록 하는것 역시 가능하다. 즉, 프로세스 제어컴퓨터(l4a-l4b)는 선택된 필드컴퓨터 유니트로 상기 메시지를 향하도록 하기 위해 동시통신 메시지에서 각각의 대응하는 브레이크아웃회로(26)로 어드레스를 셋팅함으로써 분산 인터페이스 시스템(10)에 적절하게 많은 필드컴퓨터 유니트(12)로 갱신된 프로그램을 전송할 수 있다.
RAM메모리(U42)와 ROM(및 부트스트랩)메모리(U4l)는 공통 어드레스 버스"92"(pins P2-0..P2-7) 뿐만 아니라 다중 어드레스/데이터 버스"P0"(pins PO-1..PO-7)를 공유한다. 이와 관련하여 메모리 어드레스 래치(U43)는 제어기(100)내의 다양한 구성요소에 의해 사용되도록 하기 위해 다중 어드레스/데이터 버스로부터 어드레스 버스"AD"(pins AD-0..Ad-7)를 만들어내는 점을 인식해야 한다. 즉, 메모리 어드레스래치(U43)는 EPROM메모리(U4l)와 같은 구성요소가 이어서 사용하도록 하기 위해 핀(PO-1..PO-7)상에서 부분적인 어드레스 또는 어드레스를 포획한다. 예컨대, 핀(AD-0..AD-3)와 (AD-7)은 프로그래머블 논리소자메모리인 메모리 제어기(U44)로 향한다. 이들 어드레스 핀과 다른 필요한 입력핀("/WR"같은)의 디지털 상태에 의존하여, 상기 메모리 제어기는 칩을 위한 내부 소프트웨어 구성에 따라 출력신호를 발생시킨다. 그러한 출력의 예로서 상기 메모리 제어기는RAM메모리(U42)의 "/CE"포트로 향하게 되는 "/RAM"신호를 발생시킨다. 메모리 제어기(U44)로부터의 이 특별한 신호는 RAM메모리 칩(U42)이 메모리 제어기에 의해 생성된 "/RAM-WR" 신호같은 다른 관련된 신호와 합동으로 데이터를 판독 또는 기록할 수 있게 한다.
제6도(A)는 또한 수동으로 구동되는 리세트 스위치 "SW4"를 나타내는데, 이 스위치는 기술자가 제어기(100)의 마이크로프로세서(U4O)를 리세트하도록 하기 위하여 필드컴퓨터 유니트(12)의 정면 패널상에 편리하게 위치시킬 수 있다. 그러나, 본 발명에 따르면 이웃 제어 리세트 회로(neighbor controlled reset circuit,102)가 구비되는데, 이 회로는 필드컴퓨터 유니트(12)의 임의의 2개의 제어기가 조작자의 개입없이 남아있는 제어기를 리세트할 수 있도록 한다. 리세트회로(102)는 2개의 입력신호 즉, "N1RST"와 "N2RST"를 갖추고 있다. 이들 각각의 신호는 다른 이웃 제어기중 하나로부터 제어기로의 리세트 요구(request)를 나타낸다. N1RST신호는 옵토 커플러(U36)로 향하며 N2RST신호는 옵토커플러(U35)로 향한다. 옵토 커플러(U36)의 출력은 옵터 커플러(U35)의 다른 입력에 연결되며, 따라서 리세트회로(102)는 비교기(LM339; U24)와 마이크로 매니저(DSl236-5;U28)를 통해 마이크로 컴퓨터(U4O)의 RST포트로 전송하기 위한 고출력 "RESET"신호를 생성하기 위해 N1RST와 N2RST 양 신호의 조합을 요구한다. 비교기(U24)는 마이크로프로세서(U4O)가 리세트될때 로우 "EXTRNRST" 신호를 발생시키도록 채택된다. 마이크로 매니저회로(U28)는 하이 리세트(High RESET) 신호를 생성함으로써 로우 EXTRNRST신호에 응답한다.
따라서, 예컨대 필드컴퓨터 유니트에 있어서 2개의 제어기가 소정의 주기이내에 나머지 제어기로부터 통신을 수신하지 않는 경우, 각각의 다른 제어기는 비응답 또는 만약 그렇지 않다면 잘못된 제어기가 일시적으로 리세트되어야 하거나 또는 영구적으로 셧다운(shut down)되어야 한다는 결정에 별개로 도달할 수도 있다.
그렇지만 리세트회로(102)는 리세트상태를 야기시킴으로써 (그리고 영구적으로 셧다운될 때 제어기를 리세트 상태로 유지시킴으로써) 나머지 제어기를 셧다운시키거나 일시적으로 리세트시키도록 다른 이웃하는 제어기 양쪽의 병행을 요구한다. 마이크로프로세서 레벨에 있어서의 영구 리세트 상태는 적어도 이웃하는 제어기중의 하나가 리세트 요구신호의 디지털 상태를 바꿀 때까지 제어기의 동작기능을 억제한다. 본 발명의 동작방법에 따르면 비응답 제어기는 제어기를 영구적으로 리세트하는 결정이 만들어지기 전에 일시적으로 리세트된다. 비응답 제어기를 일시적으로 리세트하는 초기 결정은 유효 입력 및 출력 통신 메시지가 2개의 연속 프로세스 제어사이클(예컨대 2초)동안 수신되지 않은 다음에 만들어지는 것이 바람직하다. 따라서, 상기 방법은 적어도 하나의 프로세스 제어 사이클의 이웃하는 제어기간의 통신을 위한 결함 허용한계를 허용해야 한다는 점을 인식해야 한다. 만약 비응답 제어기가 일시적으로 리세트(예컨대 20초)된 후 소정의 주기 이내에서 그 이웃과 통신을 시작하지 않는다면, 그 이웃하는 제어기는 비응답제어기의 영구 리세트를 독립적으로 요구하게 될 것이다. 일단 비응답제어기가 교체되거나 또는 수리되면, 영구 리세트 상태는 미리 비응답 제어기를 재가동시키기 위하여 이웃제어기의 적절한 데이터 테이블 위치의 소프트웨어 값 변화를 통해 종결될 수 있다. 또한, 각각의 제어기(100)는 상기 제어기가 이웃하는 제어기의 리세트 상태를 요구해온 횟수의 카운트를 유지하는 것이 바람직하므로 따라서 레코드(record)가 요구되는 만큼 헬스 및 웰페어 해석(health and welfare analysis)에 이용될 수 있다.
각각의 제어기는 이웃하는 제어기와 프로세스 제어 사이클(예컨대 1초)에 3번의 통신을 하는 것이 바람직하다는 점에 주목해야 한다. 특히, 각각의 제어기는 이웃하는 제어기에 다음과 같은 (1) 필드로부터 수신된 입력신호, (2) 프로세스 제어기 컴퓨터중의 하나로부터 수신된 출력신호, 및 (3) 이하 상세히 설명될 다양한 진단(diagnostic)신호들을 전달한다. 본 발명의 한 형태에 있어서, 이들 각각의 통신은 소정의 시간윈도우(예컨대 각각 8밀리초)동안 발생할 수 있다.
마이크로 매니저회로(U28)는 또한 정상적으로는 +5볼트인 VCC파워라인의 전압레벨을 모니터한다. 이 모니터링 기능은 VCC파워라인이 소정의 레벨(예컨대 +3볼트) 아래로 순간적으로 떨어지는 경우에 일시적인 리세트 상태가 적용될 수 있도록 한다. 게다가, 마이크로 매니저회로(U28)는 상기 VCC파워라인이 0으로 떨어지는 경우에 리튬 백업 배터리(Bl)로 RAM메모리(U42)를 위한 전력공급을 스위치하도록 조절된다. 마이크로 매니저회로(U28)는 PROT-CERAM신호를 제어한다. 이 신호는 대개 CERAM신호를 따르지만, 배터리가 지원된 조건동안 높게 래치된다. 특히, 상기 절차는 이들 메모리 회로가 이 회로들의 개별적인 메모리 위치내에 임의의 새로운 데이터를 기록하지 못하도록 한다. 이 절차는 전력의 인터럽션 때문에 RAM메모리에 포함된 데이터가 변조될 가능성을 없애준다.
옵토 커플러(U35-U36)가 양쪽 이웃들로부터 제어기(100)를 전기적으로 분리하고 있는 것 또한 주목하여야 한다. 이러한 특별한 실시예에 있어서, 옵토커플러는 제어기중의 하나에 발생한 전기적 결함이 이웃하는 제어기의 동작에 영향을 주지 않도록 하기 위해 중복제어기(100)간의 모든 통신 경로를 분리하기 위한 수신단(reception end) 상에 사용된다.
제6도(A)의 마이크로프로세서(U4O)로부터 이웃하는 것끼리의 신호전송은 제6도(H)의 직렬 통신 드라이버(74H138)를 통해 용이해진다. 제6도(H)에 나타낸 바와같이, 마이크로프로세서(U4O)의 직렬 출력포트로부터의 "TXDATA"신호는 직렬 통신 드라이버(U38)의 "/G28"입력포트로 이어진다. 따라서, 직렬 통신 드라이버(U38)는 마이크로프로세서(U4O)로부터 하나 또는 다수의 다른 통신 경로로 TXDATA신호를 향하게 하는데 사용되고 있음을 인식해야 한다. 이들 통신 경로는 "NF1TXD" 와 "NF2TXD"신호를 포함하고 있는데, 각각의 신호는 다른 이웃하는 제어기(100)로의 직렬 통신 신호를 나타낸다. 추가로 4개의 직렬통신 출력신호 스트림 "TXDATAAO", "TXDATA1", "TXDATA6", "TXDATA11"이 또한 역시 제공된다. 상기 TXDATAAO 신호는 아날로그 출력값을 전달하고 다음에 상술되는 비강제적 테스트를 지시하기 위해 필드컴퓨터 유니트(12)의 아날로그 출력회로로 향하게 된다. 이와 관련하여 프로세스 제어컴퓨터(l4a-l4b)로부터 필드컴퓨터 유니트(12)로 전송되는 아날로그 출력값 신호는 제어기(100)의 마이크로프로세서(U4O)에 의해 (예컨대 소프트웨어에 의한 중재) 처리되어 직렬 통신 드라이버(U38)를 통해 필드컴퓨터 유니트의 적절한 아날로그 출력회로보드로 향한다는 점을 인식해야 한다. 또한, 본 발명에 따라 그렇게 할 필요가 없을 때에는, 중재된 아날로그 출력값 신호는 어떠한 이웃하는 제어기에도전송되지 않음에 주목해야 한다. 따라서, 다른 어느 제어기도 이 경우 그들의 개별적인 아날로그 출력회로로 전송되는 특정 아날로그 출력값 신호를 알지 못한다는 것을 알아야 한다. 다른 3개의 직렬 통신신호(TXDATAl, TXDATA6, TXDATA11)는 요구되는 값과 구성 데이터를 위한 특정 아날로그 입력회로로 향하게 된다.
제6도(H)의 직렬통신 드라이버(U38)중 나머지 2개의 잔류 출력신호는 "MAIN_XMIT" 와 "RPT_XMIT' 신호이다. MAIN_XMIT 신호는 제15도(B)에 나타낸 바와 같이 광섬유 네트워크를 통해 프로세스 제어컴퓨터(l4a-l4b)중 하나와 통신하도록 전송회로로 향한다. 이와 관련하여 상기 MAIN_XMIT 신호는 필드컴퓨터 유니트(12)에 연결된 브레이크아웃회로(26)의 적절한 포트로 향하게 된다. RPT_XMIT신호는 원한다면 추가적인 통신 용량을 간단히 제공한다. 왼쪽 및 오른쪽 제어기 사이의 필드 컴퓨터 유니트(12)의 중앙 슬롯에 탑재되는 제어기(100)에 관해서는 본 특별한 실시예에 있어서 MAIN_XMIT와 RPT_XMIT 신호를 위해 제공되는 접속은 없다. 그러나, 광섬유 네트워크는 특히 3개의 중복 프로세스 제어컴퓨터(14)가 제공되는 경우, 필드컴퓨터 유니트(12)에 포함된 각각의 제어기(100)를 위한 한 세트의 광섬유관을 제공하기 위해 변경될 수 있음을 인식해야 한다.
제6도(C)는 마이크로프로세서(U4O)의 다중 데이터/어드레스 버스(PO)에 결합되는 신호 분산회로(104)를 나타낸다. 마이크로프로세서(U4O)로부터 분산회로(104)로 향하는 신호는 한 쌍의 8진(octal) D형 래치회로(74HC573; U37, U32)에 의해 버퍼(buffer)된다. 래치회로(U32)는 제어기(100)를 위한 디버그 패널(44)로 신호를 전송하기 위해 사용되고, 래치회로(U37)는 몇몇 다른 회로칩이 사용하도록 하기 위해 분산버스 "RP"(핀 RP-0..RP-7)를 만들어낸다. 제6도(C)에 있어서 RP버스에 연결된 각각의 회로칩은 8비트 번지가능(addressable) 래치회로(75HC259)를 구비한다.
래치회로(U3O)와 래치회로(U39)의 부분은 백플레인보드(90)를 통해 제어기(100)에 연결되는 특정 디지털 출력회로로 개별적인 "set" 디지털 출력신호(핀 SDO-1 SDO-10)를 전송하기 위해 사용된다. 따라서, 프로세스 제어컴퓨터(l4a-l4b)로부터 필드컴퓨터 유니트(12)로 전송되는 디지털 출력값 신호는 제어기(100)의 마이크로프로세서(U4O)에 의해 연속적으로 처리되고(예컨대 소프트웨어에 의한 중재) 래치회로(U3O,U39)를 통해 필드컴퓨터 유니트의 적절한 디지털 출력회로 보드로 향하게 됨을 인식해야 한다.
래치회로(U22, U26, U34, U39)는 이웃하는 제어기의 아날로그 출력회로와 디지털 출력회로로 각각 어보트 디지털 출력신호 "ADO"와 어보트 아날로그 출력신호 "AAO"를 전송하기 위해 사용된다. 예컨대 래치회로(U22)는 어보트 디지털 출력신호(ADO2-3..ADO2-10)를 발생시키고, 래치회로(U26)는 어보트 디지털 출력신호(ADO1-2..ADO1-9)를 발생시킨다. 이 표시법(notation)은 래치회로(U22)로부터의 모든 어보트 디지털 출력신호가 특별한 제어회로와 관계가 있는 "네이버2"로서 명명된 제어기(100)를 위한 디지털 출력회로로 향하게 됨을 의미한다. 유사하게 래치회로(U26)로부터의 모든 어보트 디지털 출력신호는 "네이버1"으로서 명명된 제어기를 위한 디지털 출력회로로 향하게 된다. 게다가 ADO1-9 및 ADO2-9와 같이 마지막 자릿수가 대응하는 특정 신호는 동일한 디지털 출력 채널과 관련되어 있다. 따라서, 일련의 대응하는 어보트 디지털 출력신호는 펄드컴퓨터 유니트(12)내의 이웃하는 제어기를 위한 디지털 출력회로로 전송됨을 인식해야 한다.
어보트 아날로그 출력신호의 경우, 이들 신호가 사실상 아날로그가 아니라는 점을 이해해야 한다. 오히려, 어보트 아날로그 출력신호의 경우에 있어서, 어보트 아날로그 출력신호는 하이 디지털상태(논리"1") 또는 로우 디지털상태(논리"0")중의 하나이다. 또한, 어보트 디지털 및 어보트 아날로그 출력신호를 대해 대응하는 표시법이 채택된다. 따라서, 일련의 개별적인 어보트 아날로그 출력신호는 필드컴퓨터 유니트(12)내의 각각의 이웃하는 제어기를 위해 아날로그 출력신호로 보내진다는 것을 인식해야 한다. 이하(예컨대 제10도(A)-제10도(B))의 아날로그와 디지털 출력회로의 검토로부터 보다 명확해질 수 있는 바와 같이, 이들 "어보트" 출력신호는 각각의 제어기(100)에 의해 만들어진 소프트웨어 중재 결정을 강화하기 위해 사용된다. 이들 중재 결정은 이미 설명한 바와 같은 "세트" 디지털 출력신호와 아날로그 출력신호에 의해 나타내진다.
제6도(C)의 신호분산회로(104)는 또한 제어기(100)의 다양한 기능을 위해 사용되는 래치회로(U33)를 포함한다. 예컨대, 필드컴퓨터 유니트 내부를 조건에 맞는 온도범위 이내로 유지하기 위한 "FANON", "COOLON", "HEATON" 과 같은 몇몇 온도제어 신호가 나타내져 있다. 신호 이름이 함축하는 바와 같이, 필드컴퓨터 유니트는 상기 조치가 요구되는 환경에 위치하고 있는 경우에 하나 이상의 팬, 히터 및/또는 대기냉각장치를 구비할 수 있다. "BAT" 신호는 전원공급회로(50)와 관련하여 기술될 로드 테스트를 시작하기 위해 배터리(52)용 충전기를 오프시키는데 사용된다. "BATTOFF" 신호는 배터리(52)가 전원이 다된 경우에 필드컴퓨터 유니트로의 +5볼트전원 공급선을 셧다운시키기 위해 사용된다. 유사하게, "/CONSERVE" 신호는 배터리 전원을 보존하기 위해 필드컴퓨터 유니트로의 +26볼트 전원선을 끄기 위해 사용된다. "XGFLT" 신호는 필드컴퓨터 유니트의 접지전위와 실제접지간의 차를 테스트하기 위한 회로를 제어하기 위해 사용된다.
"DEADSET" 신호는 데드맨 타이머(deadman timer)와 어보트 개방회로로서 사용되는 재트리거 가능한 단안정 멀티바이브레이터 회로(74LSl22;U2l)로 향하게 된다. 이와 관련하여 캐패시터(C49)와 저항기(R102)가 기본 펄스시간을 결정하고, DEADSET신호는 "/ABRES" 와 "DEAD" 출력신호가 셧다운 상태로 전환되지 않도록 하는데 사용된다. 제6도(C)에 나타낸 바와 같이, /ABRES신호는 래치회로(U22, U26, U3O, U34, U39)의 /CLR포트로 향하게 된다. 따라서, /ABRES신호는 DEADSET 스트로브(strobe)가 마이크로프로세서(U4O)로부터 멀티바이브레이터 회로(U2l)의 트리거타이머로 수신되지 않을 때 상기 확인된 모든 래치회로를 동시에 리세트하는 기능을 한다. 상기 DEADSET신호는 마이크로프로세서(U4O)가 적절하게 기능하고 있을 때 각각의 프로세스 제어사이클을 한번 전송한다. DEAD신호는 아날로그 출력회로가 필드로 전력을 송출하지 못하도록 하기 위해 아날로그 출력회로로 향하게 된다.
제6도(B)는 상기한 바와 같은 몇 개의 회로칩을 위한 이네이블 포트(enable port)로 향하게 되는 다중 출력신호(OUTO..OUT7)를 PLD회로(U44)가 발생시키는 것을 나타낸다. 예컨대, OUT5신호는 래치회로(U22)가 라인 RP-0상에서 HIGH/LOW 데이터신호를 잡고 라인 RP-1..RP-3에 의해 어드레스된 출력포트로 이 신호를 향하게 할 수 있도록 래치회로(U22)로 전송된다. 그리고, OUT6과 OUT7신호는 제6도(K)와관련해서 검토될 디지털 - 아날로그 컨버터회로(Ul)로 향하게 된다.
PLD회로(U44)는 또한 다중출력신호(INO-IN6)를 발생시키는데, 이 신호는 제6도(F)와 제6도(G)에 나타낸 다양한 "판독(read)"회로로 향하게 된다. 따라서, 예컨대 PLD회로(U44)로부터의 IN3신호는 제6도(F)에 나타낸 "판독" 원격 어드레스회로(106)의 3상태 버퍼회로(74HC244;Ul6)의 이네이블 포트(l/G과/2G)로 향하게 된다. 이와 관련하여 스위치(SW1, SW2; 23OO34G)는 제어기(100)의 필드 어드레스를 결정하는데, 제어기(100)는 프로세스 제어컴퓨터(l4a-l4B)중 하나로부터 메시지를 수신하거나 또는 제어컴퓨터(l4a-l4b)중 하나로 보내지는 메시지를 형성하고자 할 때 버스(PO)로부터 마이크로프로세서(U4O)에 의해 판독될 수 있다. 제6도(F)는 판독 원격 어드레스회로(106)와 유사한 판독기능회로(107)를 포함한다. 이 판독기능회로(107)는 제어기 및/또는 다른 하드웨어의 특정 세팅을 위한 전원공급 구성을 마이크로프로세서(U4O)에 통지하기 위해 세트되는 스위치(SW3)를 포함한다. 또한, 판독기능회로(107)는 디버그 패널(44)상에서 눌려지는 키에 반응하는 한 세트의 KEYO..KEY3 신호를 포함한다. 이들 키는 기능키, 메모리소자를 판독하는 키 및 메모리위치내에 값을 두는 키를 포함한다.
제6도(D)는 다른 판독회로(108)를 나타낸다. 이 판독회로는 한 세트의 점퍼(jumper;"J7-J10')를 포함하는데, 이 점퍼들은 하드웨어버전 또는 리비전이 제어기(100)를 위해 사용되어지는 것을 마이크로프로세서(U4O)가 알 수 있도록 하기 위해 사용될 수 있다. 또한, 스위치(SW6)가 장래의 개선을 위한 공간을 제공하기 위해 채택된다. 점퍼(J7-J10)와 스위치(SW6)에 의해 제공된 신호는 3상태 버퍼 회로(74HC244;U6l)에 의해 포획되어 마이크로프로세서(U4O)의 PO버스로 전송된다.
제6도(E)는 디스플레이회로(109)를 나타내며, 이 회로는 8진 플립플롭 회로(U62)와 LED뱅크(LEDBAR10;"LED1")를 구비한다. 이 디스플레이회로는 기술자가 유지보수하는 동안에 제어기를 위한 다양한 헬스 및 웰페어 표시를 쉽게 볼 수 있도록 하기 위해 제어회로 보드상에 채택된다.
제6도(G)는 3개의 판독회로세트(110-114)를 나타낸다. 이들 판독회로는 제7도(A)-제7도(C)및 제8도(A)-제8도(F)에 나타낸 바와 같은 다수의 아날로그 신호 입력회로로부터 판독되고 있는 데이터를 어떻게 해석하는지를 마이크로프로세서(U4O)에 알리기 위해 사용된다. 예컨대, "TYPEAC" 와 "TYPEDC" 신호는 왼쪽 확장샤시(42)로부터의 입력신호가 교류("A.C.") 또는 직류("D.C.")신호를 나타내는 지의 여부를 마이크로프로세서(U4O)에 알리고 있다. 그리고, 각각 버퍼회로(U23-U27)로 전송된 "FAM1-5A" 와 "FAM1-5B" 같은 신호는 마이크로프로세서(U4O)에 의해 채택되어야 하는 광역선형루틴(broad linearization routine)의 디지털 표시를 제공한다. 예컨대 이들 신호는 마이크로프로세서(U4O)에 의해 수신된 특별한 신호가 스마트 입력회로보드 또는 표준 입력회로보드로부터 전송되어왔는지를 나타낸다. "AITYPE1-A" 와 "AITYPE3-B" 신호는 마이크로프로세서(U4O) (예컨대 type-J v. type-S 열전쌍)에 의해 채택되어야 하는 특수한 선형루틴을 나타낸다.
버퍼회로(U3l)는 입력 및 출력회로보드가 필드컴퓨터 유니트(12)에 설치되었는지를 마이크로프로세서(U4O)에 통지하는 "AISENSE1-5"와 같은 신호를 수신한다. 스위치(SW4)는 제어기(100)가 왼쪽, 중간 또는 오른쪽 제어기로서 사용되고 있는지를 마이크로프로세서(U4O)에 통지하는 "USE-DOAC1" 같은 신호를 구성하기 위해 사용된다.
제6도(I)는 제6도(J)에 나타낸 메인 멀티플렉서회로(506;U11)로 다수의 디지털 입력신호를 향하도록 하기 위해 구성되는 l6채널 멀티플렉서회로(5O6A;U9)를 나타낸다. 특히, 디지털 입력신호는 "MD1-1..MD1-10"로 명칭을 붙이고 있다. 이들 신호는 제6도(T)와 제6도(U)에 나타낸 풀다운회로에서 얻어진다. 어드레스라인(HDEVO..HDEV3)은 메인 멀티플렉서회로(U11)로 출력하기 위해 이들 디지털 입력신호중의 하나를 선택하는데 사용된다. 멀티플렉서(U9)의 출력포트는 메인 멀티플렉서(U11)로 전송하기 위한 "DILOCAL" 신호를 발생시키기 위해 전압팔로워로 구성되는 OP AMP(3l4OA)에 연결된다.
제6도(J)의 메인 멀티플렉서(U11)는 연속 근접회로(116)를 통해 마이크로프로세서(U4O)에 연속패턴으로 전송하기 위하여 다수의 다른 입력신호중의 하나를 개별적으로 선택하는데 위해 사용된다. 이들 입력신호들은 아날로그 레벨 또는 아날로그 직렬 입력신호 (예컨대 "MAl6-1OL"), 아날로그 출력상태와 트랙신호(예컨대 "AOT"), 이웃하는 제어기로부터의 직렬통신신호 (예컨대 "NP2RXD"), 광섬유 네트워크로부터의 직렬 통신신호 (예컨대 "MAIN_RCV")를 포함한다. 또한, 메인 멀티플렉서회로(U11)는 왼쪽 확장 샤시(42)에 있는 디지털 입력회로로부터 다수의 다중 아날로그 전압 레벨 신호를 나타내는 "DI_DISTANT" 신호와, 왼쪽 샤시에 있는 아날로그 입력회로로부터 다수의 다중 아날로그 전압 레벨신호를 나타내는 "DO_DISTANT" 신호를 수신한다. "DACCAL" 신호는 DAC회로(Ul)의 외부 교정을 제공하기 위해 사용될 수 있는 신호이다. "BOARD_FUNC" 신호는 제6도(K)의 멀티프렉서 회로(U1O)로부터 다수의 다중신호를 나타낸다. "DO_LOCAL" 신호는 트랙값과 비강제적 테스트으로부터의 리턴값 같은 하나 또는 그 이상의 디지털 출력회로보드로부터의 다수의 다중 정보신호를 나타낸다.
연속 근접회로(116)는 저항기(R4l)를 통해 메인 멀티플렉서(U4l)로부터 다중 출력을 수신한다. 연속 근접회로(116)는 마이크로프로세서(U4O)가 멀티플렉서(U11)로부터의 신호 출력의 전압레벨을 결정할 수 있도록 한다. 이 점에 관해서는 메인 멀티플렉서(U11)로부터의 출력은 비교기(LM339;U3)로 하나의 입력을 제공한다. 비교기(U3)로의 다른 입력은 연속 근접회로(116)의 계속(continuation)으로서 제6도(K)에 나타낸 바와 같이, 디지털 - 아날로그 컨버터 "DAC" 회로(DAC7O8KH;Ul)에 의해 제공된다. 특히, 연속 근접회로는 마이크로프로세서(U4O)가 하나의 입력선 "RXDATA"을 통해 다수의 디지털 및 아날로그 입력신호를 수신하도록 한다. 이는 DAC회로(Ul)로부터의 변화하는 "VOUT" 신호 레벨에 대응하여 비교기(U3)의 출력을 토글링함으로써 이루어진다. 마이크로프로세서(U4O)는 비교기(U3)가 출력상태를 변화시킬때까지 RP버스를 통해 DAC회로(Ul)로 일련의 다른 디지털 전압 레벨을 전송한다. 이와 관련하여, 마이크로프로세서(U4O)는 조건에 맞는 범위 중에서 중간의 디지털 전압레벨로 시작하고, 이값이 하이 또는 로우인지를 결정한 후 이어서 그 점에서 업 또는 다운을 진행함으로써 2진검색을 수행하는 것이 바람직하다. 다음에 마이크로프로세서(U4O)는 DAC회로(Ul)로 전송된 마지막 디지털 전압레벨의 정보를 통해 메인 멀티플렉서(U11)로부터 전압레벨 출력을 결정한다. 따라서, 연속 근접프로시져(procedure)의 조합과 멀티플렉서의 사용이 실질적으로 필드컴퓨터 유니트(12)에 의해 수집되고 있는 모든 디지털과 아날로그 입력신호를 판독하도록 요구될 입력핀의 수를 감소시키고 있음을 인식해야 한다.
제6도(K)는 또한 DAC회로(Ul)가 8진 D 플립플롭 회로(74HC374;Ul7)를 통해 어드레스됨을 나타내는바, 이 플립플롭 회로는 RP버스로부터 어드레스 라인 "DACO.. DAC2"를 만들어낸다. 또한, 상기 플립플롭회로는 또한 어드레스라인 "LDEVO.. LDEV3"을 만들어내는데, 이 어드레스 라인은 레벨 쉬프팅 버퍼회로(NCl45O4B;Ul8,Ul9)로 향하게 된다. LDEV 어드레스라인은 멀티플렉서회로(U9,U1O,U11)를 위해 바람직한 구성에 의해 요구되는 바와 같이 O/5볼트 신호에서 O/l5볼트신호로 이동된다. 유사하게 어드레스라인(Pl-4..Pl-7)은 멀티플렉서(U11)를 위한 어드레스라인(HPI-4..HPI-7)을 발생시키기 위하여 버퍼회로(MCl45O4B;Ul3)에 의해 이동된다. 이와 관련하여 이들 멀티플렉서회로의 그라운드(GND) 전위가 0볼트보다는 오히려 10볼트로 세트된다는 점에 주목해야 한다. 이것은 선택된 특별한 멀티플렉서 칩(506)이 V+와 22볼트에 대한 GND간의 전위차를 제한하고 있기 때문이다. 그러나, GND전위가 10볼트로 세트된 상태에서, V+전위는 25.2볼트로 세트되고 V-전위는 -5볼트로 세트되며, 이에 의해 멀티플렉서 회로가 +/-15볼트의 전원 공급으로부터 동작하게 할 수 있다. 상기와 같은 구성에 있어서, 멀티플렉서칩이 적절하게 동작할 수 있도록 하기 위해 LDEV 어드레스신호의 레벨을 이동시킬 필요가 있다.
제6도(K)에 나타낸 바와 같이, 멀티플렉서회로(U1O)는 "BOARD_FUNC"신호를통해 메인 멀티플렉서(U11)로 선택 및 전송하기 위한 몇몇 다양한 입력신호를 수신한다. 이들 입력신호는 기준전압레벨(예컨대 "+10VREF")의 현재상태와 다양한 온도레벨(예컨대 "BDTEMP")을 포함한다.
제6도(L)은 제어회로보드에서 또는 그 근처에서의 온도를 표시하는데 사용되는 간단한 온도센서회로(118)를 나타낸다. 이 온도는 (AD5O2;Ql3)과 저항기(R52)에 의해 형성된 변환회로에 의해 감지되고, 캐패시터(Cl3)에 의해 필터링된다.
제6도(M)은 2개의 온도제어 출력회로(120-122)를 나타낸다. 이 출력회로(120)는 제6도(C) 래치회로(U33)로부터의 'HEATON"신호에 답하고 있으며, 반면에 출력회로(122)는 래치회로(U33)로부터의 "COOLON" 신호에 답한다. 옵토 커플러(Ul4-Ul5)는 각각 광신호 "PHEAT" 와 "PCOOL" 의 전송을 통해 외부 가열 및 냉각 장치로부터 제어기(100)를 전기적으로 분리하기 위해 사용된다. 이들 옵토 커플러는 전류원(Tl3l7C;Q17-Q18)과 그리고 HEATON 또는 COOLON신호중 하나의 병행에 의해 구동된다.
제6도(N)은 확인된 습기와 온도신호를 위한 필터회로(124)를 나타낸다. 예컨대, "EXTEMP_1" 외부 온도신호 입력은 출력에서 "MEXTEMP"로 명명되고, 제6도(K)의 멀티플렉서회로(U10)로 전송된다. 이 외부 온도신호는 여분의 냉각 기준 접합 온도 신호로서 사용될 수 있다. 습기신호 "HUMITY_1" 는 필드컴퓨터 유니트의 하우징(88)내에 있는 센서에서 얻어질 수 있다. 이들 온도신호중 하나 이상의 신호는 PHEAT 또는 PCOOL 신호가 생성되어야하는지를 결정하기 위하여 마이크로프로세서(U4O)에 의해 사용될 수 있다. 본 발명의 한 형태에 있어서, 필드컴퓨터유니트(12)의 내부환경은 섭씨 10도 내지 50도 사이의 온도 범위 이내에서 유지되는 것이 바람직하다.
제6도(0)에 이웃하는 제어기와 통신하기 위하여 제6도(H)의 직렬 통신 드라이버회로(U38)와 함께 동작하는 매우 단순한 임피던스회로(126)가 도시되어 있다. 특히, 상기 회로(126)는 "NF1TXD" 와 "NF2TXD" 신호를 수신하는데, 이 각각의 신호는 이웃하는 제어기중의 하나로 보내지는 직렬 통신신호를 나타낸다. 이 임피던스는 제어기(100)의 외부 신호라인에 단락이 발생하는 경우에 드라이버회로(U38)가 손상되지 않도록 한다. 제6도(S)는 이웃하는 제어기로부터 통신을 받아들이기 위한 직렬 통신 수신회로(128)를 제공하고 있음에 주목해야 한다. 이들 이웃신호는 광학적 분리를 위해 옵토 커플러회로(Ul2)를 통과한다. 다음에 이들신호는 신호 "NP2RXD" 와 "NP1RXD"로서 메인 멀티플렉서회로(U11)로 전송된다.
상술한 바와 같이, 이웃하는 통신 경로는 갱신되거나 또는 수정된 프로그램 데이터 뿐만아니라 입력과 출력값 신호를 전달하기 위해 사용될 수 있다. 따라서, 필드컴퓨터 유니트(12)의 3개의 제어기(100) 간의 직렬통신 전송회로와 수신회로를 조합하면 제어기에 의한 상기 데이터의 상호교환을 통해 유입 데이터과 유출 데이터 양쪽을 중재하는 능력을 갖춘 필드컴퓨터 유니트를 제공한다. 따라서, 왼쪽 제어보드(92)가 광섬유관(48)을 통해 필드장비에 대한 출력값 신호들을 수신할 때, 이 신호들은 중간의 제어보드(94)에 대한 왼쪽제어보드와 오른쪽 제어보드(96)에 의해 역시 전송된다. 유사하게 오른쪽 제어보드(96)가 광섬유관(46)을 통해 필드 장비를 위한 출력값 신호를 수신할 때, 이들 신호는 또한 중간의 제어보드(94)에대한 오른쪽제어보드와 왼쪽 제어보드(92)에 의해 역시 전송된다. 이렇게 하여, 3개의 제어보드(92-96) 각각은 소프트웨어의 독자적인 중재를 위해 사용될 수 있는 3세트의 출력값 신호를 공급받는다. 본 발명의 한 형태에 있어서, 중간의 제어기(94)는 왼쪽 제어보드(92) 또는 오른쪽 제어보드(96)로부터 출력값 신호를 수신한다. 출력값을 위한 중재 프로시저의 추가 설명은 제17도(F)-제17도(I) 및 제18도(0)-제18도(T)를 참조하면서 제공될 것이다.
제6도(P)는 그라운드 결함회로(130)를 나타내고 있는데, 이 회로는 그라운드 결함상태가 신호 "GNDFLT" 와 멀티플렉서(U9)를 통해 발생되었다는 것을 마이크로프로세서(U4O)에 알리기 위해 사용된다. 이 점에 관해서는 "XGFLT" 신호는 제6도(C)의 래치회로(U33)로부터 얻어지고, 반면에 "GND_FAULT" 신호는 백플레인보드(90)를 통해 필드로부터 얻어진다. 그라운드 결함상태는 샤시 그라운드와 FLTGND 터미널 간의 매우 낮은 전위 차가 있을 때 발생한다. 마이크로프로세서(U4O)는 프로세스 제어컴퓨터(14)에 유효한 에러 비트를 세팅함으로써 이 상태에 응답할 수 있다.
제6도(Q)와 제6도(R)은 제어기(100)상에 포함된 2개의 전형적인 파워조절회로를 개략 도시한다. 제6도(R)에 나타낸 "MMl5" 출력신호는 -15볼트 파워라인의 모니터링을 허용하기 위해 사용된다. 유사한 파워조절회로가 필드컴퓨터 유니트(12)의 다른 회로보드상에 역시 포함된다. 상기 검토로부터 알 수 있는 바와 같이, 제어기(100)는 제어기의 부분을 형성하는 회로칩을 구동하기 위하여 몇몇 다른 전압레벨을 요구하고 있는바, 이들 파워조절회로는 원하는 전압레벨을 생성하도록 조절된다.
제6도(T)와 제6도(U)는 각각 디지털 입력 풀다운 회로(132,134)를 나타낸다. 이 점에 관해서는 이들 회로 각각은 Q12같은 전류원회로(TL3l7)를 포함하는데, 이 전류원회로는 지시된 디지털 입력신호라인(예컨대 DI-1..Dl-5) 각각과 관련된 전류 루프를 통해 2.5 밀리앰프를 구동하도록 세트된다. 예컨대, 이들 디지털 입력라인은 한 세트의 스위치 접촉의 개방 또는 폐쇄를 감지하도록 사용될 수 있다. 이들 스위치들중 하나가 개방되는 경우, 전류원은 2.5밀리암페어를 무한부하로 밀어 넣으려는 비합리적인 시도가 있게 되고, 따라서 감지라인(예컨대 MDI-1)으로부터 측정된 전압레벨은 2O볼트를 초과한다. 이들 스위치중 하나가 폐쇄되는 경우에는, 관련된 디지털 입력라인이 낮은 임피던스 경로를 통해 그라운드로 밀어내어지고, 그 연결된 감지선(예컨대 MDI-1)은 2.5-7.5볼트 사이에서 멀티플렉서(U9)로 신호레벨을 전송한다. 이 전압레벨은 얼마나 많은 제어기 보드가 필드컴퓨터 유니트(12)로의 특별한 신호입력에 연결되는가에 달려있다. 이와 관련하여 만약 감지된 전압레벨이 1.5볼트 이하라면 마이크로프로세서(U4O)는 필드 단락상태가 발생했음을 나타낼 것이고, 따라서 감지회로에서의 저항은 만약 디지털 입력회로가 적절히 동작하고 있었다면 이용할 수도 있을 값 이하이다.
제7도(A) 내지 제7도(C)는, 아날로그 신호정보를 처리하기 위한 스마트 직렬 입력회로(200)의 개략도이다. 입력회로(200)는 5개의 개별적인 직렬 입력채널상에 수신된 신호를 비동기적으로 처리할 수 있다. 이들 각각의 채널은 아날로그 입력신호 정보를 나타내는 디지털 신호 스트림을 수신하도록 조절된다. 본 발명의 한 형태에 있어서, 필드컴퓨터 유니트(12)는 3개의 중복 컴퓨터회로(92-96) 각각을 위하여 상기와 같은 "아날로그" 입력회로를 3개 채택할 수 있다. 이와 관련하여 입력회로(200)는 제5도(예컨대 AIl-5, AI6-10)의 프로세서 샤시(40)에 도시된 카드 슬롯중 하나에 탑재된다. 제5도에 나타내지는 않았지만 슬롯은 "AI11-20" 아날로그 입력회로를 위해 또한 제공된다. 따라서, 필드컴퓨터 유니트(12)는 최대 20개의 개별직인 아날로그 입력신호를 취급할 수 있음을 인식해야 한다.
입력회로(200)는 적절한 디지털 스트림을 발생시키는 적당한 전송장치와 함께 동작하도록 설계된다. 바람직하게는 허니웰 트랜스미터(Honeywell transmitter)가 아날로그신호를 판독하고 디지털 스트림 또는 메시지를 생성하는데 사용되는바, 예컨대 스마트 압력 트랜스미터(시리즈 100, 200, 300), 스마트 온도 트랜스미터 또는 스마트 매그새로운(MAGNEW) 플로우 트랜스미터가 사용된다. 이들 허니웰 트랜스미터는 매초 거의 3번 3개의 부분 디지털 메시지를 발생시킨다. 특히, 디지털 메시지는 전송상태, 감지된 기본 아날로그 값과 구성/상태 데이터를 포함한다. 디지털 메시지는 또한 헤드온도와 같은 2차 변수값을 포함한다.
입력회로(200)는 트랜스미터로부터 수신하는 원데이터를 제어기(100)상으로 단순히 보내는 것 이상의 일을 할 수 있다는 점에서 "스마트" 회로로 불린다. 이와 관련하여 입력회로(200)는 트랜스미터로부터 직렬 데이터 스트림을 디코드하여 이 스트림을 (전체값의 16-비트 부호화된 정수 비율로서 프로세스 제어컴퓨터(14)에 최종적으로 전송되는) 제어기(100)와 호환되는 포맷으로 변환시킨다. 입력회로(200)는 또한 제어기가 데이터를 해석하거나 또는 통지된 에러메시지를 전송하도록 하는데 사용할 수 있는 다양한 에러비트를 제공한다. 예컨대, 이들 에러비트는 "No Xmitter"비트, "Parity Error" 비트 및 "Comm Error" 비트를 포함한다. 상기 No Xmitter비트는 트랜스미터가 소정의 주기(예컨대 382msec) 이내에 입력회로(200)로 직렬 데이터 스트림을 보내는 데 실패했을 때 세트된다. 패리티에러(Parity Error) 비트는 (a) 입력신호가 이전 메시지의 종료 이후에 48.9msec 이하로 파악될 때, (b) 직렬전송으로부터 어셈블리되는 현재 바이트가 페리트 테스트에 실패할 때, 또는 (c) 시작/정지비트의 이진값이 틀린경우 세트된다. 또한 입력회로(200)는 입력회로로부터 수신하는 메시지의 "합계검사(checksum)" 확인을 제어기가 수행할 수 있도록 제어기(100)로 메시지를 나타낸다. 제어기(100)를 위한 디버그 패널(44)은 필드컴퓨터 유니트(12)에서 상기 확인된 에러비트를 포함하는 상태바이트를 검사하는데 사용될 수 있다. 예컨대, 기술자가 문제시되는 특정 상태바이트를 위한 메모리 어드레스에 들어갈 수 있도록 디버그패널을 사용할 수 있고, 이 바이트의 내용은 디버그 패널의 디스플래이장치상에서 눈으로 검사하도록 나타낼 수 있다.
제7도(A)는 입력회로(200)를 위한 수신회로(202)를 나타낸다. 오직 하나의 수신회로(202)만이 도시되었지만, 입력회로(200)는 각각의 트랜스미터를 위해 개별적인 수신회로를 포함해야 한다는 점을 인식해야 한다. 커넥터 핀(C3)은 트랜스미터로부터 수신회로(202)로 디지털신호 스트림을 옮기는 회로의 엔트리(entry) 포인트로서 사용된다. 다음에 수신회로(202)는 추가 처리를 위해 적절한 디지털 신호레벨 입력 "HON1" (예컨대 하이 +5볼트, 로우 0볼트)을 생성하는 비교기(LM339;AU5)를 채택한다. 비교기(AU5)는 0.42볼트의 히스테리시스 대(band)와 더불어 0.9볼트에서 트리거하는 반전모드로 세트되는 것이 바람직하고, 따라서 논리 "0"은 회로에 대한 전압 입력이 1.25볼트를 초과할 때 검출되고, 논리 "1"은 보드에 대한 전압 입력이 0.83볼트 이하일 때 검출된다.
HON1신호는 l6MHz 마이크로프로세서(8OC3l, AU2)의 "Pl" 포트로 향하게 되는바, 제7도(B)에 나타냈다. 8K x 8 EPROM(27HC64)칩(AU1)은 마이크로프로세서(AU2)에 의해 채택된 프로그램을 저장하기 위해 사용된다. EPROM칩(AU1)은 마이크로프로세서(AU2)의 "P2" 포트에 직접 연결되고, 메모리 어드레스 래치(HC573;AU3)를 통해 마이크로프로세서의 "PO" 포트에 간접적으로 접속된다. 마이크로프로세서(AU2)로부터의 다중 데이터출력은 "TXDATA" 신호를 통해 제어기(100)로 전송된다. TXDATA신호는 제어기(100)의 메인 멀티플렉서(U11)에 연결된 "MAI" 프리픽스 신호중 하나에 대응한다. 또한 마이크로프로세서(AU2)는 커넥터 핀(Cl2)으로부터 분기되는 "RXDATA" 신호 라인을 통해 제어기(100)로부터 신호를 수신한다.
제7도(C)는 입력회로(200)를 위한 구성회로(204)를 나타낸다. 이 구성회로(204)는 4개의 출력라인(TYPEI..TYPE4)을 갖추고 있는 스위치(ASW1)를 포함한다. 풀업(pull-up) 저항기가 저항기 뱅크 칩(ARP1)을 통해 이들 각각의 출력라인에 연결된다. 그리고 16진 인버터회로(HCO4;AU4)로부터의 인버터는 마이크로프로세서(AU2)에 대하여 고립된 한 세트의 구성라인을 제공하기 위해 스위치(ASW1)로부터 각각의 출력라인에 연결된다. 이들 라인 각각을 위한 스위치 위치는 적절한 4개의 비트 코드를 채택함으로써 각각의 수신회로에 접속된 트랜스미터 장치의 타입을마이크로프로세서(AU2)에 통지하기 위해(P3버스를 통해) 사용된다. 스위치 출력라인은 또한 제어기(100)로 향한다. 이들 출력라인은 제6도(G)상에 나타낸 "AITYPE" 프리픽스 신호에 대응한다.
제7도(D) 내지 제7도(M)에는, 스마트 직렬 입력회로(200)의 동작과 관련된 일련의 흐름도를 나타냈다. 이와 관련하여 제7도(D)는 "AISER MAIN"으로 명명된 전체 흐름도(206)를 제공한다. 상기 흐름도(206)는 하나 또는 그 이상의 인터럽트 인에이블로 끝나는 초기설정 블록(208)을 포함한다. 다음에 프로그램 흐름제어는 마름모(210)로 넘겨지는데, 이 마름모에서는 데이터에 대한 요구가 본 명세서에서는 "FIO"라 부르는 제어기(100)에 의해 보내져 왔는지의 여부를 결정한다. 만약 데이터가 요구되었다면 UPLOAD루틴이 호출된다(블록 212). 이 UPLOAD루틴은 제7도(F)에 나타내져 있다. 만약 업로드 요구가 존재하지 않는다면, 마이크로프로세서(AU2)는 제7도(E)의 흐름도를 통해 판독된 모든 데이터가 분석되었는지(마름모 214)를 결정한다. 만약 일련의 데이터 인터럽트에 따라 수신된 데이터가 분석되지 않았다면, 제7도(G)의 ANALYZE루틴이 호출된다(블록 216).
제7도(F)는 UOLOAD루틴(212)이 제어기(100;블록218)로 보내지는 7개의 디버그 바이트 전송을 포함하고 있는 것을 나타낸다. 이 바이트들은 마이크로프로세서(AU2)의 내부 RAM 메모리에 저장되는 것이 바람직한데, 이 바이트들은 제어기를 위한 디버그 패널(44)을 통해 액세스될 수 있다.
제7도(G)는 ANALYZE루틴이 수신된 각각의 아날로그 입력신호를 위해 제7도(H)에 나타낸 SERVICE루틴(220)을 호출하는 것을 나타낸다. 상기 ANALYZE루틴은 트랜스미터로부터의 디지털 신호 스트림상에서 다양한 타당성(validity)검사를 수행한다. 예컨대, 흐름도(220)는 채널이 소거되는지(CHNCLR)의 여부를 결정하는 마름모(222)와, 채널이 직렬 데이터 스트림으로부터 1바이트의 정보를 조합하는 프로세스에 있는 지의 여부를 결정하는 마름모(224)를 포함한다. 만약 1바이트가 어셈블된다면 마름모(225)는 처리되는 정보가 적절한 인터럽트에 기인했는지를 결정한다. 그리고 적절한 스타트, 패리티와 스톱비트가 수신되어왔는지를 결정하기 위해 1비트 카운트가 사용된다. 만약 응답이 이들 질문의 어느 것에 대해 네가티브라면, BADPARITY비트가 세트된다(블록 226). 데이터가 이들 검사를 통과했다고 가정하면, 비트 버퍼(BITBUFF)의 내용은 업로드 버퍼(UPBUFF; 블록 219)로의 연속적인 전송을 위해 메모리버퍼(MBUFF; 블록 228) 내로 카피된다. 이어서 업로드 버퍼의 내용은 업로드 요구에 대응하여 제어기(100)로 전송된다.
제7도(1) 내지 제7도(M)은 입력회로(200)로부터 제어기(100)에 의해 수신된 신호의 해석과 관련된 프로그램을 위한 흐름도를 나타낸다. 이와 관련하여 "AI3l" 흐름도는 스마트 AI_인터페이스 루틴을 호출하는 셋업블록(230)을 포함한다. 상기 스마트 AI_인터페이스 루틴은 업로드 반응이 수신되어 통신에러 때문에 검사되어야 하는 5msec 이내의 타임아웃(timeout)을 제공한다. 만약 통신에러가 발견된다면, 상태 검사 루틴 "STCHK"이 호출된다. STCHK루틴은 발견된 에러(예컨대 배드 패리티 비트 또는 배드 합계검사 비트)에 좌우되는 하나 이상의 특정 에러비트를 세트한다. 만약 통신에러가 전혀 발견되지 않았다면, 제7도(J) 내지 제7도(L)의 "OKAIS" 루틴으로 넘어간다(블록232).
제7도(J)의 블록(234)에 도시되어 있는 바와 같이, OKAIS루틴은 기본 가변값이 입력회로(200)로부터 보내진 메시지에 포함되어 있는지를 판단한다. 만약 기본값이 양호한 것으로 결정되면, 페일라스트값(Fail-Last value)이 다음 불이행(제7도(K)의 블록236)에서 프로세스 제어컴퓨터(14)로 보내지도록 플래그(flag)가 세트된다. 다음에, 제7도(M)의 "IETOPS" 루틴이 호출되어 기본값을 고정 포인트 값으로 변환시키고 수용가능한 입력의 최대 스케일값의 비율로서 그 값을 저장한다. 배드 기본값(bad primary value)이 수신된 경우, 마름모(240)는 페일 라스트조건이 이 프로세스 제어 사이클을 위해 세트되었는지를 결정한다. 만약 그렇다면, 마지막으로 알려진 양호한 기본값이 프로세스 제어컴퓨터(14)로 보내지고 플래그는 다음 프로세스 제어 사이클의 낫 페일 라스트(not Fail-Last)로 보내진다. 그러나, 페일-라스트 조건이 요구되지 않았다면, 기본값은 최대 수용가능한 값의 100%에 대응하는 수로 로드된다 (블록 242)
블록(244-246)과 마름모(248)는 보조값(예컨대 온도)이 존재하는 경우, 이값이 전체 스케일의 비율로 변화되는 것을 나타낸다. 다음에 마름모(250)는 OKAIS 프로시져의 이 부분이 감지되고 있는 5개의 모든 아날로그 입력을 위해 구현되어짐을 나타낸다. 마름모(252)는 제어기(100)가 적절한 IRAM위치내에 블록(258)에 의해 저장되었던 채널(11-15)을 위한 기본변수를 로드하는 것을 나타낸다. 블록(254), 마름모(256) 및 블록(258)은 채널(11-15)을 위한 기본 변수를 일시적으로 저장하고 채널(16-20)을 위한 데이터를 수집하기 위한 루틴을 재실행하도록 조합된다. 이것은 루틴중의 하나의 호출이 10개 채널의 데이터를 처리할 수 있게 한다. OKAIS 루틴의 결말은 아날로그 입력신호가 필드컴퓨터 유니트 제어기에 의한 연속적인 소프트웨어 중재를 위해 현재 사용가능하다는 것을 나타낸다.
제8도(A) 내지 제8도(E)는 본 발명에 따른 다중모드 펄스 입력회로(300)를 나타낸다. 본 명세서에서는 이 펄스 입력회로(300)를 "PTB(펄스 트레인 보드)" 회로라고 한다. 이 PTB 회로(300)는 높은 정확도(예컨대 계측의 0.075%)로 (1Hz에서 65kHz의) 주파수를 측정하고 및/또는 펄스(초당 1 내지 32767 펄스)를 카운트할 수 있는 5개의 채널 아날로그 입력 "도터(daughter)" 회로보드이다. PTB 회로(300)는 3개의 다른 동작 모드를 가지기 때문에, 제어기가 주파수와 카운트 펄스 양쪽을 계산하기 위하여 동일한 데이터를 사용하더라도, 제어기(100)는 데이터(즉, 펄스 또는 주파수)를 처리하는 2개의 다른 방법과, 이 아날로그 데이터(펄스, 주파수 또는 펄스와 주파수)를 출력하는 3개의 방법을 구비한다. 주파수 모드의 경우, 제어기(100)의 AI 테이블에 저장된 주파수값은 의사 플로팅 포인트 형식(psuedo-floating point format)으로 되어 있는데, 이하 상세히 설명한다. 이러한 형식은 플로팅 포인트 변환에 의해 프로세스 제어컴퓨터(14)에 전송될 마지막 값에 단지 0.025% 미만의 에러가 포함되도록 보장하기 위해 바람직하다. 펄스 카운팅 모드의 경우, 실정수가 AI 테이블에 저장된다. 마지막 보고된 값 이후에 수신된 펄스의 개수는 프로세스 제어컴퓨터(14)에 AI 테이블에 저장된 정수로서 보고된다. PTB 회로(300)에 의해 수신된 값들이 그 각각의 범위를 벗어나는 경우 제어기(100)는 전체 범위의 값을 보고하는 것이 바람직하다.
필드컴퓨터 유니트(12)가 매초 프로세스 제어컴퓨터(l4a-l4b)로 그 입력 데이터 전부를 보고하는 것이 바람직하기 때문에, 1Hz보다 더 낮은 계측 주파수 값은 특별한 문제가 됨을 인식해야 하는바, 이는 필드컴퓨터 유니트가 초당 한번씩 측정을 갱신할 수 없기 때문이다. 따라서, PTB 회로(300)는 펄스가 검출되는 시간간격에 1Hz의 주파수를 보고하도록 되어 있다. 만약 보고된 시간(초) 이내에 펄스가 전혀 검출되지 않았다면, 프로세스 제어컴퓨터(14)로 제로값이 전송된다. 제로 입력구간후에 펄스 트레인이 시작하고 PTB 회로(300)가 주파수 모드에 있는 경우, 첫번째 1초(the first second)는 주파수 값을 보고하는데 사용되지 않는다. 오히려, 첫 번째 1초는 이 첫 번째 1초에서 수신된 펄스의 전체 개수를 보고하는 데 사용된다. 그리고, 다음의 두 번째 초에서만 데이터가 실제의 주파수 값이 된다. 이러한 프로시져는 알려진 시간간격에 걸쳐 전체 펄스의 합산을 허용하기 위해 사용된다. 만약 펄스가 1초 이상 수신되지 않는다면, PTB 회로(300)는 시간간격을 계측하는 것이 불가능하게 된다.
제8도(A)는 PTB 회로(300)를 위한 수신회로(302)를 나타낸다. 이 수신회로(302)는 PTB 회로(300)에 연결된 입력펄스 신호채널 각각에 대해 제공된다. 수신회로(302)는 수동소자 보드상에 제공되는 보호를 통해 홀 효과 장치(Hall Effect device)와 같은 펄스방출 변환기에 회로를 연결시키는데 사용되는 커넥터(BC3)를 포함한다. 수신회로(302)는 또한 제8도(D)에 나타낸 저항(VR3)과 같은 PTC 저항을 통해 그라운드로의 경로를 제공하는 "AI-1C" 라 명명된 신호라인을 포함한다. 또한, 수신회로는 저역필터를 포함하는데, 이 필터는 저항(RLP)과 커패시터(CLP)를 구비하한다. 이 저역필터는 필드의 배선에서 유발될 수도 있는 고주파잡음을 효율적으로 제거한다. 저항(RLP)과 캐패시터(CLP)는 수신회로(302)에 있는 몇 개의 다른 수동소자를 포함하는 기능모듈칩(BUl3)에서 얻어진다. 캐패시터(CLP)는 비교기(LM339;BUl2)가 포화되지 않도록 GND로 펄스신호의 네가티브 진행부분을 클램프하는 다이오드(1N58l9;CR4)와 병렬연결된다.
비교기(BUl2)는 필터링된 펄스신호 입력과 10볼트 전원으로부터 나오는 기준전압을 받는다. 기준전압은 임계저항(RTH), 10K저항(Rl4) 및 히스테리시스 저항(RH)을 구비한 전압분배 네트워크에 의해 세트된다. 펄스신호가 기준전압 이상일 때, 비교기(BUl2)의 출력은 GND로 당겨진다. 실제로 비교기(BUl2)로부터의 로우 출력은 저항(RH)과 병렬로 저항(Rl4)을 설치한다. 이 효과는 임계저항을 낮추고 비교기출력이 오래 동안 로우 상태에 머무르도록 한다. 이렇게 하면 입력펄스 신호상에 로우 레벨의 잡음에 의해 야기될 수 있는 원하지 않는 발진을 실질적으로 제거할 수 있다.
수동소자(RTH, RH, RLP, CLP)를 위한 값은 대신호 응용을 위한 다음의 근사식에 따라 결정되는 것이 바람직하다.
RTH = (100,OOO/Vth) - 10,000
; 여기서 Vth = (0.30) x Amax이고, Amax는 신호의 최대 진폭임
RH = ((l/Vh) - l/5) x 50,000
; 여기서 Vh = 2 x (피크-피크 잡음레벨)
RLP x CLP = T
; 여기서 T = (l/Fmax) x (입력의 듀티사이클)/3.14 및
T = (l/Fmax) x (1 - 듀티사이클)/3.14 인데,
어느 쪽이든 보다 작은 것에 좌우되며,
Fmax = 신호의 최대주파수이다.
한편, Vth는 입력이 커서 하이 입력으로 간주되기에 충분히 큰 전압인지를 비교기(BUl2)가 결정하게 되는 임계전압이다. 히스테리시스 저항(RH)의 값은 히스테리시스의 적절한 양이 검출회로(302) 또는 수신기에 위치할 수 있도록 선택되어야 한다. 여기서, 히시테리시스는 신호가 낮아져서 로우로 간주되기에 충분한지를 비교기(BUl2)가 결정하는 지점과 임계값 사이의 차이다. 수신회로(302)에서의 히스테리시스의 제공은 중간주파수의 낮은 진폭의 잡음이 비교기(BUl2)의 출력에 영향을 주지 않도록 하는데 유용하다. T의 값은 Fmax에서 가장 빠른 성분의 주기이다. 이 계산은 대부분의 신호가 동등한 시간간격(예컨대 50% 듀티사이클)에 대해 on 및 off 되지 않음에 따라 유용하다. 따라서, 20% 듀티사이클의 펄스가 통과하도록 하기 위하여 저역필터는 실제 Fmax보다 l/(2 × 0.2) 또는 2.5배 큰 주파수를 취급할 수 있어야 한다. 반대로, 만약 듀티사이클이 50%보다 크다면, 저역필터는 50% 듀티사이클 Fmax에 의해 예상되는 것 보다 높은 주파수에 있는 신호의 제로부분을 취급할 수 있어야 한다. 따라서, 예컨대 75%의 듀티사이클을 가진 펄스신호는 Fmax의 l/(2 x (1-0.75)) 또는 2배가 되도록 설계된 필터를 갖추어야 한다. CLP를 위한 값은 RLP의 값의 1 ohm과 10 kohm 사이에 있도록 선택되는 것이 바람직하다. 입력신호의 주파수가 비교적 낮은 (예컨대 5OHz) 경우, 다음 값들, 즉 RTH = 10k, RH = 1OOk, RLP = 2.7k 와 CLP = 1OOpf가 기능 모듈(BUl3)을 통해 제공될 수 있다.
대신호 응용에 있어서, RH에 의한 근사에 도입된 에러는 작기 때문에, 표준 전압 분배기로 Vth에 대한 계산을 할 수 있다. 그러나, 작은 펄스신호에 대해서는 상기 에러가 심각할 수 있다. 따라서, Vth의 1%보다 큰 히스테리시스 레벨에 대해서는 다음의 방정식이 채택되어야한다:
; 여기서 Vhc는 비교기(BUl2)로부터의 하이 출력값임 (예컨대 5볼트).
상기 공식을 사용하기 위해서는 RH의 값을 알고 있어야 한다. 이와 관련하여 RH의 값은 다음 식에 따라 근사계산될 수 있다.
일단 펄스신호가 비교기(BUl2)를 통과하면, 이 신호는 캐패시터(0.001 미크
론;C8) 때문에 비교적 느린 상승시간을 갖는 반전된 0/5볼트신호이다. 신호변환을 가속시키고 그리고 보다 정확한 디지틀 형태의 신호를 실현하기 위해 히스테리시스(74LSl4;BU6)를 지닌 인버터게이트가 사용된다. 인버터게이트(BU6)는 신호의 상승시간을 개선하고 회로에 의해 수신된 펄스 트레인의 최초 배향(orientation)으로 출력펄스신호(PTB1)를 반전시킨다.
제8도(B)에 나타낸 바와 같이, 각각의 수신회로(302; PTB1..PTB5)로부터의 펄스신호출력은 프로그래머블 논리장치(Altera 1810;BU7)로 연결된다. 프로그래머블 논리장치(programmable logic device;BU7)는 5개의 내부카운터(각각의 입력펄스 채널당 1개)를 제공하기 위해 세트되고, 조합된 내부 번지지정(addressing)은 메모리맵된 I/O장치로서 번지지정 되도록 세트된다. 한편, 프로그래머블 논리장치(BU7)를 위한 내부구성은 어드레스라인에 의해 구동되는 논리에 의해 세트되는 그것들의 출력제어라인을 지닌 5개의 개별적인 8비트 카운터처럼 보인다. 프로그래머블 논리장치 출력을 위한 필요한 다중기능은 상기 장치 내부의 3상태(tri-state)버퍼를 사용함으로써 달성된다. 내부카운터는 샘플 비율의 l/2 (즉, 나이키스트 제한(Nyquist limit))보다 큰 주파수를 가진 펄스가 측정되도록 한다.
제8도(B)에는 PTB 회로(300)가 마이크로프로세서(8OC3l;BU2), 메모리 어드레스 래치(HC573;BU3) 및 8K x 8 EPROM칩(BU1)을 포함하고 있는 것이 도시되어 있다. 점퍼 "Jl"은 최고 256k까지의 EPROM들을 위하여 핀(1-2) 사이에 세트되고, 점퍼 Jl은 256K 또는 그 이상인 EPROM들을 위하여 핀(2-3) 사이에 세트된다. 마이크로프로세서 클록신호를 만들어 내기 위해 사용되는 l6MHz 크리스탈 발진기 "BY1"는 PTB 회로의 계측에러를 최소화하기 위해 +/- .005%로 정확한 것이 바람직하다. 마이크로프로세서(BU2)가 프로그래머블 논리장치(BU7)의 카운터를 엑세스할 때, 마이크로프로세서는 카운터 값을 판독하고 현재 카운트로부터 이전의 카운트를 감산함으로써 경과되어온 펄스의 개수를 결정한다. 이러한 프로시저는 최고 255개의 펄스가 동일 시간간격 사이에서 발생할 수 있도록 한다. 또한 PTB 회로(300)는 발광다이오드 "LED1"를 포함하고 있음에 주목해야 하는데, 이 다이오드는 회로가 적절히 동작될 때 턴온되는바, 필드에서의 고장수리에 도움을 준다. 녹색 빛은 제어기(100)가 PTB 회로(300)를 리세트하려고 시도하고 있음을 나타낸다. 디버그패널(44)이 PTB 회로(300)를 위한 에러바이트의 내용을 나타내기 위해 사용될 수 있다. 예컨대, 이러한 에러 바이트의 개별적인 비트들은 제어기(100)와 PTB 회로(300)간의 통신실패가 있었는지 또는 판독에러가 특정한 입력펄스채널상에 발생되었는지를 나타낸다.
제어기(100)를 이용한 통신의 경우에, 마이크로프로세서(BU2)에 연결된 "RXDATA" 신호라인은 제어기로 데이터를 보내기 위한 요구와 같이 제어기(100)로부터 신호를 수신하는데 사용된다. 반대로 "TXDATA" 신호라인은 처리된 펄스데이터를 제어기(100)로 전송하는데 사용된다.
제8도(C)는 전류구동회로(404)를 나타내고 있는데, 이 회로는 PTB 회로(300)로부터 전력을 받을 필요가 있는 펄스변환기를 위해 사용된다. 전류구동회로는 거의 17볼트에서 필드디바이스로 25밀리암페어 전류원을 제공하도록 설계되어 있다. 또한 유사한 전류구동회로가 상기 입력회로(200)와 같이 다른 입력회로보드에 채택될 수 있다. 제8도(C)에 나타낸 바와 같이, 각각의 펄스변환기는 전류드라이버(LM3l7;BUl5)와 같이 개별적인 전류드라이버를 통해 전력을 받을 수 있다.
제8도(E)는 스위치회로(306)를 나타내고 있는데, 이 회로는 PTB 회로(300)의 동작모드를 세트하기 위해 사용된다. 이와 관련하여 스위치 "BSW1" 는 PTB 회로(300)상에 5개의 채널 전부를 위한 기능을 세트한다. 예컨대 "0"의 선택은 주파수모드를 위해 사용될 수 있고, 반면에 "3"의 선택은 펄스 카운팅모드를 위해 사용될 수 있다, 그리고, "4"의 선택은 주파수와 펄스카운팅모드 양쪽이 채택되도록 사용될 수 있다. 이와 관련하여 제어기(100)는 PTB 회로(300)상에 포함된 각각의 채널을 위해 프로세스 제어컴퓨터(14)로 주파수뿐만 아니라 펄스 카운팅 데이터 한세트를 전송한다. 스위치(BSW1)의 출력라인은 제8도(B)에 나타낸 마이크로프로세서(BU2)의 "Pl" 포트로 연결된다. 따라서, 스위치회로는 PTB 회로(300)가 필드에 구성되도록 허용하며, 동시에 어떻게 데이터가 궁극적으로 처리되는가를 제어기가 알수 있는 방법(way)을 제공하고 있음을 인식해야 한다.
제8도(F) 내지 제8도(Q)에는 PTB 회로(300)의 동작과 관련된 일련의 흐름도가 도시되어 있다. 제8도(F) 내지 제8도(J)는 PTB 회로(300) 그 자체에 상주하는 소프트웨어와 관련이 있고, 제8도(K) 내지 제8도(Q)는 제어기(100)상에 상주하는 소프트웨어와 관련이 있다. 더 상세하게는, 제8도(F) 내지 제8도(J)에 의해 나타내진 소프트웨어는 1-5펄스 신호입력을 샘플링하고, 수신된 펄스의 개수를 합계하고, 경과된 시간을 계측하고, 제어기(100)로 이 데이터를 다시 전달하기 위한 것이다. 한편, 제8도(K) 내지 제8도(Q)에 나타낸 소프트웨어는 PTB 회로(300)로부터 전해진 데이터를 취하여, 이 데이터를 주파수값과 전체펄스 카운트로 변환하고, 이어서 이들 값을 요구에 따라 프로세스 제어컴퓨터(14)로 보내기 위한 것이다.
제8도(F)는 PTB 회로(300)를 위한 전체 흐름도를 나타낸다. 이 흐름도(300)는 시스템 초기설정 루틴(블록 310)을 포함하고 있는바, 제8도(G)에 설명되어 있다. 초기설정이 완료된 후에, PTB 회로(300)의 마이크로프로세서(BU2)를 위한 프로그램은 데이터통신이 제어기(100)에 의해 요구되어 왔는지를 체크한다. 만약 응답이 없다면, 프로그램은 처리될 데이터가 있는 지를 체크한다. 만약 펄스 데이터가 수신되었다면, 프로그램제어는 프로세스 데이터루틴(블록 312)으로 향하게 되는데, 제8도(H)에 나타나 있다. 일단 모든 데이터가 처리되면, 프로그램제어는 통신요구를 체크하기 위해 되돌려진다. 만약 제어기(100)가 데이터를 위한 요구를 생성했다면, 송신 데이터루틴이 호출된다(블록314). 송신 데이터루틴은 제8도(1)에 나타나 있다.
또한 제8도(F)는 인터럽트 또는 샘플링루틴(블록316)을 나타내는데, 제8도(J)에 나타나 있다. 인터럽트루틴은 어떤 다른 프로그램 제어블록에 접속되지 않은 것으로 도시되었는데, 이 인터럽트 루틴은 샘플링비율의 정확성을 보증하도록 클록 제어된다. 특히, 인터럽트루틴은 마이크로프로세서(BU2)의 "Tl" 클록신호에 의해 제어된다(제8도(G)의 블록318 참조). 이 인터럽트는 샘플링이 정확한 시간구간에서 발생하는 것을 보장하기 위해 PTB 회로(300)의 다른 프로그램된 기능 전체에 대해 우선순위를 갖는 것이 바람직하다. 본 발명의 한 태양에 있어서, 샘플링비율은 l/l999초의 간격을 가진다. 이 특별한 샘플링비율은 이 비율을 균등하게 마이크로 프로세서(BU2)의 명령/초(1,333,333)의 최대숫자로 분할하는 능력과 0.05%의 최대 에러를 유지하는 능력 때문에 유리하다고 생각된다. 다음에 검토되는 바와 같이 이 샘플링비율은 다른 명령어를 실행하기 위해 요구되는 시간의 길이를 위해 보상되는 것이 바람직하다.
제8도(J)에 나타낸 인터럽트루틴(316)의 기능은 프로그래머블 논리장치(BU7)에 카운터를 샘플링하고 다음의 해석을 위해 버퍼에 데이터를 저장한다. 이것은 연속적으로 4회(즉, 채널1을 위해 카운터를 4회 판독하고, 채널2를 위해 4회 카운터를 판독하는 등) 5개의 내부 카운터 각각을 판독하고, 마이크로프로세서(BU2)의 임시버퍼에 데이터를 저장함으로써 수행된다. 이 프로시저는 제8도(J)의 블록(320-322)에 의해 설명된다. 다음에 인터럽트루틴(316)은 데이터판독(예컨대 마름모 324-328)의 타당성을 증명하기 위해 각각의 채널과 동등한 첫번째 2개의 연속 판독(reading)을 발견하기 위한 판독을 통해 정렬된다. 다음에 루틴은 프로세스 데이터루틴(312)에 의해 사용될 데이터 (예컨대 블록 330-332)의 버퍼를 채우기 시작하고는데, 이 루틴은 인터럽트 사이의 여분의 시간에 작동된다.
제8도(H)에 나타낸 프로세스 데이터루틴(312)의 책임은 버퍼의 데이터를 고찰하고, 펄스가 도착했는지를 결정하고, 이러한 결정하에 행동하는 것이다. 이를 성취하기 위해 5개의 레지스터(블록 338-339)는 PTB 회로(300)의 각각의 채널을 위해 마이크로프로세서(BU2)에 남아 있다. 이 레지스터들을 전체 펄스, 전체 인터럽트, 인터럽트의 개수, 마지막 펄스 이후의 인터럽트, 및 이전 카운터 판독 레지스터라 한다. 상기 전체 펄스 레지스터는 제어기(100)로의 (1초의 간격 동안) 마지막 전송 이후에 카운트된 펄스의 개수를 포함한다. 이것은 PTB 회로(300)가 펄스 카운트모드일 때 프로세스 제어컴퓨터(14)로 전송된 실제값이다. 전체 인터럽트 레지스터는 전체 펄스 레지스터에서의 첫번째 및 마지막 펄스간에 경과되어온 인터럽트의 개수를 포함한다. 즉, 전체 인터럽트 레지스터는 제어기로의 이전의 전송전에 수신된 마지막 펄스(선단에지)에 의해 시작되고 제어기로의 이번의 전송전에 수신된 마지막 펄스에 의해 끝나게 되는 구간타이머를 제공한다. 마지막 펄스 이후의 인터럽트의 개수는 2kHz보다 느린 펄스 트레인(즉, 샘플비율하의 펄스 트레인)을 위해 사용된다. 이 레지스터는 마지막 펄스가 검출되었기 때문에 발생되어진 인터럽트의 개수를 저장하고 마이크로프로세서(BU2)가 전체 펄스 레지스터를 판독하고 있던 동안에 경과된 인터럽트의 수를 전체 인터럽트 레지스터가 실제로 반영할 수 있도록 한다. 이전 카운트 판독 레지스터는 프로그래머블 논리장치(BU7)로부터 얻어진 마지막 카운터 판독을 저장하고, 얼마나 많은 펄스가 샘플 사이에서 수신되었는지를 결정하기 위해 사용된다.
프로세스 데이터루틴(312)을 검토하기 전에, 인터럽트루틴(316)이 Tl클록에 의해 제어되는 타이머를 제어하기 위한 블록(336)을 포함하고 있음에 주목해야 한다. 마이크로프로세서(BU2)를 위해 세트된 명령이 실행할 하나 또는 2개의 버스 사이클을 취할 수 있는 명령어를 포함하고 있음에 따라, 정확한 주기후에 인터럽트되어야 하는 소프트웨어를 기록하고 있을 때 문제가 나타난다. 이것은 이 특별한 마이크로프로세서가 현재 명령어로 끝날 때까지 인터럽트를 제공하지는 않을 것이기 때문이다. 이러한 문제에 대한 바람직한 해결방안은 인터럽트가 발생하기 전에 경과할 버스 사이클의 개수를 뺀 "FFFF" 의 값을 가지는 마이크로프로세서(BU2)의 Tl "카운트 업(count up)" 카운터 레지스터를 로드하는 것이다. Tl카운터는 이 카운터가 "0000"이 될 때까지 카운트하게 되고, 인터럽트가 발생한다. 따라서 예컨대, 하나의 버스 사이클 명령어를 이용하여, 인터럽트루틴은 6의 T1값(인터럽트 호출을 진행하기 위해 요구되는 시간을 허락하기 위하여)으로 시작하게 되고, 반면에 2개의 버스 사이클명령어의 시작에 있어서의 인터럽트는 Tl카운터가 7의 값을 가지면서 인터럽트로 들어간다. 적절한 상수로 Tl의 값을 가산하고 Tl카운터 레지스터내에 이 값을 로딩함으로써 인터럽트간의 평균시간을 상수가 되도록 할 수 있다. 이 상수는 인터럽트들 사이에 요구되는 버스사이클의 수와 타이머와 타이머를 로딩하는 값간의 버스사이클의 수에 의해 결정된다. 따라서, 예컨대 인터럽트가 매 l/l999초(또는 매 667버스사이클)마다 요구되고, 판독과 로딩 동작사이에 5개의 버스사이클을 취하는 경우, Tl레지스터로 로드된 값은 FD69 = FFFF - 666dec + 5dec 이다.
제8도(H)에 나타낸 바와 같이, 프로세스 데이터루틴(312)은 마지막 펄스 이후의 인터럽트 개수 레지스터(블록 338) 전부를 먼저 증가시킴으로써 작동한다. 다음에 인터럽트루틴(316)에 의해 발생된 버퍼로부터의 현재의 카운트 "CC"는 펄스가 수신되어 왔는지를(마름모 340) 결정하기 위해 이전 카운트 판독값 "PC"와 비교된다. 만약 펄스가 수신되지 않았다면 상기 루틴은 다음 채널(블록 342)로부터 데이터를 처리하기 위해 이동한다. 만약 펄스가 수신되었다면, 펄스의 수는 대응하는 전체 펄스 레지스터(블록 344-348)에 가산될 것이다. 마지막 펄스 이후의 인터럽트 개수도 역시 전체 인터럽트 레지스터(블록 350)에 가산되고, 마지막 펄스 이후의 인터럽트 개수는 제로가 되며(블록 352), 프로세싱은 다음 채널(블록 354)로 이동한다.
제8도(I)는 제어기(100)로부터의 데이터 요구에 따라 호출되는 송신데이터루틴(314)을 나타낸다. 이와 관련하여 PTB 회로(300)는 먼저 제어기(100)에 디버그데이터(블록 356)의 7바이트의 내용을 보낸다. 다음에 샘플링 비율과 같이 에러바이트와 상수가 보내진다(블록 358). 계속해서 마지막 시간(초)에 판독된 전체펄스를 판독하는 동안 경과된 인터럽트의 개수가 차례로 각각의 입력채널을 위해 보내진다(블록360). 결국, XSUM 바이트를 제외하고 모든 전송된 바이트 "XSUM"의배타적 OR 합이 보내진다(블록 362). 제8도(K)는 PTB 회로(300)로부터 수신된 데이터를 처리하기 위해 제어기(100)에 사용된 소프트웨어에 대한 전체 흐름도(364)를 나타낸다. 이 흐름도(364)는 데이터입력 루틴(블록 366)으로 시작되는데, 제8도(L)에 나타나 있다. 만약 제어기(100)가 PTB 회로(300)로부터 데이터를 얻을 수 없다면, 제어기는 PTB 회로를 3초동안 리세트모드로 두고(블록 368), 하나씩 에러를 증가시키며(블록370), 이러한 아날로그 입력의 그룹이 배드 데이터(bad data)를 가지고 있음을 나타내는 플래그와 함께 프로세스 제어컴퓨터(14)로 이전 시간(초)의 데이터를 보낸다(블록372).
데이터가 에러없이 수신되어왔다면(마름모 374), 프로그램은 다음에 원데이터를 전체펄스(블록 376)와 의사플로팅 포인트 형식양쪽으로 변환시킨다. 전체 펄스 카운팅모드의 경우, 프로그램은 수신된 펄스의 개수를 취하여 이 값을 아날로그 입력테이블 "AI XRAM"에 배치한다(블록 376). 이 변환루틴이 제8도(M)에 나타나 있다. 주파수모드(블록 378)의 경우, 전체펄스와 전체 인터럽트 데이터를 의사-플로팅 포인트값으로 변환시키기 위하여 수학적 조작이 수행된다. 이것은 24비트 중간 결과를 형성함으로써 시작하는 2부분으로 된 프로세스이며, 주파수를 엔토딩하는데 사용된 16비트 의사-플로팅 포인트 형식으로 이 결과를 변환시킴으로써 완료된다. 의사-플로팅 포인트개수는 4의 지수와 소수부 가수로 구성된 16비트 값이다. 지수는 원래의 주파수(소수를 계속가지면서)로 나누어 질 수 있는 4의 가장 적은 거듭제곱을 하나 적게 나타낸다. 이렇게 하면, 하나를 나누는 것이 허용되지 않기 때문에, 하나 보다 적은 수가 표시되는 것이 방지된다. 그러나, 이 프로시저는 최고65535개가 나타내지도록 허용한다. 예컨대, 7692Hz의 주파수의 경우, 이 주파수 값으로 나누어 질 수 있으며 여전히 소수가 존재하는 4의 가장 작은 거듭제곱은 47= l6384이다. 4의 거듭제곱의 지수가 "하나 적은(less one)" 형식으로 저장되기 때문에, 플로팅 포인트 개수의 상위 3비트에 저장된 지수의 값은 6이다. 가수의 값은 지수에 저장된 4의 거듭제곱의 소수로서의 주파수이다. 이는 8191(1FFFh, 여기서 "h"는 16진수에 대한 값)의 소수인 13비트 정수이다. 즉, 8191로 가수의 값을 나누고 이 값을 지수에 하나를 더한 4의 거듭제곱으로 곱하면 원래의 주파수가 얻어진다. 따라서 상기 예의 경우 소수부의 가수는 다음과 같다.
이 소수부 가수는 십진수 3845 또는 OFO5h로서 13개의 가용 비트에 저장된다. 그러므로, 7692Hz의 주파수를 위해 생성된 최종 의사-플로팅 포인트값은
의사-플로팅 포인트 변환 프로세스의 개략도가 제8도(N)에 나타나 있다. 이와 관련하여 제8도(0)는 펄스 데이터의 개수를 24비트 가수로 변환시키기 위한 블록(380)의 상세한 흐름도를 나타낸다. 마찬가지로, 제8도(P)는 24비트 가수를 16비트 의사-플로팅 포인트 형식으로 변환하기 위한 블록(382)의 상세한 흐름도를 제공한다. 그리고, 제8도(Q)는 주파수값이 1Hz 보다 작을 때 중재를 하기 위한 블록(384)의 흐름도를 나타낸다.
제8도(0)에 관해서는 다음에 주목해야 한다. 어떠한 펄스도 없다면(블록386), 24비트 주파수 가수값은 0으로 저장된다(블록 388). 만약 펄스의 개수(즉, 전체펄스)가 255 미만이라면, 지수의 값 "EXP"는 0으로 세트되고 상수 "K"는 8OOh로 세트된다(블록 390). 변수 "RPS"는 초당 판독을 나타내는바, 이는 매초 발생하는 인터럽트의 개수(즉, l999dec)이다. 상수(8OOh)와 상수(O8h)는 적절한 위치로 24비트 응답을 넣기 위해 필요하며 따라서 16비트 의사-플로팅 포인트값으로 변환하고 있을 때 해상도의 손실은 전혀없다. 이 상수들은 16비트 의사-플로팅 포인트값에 속하는 12번째 비트 위치로부터 1의 값을 넣게 된다. 또한 이들 상수의 용도는 그것들이 나눗셈 루틴의 제한을 넘기전에 보다 많은 비트가 계산되기 때문에 보다 큰 정확도를 허용할 수 있는 추가 이득을 가진다.
제8도(P)의 흐름도(382)에 나타낸 바와 같이, 의사-플로팅 포인트값으로의 변환은 24비트의 14번째와 그 이상의 비트를 폴링(polling)함으로써 수행된다. 만약 이들 중의 어느 것이라도 0이 아니라면, 그 결과는 2 자리씩 오른쪽으로 이동되고(즉, 4로 나누어지는), 지수는 하나씩 증가된다(블록 392). 이 쉬프팅 프로세스는 14,15 및 16 비트가 0이 될 때까지 계속된다. 일단 상기 결과가 13비트로 경감되면(블록 394), 이동된 최종 비트는 13비트로 다시 순회한다. 상기 비트가 하나일 때, 이 비트는 13비트 가수에 가산된다(블록 396). 이렇게 하면 의사-플로팅 포인트 개수의 에러가 0.025%로 줄어든다. 마지막으로, 지수는 16비트 주파수값의 상위 3비트(16,15,14)에 OR된다(블록 398). 마지막 결과가 65535보다 크다면, 출력은 포지티브 전체값(65535)으로 끌어내진다. 만약 마지막 결과가 1 이하라면, 출력은 1 의 표시로 끌어내지는데, 이는 제8도(Q)의 흐름도에 나타나 있다. 다음에 상기 프로세스 제어컴퓨터(14)는 실주파수값을 얻기 위해 많은 시간(초)에 걸쳐 펄스를 평균할 수 있다.
제9도(A) 내지 제9도(D)는 본 발명에 따른 다기능 브리지회로(400)를 위한 도면을 나타낸다. 이 브리지회로(400)는 5개의 개별적인 온도 또는 무게값을 계측하기 위해 사용될 수 있다. 특히, 이 브리지회로(400)는 회로가 제9도(D)의 스위치("CSW1")를 사용하는 온도계측 구성에 배치될 때 표준 프라티늄 저항 온도장치("RTDs") 또는 헤비듀티(RTD's)를 수용하도록 설계된다. 한편, 브리지회로(400)가 무계 계측 구성에 배치는 경우, 이 회로는 웨이트셀(예컨대 A-D 여기(excitation)와 B포지티브를 갖춘 B-C mv입력)의 배선 단자접속을 수용한다. 제9도(D)에 나타낸 바와 같이, 또한 스위치셋팅에 의해 브리지회로(400)는 온도가 섭씨 또는 화씨형식으로 기록되어야 하는 것을 제어기(100)에 알릴 수 있도록 할 수 있다.
제9도(C)는 온도/무게 변환기로 전력을 공급하기 위한 전압원회로(402)를 나타낸다. 제9도(B)는 상기 변환기 각각을 위한 브리지회로에 제공된 다중-배선 입력신호 필터링을 나타낸다. 제9도(A)에 나타낸 바와 같이 이들 입력신호는 멀티플렉서(5O6A;CU1-CU2)로 향한다. 멀티플렉서(CU2)로부터의 출력신호는 연산증폭기(3l4OA;"CU5")로 연결되는데, 이 연산증폭기는 전압팔로워 구성임이 나타나 있다. 연산증폭기(CU5)로부터의 출력신호("MAI-L")는 제어기(100)의 메인 멀티플렉서(U11)로 전송된다.
또한 멀티플렉서(CU2)로부터의 출력신호는 차동증폭회로(AD52l;CU3)로 하나의 입력을 제공한다. 차동증폭회로(CU3)로의 다른 입력은 멀티플렉서(CU2)로부터 수신된다. 차동증폭기(CU3)로부터의 출력은 연산증폭기(3l4OA;CU4)를 통해 증폭되고 신호("MAI-H")처럼 제어기(100)의 주 멀티플렉서(U11)로 향하게 된다. 또한 제8도(A)는 정밀 저항 어셈블리(S2CH; "CU6")를 나타내고 있는데, 이 어셈블리는 교정과 이득을 위해 사용되는 한 세트의 저항을 구비한다.
제10도(A)는 특히 디지털 출력신호를 위한 어보트 회로를 설명하기 위해 나타낸 3중 중복 필드 컴퓨터의 단순화된 부분 블록도이다. 한 세트의 어보트 회로가 디지털 출력회로(500-504) 각각에 위치해 있다. 제10도(A)로부터 알 수 있는 바와 같이, 각각의 제어기(92-96)는 자체로 디지털 출력회로를 구비한다. 따라서, 디지털 출력신호가 필드로 보내질 때마다 필드컴퓨터 유니트(12)는 3개의 중복 디지털 출력회로(500-504) 한 세트를 포함하고 있음을 이해해야 한다. 이들 중복 디지털 출력회로 각각이 다수의 출력신호 채널(예컨대 1-10 개별적인 출력신호 채널)을 가지는 것이 바람직하며, 그러한 채널중 하나만이 설명을 목적으로 제10도(A)에 나타나 있다.
각각의 제어기(92-96)는 각 디지털 출력신호가 필드로 보내지도록 그들 각각의 디지털 출력회로(500-504)로 신호("SET DODC")를 전송한다. 이들 각각의 SET DODC 신호는 상기 각각의 제어기(92-96)에서 개별적으로 수행되는 중재 프로세스의 결과를 나타낸다. 상기한 바와 같이, 프로세스 제어컴퓨터(l4a-l4b)로부터 필드컴퓨터 유니트(12)에 의해 수신된 디지털 출력값 신호는 각각의 중복제어기(92-96)와 공유된다. 어느 특별한 디지털 출력값(즉, 하이 또는 로우 레벨)의 전송이 완전히성공적이고 모든 제어기(92-96)가 정확하게 이 값을 처리해 왔다면, "SET DODC-L", "SET DODC-M" 과 "SET DODC-R" 신호가 일치한다. 본 명세서에서, "L", "M", 및 "R"은 신호가 왼쪽, 중간, 및 오른쪽 제어기로부터 비롯되었음을 표시하기 해 사용되는 것일 뿐이다. 그러나, 이들 SET DODC 신호가 동일하지 않은 경우도 있을 수 있다. 게다가 특별한 디지털 출력회로로부터의 디지털 출력신호가 필드로 전송되지 않도록 하는 것이 바람직한 경우도 있을 수 있다.
제10도(A)에 나타낸 바와 같이, 디지털 출력회로(500-504) 각각으로부터의 출력컨덕터(couductor)는 공통노드(506)에서 함께 연결되는데, 이 노드는 디지털 방식으로 제어되는 장치(508;예컨대 솔레노이드)에 연결된다. 이것은 디지털 출력회로(500-504)중 어느 하나로부터의 출력신호가 하이(High)라면, 상기 장치(508)는 비록 다른 2개의 디지털 출력회로가 로우(Low) 출력신호를 발하고 있더라도 하이입력신호를 수신할 수 있다. 그러나, 이러한 상황은 중복 어보트 회로(510-514)를 조합하여 사용함으로써 본 발명에서는 발생이 방지된다.
제10도(A)에 나타낸 바와 같이, 각각의 어보트 회로(510-514)는 전기적으로 제어되는 3개의 스위치(516-520;MOSFET 디바이스) 한 세트를 포함한다. 상기 스위치(516)는 SET DODC신호에 의해 제어된다. 그러나 스위치(516)가 닫히더라도, 하이출력신호(예컨대 26볼트)는 스위치(518-520)중 적어도 하나가 역시 닫히지 않는다면 디바이스(508)로 전송될 수 없다. 스위치(518-520)는 다른 2개의 이웃하는 제어기에 의해 생성된 "ABORT" 신호로부터 제어된다. 예컨대 어보트 회로(510)의 경우에, 스위치(518)는 제어기(96)로부터의 "ABORT R-L" 신호에 의해 제어되고,스위치(520)는 제어기(94)로부터의 "ABORT M-L" 신호에 의해 제어된다. 제6도(C)에 나타낸 바와 같이, 이들 ABORT 신호들은 각각의 제어기의 마이크로프로세서(U4O)에 의해 개별적으로 결정된다.
따라서, 제어기(92)가 필드로 High SET DODC-L 신호를 전달하기 위하여, 제어기(94;High ABORT M-L신호를 통한) 또는 제어기(96; High ABORT R-L 신호를 통한)중의 어느 한쪽의 병행(concurrecce) 또는 일치를 필요로 한다. 이렇게 하여, 제어기(92-96)에 의한 소프트웨어 중재결정은 어보트 회로(510-514)를 통해 디지털 출력회로(500-504)에서 집행된다. 만약 제어기(92)로부터의 특별한 디지털 출력신호가 필드로 전송되는 것을 방지해야한다고 제어기(94-96)가 결정하면, 각각의 제어기(94-96)는 그 특별한 디지털 출력신호를 위하여 로우 ABORT 신호를 발생하게 되며, 이 신호는 어보트 스위치(518-520)를 개방시킨다.
각각의 디지털 출력회로(500-504)는 디지털 출력회로(500)를 위한 테스트라인(522)같은 "TEST"라인을 포함한다. 다이오드(524)와 같은 다이오드는 또한 디바이스(508)에 의해 나타낸 공통전압으로부터 디지털 출력회로(그리고 TEST 라인)을 분리하기 위해 역시 포함된다. 또한, TRACK 피드백 라인(526)이 디바이스(508)로의 입력으로 나타낸 실제 디지털 상태를 각각의 제어기가 발견할 수 있도록 하기 위해 제공된다. 제11도(A) 내지 제11도(C)를 참조하면서 보다 상세히 설명되는 바와 같이, 디지털 출력회로(500-504)는 비강제적 테스트를 용이하게 하도록 설계된다. 디지털 출력회로(500-504)를 비강제적으로 테스트하는 방법이 제19도(A) 내지 제19도(M)과 관련하여 설명될 것이다.
제10도(B)는 본 발명에 따른 중복 아날로그 출력회로(600-604)의 블록도이다. 상세한 블록도는 아날로그 출력회로(600)를 위한 것이지만, 이웃하고 있는 제어기를 위한 동일한 아날로그 출력회로(602-604)를 설명하기 위해 하나의 블록이 사용된다. 아날로그 출력회로(600)에 대한 블록도에 나타낸 세부묘사 때문에, 이 회로를 위한 도면의 검토는 제12도(A) 내지 제12도(G)에 나타낸 바와 같이 어느 정도 생략될 수 있다. 좌우간 제10도(B)는 아날로그 출력회로(600)가 아날로그 출력회로(예컨대 5개의 독립채널)에 포함된 각각의 아날로그 출력신호 채널을 위한 어보트 회로(606)를 포함한다. 어보트 스위치(DN1-DN2)가 스위치(520-518)의 위치에 일반적으로 대응하는 한에 있어서는 어보트 회로(606)는 상기한 어보트 회로(510)와 유사하다. 그러나, 증폭기는 스위치(516)의 대신에 사용되고, 디지털 신호보다는 오히려 아날로그 신호로서 필드로 전송된다. 그리고, 옵토 아이솔레이터들이 MOSFET 대신에 어보트 스위치로 사용된다. 따라서, 각각의 중복 아날로그 출력회로(600-604)는 어보트 회로가 디지털 출력회로(500-504)에 제공되는 것과 동일한 이유로 어보트 회로를 구비하고 있음을 인식해야 한다.
아날로그 출력회로(600)는 그 제어기로부터 명령을 수신하는데, 이 제어기는 제어기(100)로서 제10도(B)에 일반적으로 도시되어 있다. 아날로그 출력회로(600)는 그 제어기로부터 각각의 채널을 위해 바람직한 출력값을 수신하고, 아날로그 출력회로는 이 출력값이 어떻게 얻어졌는지를 결정하기 위해 제어기에 의해 남겨진다. 이러한 이유와 그리고 그 자신에 있어서 비 강제적 테스트를 집행하는 아날로그 출력회로의 능력 때문에, 아날로그 출력회로는 제어기(100)가 그 동안에 다른필요한 기능을 수행하도록 하는 "smart" 회로라고 생각된다. 이들 목표를 이루기위해, 아날로그 출력회로(600)는 마이크로프로세서와 그리고 제어기(100)로부터 비교적 독립적으로 동작하기 위해 블록(610)에 의해 나타낸 바와 같이 필요한 지원회로가 공급된다.
본 발명에 따른 지능 독립성(intelligent independence)을 위한 능력은 어떻게 공통 필드 디바이스가 동시에 3개가 동작하는 아날로그 출력회로로부터 공통 출력값으로 구동되는지를 결정한다는 점 때문에 중요하다. 이러한 것은 여기서처럼 변화하는 조건에 대해 급격한 반응이 요구되는 경우에 특히 어려운 문제이다. 이와 관련하여 각각의 아날로그 출력회로(600-604)는 각각의 채널상에 바람직한 출력값을 얻기 위해 그들의 개별적인 제어기(92-96)에 의해 명령을 받게 된다. 따라서, 각각의 아날로그 출력회로(600-604)는 각각의 프로세스 제어사이클(예컨대 1초)당 1번씩 그들 자신의 제어기에 의해 자신들에 독립적으로 주어진 목표출력값에 따라 필드 디바이스를 구동하고자 한다. 따라서, 내고장성을 위하여 프로세스 제어사이클 동안 서로 비교적 독립적으로 아날로그 출력회로가 동작할 것이 요구되기 때문에 불안정한 출력이 초래될 수 있다. 그러나 본 발명에 따라, 지능적이지만 아직 독립적으로 출력을 제어하는 방법이 마이크로컴퓨터 제어회로(610)를 매개로 각각의 아날로그 출력회로를 위해 제공된다. 이 방법에 따르면, 최적으로 출력레벨을 공유할 수 있을 뿐만 아니라 각각의 아날로그 출력회로는 변화하는 상태에 대해 고속으로 대응할 수 있다.
아날로그 출력회로를 위한 마이크로프로세서는 실제적으로 동작하는 각각의출력채널을 위해 다중화된 출력 신호전압을 디지털-아날로그 컨버터회로(612)로 디지털적으로 전송한다. 디지털-아날로그 컨버터회로(612)로부터의 아날로그 출력값은 증폭회로(614)를 통해 순차적으로 처리되어, 멀티플렉서회로(616)로 보내진다. 다음에 멀티플렉서회로(616)는 "AO-1" 신호를 위한 어보트 회로(606)처럼 적절한 어보트 회로로 증폭된 아날로그 출력신호를 향하게 한다.
디지털 출력회로(500-504)를 위한 어보트 회로(510-514)의 경우처럼, 아날로그 출력회로를 위한 각각의 어보트 회로는 피드백신호를 만들기 위한 장치를 포함한다. 어보트 회로(606)에 대하여, 이 피드백 장치는 저항(618)과 한 쌍의 신호라인(620-622)으로 구성되어 있는 것이 도시되어 있다. 신호라인(620)은 저항(618)의 상류측에 하이 피드백신호 "MEH-1"를 공급하고, 신호라인(622)은 저항(618)의 하류측에 로우 피드백신호 "MEL-1"를 공급한다. 또한, Track 저항(624)과 한 쌍의 신호라인(626-628)이, 아날로그 제어출력 디바이스(630)에서 수신되는 실제적인 아날로그 출력신호값을 각각의 아날로그 출력회로(600-604)가 발견할 수 있도록 하기 위해 필드컴퓨터 유니트(12)에 의해 제공된다. 신호라인(626)은 Track 저항(624)의 상류측에 하이 트랙신호 "AOT-H-1"를 공급하고, 신호라인(628)은 저항(624)의 하류측에 로우 트랙신호 "AOT-L-1"를 공급한다. 그리고, 어보트 회로(606)는 즉각적으로 증폭기(608)를 따르는 피드백신호 "OAT-1"를 공급하는 신호라인(632)을 포함하고 있는 것이 도시되어 있다. 이렇게 하여 지금까지의 아날로그 출력회로(600)의 작동성능이 후술하는 비강제적 테스트 방법에 따라 개방상태에서 어보트 스위치(DN1-DN2) 양쪽을 사용하여 의해 테스트될 수 있다.
제10도(B)에 나타낸 바와 같이, 아날로그 출력회로(600)는 차동증폭기(638)를 피드(feed)하는 한 쌍의 멀티플렉서회로(634-636)를 포함한다. 멀티플렉서회로(634-636)는 피드백과 트랙저항을 가로지르는 전압강하를 나타내는 신호를 생성하기 위하여 차동증폭기(638)로의 입력으로서 대응하는 하이/로우 신호를 연속적으로 한쌍이 되도록 아날로그 출력회로의 마이크로프로세서로부터의 어드레스 명령하에서 동작하는데, 상기 신호는 필드로 보내지고 있는 출력에 정비례한다. 따라서, 예컨대 MEH-1신호는 멀티플렉서(634)의 출력에서 나타나며 동시에 MEL-1신호가 멀티플렉서(636)의 출력에서 나타나게 된다. 증폭단계 이후에, 최종 멀티플렉서(640)는 이들 차동전압신호, "OAT-1..OAT-5" 신호 또는 아날로그-디지털 컨버터회로(642)에 대해 접지에 관련되는 멀티플렉서 출력을 잇달아서 전송하도록 채택된다. 아날로그-디지털 컨버터회로(642)는 분석을 위해 마이크로프로세서 블록(610)에 차례로 연결된다.
아날로그 출력회로(600)는 필드에 대해 비강제적인 방법으로 그 출력을 테스트할 수 있는 5 채널(0-22ma) 회로 디바이스가 바람직하다. 아날로그 출력회로(600)도 고속의 디바이스로 설계되어, 3개의 중복 아날로그 출력회로(600-604)중의 하나가 고장나는 경우, 다른 아날로그 출력회로가 비교적 짧은 시간 이내(예컨대 8Omsec)에 추가적인 로드를 얻게 된다. 아날로그 출력회로(600)의 동작은 비례정수"PI" 제어루프를 제공함으로써 가장 잘 기술될 수 있는데, 회로는 제어기(100)로부터 수신된 출력값(예컨대 설정값)에 대응한다. 이 출력값은 최대 출력능력(예컨대 22ma)의 일부분인 것이 바람직하다. 상기한 바와 같이, 실제의 필드출력은 트랙저항(624)을 가로지르는 중복 아날로그 출력회로(600-604) 각각에 의해 계측되는바, 트랙저항은 필드컴퓨터 유니트(12)의 수동소자보드상에 위치한다. Track 신호상에 나타날 수 있는 잡음을 필터링하기 위해 마지막 Track값과 상기 계측값간의 차의 l/4이 마지막 Track값에 가산된다. 만약 그 차가 8% 이상이라면, 이전 트랙값은 큰 에러에 대한 시스템의 반응을 가속시키기 위해 완전히 대체된다.
아날로그 출력회로(600)의 소프트웨어 제어루프는 트랙저항(624)을 가로지르는 전압과 원하는 출력값간의 비교를 포함한다. 바람직한 출력과 계측된 Track값간의 에러의 일부분(최고 l/4 까지)은 다음에 바람직한 디지털-아날로그 출력값(즉 정수값)에 가산되고, 아날로그 출력회로(600)를 위한 마이크로프로세서의 메모리에저장된다. 이 증진된 값은 디지털-아날로그 컨버터회로(612)로 전송되어 지명된 어보트 회로(예컨대 어보트 회로 606)에 대해 멀티플렉서(616)를 통해 처리된다. 아날로그 출력회로(600)는 다음에 "ME" 피드백저항(618)을 가로지르는 전압강하를 계측함으로써 필드 디바이스(630)에 공급된 전체 출력에 대해 그 기여를 결정한다. 이는 아날로그 출력회로(600)가 후술하는 비강제적 테스트 방법동안 필드디바이스(630)로 출력의 100%를 제공하고 있음을 보증한다. 또한 아날로그 출력회로(600)는 연산증폭기(608)가 적절히 동작하고 있는지를 결정하기 위해 OAT신호와 디지털-아날로그컨버터(616)(제10도(B)에 나타낸 신호("DAC-OUT")를 통한)의 출력을 비교한다. 예컨대, 너무 과다한 전력이 필드 디바이스(630)로 전송되고, 이 채널의 출력이 0이여야 하지만, OAT계측은 0이 아님을 나타는 경우, 아날로그 출력회로(600)는 이 채널을 디스에이블시키고 제어기(100)로 "OAT<>DAC"신호를 알린다.
또한 아날로그 출력회로(600)가 너무 많은 전력을 필드로 보내는 경우에 어보트 스위치(예컨대 어보트 스위치(DN1-DN2))가 자동적으로 적용된다. 어보트 스위치를 개방하기 위한 주경로는 채널이 0출력을 갖도록 명령받을 때 어보트 스위치가 채널을 위해 개방되도록 하는 0출력을 보증하는 메카니즘이다. 어보트 스위치를 개방하기 위한 2차 경로는 아날로그 출력회로(600-604)의 하나 또는 그 이상의 요구로부터 얻어진다. 예컨대, 아날로그 출력회로를 위한 특별한 출력채널이 2% 높은 경우에, 아날로그 출력회로 자체의 분석에 따라 이 아날로그 출력회로는 어보트 스위치(DN1-DN2)중의 어느 하나를 개방함으로써 이 위반하는 출력채널을 어보트시키도록 그 제어기에 요구할 것이다. 그러나, 이들 어보트 스위치가 이웃하는 제어기에 반응함으로써, 어보트 요구정보 교환은 제어레벨에서 요구된다. 본 발명의 한 형태에 따르면, 각각의 제어기(92-96)간의 어보트 요구의 교환은 다음 출력통신 사이클(예컨대 다음 프로세스 제어사이클) 동안 일어난다. 만약 아날로그 출력회로(600-604)중 하나를 위한 특별한 채널이 디스에이블되어야 한다는데 어느 2개의 제어기(92-96)가 의견일치된다면, 이들 제어기는 위반 아날로그 출력회로상에 어보트스위치(DN1-DN2)를 개방하기 위해 필요한 신호를 발생시킨다. 만약 아날로그 출력회로가 특별한 출력채널상에서 어보트를 요구하고 이웃하는 제어기중 어느 것도 동일 채널상에 어보트를 요구해오지 않았다면 어보트 불일치가 발생한다. 이들 불일치는 특별한 채널상의 연속적 불일치의 개수를 카운트하고 상기 카운트가 소정의 값(예컨대 십진수32, 16진수 20)을 초과할 때 프로세스 제어컴퓨터(l4a-l4b)로 에러를 플래그함으로써 처리되는 것이 바람직하다. 특별한 채널상에 어보트불일치가 없는 경우, 채널을 위한 카운터는 제로가 된다. 어보트 스위치를 개방하기 위한 2차 경로는 중재결정이 각각의 제어기(100)에 의해 만들어지도록 하고 있음을 인식해야 한다. 따라서, 3개의 아날로그 출력회로(600-604)중의 어느 것이 이웃하는 제어기에 의해 다른 아날로그 출력회로로 보내진 중재된 출력값인지를 알 필요는 없다.
그리고, 아날로그 출력회로가 무반응인 것으로 판단되면, 이웃하는 제어기는 필드로부터 이 회로를 분리하기 위하여 무반응인 아날로그 출력회로의 모든 채널을 위해 어보트 스위치를 개방시킨다. 이와 관련하여 만약 스마트 아날로그출력보드가 통신을 하지 않거나, 회로의 메모리테스트가 실패했거나, 디지털-아날로그 컨버터회로(612)가 고장났거나, 또는 아날로그-디지털 컨버터회로(642)의 테스트가 실패했다면, 아날로그 출력회로는 무반응인 것으로 간주된다. "무반응"인 아날로그 출력회로를 책임지는 제어기(100)는 그 자신의 아날로그 출력회로의 손실 때문에 이웃하는 아날로그 출력회로의 어보트 스위치를 개방시키지 않게 된다. 오히려 이 제어기는 만약 이들 다른 어보트 스위치가 보증되는지를 결정하기 위하여 제어기끼리의 통신을 검사한다. 이것은 3-2-0 불이행 프로시저라기보다는 오히려 3-2-1 불이행 시나리오를 허용한다. 따라서, 하나의 작동하는 아날로그 출력회로만이 남아 있는 경우에는, 출력이 제로로 명령되지 않는한 그 아날로그 출력회로를 위한 동작 채널상에서의 어떠한 어보트도 개방되지 않게 된다.
제어기끼리의 통신 불이행의 경우에, 통신을 하지 않았던 제어기(100)에 대응하는 아날로그 출력회로를 위한 어보트 스위치는 개방되지 않게 된다. 이 절차는후술하는 불이행 SAFE/LAST 메카니즘이 적절히 동작하도록 허용한다. 통신가능한 2개의 남아있는 제어기는 이중 중복 필드컴퓨터 유니트로서 작동하게 되고, 여기서 하나의 어보트 요구만이 어보트 회로를 개방하도록 요구된다. 만약 이웃하는 제어기 양쪽이 통신하는데 실패한다면, 어보트 요구가 제공되지 않게 될 것이고, 소프트웨어 중재에 있어서의 불이행 SAFE/LAST 선택은 모든 아날로그 출력회로를 위해 필드컴퓨터 유니트로부터 출력을 제어한다.
일단 한쌍의 어보트 스위치가 과도한 고출력 때문에 개방되었다면, 아날로그 출력회로의 교체가 감지되거나 또는 그 아날로그 출력회로를 위한 제어기(100)가 재시작된 후에만 이들 어보트 스위치가 닫히는 것이 바람직하다. 특별한 출력채널을 위한 3중 어보트 요구가 있는 경우 이러한 절차에 대한 예외가 발생한다. 이러한 예외가 발생하는 경우, 상기 채널을 위한 모든 어보트 스위치는 필드에 대한 전원 손실을 방지하기 위해 다시 닫힌다.
상기 검토로부터, 하나 이상의 출력채널과 관련된 불이행은 적절한 어보트 스위치(DN1-DN2)를 개방하기 위해 2개의 프로세스 제어 사이클을 취할 수 있다. 따라서, 예컨대 1초의 전체 프로세스 사이클이 제공되는 경우, 1초의 시간구간은 아날로그 출력회로로부터 제어기로의 어보트 요구를 통신하기 위해 사용되며, 그 다음 다른 1초의 시간구간은 제어기끼리의 통신을 허용하는데 사용된다. 그럼에도 불구하고, 필드에 대한 제로출력상에서의 어보트는 제어기(92-96)가 프로세스 제어컴퓨터(l4a-l4b)로부터 제로출력값을 수신하는 동일한 사이클에서 발생한다.
제11도(A) 내지 제11도(C)는 디지털 출력회로(500-504)를 나타낸다.제11도(A)는 어보트 회로(510)를 나타내고 있는데, 제10도(A)에 개략적으로 도시되어 있다. 이러한 어보트 회로는 필드컴퓨터 유니트(12)의 각각의 디지털 출력채널을 위해 제공된다. 즉, 10개의 디지털 출력채널을 가지는 필드컴퓨터 유니트에 있어서, 10개의 어보트 회로 한 세트는 3개의 제어기(92-96)의 각각에 대해 제공되는바, 전체 30개의 어보트 회로가 제공될 수 있다.
제11도(A)는 스위치(516-520)가 각각 MOSFET(IRFDl2O) 트랜지스터를 구비하는 것을 나타낸다. 이들 각각의 트랜지스터는 트랜지스터(516)를 위한 옵토아이솔레이터(PS26O3;DU1)와 같은 옵토 아이솔레이터로부터 그들의 게이트 신호를 수신한다. 옵토아이솔레이터((DU1)를 위한 "SET_DOC-1" 입력신호는 일반적으로 제1O도(A)의 "SET DODC-L" 신호에 대응한다. 유사하게, 입력신호 "ABORT-1"은 제10도(A)의 "ABORT R-L" 신호에 대응하고, 입력신호 "ABORT2-1"는 제10도(A)의 신호 "ABORT M-L"에 대응한다. 제10도(A)의 저항(518-520)의 병렬접속은 상기 2개의 트랜지스터의 드레인 및 소스단자가 함께 연결되어 있다는 사실에 의해 제11도(A)에 입증되어 있다. 트랜지스터(516)의 소스단자는 트랜지스터(518-520)의 드레인 단자에도 역시 연결되어 있고, 트랜지스터(516)의 트레인 단자는 퓨즈("DF1")를 통해 +26볼트 전원공급장치("DPS1"; 제11도(C)에 나타냄)에 연결되어 있다. 즉, 트랜지스터(516)는 양 트랜지스터(518,520)와 직렬로 연결되어 있다. 풀다운저항(1OOK;RP7)과 다이오드(1N459A;524)는 다이오드(524)의 하류측에 "DODC-1"으로 명명된 출력라인을 제공하기 위하여 트랜지스터(518-520)의 소스 단자에 연결된다. 따라서, 트랜지스터(516)가 HIGH SET_DODC-1 신호에 의해 턴온되고 트랜지스터(518-520)중적어도 하나가 그들의 개별적인 게이트 신호에 의해 턴온될 때, 이들 트랜지스터의 도통상태는 +26볼트의 전원공급장치로부터 DODC-1 출력라인으로 전류가 흐르도록 허용한다. 트랜지스터(516)의 도통이 필드 디바이스(508)로 전력을 전달하는데 요구되기 때문에 이 저항은 전원스위치라고 할 수 있다. 반대로 트랜지스터(518-520)는 어보트 스위치라 할 수 있는데, 전원스위치가 닫혀 있을 때 (즉, 트랜지스터(516)가 턴온상태 또는 도통상태일 때), 이들 트랜지스터는 필드 장치로 전력이 전송되는 것을 방지하거나 금지하도록 협동하여 작동하기 때문이다.
상기한 바와 같이, 디지털 출력회로(500-504)는 비강제적 테스트가 수행될 수 있도록 설계되어 있다. 이와 관련하여 어보트 회로(510)는 트랜지스터(516)의 드레인 및 소스단자를 가로질러 병렬로 연결된 저항(10K;RP1)과, 트랜지스터(520)의 드레인 및 소스단자를 가로질러 병렬로 연결된 저항(10K;RP3)을 포함한다. 그리고, 제11도(A)는 TEST-1 라인(522)이 풀다운저항(RP7)과 다이오드(524)의 애노드 사이와 그리고 트랜지스터(518-520)의 소스 단자간에 제공되는 노드 또는 접합에 연결되고 있음을 나타낸다. 따라서, 저항(RP1, RP3, RP7)은 트랜지스터(516-520)가 선택적으로 구동되도록 하여 전압변화가 TEST-1 라인을 통해 검출되도록 할 수 있는 전압분배네트워크를 제공한다. 예컨대, 트랜지스터(516)가 턴온되면, 저항(RP1)은 이 트랜지스터에 의해 효율적으로 단락 선로(short-circuited)화됨으로써 TEST-1라인상의 전압이 상승한다. 유사하게 트랜지스터(518-520)중의 어느 하나가 턴온되면, 저항(RP3)이 도통되는 트랜지스터에 의해 효과적으로 단락 선로화됨에 따라 TEST-1라인상에서의 전압은 상승한다. 그럼에도 불구하고, 트랜지스터(516)와 트랜지스터(518-520)중의 하나가 도통상태로 절환되지 않는한 실질적인 전류는 DODC-1라인을 통해 흐르도록 허락되지 않는다.
제11도(B)는 디지털 출력회로(500)를 위한 피드백회로(526)를 나타낸다. 피드백회로(526)는 어드레스라인(HDEV-0..HDEV-3)과 이네이블라인(HP3-5)을 통해 제어기(100)에 의해 어드레스되는 한쌍의 멀티플렉서회로(DU33, DU35)를 포함한다. 각각의 디지털 출력채널을 위한 TEST라인들은 멀티플렉서(DU33)에 입력신호로서 연결되고, 이들 채널 각각에 대한 DODC신호는 멀티플렉서(DU35)에 입력신호로서 연결된다. 멀티플렉서(DU33, DU35)로부터의 출력라인(528-530)은 각각 함께 접속되고, 이들 출력라인상의 다중 피드백신호는 직렬로 연결되는 한쌍의 연산증폭기(3l4OA;DU32, DU3l)를 통해 처리된다. 따라서, 각각의 디지털 출력회로(500-504)는 그들의 개별적인 제어기(92-96)로 피드백신호의 연속적인 다중 스트림을 제공한다.
제l2도(A) 내지 제12도(F)는 아날로그 출력회로(600-604)의 개략도이다. 제12도(A)는 제10도(B)에 블록(610)으로서 나타낸 마이크로컴퓨터 회로의 개략도이다. 이 마이크로컴퓨터 회로(610)는 l6MHz 마이크로프로세서(8OC3l;EU3)와, 메모리 어드레스 래치회로(HC573;EU2), 8K x 8 CMOS EPROM(57C64;EU1), 및 프로그래머블 논리장치(EP91O;EU4)를 포함한다. 마이크로프로세서(EU3)는 제어기로부터 직렬 RXDATA라인상의 아날로그 출력채널 각각을 위한 출력값을 수신하고, 마이크로프로세서는 직렬 TXDATA 라인상의 제어기로 상태데이터를 전송한다. EPROM(EU1)은 아날로그 출력회로(600)를 위한 작동 프로그램을 저장하는데 사용된다. PLD EU4는 아날로그 출력회로(600)의 특정 부분의 기능을 제어하는 다양한 신호를 발생하기 위해 사용된다. 예컨대, PLD EU4로부터의 DACWR 신호와 DACA 신호는 마이크로프로세서(EU3)의 데이터버스상에 디지털적으로 코드화된 아날로그값(DATA< 7 0 >)을 D/A컨버터가 얻도록 하기 위해서 제12도(B)의 디지털-아날로그 컨버터회로(612)로 전송되어 이 코드화된 값을 대응하는 아날로그 레벨로 변환한다.
또한 마이크로컴퓨터 회로(610)는 아날로그 출력회로(600; 때때로 "스마트 아날로그 출력"을 위한 SAO보드라 함)의 가시적인 헬스 상태를 표시하기 위해 녹색과 적색 LED를 포함한다. 만약 보드가 적절히 기능한다면, 적색 LED가 오프되고 녹색 LED는 온된다. 그러나, 제어기의 마이크로프로세서는 아날로그 출력회로(600)와 그 제어기(100)간의 통신이 실패했을 때처럼 어떤 상태하에서는 녹색 LED에 불이 들어오게 한다. 유사하게, 적색 LED는 마이크로프로세서 회로(610)가 적절히 기능하지 않거나 또는 그 제어기(100)와 통신하려고 할 때 불이 들어 올 수도 있다. 적색 LED는 비강제적 테스트가 실패하거나, SAO보드상에서의 채널이 어보트되거나, 또는 트랙문제가 검출될 때와 같이 몇몇 발생가능한 상태하에서 켜지게 된다. 반대로, 녹색 LED는 SAO보드의 하드웨어 구성부품이 고장나거나 또는 제어기(100)의 불이행이 발생하는 경우 오프된다. 따라서, 이들 상태 LED를 다양한 용도로 사용하여, 필드를 검사하는 동안 단지 2개의 LED로부터 여러 가지 다른 문제가 시각적으로 식별될 수 있다.
제12도(B)는 디지털-아날로그 컨버터회로(612)와 증폭회로(614) 및 제10도(B)에서 설명된 멀티플렉서회로(616)를 나타낸다. D/A 컨버터(612:AD7248)는12비트의 해상도(resolution)를 갖추고 있지만, 절대적인 정확성으로 설계될 필요는 없다는 점에 주목해야 한다. 오히려, 본 발명의 제어방법에 따르면, D/A컨버터(612)의 정밀도는 작은 변화를 만들 수 있을 만큼 중요하지는 않다.
증폭회로(614)는 연산증폭기(EU34,3l4OA)를 구비한다. 1단 증폭기는 10볼트의 최대출력을 최대 22.1볼트로 승압하는 "2.21" 멀티플라이어(multiplier)를 제공한다. 이와 관련하여, 1.21 kohm의 저항이 연산증폭기의 반전입력과 출력 사이의 피드백 레그(leg)에 채택되는 것이 바람직하다. 이렇게 하면, 비반전입력을 통해 끌어낼 수 있는 전류의 양을 제한하여, 상기 디바이스가 원상태로 복구되는데 수초가 걸리는 포지티브 피드백 모드에 놓이는 것을 방지함으로써 10볼트보다 큰 차동입력을 방지할 수 있다. 또한 상기와 같이 하면 증폭회로가 1.21 kohm의 저항과 연계하여 그 입력을 2.2l씩 증폭하도록 할 수 있다.
제12도(C)는 제10도(B)와 함께 설명된 어보트 회로(606)를 나타낸다. 이와 관련하여 연산증폭기(EUl5, 3l4OA) 또는 연산증폭기(608)는 멀티플렉서(616)로부터의 "SET-AO1" 신호에 응답한다. 그러나, 어보트 회로는, 마이크로컴퓨터회로(610) 또는 제어기(100)중 어느 하나가 적절히 동작하는 데 실패한다면 필드로 전력이 전송되는 것을 방지하는 설비를 포함한다. 특히, 연산증폭기(EUl5)는 마이크로프로세서(EU3)의 "Pl" 버스의 적절한 핀상의 로우 신호를 통해 트랜지스터(EQ3)를 도통시켜 디스에이블될 수 있다. 즉, 아날로그 출력회로(600)는 그 자신의 아날로그 출력을 제로로 할 수 있다. 그리고, 제12도(D)의 데드맨 타이머 회로(649)로부터의 로우 "데드맨(DEADMAN)" 신호에 의한 연산증폭기(EUl5)로부터의 아날로그 출력이 제로가 되도록 할 수 있다. 데드맨 타이머회로(649)의 타이머(LSl22; EU9)는 DEADMAN 신호를 하이 상태로 유지하기 위해 제어기(100)로부터의 주기적인 "DEADSET" 신호펄스에 응답한다. 따라서, DEADSET 펄스가 소정의 시간주기 (예컨대 64msec) 이내에 수신되지 않는다면, 아날로그 출력회로(600)는 자동적으로 모든 아날로그 출력라인을 제로로 떨어뜨릴 것이다.
디지털 어보트 회로(510)의 경우에서처럼, 아날로그 어보트 회로(606)는 이웃하는 아날로그 출력회로(602-604)로부터 전기적으로 아날로그 출력회로(600)를 절연시키기 위한 옵토아이솔레이터(EU32-EU33)를 포함한다. 그러나, 이들 옵토아이솔레이터(ILD3l)는 또한 아날로그 출력회로가 연결되는 필드 제어 디바이스를 구동하기 위해 전류를 흐르게 할 수 있다. 따라서, 연산증폭기(EUl5)로부터의 출력라인(646)은 각각의 옵토아이솔레이터(EU32-EU33)에 있는 트랜지스터의 컬렉터 단자에 연결된다. 게다가, 어보트 회로(606)는 트랙저항(624)으로부터 ME저항을 분리하는 다이오드(648)를 포함하고 있음에 주목해야 한다.
제12도(E)는 제1O도(B)의 멀티플렉서회로(634)가 멀티플렉서(EU24, EU26)를 구비하는 것을 나타낸다. 유사하게, 제1O도(B)의 멀티플렉서회로(636)는 멀티플렉서(EU23, EU25)를 구비한다. 따라서, 차동증폭회로(638)는 또한 5개의 연산증폭기(OPA21O7;EU11, OPA21O7;EU2l, OPA6O2;EUl2) 한 세트를 구비한다. 연산증폭기(EU11)는 그라운드에 대해 신호의 계측을 할 수 있도록 하는 ME와 트랙저항으로부터의 다중 "OUT-L" 신호와 "OUT-H" 신호를 제공한다. 연산증폭기(EU2l)는 연산증폭기(EU2l, EUl2)에 의해 형성된 차동증폭기(638)의 제1단으로서 멀티플렉서의출력을 버퍼링한다. 차동증폭기(638)에 의해 생성된 "A/D_IN" 신호는 멀티플렉서의 출력들간의 증폭된 (예컨대 4,545씩 증폭된) 전압차를 나타낸다.
차동증폭회로(638)는 2.2볼트의 최대 트럭전압차를 10볼트로 변환하기 위해 4.545의 이득을 공급한다. 이러한 증폭은 아날로그 컨버터(642)의 전체 범위가 이용되도록 한다. 게다가, 연산증폭기는 각각 -5볼트와 +26볼트의 네가티브 레일(rail)과 포지티브 레일을 갖추고 있음에 주목해야 한다. 이와 관련하여 연산증폭기는 3.O볼트의 포지티브레일과 5볼트의 네가티브레일 이내에서 동작한다. 연산증폭기는 1 volt/msec보다는 큰 슬루 레이트(slew rate)와 가급적 낮은 전압 오프셋을 갖추어야한다. 이렇게하여 차동증폭기회로(638)는 비교적 빠르게 동작하며, 공급레일 근처에서 잘 수행하고 넓은 범위에 걸쳐 공통모드 전압을 물리치는 능력을 가지게 된다.
제12도(F)는 OUT-L 신호와 OUT-H 신호, 및 A/D_IN 신호를 수신하고 그리고 이 신호들을 신호(OAT-1..OAT-5)와 다중화(multiplexing)함으로써 아날로그 출력회로(600)를 완결한다. 멀티플렉서(640)의 아날로그 출력은 연산증폭기(OPA6O2;EU5)를 통해 처리되고, A/D컨버터(ADS574;642)에 의해 디지털 신호스트림으로 변환된다. A/D컨버터(642)는 아날로그 출력회로(600)의 마이크로프로세서(EU3)의 DATA<7 0>버스에 차례로 연결된다.
제13도(A) 내지 제13도(D)는 네트워크 제어기(16)의 개략도이다. 상기한 바와 같이, 네트워크 제어기(16)는 전체 광섬유 네트워크를 위한 통신디렉터(director)로서 기능하며, 적어도 5OOK 보오 레이트(baud rate)로 통신할 수 있는 능력을 갗추고 있다. 네트워크 제어기(16)는 제l3도(A)에 도시된 바와 같이 그 자신의 마이크로컴퓨터 회로(800)를 갖추고 있다. 마이크로컴퓨터 회로(800)는 마이크로프로세서(8OC31BH-1;FU1O)와 32K 프로그램 메모리(FU11), 32K 데이터 메모리칩(FU6), PLD 메모리 제어칩(FU5) 및 래치칩(FU2-FU3)을 포함한다. 마이크로컴퓨터회로(800)는 제6도(A)의 제어기(100)에 대해 도시된 것과 설계가 유사한데, 동일하거나 유사한 구부품이 양쪽의 회로 설계에 사용될 수 있다. 16MHz 발진회로(802)는 마이크로프로세서(FU1O)에 연결되어 있는바, 이 마이크로프로세서는 마이크로프로세서(FU1O)가 프로세스 제어컴퓨터(14)로부터 동기신호 "MODSYNCIN"를 수신하더라도 네트워크 제어기(16)가 그 자신의 클록하에서 동작하고 있음을 나타낸다.
네트워크 제어기(16)는 16-비트 와이드 "B" 버스를 통해 프로세스 제어컴퓨터(14)에 연결되어 있음이 제13도(B)에 나타나 있다. 또한 네트워크 제어기(16)는 이들 2개의 컴퓨터시스템간의 통신을 용이하게 하는 프로세스 제어컴퓨터(14)로부터 엔코딩된 제어신호("MOD-DO..MOD-D3", "'MOD-CP", "MOD-ST") 한 세트를 수신한다. 이들 엔코딩된 제어신호는 디코더회로(22V1O;FU1O)에 연결되는데, 이 디코더 회로는 상기 제어신호를 해독하여 제13도(A) 내지 제13도(B)에 나타낸 회로들로 향하게 한다. 따라서 예컨대 "MODSETDATA" 신호는 "B" 버스상에 나타난 데이터를 포획하기 위해 3상 플립플롭회로(74HT574;FUl4-FUl5)의 쌍으로 보내진다. 유사하게, "MODREADATA" 신호는 한쌍의 래치회로(FUl6-FUl7)로 보내져 이들 래치회로가 프로세스 제어컴퓨터의 "B" 버스로 마이크로프로세서(FU1O)의 "PO" 버스로부터 포획된데이터를 통과시킬 수 있도록 한다. 또한 플립플롭회로(FUl4-FUl7)는 3 내지 8 디코더회로(74HCl38; FU4)로부터 이네이블/클록신호를 수신하는데, 이 디코더 회로는 마이크로프로세서(FU1O)의 "AD" 버스에 연결된다.
제13도(B)는 플립플롭회로(FUl8)가 프로세스 제어컴퓨터(14)로부터의 "B" 버스와 네트워크 제어기(16)의 마이크로프로세서(FU1O)의 "PO"버스간의 입력 인터페이스를 추가로 제공하고 있음을 나타낸다. 이와 관련하여, 프로세스 제어컴퓨터는 어느 데이터 요소가 프로세스 제어컴퓨터(14)에 의해 플립플롭회로(FUl4-FUl5)로 로드되었는가를 네트워크제어기(16)에 알려주기 위해 사용되는 SETCODE 신호를 네트워크제어기(16)로 전송한다. 또한, 프로세스 제어컴퓨터(14)는 소정의 세트 코드값(예컨대 1Ohex)을 플립플롭회로(FUl8)로 보내고, 이 회로는 새로운 프로세스 제어사이클 (예컨대 새로운 초(second))의 시작을 알려주기 위해 사용된다. 이 코드가 전송되어야하는 기대되는 시간 동안, 네트워크 제어기(16)는 새로운 프로세스 제어사이클의 시작을 발견하기 위해 밀착루프(tight loop)에 플립플롭회로(FU18)를 폴링(poll)한다. 새로운 프로세스 제어사이클의 세트코드가 발견되면, 마이크로프로세서(FU10)는 그 자신의 대응하는 클록신호를 판독하여 저장한다. 다음에 마이크로프로세서(FU1O)는 네트워크제어기(16)의 클록신호가 프로세스 제어컴퓨터(14)의 클록 신호로 중재되도록 할 수 있는 양만큼 클록데이터를 저장하는 적절한 레지스터를 변화시키게 된다. 마지막으로, 제13도(B)는 "KEYO KEY3" 신호라인을 통해 네트워크제어기(16)를 위한 디버그패널(18)의 키보드에 연결되는 디코더회로(74HC54l;FU1)를 나타낸다. 디버그패널(18)로의 통신은 제13도(A)에 나타낸 RPDBUG 신호에 의해 제공된다. 따라서, 제13도(B)에 도시된 회로는 디버그패널(18)을 이용한 쌍방향통신과 프로세스 제어컴퓨터(14)를 이용한 쌍방향통신을 위해 마이크로프로세서(FU1O)의 "P0" 버스의 다중 사용을 효율적으로 할 수 있는 방법을 제공한다.
제13도(C)는 네트워크제어기(16)를 위한 수신회로(804)를 나타낸다. 이 수신회로(804)는 일반적으로 멀티플렉서회로(FU8)와 디지털-아날로그 컨버터회로(FUl2) 및 비교기회로(FU7)로 이루어져 있다. 멀티플렉서회로(FU8)는 "RXD" 버스에 연결되는데, 이 버스는 본래 네트워크 제어기 회로보드상의 가장자리 커넥터로부터 연장된 한 세트의 개별적인 신호라인들이다. 이들 신호라인들은 반대방향으로 통신할 수 있는 네트워크 제어기의 능력을 나타내는 "MAIN_RXD" 신호라인 및 "REPEAT_RXD" 신호라인을 포함한다. 이와 관련하여, MAIN_RXD 라인은 후술하는 인터페이스 회로를 통해 제1도에 나타낸 2개의 광섬유 케이블(34) 양쪽에 최종적으로 연결된다. 유사하게 REPEAT_RXD 라인은 2개의 광섬유케이블(36) 양쪽에 최종적으로 연결된다. 이렇게 하여 각각의 네트워크링에 있어서의 양 케이블은 하나의 통신고리를 형성하는데 사용된다. 또한 멀티플렉셔(FU8)는 "NEIGH1_RXD"와 "NEIGH2_RXD"라 명명된 신호라인을 수신한다. 이들 NEIGHbor 라인 중의 하나는 프로세스 제어컴퓨터(l4a-l4b)간의 고속 광통신을 수신하는데 사용될 수 있다. 이들 NEIGHbor라인중의 다른 것도 또한 프로세스 제어컴퓨터(14)가 3개의 중복 프로세스 제어컴퓨터를 구비하는 경우, 그러한 고속통신을 용이하게 할 수 있다. 대안으로, 이들 NEIGHbor 신호라인들은 프로세스 제어컴퓨터간의 중복통신링크를 추가로 제공하도록 사용될 수 있다.
제어기(100)를 위한 많은 입력신호의 경우에서처럼, 디지털-아날로그 컨버터 회로(FUl2)와 비교기회로(FU7)는 마이크로프로세서(FU1O)에 연결되는 "RXDATA" 신호를 발생성하도록 협동하여 동작한다. 이 배열은 다수의 아날로그 신호 및 디지털 신호가 동일한 회로를 통해 처리되도록 하는데, 이 회로는 최종적으로 마이크로프로세서(FU1O)에 하나의 입력라인을 생성한다.
제13도(D)는 네트워크제어기(16)를 위한 송신회로(806)를 나타낸다. 특히, 송신회로(806)는 디코더/디멀티플렉서회로(74HCl38;FU9)를 구비하는 것을 나타낸다. 디코더회로(FU9)는 마이크로프로세서(FU1O)의 어드레스버스 "Pl"에 연결되며, 또한 디코더회로는 광섬유망으로 신호를 전송하기 위해 마이크로프로세서로부터 "TXDATA"신호를 수신한다. 디코더회로(FU9)는 제13도(C)와 함깨 설명된 "RXD" 신호에 대해 상보적인 신호를 발생한다. 특히, "MAIN_TXD" 신호는 광섬유 케이블(36)중 하나에 최종적으로 연결되고, "REPEAT_RXD" 신호는 광섬유케이블(36)중 하나에 최종적으로 연결된다. 유사하게, "NEIGH1_TXD"/"NEIGH2_TXD" 신호중 하나는 프로세스 제어컴퓨터(l4a-l4b)간의 전송고리(link)를 제공하도록 사용될 수 있다.
제14도(A) 내지 제l4도(E)는 브레이크아웃 직렬통신회로(26)의 개략도이다. 브레이크아웃회로(26)는 네트워크제어기(16)와 유사한 몇개의 회로를 갖추고 있다. 특히, 브레이크아웃회로(26;제14도(A)에 나타냄)의 마이크로컴퓨터회로(808)는 네트워크제어기(16)를 위한 마이크로컴퓨터회로(800)와 유사하다. 마이크로컴퓨터회로((808)는 마이크로프로세서(8OC31BH-1;GU1O)와 32K 프로그램메모리(GUl3), 32K 데이터메모리칩(GU11), PLD 메모리제어기칩(GUl4) 및 래치칩(GU3,GU8)을 포함한다.브레이크아웃회로(26;제14도(D))의 송신회로(810)는 네트워크제어기(16)의 전송회로(806)와 유사하며, 브레이크아웃회로(제14도(D))의 수신회로(812)는 네트워크제어기의 전송회로(804)와 유사하다.
제14도(B)는 전원공급회로(814)를 나타내고 있는데, 이 회로는 브레이크아웃회로(26)가 프로세스 제어컴퓨터(14;"MOD"로 명명됨)로부터 또는 외부전원으로부터 전력을 수신할 수 있다. 제14도(C)는 브레이크아웃회로(26)상에서 쓸 수 있는 각각의 통신 신호라인을 위한 커넥터(Sl..Sl5)를 나타낸다. 이들 커넥터는 각각 제15도(A) 내지 제15도(B)에 나타낸 것과 같이 광섬유 수신기/송신기회로에 차례로 연결된다. 따라서, 예컨대 MAIN_RXD, MAIN_TXD 신호는 커넥터(Sl)를 통해 연결되고, REPEAT_RXD, REPEAT_TXD 신호는 커넥터(S3)를 통해 연결된다. 게다가, "브레이크아웃"이라는 이름이 의미하는 바와 같이 커넥터(S6-Sl5) 한 세트는 개별적인 필드컴퓨터 유니트(12)와 관련이 있는 특정 통신채널로 브레이크아웃회로(26)에 의해 수신되는 신호를 향하게 하는데 제공된다.
따라서, 브레이크아웃회로(26)는 최고 10개의 개별 필드컴퓨터 유니트(12)를 위한 통신신호를 멀티플렉스화 또는 디멀티플렉스화 할 수 있는 능력을 갖추고 있다. 게다가 브레이크아웃회로(26)는 제2도의 브레이크아웃회로(26e)를 위해 나타낸 것과 같이 중계기("repeater") 기능을 제공하도록 구성될 수 있다. 이와 관련하여 MAIN_RXD 라인상에서 수신된 신호는 마이크로프로세서(GU1O)를 통해 처리될 수 있고 제2도의 브레이크아웃회로(26f)와 같이 다음 브레이크아웃회로로 REPEAT_TXD 라인상에 재전송될 수 있다. 이렇게 하여 브레이크아웃회로(26e)는 신호 재 송신기로서 사용될 수 있다.
제14도(E)는 구성회로(816)를 나타내고 있는데, 이 구성회로는 브레이크아웃회로(26)의 신호의 방향을 결정하는 기능을 제어하는데 사용된다. 특히, 한 쌍의 스위치("GSWI-GSW2')는 브레이크아웃회로(26)의 메인/반복 포트(30-32)와 통신채널("CH1.. CH1O") 간의 신호의 멀티플렉스화/디멀티플렉스화를 용이하게 하도록 제공된다. 본 발명의 한 형태에 있어서, 스위치(GSW1)는 스타트채널을 결정하기 위해 사용되고 스위치(GSW2)는 스톱채널을 결정하기 위해 사용된다. 따라서, 이들 2개 범위의 스위치가 협동하여 인접한 채널 세트의 어느 것이 능동적으로 필드컴퓨터 유니트(12)에 연결되는가를 마이크로프로세서(GU1O)가 알 수 있도록 한다. 반대로, 스위치(GSW3)의 셋팅은 브레이크아웃회로가 신호분포(예컨대 제1도의 브레이크아웃회로(26b,26d))의 1차 레벨상에 연결되었는지 또는 브레이크아웃회로가 신호분포(예컨대 제1도의 브레이크아웃회로(26a, 26c))의 2차 레벨에 연결되었는지를 마이크로프로세서(GU1O)에 알린다. 또한, 스위치(GSW3)의 셋팅은 브레이크아웃회로가 중계기로서 사용되는지를 마이크로프로세서(GU1O)에 알린다. 또한 제l4도(E)는 "RPDBUG" 버스를 통해 마이크로프로세서(GU1O)로 브레이크아웃회로(26)를 위한 디버그패널(56)을 결합하기 위해 사용되는 커넥터("GS5")를 나타낸다.
제15도(A) 내지 제15도(B)는 2개의 광섬유 인터페이스의 개략도이다. 특히, 제15도(A)는 수신회로(900)를 나타내고, 제15도(B)는 송신회로(902)를 나타낸다. 수신회로(900)는 고속비교기 회로(LT1Ol6;HU4)를 피드하는 광-전기 컨버터회로("HU2")를 포함한다. 고속비교기(HU4)는 광입력신호의 광학적 가변성분에 대응하는 전기적 가변성분을 가지는 "RX OUT" 신호를 생성한다. 플라스틱 광섬유가 통신신호를 처리하도록 채택되는 경우, 컨버터(HP-2522)는 컨버터(HU2)를 위해 사용되는 것이 바람직하다. 그러나, 유리광섬유가 채택되는 경우에는, 컨버터(HP-2402)가 컨버터(HU2)를 위해 채택되는 것이 바람직하다.
제15도(B)의 송신회로(902)는 전기-광 신호변환회로(HU1)를 피드하는 NAND 게이트(7545l;HU3)를 포함한다. 플라스틱광섬유가 통신신호를 안내하기 위해 채택되는 경우, 컨버터(HP-1522)는 컨버터(HU1)를 위해 사용되는 것이 바람직하다. 그러나, 유리광섬유가 채택되는 경우에는, 컨버터(HP-1404)가 컨버터(HU1)를 위해 채택되는 것이 바람직하다.
제16도(A)와 제l6도(G)는 전원공급회로(50)의 개략도이다. 전원공급회로(50)는 최고 5개의 필드컴퓨터 유니트에 전력을 공급할 수 있는 500와트 전원공급장치 이다. 이와 관련하여 하나의 전원공급회로는 각 필드컴퓨터 유니트(12)의 대응하는 제어기(92-96)에만 전력을 공급하도록 사용되는 것이 바람직하다. 즉, 전원공급회로(50)중 하나는 1-5 필드컴퓨터 유니트의 왼쪽 제어기(92)로 전력을 공급하는데 사용될 수 있다. 전원공급회로(50)는 또한 브레이크아웃회로(26)의 하나 또는 그 이상에 전력을 공급하기 위해서도 사용될 수 있다. 그리고, 전원공급회로(50)는 A.C. 입력전력에 인터럽션이 발생하는 경우 최종적으로 전력을 보충해 줄 수 있는 배터리(52)를 충전하는데에도 역시 사용될 수 있다. 배터리(52)는 직렬로 연결되는 2개의 12볼트 밀봉 배터리 한 세트인 것이 바람직하다.
전원공급회로는 제1도에 나타낸 바와 같이 밀폐함에 포함되는 것이 바람직하다. 또한 필드컴퓨터 유니트(12)와 전원공급회로(50)의 한 세트 및 배터리(52) 한 세트를 수납하도록 밀폐함이 제공될 수도 있다. 전원공급회로(50)를 위한 밀폐함은 전원공급회로(50)의 다양한 기능적 측면의 상태를 나타내는 한 세트의 LED를 구비하는 것이 바람직하다. 예컨대, 하나의 LED는 전원공급회로(50)가 A.C. 전력을 수신하고 있는지를 나타내기 위해 사용될 수 있고, 반면에 다른 LED는 배터리(52)가 사용할 수 있는 충분한 전력을 가지고 있는지를 나타내기 위해 사용될 수 있다. 후술하는 바와 같이 전원공급회로(50)는 로드테스트를 행함으로써 배터리(52)를 테스트하는 능력을 갖고 있다.
제16도(A)는 제어기(100)로부터 "FANON" 신호에 응답하는 팬(fan) 제어회로(904)를 나타낸다. FANON 신호는 옵토아이솔레이터회로(IU8)의 트랜지스터가 도통되게 하여, 전원공급회로(50)의 밀폐함에 있는 팬으로 전력을 전송시킨다. 팬으로 보내지는 전력은 또한 한 쌍의 온도감지 디바이스(AD592)에 의해 발생된 신호로부터 제공될 수 있는바, 상기 디바이스는 커넥터("S3")의 핀(1-4)에 연결된다. 만약 전원공급장치의 밀폐한 내에서 감지되는 온도가 상당히 높다면, 온도감지디바이스(도시않음)는 팬(도시않음)을 턴온시킬 것이다. POWER-TEMP 신호는 제어기(100)가 전원공급장치의 온도를 모니터하여 필요하다면 팬을 턴온시키도록 제어기(100)로 다시 송신된다.
제16도(B)는 120 VAC 또는 240 VAC 전력중 어느 하나를 수용할 수 있는 전력변환회로(906)를 나타낸다. 제16도(B)는 옵토아이솔레이터회로(H11G2;IUl)를 나타내고 있는바, 이 회로는 A.C. 전력을 전원공급회로(50)에서 사용할 수 있음을 감지하는데 위해 사용된다. 도시하지는 않았지만, 적절당 A.C. 변환기 (예컨대 Vicor VI-FKE6-CMX 회로)를 채택하여 "+HV" 와 "-HV"로 명명된 라인상에서 변조된 D.C 전원을 발생시키는 것이 바람직하다. 3개의 200와트 전원공급회로(VI-200;"PS3-PS5") 한 세트는 이 고전압 입력을 정류된 28볼트 D.C. 출력으로 변환하기 위해 병렬로 연결된다. 전압분배기 회로("R3-R5")는 정확하게 +28볼트로 출력전압을 맞추기 위해 사용된다. 이 전압레벨은 배터리(52)를 충전하는데 필요하다. 이 배터리(52)는 포지티브 온도계수(PTC) 저항("VR2..VR7")의 뱅크(bank)를 통해 충전되는데, 이 저항들은 배터리로의 전류의 흐름을 제한하기 위해 사용된다. 배터리(52)로 더 많은 전류가 흐를수록 PTC 저항이 가열되어 배터리로의 전류의 흐름을 제한한다.
충전전압은 제16도(C)의 릴레이("K2")로 도선(908)상에서 전송되는데, 제16도(B)의 충전회로로 배터리(52)를 연결하기 위해 사용된다. 이와 관련하여, 하나 이상의 배터리(52) 세트의 포지티브 단자는 릴레이(K2)의 하류측상에서 도선(910)에 연결된다. 릴레이(K2)는 "LOAD_TEST-B" 신호에 의해 제어되는데, 이 신호는 제어기(100)로부터 얻어진다. "LOAD_TEST-B" 신호는 충전상태를 테스트하기 위해 배터리(52)를 충전회로로부터 연결해제시키는데 사용될 수 있다. 후술하는 바와 같이 테스트는 배터리가 하나 이상의 괼드컴퓨터 유니트(12)를 위하여 기본전원을 제공하도록 요구되는 경우 발생할 수 있는 인출전류의 양을 반영하게 되는 부하조건에서 이루어진다.
이 "부하" 테스트를 수행하기 위해서, 배터리(52)는 저전류인출 부하조건(예컨대, 125 ohms)과 고전류인출 부하조건(예컨대 0.75 ohm) 사이에서 번갈아 절환된다. 저전류부하는 (5watt)저항(R28-R29)에 의해 공급되고, 고전류부하는 커넥터("S4")의 핀(3-6)을 가로질러 공급된다. 고전류부하는 병렬연결된 한 쌍의 전력저항(Dale HLZ-165, 1.5ohm)과 같이 배터리(52)로부터 최대 허용가능한 전류를 인출할 수 있는 임의의 저항소자일 수 있다. 스위치("Kl")는 제어기(100)로부터 간접적으로 수신되는 "LOAD_TEST-A"신호에 응답하여 테스트하는 동안에 고/저 전류부하에 배터리를 교대로 접속시키기 위해 사용된다. LOAD_TEST신호는 (555) 타이머회로(IU9)를 리세트시키는데, 이 회로는 거의 180초 동안 하이 신호를 발생하도록 구성되어 있다. 옵토아이솔레이터회로(IU7, IU1O)에 대해 도시된 극성과 더불어, 신호 LOAD_TEST-A 신호 및 LOAD_TEST-B 신호는 실제로 제어기로부터의 신호와 동일할 수 있다. 즉, 배터리(52)는 LOAD_TEST-B 신호가 하이일 때 충전되고, 타이머회로(IU9)는 리세트 상태로 유지된다. 그러나, LOAD_TEST-B 신호가 로우로 되면, 스위치(K2)가 활성화되어 배터리(52)의 포지티브단자를 스위치(Kl)에 연결한다. 다음에 타이머회로(IU9)가 카운트를 시작하여 배터리(52)를 거의 60초동안 고전류 부하상태로 절환되도록 한다. 이어서, 배터리(52)는 저전류 부하상태로 절환된다.
부하를 테스트하는 동안, 배터리전압 "BATTERY V"이 절연회로(AD2O2;IU3)를 통해 제어기(100)에 의해 계측된다. 배터리의 방전전압은 저장된 에너지의 양과 부하의 양쪽의 함수이다. 따라서, 제어기(100)는 BATTERY V 신호와 그리고 고전류부하상태의 알려진 저항값으로부터 저장된 에너지의 대략적인 양을 결정할 수 있게 된다. 즉, 제어기(100)는 전원공급회로(50)가 거의 60초의 시간간격동안 고전류부하 배터리값을 제어기에 제공하는 경우, 부하테스트를 지시한다. 또한 저전류부하도 필요하다면 배터리(52)를 완전히 방전시키기 위해 사용될 수 있다. 절연회로(IU4)뿐만 아니라 절연회로(IU3)는 전원공급회로(50)가 2개의 개별적인 GND 전위를 가질 수 있도록 하는데 사용된다. 배터리 GND로부터 절연된 GND 전위를 본 명세서에서 ISOGND라 부른다.
전원공급회로(50)는 배터리(52)의 상태 또는 회로의 상태와 관련된 몇개의 다른 신호를 역시 발생시킨다. 예컨대, 제16도(C)는 전원공급회로(50)가 비교기회로(LM339;IU6)를 포함하고 있음을 나타내는바, 이 비교기회로는 "BATT LOW" 신호를 발생시킨다. 상기 명칭이 의미하는 바와 같이, BATT LOW 신호는 배터리전압이 너무 낮은지(예컨대, <1O볼트)를 나타낸다. 유사하게, "BATTERY>26V" 신호는 비교기회로(IU6)중 하나를 통해 배터리전압이 너무 높은지(예컨대 26.l볼트 이상)를 나타내는데 사용된다. "CHARGER V" 신호는 배터리(52)를 충전하기 위해 인가되는 전압표시를 제어기(100)에 제공하기 위해 사용된다. 충전전압이 25볼트 이상이라면, 비교기회로(IU6)중 하나는 하이 "CHARGER OK" 신호를 발생시킨다. 이 비교기의 토글포인트는 정류기(regulator AD587;IU5)와 저항(R2O, R23)에 의해 4.l7볼트로 세트되기 때문에 CHARGER V신호는 저항(R32-R3l)을 가로질러 분배된다.
제16도(D)에는, 5개의 전원공급회로(50)의 그룹을 위한 제어인터페이스회로(912)가 나타나 있다. 제어인터페이스회로(912)는 반복되는 "FANON" 신호와 "ICONSERVE" 신호와 같은 제어기(100)로부터의 명령신호를 해석하기 위하여 한 쌍의 디코더회로(22V1O; JU1-JU2)를 구비한다. 후술하는 바와 같이ICONSERVE신호는 필드컴퓨터 유니트로 26볼트 전원이 공급되는 것을 턴오프시키기 위해 사용된다. "BATOFF" 신호는 필드컴퓨터 유니트로 5볼트 전원이 공급되는 것을 턴오프시키기 위해 사용된다. 이와 관련하여, 제어기(100)는 우선 전원공급회로(50)가 26볼트 전원을 턴오프시킴으로써 배터리전원을 보존하도록 하고 이어서 적절한 시간(제어기(100)에 의해 결정됨)이 경과된 후 5볼트 전원을 셧다운시키도록 하고 있음을 인식해야 한다. "BAT TEST" 신호는 LOAD_TEST-A/LOAD_TEST-B 신호에 대응하는 "LOAD_TEST_ON" 신호를 발생시키기 위해 사용된다.
제16도(E) 내지 제16도(F)는 전원공급회로(50)에 의해 전력이 공급되는 각각의 필드컴퓨터 유니트(12)를 위해 반복되는 커넥터회로(914-916)의 한 세트를 나타낸다. 커넥터회로(914)는 각각의 필드컴퓨터 유니트(12)로 송신되는 다양한 명령신호를 단순히 나타낸다. 유사하게, 커넥터회로(916)는 퓨즈("CB1-CB2")를 통해 각각의 필드컴퓨터 유니트(12)로 26볼트 전원과 "VCC" 전원이 전송되는 것을 보여준다.
제l6도(G)는 전원공급회로(50)를 위한 출력전원회로(918)를 나타낸다. 출력전원회로(918)는 제16도(B)의 컨버터(PS3-PS5)로부터의 +28 볼트 전원출력에 대응하는 "VSOURCE"라고 명명된 전원선을 포함한다. VSOURCE 라인은 3개의 l5Owatt 컨버터회로(Vl-200;"KPS2-KPS4")와 1OOwatt 컨버터회로(Vl-200;"KPSl")에 전원을 공급한다. 컨버터회로(KPS2-KPS4)는 라인(920-922)을 가로질러 +26 볼트 전원을 생성하도록 조합되고, 컨버터회로(KPS1)는 라인(922-924)을 가로질러 +5볼트 전원을 생성한다. 점퍼(KJ3-KJ4)가 전원의 감지회로에 +5 볼트 전원의 출력을 연결하도록 제공되고 있음에 주목해야 한다.
옵터 커플러(MOC8O2l;"KUl-KU4") 한 세트는 "SHUTDOWN"과 "5V OFF" 명령신호에 응답하여 컨버터회로(KPSl-KPS4)의 온/오프동작을 제어하는데 사용된다. 특히, 하이 SHUTDOWN 신호(ICONSERVE 신호로부터 얻어짐)는 옵토아이솔레이터회로(KUl)가 비도통 상태가 되게 하여, 트랜지스터(KQl)를 턴온시킨다. 이렇게 되면, 컨버터(KPS2-KPS4)로의 게이트 신호입력이 로우로 되어, 이 컨버터회로들이 셧다운된다. 그러면, 필드컴퓨터 유니트로부터의 +26 볼트 전원이 차례로 제거된다. 또한, 유사한 제어프로시저가 옵토아이솔레이터(KU4)와 트랜지스터(KQ2)를 통해 +5 볼트 전원을 차단시키는데 사용된다. 그리고, 옵토아이솔레이터(KU2-KU3)는 제16도(B)의 컨버터회로(PS3-PS5)가 AC 라인으로부터 전력을 받고 있을 때 컨버터(KSPl-KSP4)를 동시에 턴온시키도록 +28볼트라인(926)에 응답한다.
제17도(A) 내지 제17도(I)와 제l8도(A) 내지 제l8도(T)에 도시된 한 세트의 흐름도는 본 발명에 따른 필드컴퓨터 유니트(12)에서 수행되는 중재방법을 설명하기 위한 것이다. 제l7도(A) 내지 제17도(E)는 디지털 입력의 중재에 관한 것이고, 제17도(F)와 제17도(I)는 디지털 출력의 중재에 관한 것이다. 유사하게, 제l8도(A) 내지 제18도(N)은 아날로그입력의 중재에 관한 것이고, 제18도(0) 내지 제18도(T)는 아날로그출력의 중재에 관한 것이다.
필드컴퓨터 유니트(12)의 소프트웨어 중재방법을 위하여 다음의 관측이 이루어질 수 있다. 이들 방법은 어떻게 입력값과 출력값이 필드컴퓨터 유니트(12)에 포함된 3개의 제어기(92-96) 각각에 공급된 값들간의 일치와 불일치 양쪽에 따라 선택되는지를 위한 본 발명에 따른 절차를 나타낸다. 이들 중재방법은 각각의제어기(92-96)에 의해 수행된다는 것을 이해하는 것이 중요하다. 이들 각각의 중재방법은 각 프로세스 제어사이클(예컨대 각 초) 이내에서 수행되고 있음 또한 이해해야 한다.
일반적으로, 이들 중재방법에 사용된 값데이터는 먼저 초기 단계로서 타당성을 인정받아야 한다. 만약 적어도 2개의 제어기로부터의 값데이터(즉, AO, AI, DI, DO)가 일치한다면, 제일 좌측의 값이 선택된다. 즉, 왼쪽 제어기(92)에서 결정된 AI 또는 DI값은 왼쪽제어기(92)와 중간제어기(94)가 일치하는 경우 프로세스 제어컴퓨터(14)로 전송된다. 유사하게, 중간제어기(94)에서 결정된 AO 또는 DO값은 중간제어기(94)와 오른쪽제어기(96)가 일치한다면 필드로 전송된다. 그러나, 각각의 제어기(92-96)가 이 중재프로세스를 수행함에 따라, 제어기들은 입력값과 출력값 양쪽을 위하여 한 채널 씩을 기반으로 해서 다른 일치 조합으로부터의 중재된 값을 전송하는 것이 가능하다는 점을 인식해야 한다. 예컨대 제어기(92-96)중 하나로부터의 또는 그쪽으로의 통신 불이행의 결과로서 이러한 상황이 발생한다면, 그 제어기를 위한 값데이터는 다른 2개의 제어기와 공유될 수 없다.
3개의 유효한 값데이터가 존재하지만 3개의 제어기(92-96)중 어느 것도 일치하지 않는 경우에는, 본 발명에 따르면 소프트웨어로 선택가능한 기본조건이 그 값을 위해 사용된다. 입력값의 경우에는 프로세스 제어컴퓨터(14)로 보내지는 Select-High 또는 Select-Low 값 사이에서 선택될 수 있다. 출력값의 경우 선택은 필드로 보내지는 Fail-Safe 또는 Fail-Last 값간 사이에서 선택될 수 있다. 본 발명의 장점중의 하나는 이들 소프트웨어로 선택가능한 기본조건이 필드에서의 조건이 변함에 따라 가능한 가장 효과적인 프로세스 제어결정을 제공하기 위해 재빠르게 변경될 수 있다는 것이다. 본 발명의 한 형태에 있어서, 이들 기본값 조건은 변경될 수 있으며 각각의 입력 및 출력채널을 위한 프로세스 사이클 신호 통신이 필드컴퓨터에 의해 처리되는 상태로 필드컴퓨터 유니트(12)에 전송된다.
이들 기본값 조건이 제어기(92-96)의 각각에 저장되어 대부분의 전류 기본값 조건이 적용되는 것을 통신 인터럽션이 방지하지 않게 되지만 그럼에고 불구하고 프로시져는 대부분의 적절한 기본값 조건이 적용되는 것을 보장한다. 예컨대 절차가 처음 시작될 때, 대부분의 적절한 출력기본값 조건은 페일-세이프값(예컨대 제로출력)일 수 있다. 그런데, 프로세스가 몇 개의 주기 동안 적절히 동작되어온 후인 까닭에 대부분의 적절한 출력 기본값 조건은 페일-라스트조건일 수 있다. 이와 관련하여 페일-라스트조건은 프로세스 제어컴퓨터(14)로부터의 통신 상실의 경우에는 문제의 채널을 위해 마지막으로 중재된 데이터값을 적용한다. 페일-라스트 조건이 유효데이터간의 완전한 불일치에 응답하여 아날로그출력을 위해 요구되는 경우, 마지막으로 중재된 데이터값에 숫자적으로 가장 가까운 값이 선택된다. 입력 또는 출력값중의 어느 하나를 위한 유효 데이터가 없는 경우에는 마지막으로 중재된 데이터 값이 사용되어야 한다.
제17도(A) 내지 제l7도(E)를 참조하면서, 디지털 입력 데이터의 중재를 위한 흐름도를 설명할 것이다. 이 흐름도들을 설명하기에 앞서 3개의 제어기(92-96) 각각은 독립적으로 이 중재 프로세스를 수행하고 있음에 주목해야 한다. 그러나, 중간제어기(94)는 광섬유통신고리가 추가로 이 제어기를 위해 제공되지 않는 한 프로세스 제어컴퓨터(14)로 그 중재결과를 보내지 않게 된다. 예컨대 3개의 프로세스 제어컴퓨터(14)가 제공되는 경우에 이러한 광섬유통신고리가 사용되어야 한다.
제17도(A)는 디지털 입력데이터의 중재를 위한 전체 흐름도(1000)를 나타낸다. 블록(1002)은 처음 10개의 디지털 입력채널을 위한 데이터값이 메모리내에 로드되고 있음을 나타낸다. 이들 데이터값은 제6l도에 나타낸 제어기(100)의 멀티플렉서(U9)로부터 얻어졌다. 다음에 다양한 상수와 포인터 및 카운터가 중재프로세스(블록 1004)를 셋업하기 위해 초기화된다. 디지털 입력회로가 제어회로보드에 포함되거나 또는 샤시에 탑재된 디지털 입력회로에 플러그가 꼽혀 있는 것을 마이크로 프로세서(U4O)가 검출하면, 유효데이터가 사용가능한지를 나타내기 위해 "good bit"가 세트된다(블록1006).
마름모(1008-1010)는 이웃하는 것끼리의 유효 통신 메시지가 (예컨대 합계검사(checksum) 계산을 사용하여) 제어기에서 수신되어 왔는지를 테스트한다. 즉, 제어기(92)는 유효데이터 통과메세지가 제어기(94-96)로부터 수신되어 왔는지를 보기위해 테스트하고, 제어기(94)는 유효데이터 통과메시지가 제어기(92,96)로부터 수신되어왔는지를 보기 위해 테스트한다. 다음에, 제어기는 제1채널을 위한 유효디지털 입력값을 얻을 것이다(블록1011). 다음에 이 채널을 위한 유효디지털 입력값은 "Nl"(예컨대, 제어기(94)), "N2"(예컨대, 제어기(96))과 "ME"(예컨대, 제어기(92))값으로부터 중재소프트웨어(블록 1012)용의 왼쪽, 중간 및 오른쪽 값으로 변환된다.
이 시점에서 흐름도(1000)는 각각이 별개의 흐름도를 나타내는 일련의 3개의파선박스(1014-1018)를 나타낸다. 특히, "Send-Low 결정(Determine Send-Low)" 블록(1014)이 제l7도(B)에 나타나있고, "송신할 입력 결정(Determine Which Input to Send)" 블록(1016)은 제17도(C) 내지 제17도(D)에 도시되어 있으며, "세트/소거 DIC 비트(Set/Clear DIC Bit)" 블록(1018)은 제17도(I)에 도시되어 있다. 일단 이들 흐름도에 나타낸 프로세스단계가 완료되면, 제1채널을 위한 중재된 디지털 입력값은 프로세스 제어컴퓨터(14;블록 1020)로 송신하기 위해 메시지버퍼에 저장된다. 다음에 프로그램은 모든 디지털 입력값이 중재될 때까지(블록 1022) 다음 번 디지털 입력채널을 얻어서 중재하기 위해 반복적으로 루프된다(블록1022). 또 다시 이 프로세스는 특히 3개의 프로세스 제어컴퓨터(14)가 제공되는 경우에 각각의 제어기(92-96)에 의해 수행되고 있음에 주목해야 한다. 그러나, 제1도에 나타낸 실시예에 있어서 왼쪽과 오른쪽제어기(92,96)만이 그들의 중재 결과를 그들의 개별적인 프로세스 제어컴퓨터(l4a-l4b)에 송신한다.
제17도(B)의 흐름도(1014)는 로우 기본값이 프로세스 제어컴퓨터(14)로 보내져야하는지의 결정을 지시한다. 이와 관련하여, 흐름도(1014)는 유효 Send Low비트가 왼쪽과 중간 및 오른쪽 제어기(92-96;예컨대 마름모(1024-1028)중 적어도 하나를 위해 사용할 수 있는지를 보기 위해 검사한다. 다음에 프로그램은 2개의 제어기의 유효 Send Low 비트간의 일치(agreement)가 있는지를 보기 위해 검사한다 (예컨대 마름모(1030-1032)). 만약 일치가 있다면, Leftmost Send Low비트가 사용된다(예컨대 블록 1034). 그러나 만약 2개의 유효 Send Low 비트만이 존재할 때 유효 Send Low 비트간의 불일치가 있다면, 마지막 유효 Send-Low 비트의 상태가 사용된다 (예컨대 블록(1036-1038)).
제17도(C) 내지 제17도(D)의 흐름도(1016)는 각각의 디지털 입력채널을 위한 주중재루틴을 나타낸다. 프로세스가 왼쪽 디지털 입력의 타당성 테스트를 시작하는 동안(블록 1040), 이 선택이 전체 시스템과 소프트웨어 일치를 촉진하더라도 왼쪽제어기(92)의 값쪽으로의 분명한 바이어스는 필요하지 않다는 점을 인식해야 한다. 왼쪽디지털 입력값이 유효하다면, 중간디지털 입력값이 타당성을 위해 검사된다(블록1042). 다음에 양쪽값이 양호하면 이 값들이 매치되고 (블록1044), 왼쪽 디지털 입력값이 프로세스 제어컴퓨터(14)로 송신하기 위해 선택될 것이다(블록 1046).즉, 왼쪽과 중간 제어기(92-94)가 하이 디지털값을 공급한다면, Left값을 나타내는 메모리에 저장된 디지털값은 최종적으로 프로세스 제어컴퓨터(14)로 송신될 값들의 데이터 테이블로 보내지게 된다. 그럼에도 불구하고 유효한 디지털 입력값이 오른쪽제어기(96)로부터 사용할 수 있다면 왼쪽-오른쪽 매치 결정이 내려짐에 따라 (블록1048), 상기 프로세스는 이 시점에서 끝나지 않는다. 불일치가 있는 경우 (예컨대 왼쪽=하이, 오른쪽=로우)에는 왼쪽-오른쪽 비교 비트 "DICLR"가 "세트"되는데, 즉, DICLR 비트는 하이/l 값을 구비한다(블록 1050). 이 특정 비교 비트들이 카운트되고 및/또는 각각의 프로세스 제어사이클과 더불어 프로세스 제어컴퓨터(14)로 보내져, 연속된 불일치의 표시를 이용할 수 있다. 이와 관련하여 축적된 비교비트는 필드에 대한 서비스 호출이 만들어져야하는지 또는 특별한 디지털 입력회로보드 또는 제어기(100)가 적절한 환경하에서 셧다운되어야 하는지를 결정하기 위해 사용될 수 있다.
흐름도(1016)중 남아있는 부분은 일반적으로 상기한 해석을 따른다. 그러나, 중재불이행 비트는 왼쪽-중간 불일치와 오른쪽 디지털 입력값이 유효하지 않을 때 세트되고 있음을 나타내는 점에 주목해야 한다. 이 시점에서 마름모(1054)는 기본값으로서 로우값이 보내질 것을 프로세스 제어컴퓨터(14)가 요구했는지를 보기 위해 프로그램이 검사하는 것을 나타낸다. 만약 그 응답이 노우(no)라면 다음에 왼쪽값은 하이(High)라면 선택될 것이고 (블록 1058), 중간값은 왼쪽값이 로우인지를 선택되게 할 것이다(블록 1058). 이것은 중간값이 하이(High)이어야 하기 때문이고, 따라서 "로우" 왼쪽값과 더불어 불일치가 있다. 만약 Send-Low 기본값이 요구되었다면, 왼쪽같은 하이(블록1060)인지를 보기위해 먼저 검사될 것이다. 블록(1058,1062)이 함축적으로 나타내는 바와 같이 로우값은 최종적으로 프로세스 제어컴퓨터(14)로 보내진다.
제17도(E)의 흐름도(1018)는 일반적인 디지털 입력비교비트("DIC")의 상태를 결정하도록 한다. 만약 어느 2개의 유효디지털 입력값간의 불일치가 특정 비교 비트의 상태에서 발견되면, DIC 비트가 세트된다(블록 1064). 그렇지 않다면 DIC 비트가 소거된다(블록1066).
제17도(F) 내지 제l7도(I)를 참조하면서, 디지털 출력값들을 위한 중재방법을 설명한다. 이와 관련하여 제17도(F) 내지 제l7도(I)의 흐름도는 일반적으로 디지털 입력값의 중재를 위해 상술한 분석을 따르고 있음을 볼 수 있다. 따라서, 예컨대 제17도(F)의 흐름도(1068)는 제17도(A)의 흐름도(1000)에 대응하고, 제l7도(G)의 흐름도(1070)는 제17도(B)의 흐름도(1014)에 대응한다. 그러나, 흐름도(1070)의 경우 그 결정은 "페일-라스트"요구가 프로세스 제어컴퓨터(14)로부티 필드컴퓨터 유니트(12)로 보내져왔는지에 따라 내려진다.
제17도(H)의 흐름도(1072)는 각각의 디지털 출력채널을 위한 주중재루틴을 제공한다. 디지털 출력의 선택이 디지털입력의 선택과 관련하여 상술된 분석을 따르고 있음에 따라 오직 몇개의 명령만이 만들어질 필요가 있다. 특히, 블록(1074)은 특정한 2개의 유효 디지털 출력값 만이 동일하지 않을 때 "Nomatch" 비트 (즉, 비교 비트)와 "협상 불이행(Negotiation Failure)" 비트 (즉, "DOAF" 비트)가 둘다 세트되는 것을 나타낸다. 그리고, 블록(1076)은 왼쪽, 중간 및 오른쪽 디지털 출력값의 어느 것도 유효하지 않은 경우에 "DOAF"비트가 세트되는 것을 나타낸다.
또한 블록(1076)은 본 발명이 통신불이행에 응답하는 메카니즘을 제공하는 것을 나타낸다. 특히, 프로그램 가능한 "타임아웃 카운터"는 초기값으로부터 감소될 것이고, 그렇지 않다면 이값은 통신이 재확립될 때까지 만들어지는 출력상태의 어떠한 변화를 방지할 것이다. 이와 관련하여, 원하는 타임아웃값은 프로세스 제어컴퓨터(14)로부터 송신될 수 있는바, 이 제어컴퓨터는 다음에 모든 디지털 및 아날로그출력을 위한 페일-세이프 타임아웃 카운터로서 사용하기 위하여 제어기(92-96)에 의해 중재된다. 예컨대 이 타임아웃값은 페일-라스트 상태로부터 페일-세이프 상태로 이동하기 전의 시간(초)의 개수를 나타낼 수 있다. 마름모(1078)는 타임아웃이 발생했는지를(예컨대 제로 카운터값) 테스트하기 위해 사용된다. 만약 타임아웃이 아직 발생되지 않았다면 마름모(1080)는 페일-라스트 기본값이 요구되었는지를 테스트한다. 만일 페일-라스트 기본값이 요구되었다면, 블록(1082)은 마지막으로 중재된 디지털 출력값이 필드로 보내지는 것을 나타낸다 (예컨대 디지털 출력회로 500), 만일 페일-라스트기본값이 요구되지 않았다면, 페일-세이프값(예컨대 로우, 제로 또는 전압이 제거된 상태)이 필드로 보내진다(블록 1084). 만약 타임아웃 조건이 발생되면 마름모(1078)와 블록(1084)은 페일-세이프 값이 필드로 보내지는 것을 나타낸다.
제17도(I)의 흐름도는 일반적으로 제l7도(E)의 흐름도(1018)에 대응한다. 그러나, 블록(1088)은 처리되고 있는 특별한 디지털 출력채널을 위한 임의의 2개의 제어기 값 사이에 불일치가 발견된다면 일반 디지털 출력 비교 비트 "DOC"'가 세트될 것임을 나타낸다. 마지막으로, 제17도(F)의 블록(1090)은 선택된 디지털 출력값이 적절한 디지털 출력회로채널로 연속적인 송신을 위해 메모리 테이블 위치에 저장될 것임을 나타낸다.
제18도(A) 내지 제18도(N)을 참조하면서, 아날로그 입력데이터의 중재를 위한 흐름도를 설명한다. 제18도(A) 내지 제18도(B)는 아날로그 입력데이터의 중재를 위한 전체 흐름도(1100)를 나타낸다. 초기 절차로서, 블록(1102)은 프로그램이 3개의 아날로그 출력회로(600-604)의 각각으로부터의 Family-Type 코드를 검사하는것을 나타낸다. 블록(1102)에 의해 나타낸 상세한 프로세스 단계는 제18도(C) 내지 제18도(D)에 나타나 있다. 특히, 프로그램 루틴은 유효한 Family-Type 코드가 아날로그 입력회로(예컨대 마름모(1104-1108))의 2개 세트 각각으로부터 수신되었는지를 보기 위한 검사에 의해 시작한다. 다음에, 프로그램은 중재를 수행하는 제어기를 위한 Family-Type코드와 다른 2개의 제어기를 위한 Family-Type 코드간의 매치가 있는지의 여부를 판단한다(예컨대 마름모 1110-1112). 만약 매치가 발견된다면, 특정한 "OK" 비트가 각 경우에 세트된다(예컨대 블록 1114-1116) 그러나, 만약 "ME"와 "Neighborl" 코드와 같은 특별한 매치가 발견되지 않았다면, "Nomatch" 비트가 세트될 수 있다(제18도(D)의 블록 1118).
중재방법을 수행하는 제어기가 아날로그 입력데이터를 어떻게 처리하는지를 알았다면 프로그램의 흐름은 제l채널을 위한 3개의 아날로그 입력회로로부터 데이터 값을 얻기 위해 제l8도(A)의 블록(1122)으로 다시 점프한다. 마름모(1124)는 다음에 프로그램이 Neighborl 아날로그 입력회로에 관련이 있는 몇몇 테스트를 수행함을 나타낸다. 특히, 중재를 수행하는 제어기는 Neighborl 회로보드가 삽입되었는지와 완전한 통신 메시지가 Neighborl 아날로그 입력회로를 위하여 제어기로부터 수신되었는지를 발견하기 위해 검사한다. 이와 관련하여 만약 "OK" 비트가 ME와 Nl보드의 Family-Type 코드를 위해 세트되었는지를 발견하기 위해 조사함으로써 상기 사항이 달성될 수 있음에 주목해야 한다.
다음에 네이버1(Neighborl) 아날로그 입력회로(이웃하는 것끼리의 통신 메시지를 통한)로부터 수신된 아날로그 값과 그리고 중재를 수행하는 제어기에 의해 수신된 아날로그값간의 차이가 판단된다(블록 1126). 다음에 아날로그 값들의 차이는 내로우 허용한계(Narrow Tolerance) 임계치에 대비해서 비교된다(블록 1130). 내로우 허용한계 값은 사용되고 있는 하드웨어를 감지하는 아날로그 입력의 특별한 타입에 좌우된다. 예컨대 4-20 ma 전류 루프 입력값을 제공하는 센서에 대해 내로우 허용한계값은 0.6%로 세트될 수 있다. 즉, "ME"값은 10.Oma이고네이버1(Neighborl)값이 9.88-10.l2ma라면, 이 값들은 내로우 허용한계 일치 이내에 있다고 판단될 것이다. 대체로 더 작은 내로우 허용한계 값이 열전쌍으로부터 얻어진 값처럼 상당히 안정적인 다른 아나로그 입력값과 함께 채택될 수 있다.
블록(1132)은 내이버1 내로우 허용한계 비트가 내로우 허용한계 일치가 있는 경우에 세트되는 것을 나타낸다. 그러나, 만약 네이버l값이 내로우 허용한계 범위밖에 있다면, 이 값이 적어도 와이드 허용한계(Wide Tolerance)값 이내에 있는지를 판단하도록 테스트가 수행된다. 와이드 허용한계값은 내로우 허용한계값의 2배와 같이 적당히 엄격한 값이다. 다음에 나타내는 바와 같이, 내로우 허용한계값 테스트는 중재를 위해 입력채널을 초기에 적합하게 하는데 사용되는데, 본 명세서에서는 이를 "인-서비스(in-service)"라 한다. 반대로, 와이드 허용한계 테스트는 미리 인정된 입력채널이 인 서비스 상태에 남아 있도록 하기 위해 사용된다. "ME" 값과 네이버1값이 충분히 일치한다면, 와이드 허용한계 비트가 세트된다(블록 1136). 이 결정의 결과와 무관하게 프로그램은 네이버2(Neighbor2) 아날로그 입력회로보드가 삽입되었다고 가정하여 네이버1값이 테스트된(예컨대 마름모 1138-1142) 것과 동일한 방법으로 네이버2 값을 테스트하도록 진행된다. 네이버1과 네이버2 아날로그 입력회로보드가 삽입되고 필요한 이웃하는 것끼리의 통신메시지가 수신되었다면, 이들 2개의 회로로부터의 아날로그 입력값은 내로우 허용한계와 와이드 허용한계값 테스트의 지배를 받는다(예컨대 마름모 1144-1148). 다음에 ME와 네이버1 및 네이버2 값은 소프트웨어 중재를 위해 왼쪽과 중간 및 오른쪽 값으로 변환된다(블록 1150).
다음에 한 세트의 "인-서비스" 테스트 루틴이 블록(1152-1156)에 도시된 바와 같이 왼쪽과 중간 및 오른쪽 아날로그 입력값 각각을 위해 제공된다. 이들 각각의 루틴은 이들 값이 인-서비스 상태에 남아 있는지를 판단하기 위해 사용된다. "인-서비스"의 어떤 값이 주중재루틴에 사용되기 전에 작동중에 있음이 먼저 판단되어야 한다는 것이다. 제18도(E)는 블록(1152)을 위한 흐름도를 제공하고, 제18도(F)는 블록(1154)을 위한 흐름도를 제공하며 제18도(G)는 블록(1156)을 위한 흐름도를 제공한다. 이들 3개의 흐름도간의 유사성 때문에 왼쪽 아날로그 입력값을 위한 흐름도(1152)만을 설명한다.
제18도(E)의 흐름도(1152)로부터 알 수 있는 바와 같이, 프로그램은 왼쪽 입력값을 위한 "인-서비스" 비트가 이미 세트되었다는 가정으로부터 시작한다. 그러나, 만약 왼쪽 입력값을 위한 패밀리형(Family-Type) 코드가 틀리다면(마름모 1158), 인-서비스 비트는 소거된다(블록 1160). 패밀리형 코드가 올바르다면, 프로그램은 왼쪽 입력값을 위한 인-서비스 비트가 현재 세트되어 있는지를 보기 위해 검사한다(마름모 1162). 인-서비스 비트가 세트되어 있다면, 중간 입력값을 위한 인-서비스 비트가 검사된다(마름모1164) 중간 입력값을 위한 인-서비스 비트가 세트되어 있다면, 프로그램은 L-M 와이드 허용한계 비트가 세트되었는지를 보기 위해 검사한다(마름모 1166). 만약, 와이드 허용한계 테스트가 만족스럽다면, 왼쪽 인-서비스 비트는 세트 상태를 유지한다. 그렇지 않다면, 오른쪽 입력값은 마름모(1168-1170)에 의해 도시된 바와 같이 동일한 방법으로 테스트될 것이다. 만약 L-R 와이드 허용한계 비트가 세트되지 않았다면, M-R 와이드 허용한계 비트가조사될 것이다(마름모 1172). 만약 마름모(1166-1172)에 의해 나타내진 일련의 테스트가 모두 실패한다면 왼쪽 인-서비스(Left In-Service) 비트가 소거된다(블록 1160).
"인-서비스"가 왼쪽과 중간 및 오른쪽값 각각을 위해 테스트되어진 후에, 제18도(B)의 흐름도는 블록(1014)으로 진행한다. 이와 관련하여, 블록(1014)은 디지털 입력을 위해 제17도(B)에 나타낸 것과 동일한 흐름도를 참조한다는 점에 주목해야 한다. 따라서, 프로세스 제어컴퓨터(14)가 기본조건인 경우에 로우 입력값을 요구해 왔는지를 결정하는 프로세스는 디지털 입력과 아날로그 입력 양쪽에 대해서 동일하다는 점을 인식해야 한다.
다음에 아날로그 입력 중재프로세스가 주선택 루틴으로 진행하는바, 이 루틴은 제18도(B)의 블록(1174)에 의해 나타내진다. 블록(1174)에 의해 표현된 흐름도는 제18도(H) 내지 제18도(J)에 나타내진다. 프로그램은 먼저 왼쪽, 중간 또는 오른쪽값중 의 어느 것이 동작중인지를 발견하기 위해 검사한다(예컨대 제18도(H)의 마름모(1176-1180)와 제18도(I)의 마름모(1182-1184)). 만약 이 값들중 어느 것도 처리되고 있는 아날로그 입력채널을 위해 서비스되고 있지 않다면, 중재를 수행하는 제어기는 자기 자신의 값을 선택하게 되고(블록 1186), 중재 불이행 비트가 세트된다(블록 1188). 그러나, 만약 왼쪽과 중간값들이 인-서비스 상태에 있음이 발견되었다면 (그들의 개별적인 인-서비스 비트 셋팅으로부터), 이들 2개의 값은 와이드 허용한계값 테스트를 받게 된다(마름모 1190). 왼쪽과 중간값이 충분히 일치한다면, 왼쪽값이 선택된다(블록 1192).
블록(1192)은 "차이(Difference)"라고 명명된 값이 선택된 왼쪽값으로부터 감해지거나 또는 왼쪽값에 더해지고 있음을 나타낸다. 다음에 설명하는 바와 같이 차이 값과 더불어 선택된 값의 합계는 불이행의 경우에 프로세스 충돌(bump)을 피하기 위해 사용된다. 만약 왼쪽 아날로그 입력값이 마지막 프로세스 사이클동안 선택된다면, 차이값은 제로가 될 것이고 현재의 프로세스 사이클로부터의 왼쪽값은 변경없이 프로세스 제어컴퓨터(14)로 보내지게 된다. 그러나, 만약 왼쪽값이 현재의 사이클 동안 서비스되지 않고 있음이 발견되고, 중간값이 프로세스 제어컴퓨터(14)로 송신을 위해 선택되었다면 (예컨대 제18도(I)의 블록(1194)), 차이 값은 프로세스 제어컴퓨터(14)로 결과값을 송신하기 전에 중간값으로부터 가산되거나 감산될 수 있는 "오프셋(offset)"을 제공한다.
따라서, 마지막 프로세스 제어사이클을 위해 서비스중인 왼쪽값은 10.OOma이고 서비스중인 중간값은 동일한 프로세스 사이클에서 10.O5ma였다면, 프로세스 제어컴퓨터(14)로 10.OOma가 여전히 송신될 것이다. 그러나, 만약 다음 프로세스 제어사이클에 있어서의 왼쪽값이 사용될 수 없고 서비스중인 중간값이 이 사이클을 위해 선택되었다면, 마지막 프로세스 제어사이클로부터의 차이 값 0.05는 중재를 수행하는 제어기에 의해 서비스중인 형재의 중간값으로부터 감해지게 된다. 즉, 만약 동작중인 현재의 중간값이 10.l2ma라면, 이 양으로부터의 0.05와 이 채널을 위한 아날로그 입력값은 10.O7ma로서 프로세스 제어컴퓨터(14)에 전송된다. 각각의 제어기(92-96)가 제18도(H) 내지 제18도(J)에 나타낸 중재 프로세스를 수행함에 따라, 프로세스 제어컴퓨터(14)로 이 아날로그 입력값이 전송되기 전에 선택된 서비스중인 현재의 중간값으로부터 감산되거나 또는 이 중간값에 가산되어야하는 특정한 차이 값을 이들 제어기가 알아야한다는 것을 이해해야 한다. 다르게는, 차이 값은 아날로그 입력값들의 해석이 프로세스 제어컴퓨터에 의해 만들어지도록 프로세스 제어컴퓨터(14)로 전송될 수 있다는 것을 인식해야 한다.
왼쪽값이 선택된 경우조차, 중재 프로세스는 이 시점에서 끝나지 않는다. 마름모(1196)에 의해 설명된 바와 같이, 프로그램은 오른쪽값이 현재 서비스중에 있는지를 판단하기 위해 진행된다. 오른쪽값이 서비스중이라면, 와이드 허용한계 테스트는 왼쪽-오른쪽값뿐만아니라 오른쪽-중간값 조합 모두를에 대하여 검사된다(마름모 1198-1200). 만약 이 테스트들중의 어느 쪽이라도 실패한다면, 특정한 R-M 비교비트(블록 1202)와 같이 적절한 비교비트가 세트될 수 있다. 이렇게 하여 프로세스 제어컴퓨터(14)는 서비스 아날로그 입력값간의 불일치를 최종적으로 알리게 된다. 이러한 불일치의 개수는 조작자에게 경보를 발하거나 또는 적절한 상황에서 영향받은 제어기(100)를 셧다운시키는 것과 같이, 연속된 불일치의 경우에 적절한 반응이 취해질 수 있도록 카운트될 수 있다.
중간값과 같이 3개의 아날로그 입력값중의 하나가 서비스중이 아닌 경우에는, 프로그램은 2개의 남아있는 서비스중인 값 사이의 비교를 진행한다(예컨대 블록 1204). 만약 서비스중인 이 2개의 값이 와이드 허용한계 불일치에 있다면, 중재 불이행 비트가 세트된다(블록 1206). 그리고, 블록(1206)은 영향받은 특정한 비교비트가 세트될 수 있음을 나타낸다. 만약 이러한 불일치가 새로운 불이행을 나타낸다면(블록 1208), 마지막 프로세스 제어사이클을 위한 중재 아날로그 입력값은 프로세스 제어컴퓨터(14)로 보내지게 된다(블록 1210). 그러나, 만약 이러한 불이행이 즉각적으로 진행되는 프로세스 제어사이클에 나타났다면, 프로그램은 프로세스 제어컴퓨터(14)가 로우 기본값을 요구해왔는지를 보기 위해 검사한다(마름모1212). 하여튼 프로그램은 서비스중인 2개의 값중 어느 하나가 다른 것보다 큰지를 보기 위해 검사한다(마름모 1214-1216). 만약 로우값이 요구된다면, 블록(1218-1220)은 서비스중인 2개의 값중에서 보다 낮은 값이 보내질 것임을 나타낸다. 마찬가지로, 블록(1220-1222)은 이 아날로그 입력을 위한 선택-로우 비트가 세트되지 않았을 때 서비스중인 2개의 값중에서 보다 높은 것이 보내지게 됨을 나타낸다. 하여튼, 차이값은 중재 프로세스 동안 인수로 분해되거나 또는 선택된 아날로그 입력값과 함께 프로세스 제어컴퓨터(14)로 보내질 수 있음을 블록(1218-1222)으로부터 인식해야 한다. 왼쪽값 및/또는 중간값이 서비스중에 있지 않은 시간동안 상기한 바와 같이 제18도(I)내지 제18도(J)의 남아있는 부분이 결정을 수행하기 위해 유사한 수형분석(tree analysis)을 수행하므로, 이들 흐름도를 더 이상 설명할 필요는 없다.
제18도(B)를 참조하면, 블록(1224)은 한 세트의 차이 값이 다음 프로세스 제어사이클 동안 사용하기 위해 계산되고 있음을 나타낸다. 특히, 선택된 실제의 값과 왼쪽, 중간 및 오른쪽 값간의 차이가 계산되어 저장된다. 왼쪽값이 선택되는 경우, 차이 값은 제로가 될 것이다. 그러나, 상술한 예에 있어서, 왼쪽-중간값 조합을 위한 차이 값은 0.O5ma가 될 것이다. 유사한 차이값이 마찬가지로 왼쪽-오른쪽값과 중간-오른쪽값 조합을 위해 계산되는데, 이 경우에는 이 값들이 역시 동시에 서비스중이라고 가정한다.
다음에 한 세트의 "서비스중" 테스트 루틴이 블록(1226-1230)에 의해 나타낸 바와 같이 왼쪽과 중간 및 오른쪽 아날로그 입력값의 각각을 위해 제공된다. 이들 루틴의 각각은 이들 값이 다음 프로세스 제어사이클 동안 서비스 중이어야 하는지의 여부를 결정하기 위해 사용된다. 제18도(K)는 블록(1226)을 위한 흐름도를 제공하고, 제18도(L)은 블록(1226)을 위한 흐름도를 제공하며, 제18도(M)은 블록(1230)을 위한 흐름도를 제공한다. 이들 3개의 흐름도는 유사하기 때문에 왼쪽 아날로그 입력값을 위한 흐름도(1226)만을 설명한다.
마름모(1232)는 만약 왼쪽값이 이미 서비스중이라면 이 왼쪽값은 단순히 서비스상태로 남아 있게 됨을 나타낸다. 그러나, 왼쪽값이 서비스중이 아닌 것으로 검출된 경우, 마름모(1234-1238)는 중간값과 오른쪽값이 개별적인 서비스 가능성을 위해 검사되는 것을 나타낸다. 만약 중간값뿐만 아니라 오른쪽값도 서비스중에 있다면, 이들 각각의 값은 내로우 허용한계 일치가 있는지를 결정하기 위해 왼쪽값과 비교된다(마름모 1240-1242). 양쪽 내로우 허용한계 테스트가 성공적이라면 왼쪽값을 위한 인-서비스 비트는 다음 프로세스 제어사이클에 사용하기 위해 세트된다(블록 1244). 그러나, 왼쪽-중간 내로우 허용한계 테스트가 실패하고 왼쪽-오른쪽 내로우 허용한계 테스트는 통과되면(마름모 1236), 왼쪽값과 프로세스 제어컴퓨터로 보내진 입력간의 차이가 계산된다(블록 1248). 다음에 마름모(1250)는 왼쪽-송신(Left-Sent)간이 내로우 허용한계 임계 이하인지를 테스트한다. 만약 왼쪽-송신값이 내로우 허용한계 임계 이하라면, 왼쪽 인-서비스 비트가 세트된다. 그렇지 않다면 왼쪽값은 서비스중이 아니 것으로 남아 있게 된다.
왼쪽값과 오른쪽값이 서비스중이고, 중간값이 서비스 중이 아닌 것으로 판명되면 왼쪽-오른쪽 내로우 허용한계 테스트는 왼쪽 인-서비스 비트가 세트되도록 하기 위해서 통과될 필요가 있다(마름모 1252). 왼쪽, 중간 또는 오른쪽값중 어느 것도 서비스중인 것으로 판명되지 않는 경우, 프로그램은 중간과 오른쪽 값중 하나가 적어도 "양호"한지를 검사한다(마름모 1254-1256). 이와 관련하여 양호한 값이란 아날로그입력보드가 꽃혀 있고 완전히 서로 이웃하는 것끼리의 메시지가 수신되는 그러한 값이다. 왼쪽-중간 또는 왼쪽-오른쪽 조합중의 어느 하나가 내로우 허용한계 테스트를 통과한다면(중간 1258-1260), 왼쪽 인-서비스 비트가 세트된다(예컨대 블록 1262).
일단 이러한 절차가 왼쪽, 중간 및 오른쪽 아날로그 입력값의 각각에 대하여 완료되면, 블록(1264)의 흐름도가 제18도(N)에 나타낸 바와 같이 실행된다. 이와 관련하여 특정한 아날로그입력 비교비트가 세트되었다면 일반적인 아날로그입력 비교비트("AIC")가 세트된다(블록 1266). 따라서, 예컨대 왼쪽값과 중간값 간의 비교가 와이드 허용한계 테스트를 실패했다면(마름모 1268) AIC비트가 세트된다.
결국 제18도(B)의 블록(1270)에 의해 나타낸 바와 같이 중재된 아날로그 입력값은 프로세스 제어컴퓨터(14)로 전송될 데이터 테이블에 저장된다. 다음에 프로그램이 계속 진행되어 타원(1272)에 의해 나타내는 루프에서 다음 아날로그 입력채널을 중재한다. 이 AI루프는 모든 아날로그 입력채널이 제1세트의 중복아날로그 입력회로보드를 위해 중재될 때까지 반복된다. 다음에, 모든 아날로그 입력채널이 중재될 때까지 전체 중재프로세스가 반복된다(예컨대 5개의 아날로그 입력채널 4세트가 동시에 중재됨).
제18도(0) 내지 제18도(T)를 참조하면서, 중재 아날로그 출력의 프로세스를 설명한다. 제18도(0)는 아날로그 출력프로세스를 위한 전체 흐름도(1274)를 나타낸다. 흐름도(1274)가 디지털출력을 위한 제17도(E)의 흐름도(1068)에 의해 채택된 분석을 따르고 있음에 따라, 흐름도(1274)는 단지 간략하게 검토될 필요가 있다. 예컨대 "페일-세이프/페일-라스트 결정(Detremine Fail-Safe/Fail-Last)" 블록(1070)은 디지털출력뿐만 아니라 아날로그출력에 대해서도 동일함에 주목해야 한다. 흐름도에 있어서 아날로그와 디지털흐름도간의 실질적인 차이는 "사용할 출력결정(Determine which Output to Use)" 블록(1276)과 "AOC비트 세트/소거(Set/Clear AOC bit)" 블록(1278)에 최종적으로 포함된다. 제18도(P) 내지 제18도(S)는 블록(1276)을 위한 흐름도를 설명하고, 제18도(T)는 블록(1278)을 위한 흐름도를 설명한다.
제18도(P) 내지 제18도(S)를 참조하면, 흐름도(1276)가 디지털출력을 선택하기 위해 상기 분석을 일반적으로 따르고 있음을 나타낸다(제17도(G)의 흐름도(1072)). 그러나, 디지털출력값들을 매칭시키는 대신에 아날로그출력의 유효쌍들이 출력허용한계값과 비교된다. 특히, 2개의 아날로그출력값간의 차이가 계산되고(예컨대 블록 1280), 이러한 차가 출력허용한계값 범위밖인지에 따라 결정이 내려진다(블록 1282). 출력허용한계값은 전체범위의 0.1%로 선택되는 것이 바람직하다.
만약 출력허용한계 테스트가 성공적이라면, 제일 왼쪽값이 선택된다(예컨대블록 1284). 그러나, 출력허용한계의 테스트가 실패한 경우, 특정한 불일치비트가 세트되게 되고 일반적인 협상불이행비트(general Negotiation failure bit, "AOAF")가 세트된다(1286). 다음에 프로그램이 계속 진행되어 페일-라스트 요구가 프로세스 제어컴퓨터(14)에 의해 만들어졌는지를 판단한다(마름모 1288). 만약 페일-라스트 요구가 만들어지지 않았다면, 2개의 유효 아날로그출력값중 최저값이 필드로 보내진다(마름모 1290) 2개의 유효아날로그출력값중 최저값은 아날로그출력채널을 위한 페일-세이프(Fail-Safe) 선택을 제공한다.
페일-라스트(Fail-Last)값이 프로세스 제어컴퓨터(14)에 의해 요구되는 경우에는, 프로그램이 계속 진행되어 2개의 유효 아날로그출력값중 어느 것이 마지막 중재된 값에 가장 근접했는지를 검색한다. 예컨대 블록(1292)에 나타내는 바와 같이 오른쪽 아날로그출력값과 마지막 중재된 출력값 간의 차이가 계산될 것이다. 마찬가지로, 블록(1294)은 왼쪽 아날로그출력값과 마지막 중재된 출력값 간의 차이가 계산될 것임을 나타낸다. 다음에 마름모(1296)가 이 2값의 차이를 비교할 것이고 경우에 따라서는 가장 작은 차이가 왼쪽 또는 오른쪽 값을 선택하는데 사용된다.
결국, 제18도(T)의 흐름도(1278)가 일반적인 아날로그출력 비교비트 "AOC"를 세트 또는 소거하기 위해 사용된다. 이와 관련하여 마름모(1298-1302)와 블록(1304)은 만약 어느 특정 비교비트가 세트되었음이 발견되면 AOC비트가 세트될 것임을 나타낸다. 이와 달리, 불일치가 발견되지 않는 경우 AOC비트가 소거된다(블록 1306).
또한 아날로그출력트랙 "AOT"값과 디지털출력트랙 "DOT"값은 본 명세서에 설명된 아날로그 출력값과 디지털 출력값의 중재방식과 유사한 방식으로 중재될 수 있다. 실제로, 제어기(92,96)에 의해 수신된 클록신호까지도 유사한 방식으로 중재될 수 있다. 이와 관련하여, 클록신호중재는 어느 클록신호가 선택되어야 하는지를 결정하기 위해 제17도(C)에 설명한 분석을 따르는 것이 바람직하다.
제19도(A) 내지 제19도(M)은 본 발명에 따른 디지털출력회로(500-504)를 비강제적으로 테스트하는 방법을 설명하기 위해 나타낸 것이다. 이 테스트방법은 수동 및 능동 테스트절차를 포함한다. 제19도(A) 내지 제19도(C)를 조합하여 비강제적인 테스트프로세스를 위한 전체 흐름도(1400)를 제공한다. 블록(1402-1406)과 마름모(1408-1416)에 나타낸 바와 같이, 디지털 출력회로의 어느 테스트가 허가되기 전에 일련의 헬스검사(health check)가 이루어진다. 이와 관련하여, 테스트될 디지털 출력회로를 위한 프로세스 사이클을 즉각적으로 처리하는 것으로부터 발견되는 에러가 없어야 하며, 테스트를 수행하는 제어기(100)는 그 이웃하는 제어기와 통신할 수 있어야 한다. 마름모(1408-1416)에 의해 표시된 어느 상황이 합치하지 않는 경우에는, 제l9도(B)의 흐름도(1400)의 연속은 적절한 에러코드가 세트됨을 나타낸다.
디지털출력회로가 테스트되도록 허가되면, 마름모(1418)는 이웃하는 제어기를 위한 디지털출력회로가 에러에 대해 검사됨을 나타낸다. 만약 어떠한 에러가 발견된다면 블록(1420)의 수동테스트절차는 우회된다. 제19도(D) 내지 제19도(E)를 조합하여 수동테스트 절차를 위한 흐름도를 제공한다. 수동테스트절차가 주어진 시간에 제어기(92-96)중 오직 하나의 디지털 출력회로상에서 수행될 수 있는 반면에,각각의 제어기(92-96)는 동시에 수동테스트절차를 수행할 수 있음을 인식해야 한다. 이는 이웃하는 제어기간의 능동적 협력이 수동테스트 절차 동안 요구되지 않기 때문이다.
블록(1422), 다각형(1424-1426) 및 마름모(1428)에 나타낸 바와 같이, 수동테스트는 채널1로 시작되고, 만약 어느 에러와도 마주치지 않는다면 10개의 채널 전부에 대해 수행될 것이다. 마름모(1430)에 따르면, 프로그램은 테스트되는 채널의 상태가 변했는지의 여부를 검출할 것임을 나타낸다. 만약 채널의 상태가 변하였다면 프로그램이 계속 진행되어 다음 채널을 테스트한다. 그러나, 루프를 처음 통과하는 동안 그 대답은 노우(no)일 것이고, 테스트와 트랙전압이 판독된다(블록 1432-1434).
마름모(1436)는 테스트되는 채널이 중재된 명령값으로부터 온 또는 오프인지를 제어기(100)가 결정할 것임을 나타낸다. 만약 채널이 온으로 명령된다면 제어기는 테스트전압(예컨대 테스트-1)이 소정의 임계레벨(예컨대 l9볼트)보다 큰지를 검사한다. 만약 테스트전압이 이 레벨보다 크다면 상기 테스트의 이 부분은 성공적으로 통과될 것이고 프로그램은 OK다각형(1440)을 통해 다음 채널을 테스트하기 위해 다시 루프(loop)될 것이다. 만약 테스트전압이 너무 낮다면, 적절한 에러코드가 세트될 것이고 따라서 많은 다른 에러(예컨대 퓨즈 끊어짐 또는 세트 스위치 개방)가 발생될 수 있다. 일단 에러가 발견되면 본 실시예에서는 수동테스트가 종결된다. 그러나, 다른 채널은 적절한 응용의 경우에 수동테스트를 받을 수 있음을 인식해야한다.
만약 채널이 오프조건으로 명령받는다면, 제어기(100)는 테스트전압이 마름모(1446)를 통한 소정의 로우테스트레벨(예컨대 350 milli-volts)보다 큰지를 검사할 것이다. 만약 테스트전압이 이 레벨 이하라면 퓨즈개방상태가 검사중인 어보트 회로의 퓨즈(예컨대 제11도(A)의 퓨즈(DF1))에 대해 검출될 것이고, 적절한 에러코드가 세트된다. 테스트전압이 소정의 로우테스트 레벨을 초과한다면, 제어기(100)는 마름모(1448)를 통해 트랙전압이 로우 트랙레벨(예컨대 4.4볼트) 이하인지를 검사할 것이다. 만약 트랙전압이 이 로우 레벨보다 높다면 제어기(100)는 마름모(1450)를 통해 트랙전압이 소정의 하이 트랙전압(예컨대 14.4볼트) 이하인지를 검사한다. 만약 트랙전압이 이 하이(High)레벨보다 높다면 에러가 나타난다. 그러나, 에러의 정확한 소스(source)는 결정될 수 없고, 따라서 상기 테스트는 다른 채널에서 계속된다. 이와 관련하여 다음에 상술되는 능동테스트 절차는 에러의 소스를 확인하는데 도움을 주도록 채택될 필요가 있을 것이다.
트랙전압이 로우 전압레벨 이하인 경우에는 발견될 수 있는 에러가 여전히 있는지를 판단하기 위해 추가로 검사가 수행된다. 즉, 트랙전압은 채널이 오프일 때 소정의 로우 레벨 이하여야 하지만, 여기에는 여전히 발견할 수 없는 숨겨진 문제가 있을 수 있다. 이와 관련하여, 테스트전압이 어보트 회로의 다이오드(524)와 관련된 에러가 있는지를 보기 위해 검사될 것이다(마름모 1452), 만약 테스트전압이 소정의 하이 테스트전압보다 크다면(예컨대 15.8볼트), 오픈 다이오드 조건은 제어기에 의해 결정될 것이고, 적절한 에러코드가 세트될 것이다(블록 1454). 이와 관련하여, 이들 에러코드는 그 이웃하는 제어기가 채널의 어보트를 요구하도록 제어기(100)에 의해 사용될 수 있음에 주목해야 한다. 게다가, 상기 테스트를 수행하고 있는 제어기는 또한 프로세스 제어컴퓨터로 보내진 다음 메시지에 프로세스 제어컴퓨터(14)로 그 디지털 출력회로의 에러의 출현을 신호할 수 있다. 프로세스 제어컴퓨터(14)는 또한 필드컴퓨터 유니트(12)가 헬스 및 웰페어 프로세스를 통한 분석을 위해 특수한 에러코드 또는 상태비트를 전송하도록 요구할 수 있다. 이와 관련하여 프로세스 제어컴퓨터(14)는 헬스 및 웰페어 분석을 수행할 또 다른 컴퓨터에 연결될 수 있음에 주목해야 한다.
만약 테스트전압이 그 설정된 하이전압레벨 이하임이 발견되면, 제어기(100)는 테스트전압과 트랙전압을 비교함으로써 다이오드(524)를 가로지르는 전압강하의 존재에 대해서 테스트한다(마름모 1456). 만약 전압강하가 발견되지 않았다면 제어기(100)는 단락 다이오드 상태로 판단하여 적절한 에러코드를 세트한다(블록 1458). 만약 전압강하가 발견되면 제어기(100)는 마름모(1459)를 통하여 트랙전압이 소정의 최소레벨(예컨대 240milli-volts) 이하인지를 검사할 것이다. 만약 트랙전압이 최소레벨 이하라면, 제어기(100)는 수동테스트가 이 채널에 대해 성공적이었는지를 판단한다. 만약 트랙전압이 상기 최소레벨 이상이라면, 제어기(100)는 필드에 에러가 발생되었는지를 판단하며, 적절한 에러코드가 보내지게 된다(블록 1460). 각각의 하이, 로우 및 최소 임계전압은 +26볼트의 전원공급레벨과 제11도(A)에 나타낸 어보트 회로(510)의 저항(RP1, RP3, RP7)을 위해 세트된 저항값에 의해 결정된다는 점을 이해해야 한다.
상기의 검토로부터 제어기(100)는 디지털 출력보드의 각각의 채널을 수동적으로 테스트할 수 있는데, 디지털 출력채널중 어느 것도 테스트절차의 부분으로서 의도적으로 온 또는 오프로 세트되어서는 안된다. 이와 관련하여 제19도(A)의 블록(1462)에 따르면, 제어기(100)는 테스트 및 트랙신호를 통해 그 디지털출력회로의 기능을 수동적으로 검출하고 분석하는 어떠한 시간주기를 남겨두어야만 한다는 것을 나타낸다. 게다가, 본 발명에 따른 수동테스트는 직면할 수 있는 에러유형을 판단할 수 있는 능력을 역시 갖추고 있는데, 상기 에러에는 필드의 출력제어디바이스와 연관된 에러도 포함된다.
특히 제19도(B)를 참조하면, 제어기(100)는 능동테스트절차로 진행되기 전에 수동테스트절차를 위한 시간(예컨대 1Omilli-seconds)이 경과될 때까지 기다리게 된다(블록 1464). 이어서 제어기(92-96)중 어떤 것이 능동테스트절차를 수행하게 되지를 결정한다. 본 발명의 한 형태에 있어서, 별개의 제어기(92-96)는 각 프로세스 제어사이클마다 능동테스트를 받는 것이 바람직하다. 이는 프로세스 제어컴퓨터(14)의 "세컨드(second)" 클록값을 블록(1466)에 나타낸 바와 같이, 필드컴퓨터 유니트(12)에 포함된 제어기의 수(즉, 3)로 나눔으로써 수행된다. 나머지(remainder)는 어느 제어기가 능동테스트를 받게 될 것인지를 결정하는데 사용된다. 예컨대, 12초의 판독에 있어서 나머지값은 0이다. 그러므로 마름모(1468)에 의해 나타낸 바와 같이, 왼쪽제어기는 이러한 프로세스 제어사이클 동안 능동테스트절차(다각형 1470)를 수행한다. 게다가, 마름모(1468)의 결과는 다른 2개의 제어기(94-96)가 리스닝모드(listening mode)로 들어감을 나타낸다(다각형 1472-1473).
제19도(F) 내지 제19도(G)는 조합하여 능동테스트절차를 위한 전체 흐름도(1470)를 제공한다. 이와 관련하여, 왼쪽제어기(92)의 제1채널은 능동테스트절차의 조작을 설명하기 위해 사용된다. 제어기(92)를 위한 디지털 출력회로보드(500)가 제자리에 있고 디지털 출력회로(500-504)의 어디에서도 에러가 발견되지 않는 경우(마름모 1474-1482), 블록(1482)은 디지털 출력채널중의 하나가 능동테스트절차를 위해 선택되는 것을 나타낸다. 이 특정 실시예에 있어서, 디지털 출력채널중의 하나만이 하나의 프로세스 제어사이클 동안 테스트된다. 따라서, 디지털출력회로(500-504)의 더지털 출력채널 10개 모두를 능동적으로 테스트하기 위해서는 30초가 걸린다는 점을 알아야 하는데, 여기서 프로세스 제어사이클은 1초의 주기 동안 세트된다. 테스트를 위한 라인에 있어서 채널의 상태가 변화하지 않고(마름모 1484) 필드에러가 상기 채널의 수동테스트로부터 발견되지 않은(마름모 1486) 경우에는, 이 채널이 온 또는 오프인지에 따라 결정이 내려진다(마름모 1488). 만약 채널이 오프라면 능동-오프 테스트가 수행된다(1490). 만약 채널이 온이라면 능동-온테스트가 수행된다(다각형 1492).
능동-오프테스트를 위한 흐름도(1490)는 제19도(H)에 나타나 있다. 흐름도(1490)로 설명되는 바와 같이, 능동-오프테스트는 일련의 3개의 개별테스트를 구비하는데(블록 1494-1498), 에러가 발견되지 않는다면 모두 완결된다. 제1테스트(블록 1494)에 있어서, SET_DODC-1 신호는 제11도(A)의 트랜지스터(516)를 턴온시키기 위해서 제어기(92)에 의해 하이로 세트된다. 블록(1494)에 특별히 기재되지는 않았지만, 트랜지스터(518-520)는 둘 다 오프이고, 따라서 어보트 스위치는채널이 오프일 때 자동적으로 개방되도록 프로그램된다. 따라서, 트랜지스터(516)가 도통되더라도 어보트 회로(510)가 필드 디바이스(508)를 구동하도록 하지는 않는다. 저항이 도통 트랜지스터(516)를 가로질러 단락됨에 따라, 테스트-1 전압신호는 어보트 회로(510)의 저항 분배 네트워크에 의해 결정되는 양만큼 상승되어야 한다. 따라서, 블록(1494)에 의해 나타낸 바와 같이, 제어기(92)는 충분한 전압증가(델타-테스트)가 이루어졌는지와 테스트-1 전압이 그 최대 허용가능값 이하인지를 검사한다. 만약 이러한 테스트가 성공적이지 못했다면 능동테스트 에러(Active Test Error)가 세트된다. 상기 결과에도 불구하고 SET_DODC-1 신호는 그 오프상태로 다시 토글된다. 마름모(1500)에 따르면, 제어기(100)는 능동에러 비트(Active Error bit)가 세트되었는지를 검사하며, 세트되었다면 프로그램의 흐름은 제19도(F)의 능동 에러 절차(1502)로 인계된다.
어떠한 에러와도 직면하지 않았다면, 제2 능동-오프테스트가 수행된다(블록 1496). 이러한 테스트 중에 제어기(100)는 그 네이버1 제어기(예컨대 제어기 94)가 트랜지스터(518)를 턴온하기 위해 어보트 1-1 신호를 하이로 세트하도록 요구한다. 그러나, SET_DODC-1 신호가 로우를 유지하기 때문에, 어보트 회로(510)는 필드 디바이스(508)를 구동할 수 없다. 그럼에도 불구하고 테스트-1 신호전압은 저항(RP3)이 효율적으로 도통 트랜지스터(518)에 의해 단락됨에 따라 상승해야 한다. 제어기(100)는 적절한 전압레벨증가가 이루어졌는지를 검사하여, 만약 이러한 증가가 이루어지지 않았다면 능동테스트 에러비트(Active Test Error bit)를 세트한다. 다음에 제어기(92)는 그 이웃하는 제어기로 하여금 어보트-1 신호를 로우상태로 다시 토글하도록 요구한다. 마름모(1504)에 따르면, 제어기(92)가 이러한 메시지가 통신 에러 비트(Communication Error bit)를 통해 수신되었는지를 검사하는 것을 나타낸다.
어떠한 에러와도 직면하지 않았다면, 제3 능동-오프테스트가 수행된다(1498). 이 테스트는 어보트 2-1 신호가 남아있는 이웃 제어기(예컨대 제어기 96)에 의해 토글되는 것을 제외하면 제2 능동-오프테스트와 거울상(image mirror)이다.
만약 직면하는 에러가 없었다면, 프로그램제어는 다음 프로세스 제어사이클에서 다음 디지털출력채널을 테스트하기 위해 제19도(G)의 흐름도로 되돌아간다(다각형 1506).
제19도(I) 내지 제19도(J)는 능동-온 테스트(1492)를 위한 흐름도를 나타낸다. 능동-온 테스트는 일련의 5개의 테스트절차를 구비한다(블록 1508-1516). 테스트블록(1508)에 있어서, SET_DODC-1 신호는 로우로 세트되며, 반면에 어보트 1-1 신호와 어보트2-1 신호는 하이로 유지된다. 따라서, 제어기(92)는 테스트-1 전압레벨이 델타-전압(delta-voltage)만큼 떨어지는지를 검사한다. SET_DODC-1 신호는 다음에 하이상태로 다시 토글된다. 테스트블록(1510)에 있어서, 어보트 1-1 신호는 로우로 토글되며, 어보트 2-1 신호와 SET_DODC-1 신호는 하이가 된다 (네이버1 제어기로의 요구를 통해). 따라서, 제어기(92)는 테스트-1 신호가 전압강하를 경험하지 않았는지를 검사한다. 만약 전압강하가 발견된다면, 트랜지스터(520)와 옵토아이솔레이터(DU3) 또는 어보트 2-1 신호와 관련하여 불이행이 발생하여, 적절한 도통 트랜지스터(520)는 테스트-1 신호가 전압레벨을 유지하도록 한다. 제3 능동-온 테스트(블록 1512)는 어보트 2-1 신호가 로우로 토글되는 것을 제외하면 제2 능동-온테스트를 반복한다.
제4 능동-온 테스트(블록 1514)에 있어서, 제어기(92)는 그 이웃하는 양 제어기(94-96)가 어보트 1-1 신호와 어보트 2-1 신호를 로우로 세트하도록 요구한다. 다음에 제어기(92)는 테스트-1 신호전압이 소정의 델타-전압값만큼 강하되는지를 검사한다. 이 시간동안 다른 2개의 제어기(94-96)는 필드 디비이스를 계속 구동한다. 결국, 제5 능동-온테스트에 있어서, 제어기(92)는 테스트되는 채널을 위해 그 이웃하는 제어기(94-96)가 그들의 SET_DODC-1 신호를 로우로 스위치하도록 요구한다. 이렇게 되면, 어보트 회로(510)만이 필드 디바이스(508)를 구동하게 되는 것을 이해해야 한다. 따라서, 제어기(92)는 어보트 회로(510)가 만약 필요하다면 그 자신에 의해 필드 디바이스(510)를 구동할 수 있음을 확실히 해두기 위해 테스트-1 전압레벨이 강하하지 않는지를 검사한다. 게다가, 다이오드가 적절히 기능하고 있는지를 확실히 하기 위하여 다이오드(524)를 가로질러 전압강하가 일어나는지도 역시 검사된다. 에러가 발견되지 않으면 다음에 프로그램제어는 에러없음 절차(1506)로 넘어가게 되며, 테스트할 다음 채널을 셋업한다(블록 1518).
능동-오프 테스트와 능동-온 테스트 동안, 이웃하는 제어기(94-96)는 그들의 어보트 1-1 신호와 어보트 2-1 신호 및 SET_DODC-1 신호를 변화시키려는 요구에 영향을 미침으로써 제어기(92)와 협력할 필요가 있음을 이해해야 한다. 이러한 협력은 제19도(K) 내지 제19도(M)에 나타낸 리스닝 모드절차(1472)를 통해 얻어진다.이들 이웃하는 것끼리의 통신이 매 프로세스 제어사이클당 한번씩 특정시간에 수행되는 입력 및 출력데이터 교환의 밖에 있음에 따라, 제6도(J) 내지 제6도(K)에 나타낸 연속적인 근사 디지털 -아날로그 컨버터회로는 각각의 제어기(9496)에서 제어기(92)로부터 신호변화요구를 수신하도록 셋업되어야 한다(블록 1520). 다음에 내부 타이머는 신호변화 요구 또는 명령어가 수신되어야 하는 범위내에서 각각의 제어기(94-96)에 의해 셋업된다(블록 1522). 적절한 명령어가 이 시간에 수신되지 않았다면(마름모 1524), 제l9도(B)의 겟아웃(get out) 절차(1526)가 수행된다.
마름모(1528-1530)는 능동테스트 프로세스를 끝내도록 제어기(92)가 제어기(94-96)에 신호할 수 있음을 나타낸다. 만약 수신된 명령어가 종결 테스트명령이 아니라면, 이웃하는 제어기(94-96)는 어떠한 에러가 수동테스트동안 개별적인 디지털 출력회로(502-504)상에서 직면했는지를 검사한다(블록 1532). 만약 에러에 직면한다면, 그 자신의 에러를 발견하는 이웃하는 제어기는 요구된 명령어(1534)를 실행할 수 없는 제어기(92)로 다시 신호를 보낼 것이고, 제어기(92)로부터 그 추가메시지를 기대하는 시간의 양을 세트한다(블록 1536). 보드 에러가 존재하면, 능동 테스트가 종결됨에 따라 제어기(92)는 종결 테스트명령에 응답하는 것이 바람직하다. 이러한 경우에, 에러의 형태를 나타내는 에러코드가 저장되는바, 수동테스트동안 어느 채널에서 에러가 검출되었는가에 따른 확인을 얻을 수 있다.
아무 에러도 발견되지 않았다면, 이웃하는 제어기(94-96)는 제어기(92)가 어보트신호(마름모 1540-1542)의 특정한 변화 또는 SET 신호의 변화(마름모 1544)를 요구했는지를 판단한다. 예컨대 "어보트 온(Abort On)" 명령의 경우, 이웃하는 제어기(94-96)는 명령메시지로부터 영향받는 채널을 추출하게 되고(블록 1546), 필드 에러가 있는지를 검사한다(마름모 1548). 테스트되는 채널의 필드디바이스(508)에 대해 에러가 발견되지 않았다면, 각각의 제어기(94-96)는 채널이 온인지를 검사한다(마름모 1550). 만약 채널이 온이라면, 어보트 트랜지스터(예컨대 트랜지스터 518)는 곧 온이 될 것이다. 따라서, 이 접속점에서 어보트 온 명령을 수신하는 제어기는 배드 메시지(bad message)가 수신되었는지를 판단하게 되고(다각형 1552), 이 명령어가 실행될 수 없는 제어기(100)로 응답메시지를 보낸다(블록 1536). 그러나, 채널이 오프였다면, 제어기(94-96)는 어느 어보트 스위치가 오프상태로 변화되도록 명령받았는지를 판단한다(블록 1554). 다음에 제19도(M)의 리세트 대기 루틴(1556)루틴이 수행된다.
제19도(M)의 리세트 대기 루틴(1556)은 수신된 명령어를 다시 반향하는 제어기(92)에 응답메시지를 보내는 이웃하는 제어기(94-96)로 시작된다(블록 1558). 이 반향절차(echoing procedure)는 메시지가 적절히 수신되었음을 제어기(92)가 알도록 해준다. 다음에, 제어기(94-96)는 제어기(92)에 의해 명령받은 특정한 스위치를 온 또는 오프시키게되고(블록 1560), 그 이전의 상태로 상기 스위치를 다시 자동적으로 토글할 수 있도록 타이머를 세트시킨다(블록 1562). 만약 타이머가 제로(또는 소정의 타임아웃값)에 도달하기 전에 제어기(92)로부터의 토글-백 메시지(toggle-back message)가 수신되지 않는다면, 영향받은 이웃하는 제어기는 자동적으로 그 이전의 상태로 다시 상기 스위치를 토글시킨다(블록 1564). 그렇지 않다면 제어기(94-96)는 그들의 개별적인 스위치를 리세트하게 되고(블록 1556),제어기(92)에 대해 반향메시지로 답한다(블록 1568). 최종적으로 제19도(G)에 나타낸 바와 같이, 제어기(92)는 능동테스트 절차를 끝내기 위해 그 이웃하는 제어기로 메시지를 보내게 된다(블록 1570-1572).
상기한 바와 같이, 각각의 아날로그 출력회로(600-604)는 그들의 어보트 및 구동능력에 대해 테스트들이 수행될 수 있도록 한다. 테스트들이 필드로 공급되는 아날로그 출력값을 방해하지 않기 때문에 이들 테스트는 비강제적인 것이 간주된다. 비강제적 테스트는 동시에 하나의 아날로그 출력회로(600-604)의 5개의 채널 전부에서 수행될 수 있고, 이러한 테스트는 모든 제어기(92-96)와 그들의 개별적인 아날로그 출력회로가 완전히 기능하고 있을 때에만 일어나는 것이 바람직하다. 하나의 아날로그 출력회로가 이러한 비강제적 테스트를 겪는 반면에, 다른 2개의 이웃하는 아날로그 출력회로중의 적어도 하나는 필드로 보내지는 원하는 출력전원을 유지하는데 필요한 전류를 발생시키게 된다.
제20도(A) 내지 제20도(V)는 어보트결정을 하고 본 발명에 따른 아날로그 출력회로(600-604)의 비강제적 테스트를 조종할 수 있는 제어기(92-96)상의 소프트웨어를 위한 한 세트의 흐름도를 제공한다. 이와 관련하여 제2O도(A)는 이 제어기를 위한 전체적인 또는 메인 흐름도(1600)를 나타낸다. 설명을 용이하게 하기 위해 이 소프트웨어에 의해 나타내진 조작은 그 예처럼 제어기(92)를 사용하여 설명될 수 있다. 그러나, 이들 조작이 각각의 제어기(92-96)에 의해 동시에 수행되어짐을 인식해야 한다. 블록(1602)은 어보트결정을 위해 필요한 데이터를 나타내고 있는데, 비강제적 테스트가 외부 RAM메모리(제6도(A)의 U42)로부터 제어기의 마이크로프로세서(제6도(A)의 U4O)의 내부RAM으로 복사된다. 다음에, 제어기(92)는 파선블록(1604-1612)에 의해 나타낸 바와 같이 한 세트의 루틴을 연속적으로 수행한다. 필요한 어보트 계산 루틴(1604)이 제20도(B) 내지 제20도(L)에 나타나 있다. 비강제적("NI") 테스트 선택 및 셋업루틴(1606)이 제20도(M) 내지 제20도(P)에 나타나 있다. 스마트 아날로그 출력("SAO") 보드로의 통신 루틴(1608)이 제20도(Q) 내지 제20도(S)에 나타나 있다. 취급 에러루틴(1610)은 제20도(T) 내지 제20도(U)에 나타나 있다. 하드웨어루틴(1612)으로의 어보트 위치 송신은 제20도(V)에 나타나 있다. 일단 이들 루틴 전부가 완료되면, 프로세스정보("PI")시스템에 의해 요구되는 필요한 상태바이트가 만들어진다(블록 1614). 결국, IRAM데이터는 XRAM으로 다시 복사된다(블록 1616).
제20도(B) 내지 제20도(L)에 있어서, 필요한 어보트 계산 루틴(1604)을 위한 한 세트의 흐름도가 나타나 있다. 제20도(B)는 이 루틴을 위한 종합적인 흐름도를 제공한다. 블록(1618)은 Nl과 N2출력통신으로부터 전송된 데이터에 하드웨어 어보트 불일치가 있는지를 보기 위해 먼저 검사되고 있음을 나타낸다. 하드웨어 어보트 불일치는 ME제어기(92)가 특별한 채널을 어보트했고 이웃하는 제어기(Nl-N2)중의 어느 것도 동시에 행해지지 않을 때 발생한다. 만약 이러한 조건이 존재한다면 불일치하는 어보트 스위치는 닫힌다. 하여간 이웃하는 제어기로부터의 어보트 요구는 요구데이터에 의해 확인된 SAO의 채널을 위한 어보트 스위치를 개방함으로써 승낙받는다. 제어기(92)는 다음에 어보트요구를 소거하고 다음의 프로세스 제어사이클을 위한 그 자신의 독립적인 어보트 결정을 처리하기 시작한다(블록 1622).
마름모(1624-1626)는 이웃하는 SAO보드중의 어느 것이 교체되었는지를 판단하기 위해 사용되는데, 만약 교체되었다면, 블록(1628-1630)은 SAO가 동작하도록 하기 위해 교체된 SAO를 위한 어보트 스위치가 닫히는 것을 나타낸다. 다음에 제어기(92)는 SAO보드가 마지막 프로세스 제어사이클 동안 통신을 보냈는지를 검사한다(마름모 1632). 만약 통신이 보내지지 않았거나 또는 문제가 보고되었다면, 플래그가 세트되어 이 SAO보드는 "죽었음(dead)"으로 간주된다 (블록 1634). 다음에 유사한 절차가 제어기(94-96)로부터 제공된 메시지를 통해 이웃하는 양 SAO보드를 위해 수행된다(마름모 1636-1638). 다음에 이웃하는 양 제어기(94-96)가 제어기(92)와 통신하는 데 실패한 경우에는, 어떠한 어보트 스위치도 이 시점에서 제어기(92)에 의해 개되지 않는다(마름모 1640). 이렇게 하면, 제어기(92-96)중 어떤 것도 서로 통신할 수 없는 경우조차 페일 세이프/라스트 메카니즘에 의해 결정된 출력이 필드에 도달하도록 한다.
제어기(92)가 그 이웃하는 것중의 적어도 어느 하나와 통신할 수 있다면, 필요한 어보트 개방루틴(1642)이 수행된다. 필요한 어보트 개방루틴(1642)을 제20도(C) 내지 제20도(J)에 나타낸다. 제어기(92)는 다음에 제20도(K)의 어보트 불일치 취급루틴(1644)을 수행한다. 마지막으로, 제어기(92)는 제20도(L)의 어보트 루틴(1646)으로부터 소거를 수행한다.
제20도(C) 내지 제20도(J)를 참조하면서, 필요한 어보트 개방 루틴(1642)을 설명한다. 마름모(1648)는 제어기(92)를 위한 SAO보드가 죽은 것으로 플래그되었는지에 따라 초기 검사가 행하여지고 있음을 나타낸다. 만약 이 SAO보드가 활성 또는동작중으로 간주된다면, 프로그램제어는 제20도(E)상의 "A"로 점프한다. 그러나, SAO보드가 죽었다고 생각되는 경우라도, 제어기(92)는 5개의 모든 아날로그 출력채널을 위한 어보트 결정을 처리하기 위해 여전히 셋업될 것인데, 이들 채널의 첫번째를 나타낸다(블록 1650). 마름모(1652-1656)는 이웃하는 SAO보드의 어느 하나가 죽은것으로 플래그되었는지를 보기 위해 검사가 행해지는 것을 나타낸다.
이웃하는 SAO보드 양쪽이 동작중이라면, 마름모(1658-1660)는 제어기(94-96)에 의해 중계되는 것처럼, 각각의 이웃하는 SAO보드로부터 "OOCH ME = 0" 플래그의 존재를 검출하는데 사용된다. 이 상태 신호의 용어 "OOCH"는 "하이 제어불능(Out Of Control High)"을 나타낸다. 상기한 바와 같이, 만약 필요한 전력(예컨대 최대 허용가능 값의 2%) 이상의 전력이 필드로 보내지는 것을 SAO중의 어느 것이 발견한다면, 그러한 발생이 발견되는 어느 SAO보드는 제로로 그자신을 램프(ramp)하려고 시도한다. 만약 필드로 전송되는 전원의 기여로부터 그 자신을 램프(ramp)할 수 있고 (즉 ME=0) OOCH조건이 여전히 존재한다면, 그 자신의 제어기로부터 메시지를 통하여 이웃하는 제어기로의 통신을 위하여 하이 제어불능 ME=0 플래그를 세트한다. 따라서, 예컨대 만약 "N1 OOCH ME =0"신호가 제어기(92)에 의해 수신되고, "N2 OOCH ME = 0"플래그가 세트되지 않으면, 블록(1662)은 N2로 지정된(예컨대 제어기 96) 제어기상의 제1채널을 위해 어보트 스위치를 개방한다. 이러한 작용은 Nl으로 지정된 제어기(예컨대 제어기 94)를 위한 SAO보드가 문제의 근원이 아니라는 점이 분명하기 때문에 취해지고 있다. 그러나, 만약 "Nl OOCH ME=0"과 "'N2 OOCH ME = 0" 신호 양쪽이 제어기(92)에 의해 수신되었다면, 제어되지않은 전원이 아날로그출력채널(블록 1664)을 위해 필드로 전송되고 있다는 것을 프로세스 제어컴퓨터(14)에 표시하도록 플래그가 세트된다.
마름모(1652)에 대한 응답이 예스이고 마름모(1654)에 대한 응답이 노우인 경우, 제어기(92)는 "N2 OOCH ME = 0" 플래그를 찾게 된다(마름모 1666). 만약 이 신호가 존재한다면 제어기(92)는 필드 플래그에 제어되지 않은 전원을 세트한다(블록 1668). 그리고, 여분의 계측으로서 제어기(92)는 Nl으로 지정된 제어기를 위해 SAO보드의 이 채널을 위한 어보트 스위치를 다시 개방한다. 이것은 Nl제어기가 제어기(92)와 통신할 수 없고 N2 SAO가 부하를 구동할 수 있는 것처럼 보이는 경우조차, (비록 어보트 스위치가 개방되었어야 하더라도) N2SAO가 로드를 구동할 수 있도록 나타날 때조차 N1SAO보드가 너무 많은 전원을 필드로 잘못되게 전송할 수 없도록 하기 때문이다. 마름모(1670)와 블록(1672)은 Nl SAO가 적절히 기능하고, N2 SAO보드가 죽었다고 생각되는(또는 그 제어기는 이 프로세스 제어사이클의 제어기(92)와 통신하지 않는 경우)경우에는 이 절차가 계속됨을 나타낸다. 마름모(1652, 1654)가 둘 다 예스로 응답되는 경우에는 이 채널의 3중 어보트 플래그가 소거된다(블록 1674). 이 플래그는 필드로 보내지는 전원의 전체 손실을 방지하기 위해 모든 어보트 스위치가 폐쇄되도록 하는데 사용된다.
제20도(D)는 5개의 아날로그 채널 모두가 처리될 때까지 이러한 프로세스가 반복되고 계속되는 것을 나타낸다. 제20도(E) 내지 제20도(J)는 조합하여 제어기(92)를 위한 SAO보드가 기능하고 이웃하는 SAO보드가 기능을 하거나 또는 기능을 하지 않을 때 유사한 방식으로 상기 프로세스가 수행되는 것을 보여준다. 따라서 예컨대 마름모(1676)는 그 이웃하는 것들이 통신하는데 실패했거나 또는 그들의 SAO보드가 죽었다고 간주될 때 제어기(92)가 그 자신의 "OOCH ME = 0" 플래그의 존재를 위한 테스트를 하게 됨을 나타낸다. 본 예에 있어서, 제어기(92)가 비기여레벨(예컨대 제로출력)로 그 자신을 램프다운 하지 않았기 때문에 블록(1678)은 적절한 양의 전원이 SAO보드를 위해 필드로 전송되고 있음을 나타낸다. 반대로, 만약 이 SAO가 그 자신을 램프아웃(ramp out)했다면, 필드플래그에 제어되지 않은 전원이 세트되고 이 채널을 위한 Nl과 N2 어보트 스위치는 그것들이 아무 전원도 출력하고 있지 않음을 보증하도록 제어기(92)에 의해 개방된다(블록 1680).
그리고 만약 그러한 작용이 앞에서 설명한 프로세스에 의해 보증된다면 제20도(F)의 마름모(1682)에 대한 YES응답은 이웃하는 제어기(94-96)가 독립적으로 필요한 어보트결정을 취급하게 되는 것을 나타내고 있음에 주의해야 한다(예컨대 제어기(92)의 SAO보드를 위한 어보트 스위치 개방). 게다가 제20도(J)의 마름모(1684)에 대한 NO응답은 세이프 불일치 플래그가 세트되는 것을 나타낸다(블록 1686). 이것은 SAO보드의 전부가 기능하고, 통신이 Nl과 N2 양쪽 제어기로부터 수신되었으며, 제어기(92)를 위한 SAO보드는 "OOCH ME = 0"을 세트하고, 다른 2개의 SAO보드는 그들의 개별적인 "OOCH ME = 0"플래그를 세트하지 않은 경우의 상황이다. 이 상황에서 3개의 SAO보드가 기능하고 있기 때문에 세이프 불일치 플래그가 세트되며, 따라서 어보트가 개방되어야하는지를 결정하도록 하는 대다수의 결정을 채택하는 것이 가능하다. 세이프 불일치 플래그는 문제가 발생한 제20도(K)의 어보트 불일치 루틴을 표시하는데 사용된다. 그러나, 마름모(1684)에 대한 대답이 예라면 제어기(92)는 이 채널을 위해 Nl 어보트 스위치를 개방한다(블록 1688). 이는 2개의 SAO보드(ME와 N2)가 필드로의 출력이 너무 높다는 것을 독립적으로 알아채어 그들의 출력을 비기여레벨까지 독립적으로 떨어뜨리지만, Nl 제어기를 위한 SAO보드는 그렇지 않기 때문이다.
제20도(K)에는 제20도(B)의 어보트 불일치 취급 루틴(1664)을 위한 흐름도가 나타나 있다. 이 루틴은 제어기의 SAO보드 "OOCH ME=0" 플래그와 다른 2개의 기능하는 SAO보드간의 세이프 불일치의 수를 기록하도록 각각의 아날로그 출력채널을 위해 셋업되는 카운터를 검사한다. 만약 이 카운트가 5개의 아날로그 출력채널중의 어느 하나에서 너무 높이(예컨대 십진수 32) 얻으면, 어보트 불일치 에러 플래그가 세트된다(블록 1690). 이 에러 플래그는 제어기(92)로 하여금 그 자신의 SAO보드를 셧다운하도록 하는데, 이는 출력을 구동해야 하는 경우 이웃하는 보드와의 불일치는 상기 보드가 출력을 구동할 수 없었을 것이라는 (즉 출력이 너무 낮은) 것을 나타내기 때문이다. 마름모(1692)와 블록(1694-1696)이 연속적인 불일치들만이 지나친 과도조건을 제거하기 위해 축적되고 있음을 나타낸다.
제20도(L)에는 제20도(B)의 어보트 루틴(1646)으로부터 소거(Clean Up)를 위한 흐름도가 나타나 있다. 이 루틴은 그 이웃하는 제어기(94-96) 양쪽이 제어기(92)의 SAO 보드를 위한 채널중 하나에서 어보트 스위치를 개방했음을 제어기(92)가 알리는 경우의 상황에 응답하도록 사용된다. 만약 제어기(92)도 또한 이 채널상의 어보트 스위치를 개방했다면, 이 채널을 위한 양쪽의 어보트 스위치는 제어기(92)에 의해 닫히고, 따라서 이웃하는 SAO보드중의 적어도 하나는 필드로 전원을 전송할 수 있게 된다(블록 1698). 만약 제어기(92)가 채널상의 어보트를 개방하지 않았다면, 그 채널중 하나가 어보트되고 보드가 수리를 위해 제거되어야하기 때문에 SAO보드는 셧다운된다고 말해진다.
제20도(M) 내지 제20도(P)에는 본 발명에 따른 비강제적 테스트방법의 바람직한 한 형태가 나타나 있다. 이와 관련하여 이들 흐름도는 제20도(A)의 Nl테스트 선택 및 셋업 루틴(1606)을 나타낸다. 마름모(1700)는 만약 상기 테스트를 수행하는 제어기가 그 이웃의 것들과 통신할 수 있다면 테스트가 개시될 수 있을 뿐이며, 제어기중 적어도 하나는 마지막 프로세스 사이클 이내에서 프로세스 제어컴퓨터(14)와 통신할 수 있었음을 나타낸다. 유사하게 마름모(1702)는 에러가 발생했다면 비강제적 테스트 절차는 이 에러가 수정될 때까지 우회될 것임을 나타낸다.
마름모(1704)로 나타낸 바와 같이, 비강제적 테스트는 프로세스 제어컴퓨터(14)의 클록신호에 따라 5분의 정확한 배수에서 시작하도록 정해진다. 이와 관련하여 각각의 필드컴퓨터 유니트(12)는 매초 왼쪽과 오른쪽프로세스 제어컴퓨터(l4a-l4b) 양쪽으로부터 동기펄스를 수신한다. 따라서 그 다음에 제어기(92-96)는 그들의 클록을 조정한다. 비강제적 테스트는 특별하게 정해진 스케줄을 따르도록 상기 클록을 사용한다. 테스트루틴을 완결하는데 아날로그 출력회로중 하나에 대해 대략 1.5분이 걸리므로, 5분의 간격은 모든 아날로그 출력회로(600-604)를 위한 비강제적 테스트를 완료하는데 충분한 시간이 된다. 이와 관련하여 다음의 표는 비강제적 테스트를 위한 바람직한 정해진 동작을 확인한다. 표에 기재된 "디스플레이된
시간"은 프로세스 제어컴퓨터(l4a-l4b)의 디버그패널상에 가시적으로 나타내진 시간이다. 이 표에서 확인된 각각의 테스트 번호는 제20도(J) 내지 제20도(M)에서 확인된 특정 테스트절차에 상응한다.
이 7개의 테스트들 각각을 이하에서 검토하지만, 이 테스트들은 다음과 같이 확인될 수 있다. 테스트 #1은 "램프다운(Rampdown)"테스트라고도 하는데, 이는 테스트를 수행하는 제어기(본 예에서 제어기 92)가 명령받은 출력값의 0%로 아날로그 출력전류에 대한 그 기여를 서서히 줄이기 때문이다. Nl과 N2제어기를 위한 SAO보드는 각각의 감소에 따라 적절한 출력을 유지하기 위해 출력전류를 증가시킴으로써 반응을 나타내게 된다. Nl제어기를 위한 SAO보드는 대다수의 출력에 기여하도록 명령받는 것이 바람직하다. 이 조작은 일반적으로 몇초가 걸리게 된다. 만약 이러한 단계동안 불이행이 보고된다면, 불이행이 일어나는 가능한 원인은 블록킹 다이오드(제12도 C의 648)의 단락때문일 것이다.
테스트 #2는 "테스트전압 발생"테스트라고도 불리는데, 이는 제어기(92)를 위한 SAO보드가 필드로 송신되고 있는 전류에 영향을 줄 만큼은 크지 않은 전압을 출력하도록 명령받기 때문이다. 즉, 테스트전압레벨은 블록킹다이오드(648)의 임계치(예컨대 4OOmV)보다 낮도록 세트되어야 한다. 만약 불이행이 이 단계동안 보고된다면, 불이행이 발생하는 가능한 원인은 원하는 테스트전압레벨을 출력하는 연산증폭기(608)의 무능력 때문일 것이다.
테스트 #3는 "ME 포기된 테스트(ME Aborted Test)"로 불리는바, DNI과 DN2 어보트 스위치는 개방되도록 명령받게 된다. 제어기(92)를 위한 SAO보드는 사실 출력이 제로볼트인지를 결정하기 위해 접지에 대해 ME저항(618)의 높은측에서 그 출력을 측정한다. 이들 테스트 모두의 경우, 5개의 채널 각각이 동시에 테스트되는 것이 바람직하다. 따라서, 테스트 #3의 경우 제어기(92)를 위한 SAO보드상의 모든 아날로그 출력채널은 어보트된다.
테스트 #4는 "N2 어보트 스위치 테스트"라 부르는데, DN2 어보트 스위치는 DN1 어보트 스위치가 개방되는 동안 폐쇄된다. 제어기(92)를 위한 SAO보드는 어보트 테스트전압(예컨대 4OOmV)이 그 채널의 각각을 위한 출력에서 존재하는지를 결정하기 위해 접지에 대해 ME저항(618)의 높은 측에서 그 출력을 측정한다.
테스트 #5는 데드맨회로의 테스트이다. 상기 테스트는 어보트 DN1과 DN가 개방되었는지를 보증하기 위해 테스트 #3을 반복함으로써 시작한다. 그러면 데드맨회로가 작동되고, 데드맨의 활동을 발견하기 위해 전압이 출력되고, 그 다음에 데드맨이 작동되었는지에 대한 결정이 내려진다. DN1 어보트 스위치가 폐쇄되는 동안 DN2 어보트 스위치가 개방된다는 것을 제외하면, 테스트 #6은 테스트 #4의 반복이다.
테스트 #7은 "ME 100%로드" 테스트라 하는데, 제어기(92)를 위한 SAO보드가 필드로 명령받은 출력값의 100%를 구동하도록 최종적으로 명령받는다. 따라서, DN1과 DN2 어보트 스위치는 폐쇄되게 되고 Nl과 N2 제어기를 위한 SAO보드는 서서히 0%로 램프다운(ramp down)된다. 제어기(92)를 위한 SAO보드는 이 SAO보드가 그 이웃의 어느 쪽으로부터 어떠한 도움도 받지 않으면서 요구된 출력값을 구동할 수 있는 능력을 갖추고 있다는 것을 보장하기 위해 ME저항(624)을 가로질러 각각의 채널을 위한 출력을 계측한다.
제20도 M을 참조하면, 블록(1706)은 이 절차가 반복되는 각각의 예마다 테스트시간이 1초씩 증가되는 것을 나타낸다. 이러한 시간 카운트 또는 값은 3개의 제어기(92-96) 각각을 위한 7개의 테스트가 상기한 테이블에 나타낸 시간표를 따른다는 점을 고려하여 일련의 마름모(1708-1724)를 통해 평가된다. 그리고, 2자리 숫자 명명법이 본 발명의 비강제적("NI")테스트를 확인하기 위해 제20도(M) 내지 제20도(P)의 흐름도에 사용되고 있음에 주목해야 한다. 첫 번째 자리는 NI 테스트를 수행하는 제어기의 신원확인을 표시하고, 두 번째 자리는 특정 테스트 번호를 나타낸다. 이와 관련하여 첫 번째 자리는 "0", "1", "2" 또는 "x"중의 어느 하나이다. 숫자 "0"은 ME제어기를 나타내는데, 이 제어기는 본 예에서는 제어기(92)이다. 숫자 "1"과 숫자 "2"는 각각 Nl 및 N2 제어기를 나타낸다. "x"는 제어기(92-96)중의 어느 하나를 나타내는 와일드 카드이다. 그리고 "x"는 테스트 번호를 위한 와일드카드로도 사용될 수 있다.
따라서, 만약 테스트시간이 0-35초 사이에 있다면, "x1"명명법에 의해 나타낸 바와 같이(블록 1726) 제어기는 제1테스트(즉 Test #1)의 추출을 허락한다. Nl 테스트절차를 수행하는 제어기는 다음에 그것이 왼쪽 제어기인지 또는 중간 제어기인지를 검사한다(블록 1728-1730). 이 예에서 마름모(1728)에 대한 응답이 YES라면 프로그램은 제20도(P)의 블록(1732)으로 진행된다. 블록(1732)은 제어기(92)를 위한 SAO보드가 "Ox" 테스트번호를 추출하도록 하는데, 이때의 절차에 있어서 "x"는 테스트 #1으로서 미리 확인되어 있다. 이러한 Nl 테스트절차는 제어기(94∼96)에서 독립적으로 그러나 동시에 수행됨에 따라, 프로그램은 개별적으로 이들 제어기 각각을 위해 제20도(P)의 포인트 "C" 또는 "D"로 점프한다. 이와 관련하여 포인트 "C" 또는 "D"는 NI 테스트 프로그램의 다른 부분을 위한 엔트리포인트를 제공하고 있음을 인식해야 한다. 따라서 예컨대 마름모(1734-1738)는 어느 테스트가 현재 추출되고 있는 가에 따라 프로그램 흐름을 다른 절차로 보내는데 사용된다. 테스트 #3-#5에 있어서, 제어기(92)의 채널이 테스트 #1(블록 1740)의 경우 요구되는 바와 같이 램프다운이 가능하다면, 오른쪽 제어기(96)는 그 이웃 N2(즉 제어기92)를 위한 어보트 스위치를 개방해야만 한다. 테스트 #6의 경우 오른쪽 제어기는 제어기(92)를 위한 SAO보드상의 각각의 채널을 위한 어보트 스위치를 폐쇄한다(블록 1742).
마지막으로, 블록(1744)은 마지막 시간(second)의 NI 테스트번호와 이 시간(second)의 테스트번호가 저장될 것임을 나타낸다. 다음에, 다음 프로세스 제어사이클(본 예에서는 일초의 구간임) 동안, 제20도(M) 내지 제20도(P)의 Nl 테스트절차가 반복된다. 이렇게 하여 각각의 제어기(92-96)는 Nl 테스트가 SAO 보드상에서 수행되도록 한다. 그리고, 이들 제어기는 수행되고 있는 특정 테스트 번호에 의해 요구되는 바와 같이 램핑다운/업과 어보트 스위치를 토글함으로써 서로 협력한다. 이러한 협력은 상기한 시간도표(time chart)를 통해 제공되는바, 각각의 제어기가 동일한 테스트절차 프로그램을 독립적으로 수행한다. 즉, 하나의 제어기로 하여금 다른 제어기가 필요한 동작을 취하도록 요구 또는 명령할 필요는 없다. 오히려, 마름모(1700-1702)에 나타낸 문제 상황중 하나가 발견되지 않는다면 각각의 제어기(92-96)는 시간을 고려하여 적절한 동작을 취한다.
제20도(Q) 내지 제2O도(S)에 제2O도(A)의 SAO 보드로의 통신 루틴(1608)을 위한 흐름도를 도시한다. 이 루틴은 제어기와 그 SAO보드간의 쌍방향 통신을 용이하게 하기 위해 사용된다. 이와 관련하여 제어기와 그 SAO보드간의 첫 번째 데이터 교환을 "1차(Primary)"통신이라 한다(예컨대 Nl테스트 중재와 출력값). 반대로, SAO 보드와 그 제어기간의 계속되는 데이터교환을 "2차(secondary)" 통신 (예컨대 트랙값)이라 한다. 따라서, 제20도(Q)는 2개의 엔트리포인트를 도시하고 있는데, 하나는 1차통신(타원 1746)을 위한 것이고 다른 하나와 2차통신(타원 1748)을 위한 것이다.
제20도(Q)는 연속적으로 수행되는 몇개의 통신 셋업 블록을 나타낸다. 이와 관련하여 셋업 블록(1750)은 SAO보드로 초기 웨이크업 메시지(initial wake up message)를 제공하며, SAO보드는 이 메시지에 대해 특정 타임아웃구간 이내에서 응답해야 한다는 점에 주목해야 한다. 만약 SAO보드가 적절히 응답한다면 데이터는 SAO보드에 의해 교환된다(블록 1752). 만약 타당성검사가 실패했다면(예컨대 부정확한 합계검사), 적절한 배드(bad) 통신플래그가 세트된다(블록 1754-1756). 게다가 모든 아날로그 출력트랙("AOT")값은 올드 데이터(old data)가 데이터 테이블에 남는 것을 방지하기 위해 제로로 됨으로써 기술자가 올드 데이터를 잘못 해석하지 않도록 한다.
제20도(R)은 메시지가 1차통신 또는 2차통신인지에 따라 적절한 상태정보와 값들이 저장되는 것을 나타낸다(블록 1758-1760). 그리고, 마름모(1762)는 어떠한 불이행이 비강제적 테스트에서 발생하는지를 검사하는데 사용된다. 제어기(92)와 같은 제어기는 Nl 테스트절차를 계속하거나 또는 중지하도록 그 이웃하는 제어기로 전송되게 되는 플래그를 셋팅함으로써 응답한다. 이러한 출력에 무관하게 플래그는 제어기(92)의 SAO보드로 하여금 어느 테스트불이행이 거짓경보(false alarm;블록 1768)인지를 나타내도록 세트된다. 다음에 나타낸 바와 같이, 이 플래그는 상기 절차의 후반동안 소거될 수 있다.
다음에 제어기(92)는 5개의 아날로그 출력채널(블록 1770) 각각을 위한 NI 테스트 에러카운터를 검사하기 시작한다. 만약 마지막 시간(second)에 수행된 NI 테스트가 테스트 #1 또는 테스트 #7이 아니라면, NI 테스트 카운터는 테스트불이행이 SAO보드에 의해 보고되었는지(블록 1772-1774)에 따라 증가 또는 감소한다. 만약 테스트불이행이 보고되었고 테스트에러 카운터가 소정의 한계(예컨대 3Ohex)를 초과한다면, 테스트를 중지하도록 플래그가 이웃하는 제어기로 보내지게 되며 거짓경보 플러그는 소거된다(블록 1776-1778). 이와 관련하여 NI 테스트절차는 NI 테스트절차의 중지결정전에 일시적인 에러가 보고되도록 한다.
제20도(S)는 제어기(92)가 NI 테스트의 불이행을 다시 검사하는 것을 나타낸다. 재검사는 만약 NI 테스트불이행이 발생했다면 "테스트불이행" 플래그가 소거되지만 테스트에러 카운터는 소정의 한계를 초과하지 않기 때문이다. 만약 그러한 불이행이 발견된다면 거짓경보플래그가 소거되고 제어기(92)를 위한 SAO보드는 셧다운되도록 명령받게 된다(블록 1782). 이러한 절차는 각각의 아날로그 출력채널을 위해 반복된다(블록 1784와 마름모 1786). NI 테스트 보고는 새로운 에러가 발견될 때(블록 1788) 역시 발생된다.
제20도(T) 내지 제20도(U)에는, 제20도(A)의 에러 취급 루틴을 위한 흐름도가 나타나 있다. 이 루틴은 만약 SAO보드가 마지막 프로세스 제어사이클 동안 교체되었는지를 보기 위해 검사를 시작하고, 다른 헬스표시를 검사하기 위해 진행된다(마름모 1790-1798), 만약 상태보고가 불이행을 나타내거나 또는 제어기가 그 SAO 보드로부터의 통신을 수신할 수 없었다면, SAO보드는 죽은 것으로 플래그되고, 제어기는 그 이웃하는 제어기들로 하여금 이 SAO보드를 위해 어보트 스위치를 개방하도록 요구한다(제20도(U)의 블록 1800). 그러나, SAO보드가 마지막 프로세스 제어사이클 동안 활성으로서 플래그되었다면, 에러취급루틴은 각각의 아날로그 입력채널로부터 데이터를 찾게 된다(블록 1810).
마름모(1812)는 "복구" 카운터의 값을 검사하는데, 이 값은 제어기(92)가 그 이웃하는 제어기중 어느 하나와 통신할 수 없을 때 시스템시간을 재동기화하는데 사용된다(제20도(U)의 마름모(1814)와 블록(1816) 참조), 만약 복구 카운트가 제로가 아니라면, "OOCH ME = 0" 상태 바이트는 시스템이 동기화됨에 따라 어보트가 개방되지 않도록 하기 위해 소거된다(블록 1818). 만약 테스트불이행이 아날로그 출력채널중 어느 하나에서 발견된다면, NI 테스트은 중지된다(블록 1820). 만약 "OAT<>DAC" 에러가 플래그되었다면 검사중에 있는 특정 채널을 위해 이웃하는 제어기(94-96)로 어보트요구가 송신된다(블록 1822). 이는 "OAT<>DAC"에러가 이 채널상의 SAO보드의 연산증폭기(608)가 적절하게 기능하고 있지 않음을 의미하기 때문이다.
제20도(U)는 제어기로부터 그 SAO보드로의 통신이 불완전한 곳에서(마름모 1824)의 상황을 "재시행" 카운터가 취급하도록 채택되는 것을 나타낸다. 만약 재시행카운터가 소정의 값(예컨대 5)보다 크다면, 제어기는 상기 문제를 정정하려는 시도에 있어서 SAO보드의 하드웨어 리세트가 이루어지도록 한다(블록 1826). 즉, 제20도(Q) 블록(1754)으로부터의 배드 통신 플래그는 제어기가 SAO보드와의 통신 문제가 있는지를 추적하도록 하기 위해 사용되는데, 여러번 충분히 시도한 후, 제어기는 유효통신을 저장하기 위한 시도로 SAO보드의 마이크로프로세서(EU3)를 리세트 한다.
제2O도(V)에는 제20도(A)의 하드웨어로 어보트위치 송신루틴(1612)을 위한흐름도가 나타나 있다. 이 루틴은 각각의 아날로그 출력채널을 위한 어보트 결정정보를 검사하여 그 이웃하는 SAO보드를 위한 각각의 어보트 스위치를 개방 또는 폐쇄함으로써 응답한다(블록 1828-1830). 제어기는 필드로 보내진 중재된 아날로그 출력값을 찾게 되는 점에 주목해야 한다(마름모 1832). 만약 출력값이 아날로그 출력채널중 어떤 것에 대해 제로라면, 제어기(92)는 이 채럴을 위한 SAO보드상의 어보트 스위치를 개방하도록 이분하는 제어기로 플래그를 보내게 된다(1834).
제21도(A) 내지 제21도(S)의 한 세트의 흐름도는 SAO보드상에 상주하는 소프트웨어를 나타낸다. SAO보드 소프트웨어를 위한 추가 흐름도 역시 제22도(A) 내지 제22도(S)와 제23도(A) 내지 제23도(I)에 따라 설명된다. 제21도(A) 내지 제21도(B)는 SAO보드 소프트웨어를 위한 전체 또는 메인 흐름도(1900)를 제공한다. 상기의 검토로부터 알 수 있는 바와 같이 이 소프트웨어는 각각의 SAO회로보드(600-604)의 프로그램 메모리회로(EU1)에 포함되어 있다.
흐름도(1900)는 개시루틴(1902)의 호출로 시작하는데, 이 루틴은 제21도(C) 내지 제21도(D)에 나타나 있다. SAO보드의 마이크로프로세서(EU3)는 바람직하게는 메모리로부터 소프트웨어 버전을 판독하고(블록 1904), SAO보드를 위한 하드웨어 구성요소를 테스트하도록 처리된다(블록 1906). 이 하드웨어 테스트루틴은 제21도(E) 내지 제21도(K)에 나타나 있다. SAO 마이크로프로세서는 다음에 데드맨 조건이 존재하는지를 검사한다(마름모 1908). 만약 제어기(100)가 셧다운되고, SAO보드상의 마이크로프로세서가 셧다운되거나 또는 SAO보드가 진단 테스트를 위해 데드맨 조건으로 그 자신을 두게 된다면 데드맨 조건이 존재할 수도 있다. 만약 데드맨 조건이 존재하면, SAO보드가 연산증폭기(608)의 기능을 디스에이블시킬 수 있는 능력을 현재 테스트하고 있지 않는한, 모든 아날로그 출력채널이 제로화되고(블록 1910) 프로그램은 제21도(C)의 개시루틴(1902)중 웜 스타트포인트(warm start point)로 점프한다. 단순화를 위해 제2l도(A)에 나타내지는 않았지만, SAO보드가 현재 이 데드맨 능력을 테스트하고 있는지를 판단하기 위해 이 시점에서 검사가 행해질 수 있다. 이 데드맨 테스트는 제23도(E) 내지 제23도(G)에 따라 아래에 상술된다. 만약 SAO 보드가 데드맨 능력을 테스트하는 중이라면 데드맨 테스트는 블록(1904)과 같이 흐름도(1900)중의 적절한 위치로 돌아오기 전에 반복적으로(예컨대 30회) 수행된다.
또한 제21도(A)는 너무 많은 인터럽트가 SAO마이크로프로세서의 내부 타이머로부터 수신되는 경우 SAO보드가 재시작될 수 있다는 것을 나타낸다(마름모 1912). 이 시간이 정해진 인터럽트는 SAO보드를 위한 제어기로부터의 통신이 합리적인 시간주기 이내에서 수신되었는지를 SAO마이크로프로세서가 판단하도록 하는 방법을 제공한다.
SAO보드가 "동작중(alive)"이라면, SAO 마이크로프로세서는 "DEADSET" 신호를 스트로브(strobe)하게 되고(블록 1914), 통신루틴을 호출한다(블록 1916). 통신 루틴은 제21도(M)에 나타나 있다. 이 통신 루틴 다음에 테스트루틴이 호출된다(블록 1918). 이 테스트루틴(1918)은 제21도(L)에 나타나 있다. 이어서 필드로부터 피드백 데이터를 수집하도록 루틴이 수행된다(블록 1920). 이 데이터판독 루틴은 제21도(N) 내지 제21도(Q)에 나타나 있다. 다음, 제21도(R)의 에러조건 취급루틴이수행된다. 다음에 프로그램은 출력계산 루틴(1924)으로 진행하는데, 이 루틴은 제22도(A) 내지 제22도(S)에 한 무리로 나타나 있다. 이어서, 비강제적 테스트루틴(1926)이 수행된다. 이 NI 테스트루틴은 제23도(A) 내지 제23도(I)에 한 무리로 나타나 있다.
일단 이들 단계 전부가 수행되면 SAO 마이크로프로세서는 서비스된 다음 채널을 지목하며(블록 1928) 5개의 아날로그 출력채널 전부에 대해 상기 절차가 반복된다(마름모 1930). 다음에 SAO 마이크로프로세서는 제어기(92)처럼(블록 1932) 그 제어기로부터의 마지막 통신 이후 "5채널 사이클"의 기록을 갱신하게 되고, 필드루프(field loop)를 검사하기 위한 적절한 시간인지를 결정한다(마름모 1934). 필드루프를 검사(예컨대 필드루프 저항값의 측정)하기 위한 루틴은 제21도(S)에 나타나 있다(블록 1936). 하여간, SAO보드를 위한 메인 프로그램은 프로그램이 연속적으로 반복되도록 하기 위해 최종적으로는 시작단계로 다시 되돌려진다. 따라서, 필드 루프가 측정되고 하드웨어가 각각의 프로세스 제어사이클(예컨대 1초)을 테스트한다.
제21도(C) 내지 제21도(D)에는 개시루틴(1902)을 위한 흐름도가 나타나 있다. 적색 LED는 SAO보드 하드웨어가 필드로 전원을 보낼 준비가 되지 않았음을 나타내기 위해 온으로 되고, 따라서 일련의 테스트가 수행된다(블록 1938). 이와 관련하여 첫 번째 테스트는 SAO보드를 위한 데이터메모리와 관련되어 있다(블록 1940). 이 테스트는 제어기의 데이터메모리를 위해 다음에 상술된 메모리테스트와 유사하다. SAO보드가 콜드스타트(cold start)로 들어가고 있다는 사실 때문에 SAO 보드에 의해 실행되는 프로세스 사이클의 트랙횟수를 유지하는 카운터는 하드웨어테스트루틴이 적절히 기능하도록 하기 위해 "01"로 세트된다(블록 1942).
그러면, 제21도(C) 내지 제21도(D)에 나타낸 바와 같이, 하드웨어 테스트루틴은 개시루틴 동안 4개의 다른 포인트에서 수행된다(블록 1944-1950). 이 하드웨어 테스트루틴은 제21도(E) 내지 제21도(K)에 공동으로 나타나 있다. 이와 관련하여 SAO보드를 위한 하드웨어 구성요소의 반복된 테스트가 필요없음에 주목해야 한다. 오히려,이 테스트루틴은 SAO보드의 최종적인 동작에 있어서 신뢰수준을 증가시키는 여분의 측정으로서 여분의 시간동안 수행된다. 따라서, 예컨대 하드웨어 테스트루틴은 제어기가 SAO보드와 통신하려고 시도하고 있는 시간사이에서 수행된다(마름모 1952-1954). 상기한 바와 같이, 제어기는 시간정보와 출력값을 보내기 위해 SAO보드(블록 1956-1958)와 2번 통신하여, 제어기/SAO 통신링크가 적절히 기능하고 있음을 보장한다. 최종적으로 적색LED는 오프로 되고(블록 1960) 데드맨 타이머는 리세트된다(1962).
제21도(E) 내지 제21도(G)에는 하드웨어테스트루틴을 위한 전체 흐름도(1906)가 나타나 있다. 이것이 SAO보드를 위한 첫 번째 사이클이라고 가정하면, SAO마이크로프로세서는 제12도(F)에 나타낸 멀티플렉서(EU23-EU26)를 통해 차동증폭기(638)로 "O볼트" 입력을 판독한다(블록 1968). 다음에, 판독되는 전압이 규정 범위 이내에 있는지를 결정하도록 검사가 이루어진다(마름모 1970). 만약 이 전압이 적절한 규정범위의 밖에 있다면 다음에 아날로그-디지털 문제를 플래그하기 위해 루틴이 수행된다(블록 1972). 플래그 ADC문제 루틴은 제21도(H)에 나타나 있다. SAO마이크로프로세서는 다음에 멀티플렉서(EU24)로의 입력으로서 제12도(B)상에 나타낸 "l/8기준"신호를 판독한다(블록 1974). 이 전압신호레벨(예컨대 0.275볼트)은 제21도(J) 내지 제21도(K)의 기울기(slope) 계산루틴 동안 사용하기 위해 저장된다(블록 1976). 다음에 이 전압 신호가 규정범위 이내에 있는지를 판단하기 위해 검사가 이루어진다(마름모 1978). 이와 관련하여 "l/8기준" 신호 동안 차동증폭기(638)에 의해 생산되는 값은 소정의 범위(예컨대, 1.25± 0.078볼트)에 대해서 테스트된다. 유사한 절차가 "l/2기준" 신호에 대해서도 구현된다(예컨대 1.10볼트).
다음에 제21도(F)에 나타낸 바와 같이, SAO마이크로프로세서는 디지털-아날로그 컨버터("DAC";612)가 일련의 차동전압레벨을 출력하도록 하고(블록 1980-1986), 아날로그-디지털 컨버터("ADC";642)를 통해 DAC로부터 실제적인 출력을 검사한다(마름모 1988-1994). 만약 이들 전압레벨중 어느 것이 규정범위 밖에 있는 것으로 판단되면, "DAC문제 플래그 루틴(1966)"이 수행된다. 제21도(H)와 제21도(I)에 나타낸 바와 같이, ADC문제 플래그 루틴(1972) 뿐만 아니라 DAC문제 플래그 루틴(1996)은 필요한 만큼 문제의 카운터를 증가시키거나 또는 감소시킨다(블록 1998-2000). 그리고, 이들 플래그루틴의 양쪽 또는 어느 하나는 만약 문제카운트가 소정의 한계를 초과한다면 적색LED가 온(ON)이 되도록 할 수 있다(마름모 2002와 블록 2004). 다음에 제21도(G)에 나타낸 바와 같이 이 문제카운터가 평가되고(마름모 2006-2010), 하드웨어 테스트루틴(블록 2012)을 통한 이 경로동안 문제가 발견되지 않았다면 문제카운터는 감소된다. 일단 이 문제카운터가 십진수2보다 크다면, 적색LED는 온이되고, SAO보드는 폐쇄된다. DAC테스트동안 수행되었던 것처럼, 유사한 절차가 연산증폭기(608)를 테스트하기 위해 구현될 수 있다. 따라서 예컨대 DAC(612)는 소정의 전압을(예컨대 2.2V)을 출력하도록 명령받을 수 있고, OUT-H와 OUT-L신호는 이들 신호가 규정범위 이내에 있는지를 보기 위해 판독될 수 있다.
제21도(J) 내지 제21도(K)에는 "기울기 계산루틴(1976)"를 위한 자명한 흐름도가 나타나 있다. 흐름도로부터 알 수 있는 바와 같이, 이 루틴은 l/2과 l/8 기준 신호레벨간에 생성된 인위적 라인의 기울기를 평가하게 되고, 측정된 값과 동일할 때까지 저장된 기울기와 인터셉트값을 (루틴을 통과할 때마다) 하나씩 조절하도록 동작한다. 이 루틴에 의해 만들어진 값은 아날로그 회로에 의해 도입된 오프셋 및 이득에러에 대한 필드 계측을 수정하기 위해 사용된다.
제21도(L)에는 제21도(A)의 테스트루틴의 흐름도를 나타낸다. 이 루틴은 SAO 보드가 필드컴퓨터 유니트(12) 그 자신보다 오히려 테스트지그(test jig)에 접속되었는지(plug)를 검출한다(마름모 2014). 만약 SAO보드가 테스트지그에 접속되어있다면, 소정의 출력값 한 세트는 SAO보드의 동작을 테스트하기 위해 사용된다(블록 2016).
제21도(M)에는 제21도(A)의 통신루틴(1916)을 위한 흐름도를 나타낸다. 이 흐름도 역시 자명하지만, 제21도(A)의 마름모(1912)에 언급된 감시장치 인터럽트(watchdog interrupt)는 오프되고(블록 2018) 이 루틴동안 연속적으로 리세트됨(2020)에 주목해야 한다.
제21도(N)에는 제21도(A)의 판독데이터루틴(1920)의 흐름도를 나타낸다. 이루틴의 ADC컨버터 제어블록(2022)은 제21도(0)에 그 자신의 흐름도로서 나타나 있다. 이와 관련하여 SAO마이크로프로세서는 차동입력 멀티플렉서(EU25-EU26)와 컨버터입력 멀티플렉서(EU23-EU24)를 위한 특정 입력신호 선택을 명령할 필요가 있음을 인식해야 한다. 데이터판독루틴은 다음에 제21도(P)의 선형화루틴(2024)으로 진행된다. 제21도(P)에 나타낸 바와 같이 "기울기 계산루틴"으로부터 결정된 기울기값이 평가된다(마름모 2026). 만약 기울기값이 1보다 크면, 이 기울기값은 명령받은 출력값(마름모 2028)과 비교된다. 만약 출력값이 기울기의 2배보다 크다면, 데이터의 선형화가 수학적 오버플로우로 끝나기 때문에 선형화루틴은 종결된다. 그렇지 않으면 계산은 블록(2030)에 나타낸 바와 같이 이루어진다. 이 계산의 목적은 아날로그회로에 의해 도입된 오프셋과 이득에러에 대해 측정된 전압을 수정하는 것이다.
일단 선형화루틴(2024)이 완료되면, 데이터 판독루틴(1920)은 제21도(Q)의 트랙 필터루틴(Filter the Track routine;2032)으로 진행된다. 이 루틴은 새롭게 측정된 트랙값과 마지막 5개 채널사이클중 이 채널상에서 수행된 계산으로부터 저장된 트랙값을 비교하는 것으로 시작한다(블록 2034와 마름모 2036). 만약 새로운 트랙값과 올드 트랙값간의 절대값의 차가 먼저 소정의 제1값을 초과한다면, 올드 트랙값은 명령받은 출력값(블록 2038)을 얻기 위한 노력으로 SAO보드의 응답을 가속시키도록 새로운 트랙값으로 완전히 대체된다. 만약 트랙값에 있어서의 이들 차의 절대값이 소정의 제1값보다 작다면, 이러한 차가 보다 작은 소정의 제2값(마름모 2040)인지를 보기 위해 검사가 이루어진다. 이 결정의 결과로서 불안정한 트랙플래그가 세트될 것인지를 결정한다. 하여간, 차이 값(difference value)이 4로 나누어지고(블록 2042), 이 나누어진 차이 값의 한 부분은 그 차이 값이 포지티브 또는 네가티브였는지에 따라 올드 트랙값으로부터 더해지거나 감해지게 된다(마름모 2044와 블록 2046-2048). 저장된 트랙값의 이 비례적인 변화는 트랙신호상에서 발견된 대부분의 잡음을 여과한다.
다음에 데이터 판독루틴(21N)은 멀티플렉서(EU25-EU26)에 ME저항의 하이/로우값을 알려주며, 이들 값을 판독하고 저장한다(블록 2050). 다음에 유사한 조작이 멀티플렉서(640)를 통해 OAT값을 위해 수행된다(블록 2052).
제21도(R)에는 제2l도(B)의 에러조건 취급루틴(1922)을 위한 흐름도를 나타낸다. 이 자명한 흐름도는 어떻게 적색LED 플래그가 세트되고 DAC가 램프다운되도록하기 위해(블록 2054) 사용되는가를 설명한다. 이와 관련하여 램프다운 DAC루틴(2054)은 제22도(I)와 함께 설명될 것이다. 유사하게 DAC를 필드로 송신 루틴(2056)은 제22도(0)를 참조하여 설명한다.
제21도(S)에는 제21도(B)의 필드루프 검사루틴(1936)을 위한 흐름도가 나타나 있다. 이러한 흐름도로부터 알 수 있는 바와 같이, SAO마이크로프로세서는 각각의 아날로그 출력채널을 위한 실제 출력신호를 측정하게 되고 이 신호의 크기를 확인하는 검사를 수행한다(마름모 2058-2062). 만약 필드로 보내지는 신호가 이들 테스트 경계의 밖에 있다면, 적절한 플래그가 세트되거나 또는 추가 절차를 위해 보존된다(블록 2064-2068). 이들 테스트는 필드의 부하가 인덕터와 직렬연결된 저항으로 설계되고, 구동되는 부하는 50오옴과 470오옴(+/-30) 사이에 있다고 가정한것이다. 따라서, 예컨대 마름모(2060, 2062)는 이 출력값을 위한 최대 및 최소 수용가능 전압과 접지에 대해 트랙저항의 로우측으로부터의 측정값을 비교한다. 그러나, 루프저항검사는 만약 채널을 위한 출력값(블록 2058)이 2mA 이하라면 출력값이 이 크기 이하일 때 현재의 하드웨어는 이 신호가 신뢰성있게 판독되는 것을 방지하기 때문에 수행되지 않게 된다.
100오옴 PTC저항은 트랙저항(624)의 로우측과 필드루프간에 직렬로 접속되는 것이 바람직하다는 점 또한 주목해야 한다. 따라서, 실제규모에서 (예컨대 22mA) 최대 및 최소 수용가능 측정값은 다음의 공식으로부터 계산될 수 있다:
Vmax = (Rmax + Rptc)*(22mA)
여기서, Rmax = 470오옴
Vmin = (Rmin + Rptc)*(22mA)
여기서, Rmin = 50오옴
이들 공식을 사용하면, 마름모(2060-2062)에 의해 채택된 최대 및 최저전압 레벨이 원하는 임의의 출력값(mA로)에 대하여 계산될 수 있음을 인식해야 한다. 따라서, 필드 루프루틴(1936)에 의해 채택된 상기 테스트는 특히 SAO보드를 위한 제어기에 의해 명령받은 출력값으로 맞추어질 수 있다.
제22도(A)를 참조하면, 제21도(B)의 출력계산루틴(1924)을 위한 전체 흐름도가 나타나 있다. 출력제어루틴은 아래에 상술되는 바와 같이 지능 PI 제어루프를 제공한다. 출력제어루틴은 셋업루틴(2100)을 포함하고 있으며, 제22도(B)에 나타나 있다. 이와 관련하여 제22도(B)는 명령받은 출력값의 초기 평가가 이루어지는 것을나타낸다(마름모 2102). 만약 출력값이 최대 허용가능한 값의 거의 100%라면, 처리되는 채널을 위한 출력은 이 최대값 이하의 레벨로만 강제된다(블록 2104). 이것은 99.75% 레벨 이상의 출력이 나타날 수 있고 단지 22ma의 전류가 필드로 전송될 수 있도록 행해지고 있다.
또한 출력제어루틴은 계산루틴(2106)을 포함하는데, 제22도(C)에 보다 상세히 나타나 있다. 일단 출력값과 측정된 트랙값간의 차이인 출력에러가 계산되면(블록 2108), 아날로그출력의 증가 또는 감소가 발생되어야 하는지가 결정되며(마름모 2110), 적절한 상태 지시가 세트된다.
제22도(A)를 다시 참조하면, 출력제어루틴의 나머지를 건너뛰어야 하는지에 따라 그 다음에 평가가 이루어진다. 이와 관련하여 출력제어루틴은 에러조건 취급루틴에 의해 보드상에서 문제가 발견될 때 건너뛸 수 있을 것이다. 출력제어루틴이 수행된다고 가정하면 적색LED가 온인지를 보기 위해 검사가 이루어진다(마름모 2114). 만약 적색LED가 온이라면, 계산된 출력에러가 너무 큰가에 따라 결정이 내려진다(마름모 2116). 만약 에러가 너무 크다면 (예컨대 3.5%), SAO보드가 필드를 제어하고 있는지를 나타내도록 플래그가 세트되고, 제어불능루틴(2120)이 수행된다. 그렇지 않으면, 반대 지시가 플래그되고, SAO보드는 그 출력을 다시 제로로 회귀시키고(블록 2122), 제어가능루틴(In Control routine;2124)이 수행된다.
3개의 SAO보드(600-604)는 본 발명에 따라 부하를 구동하려고 서로 효과적으로 경쟁한다. 그러나, 다른 SAO보드중 하나가 상기 출력을 제어하고 있음을 SAO보드중 어느 것이 발견하면, 비기여레벨로 회귀(backing off)를 시작한다. 이렇게 하여 SAO보드중의 하나가 명령받은 출력값을 얻기 위해 그 기여가 필요가 있다고 결정하지 않는 한, 3개의 SAO보드(600-604)중의 오직 하나만이 어느 한 순간에 부하를 구동하기 위해 동작한다.
만약, 적색LED가 오프라면, 백캘큐레이션루틴(2126)이 수행된다. 이 백캘큐레이션루틴이 제22도(D) 내지 제22도(E)에 나타나 있다. 제22도(D) 내지 제22도(E)에 나타낸 바와 같이, 백캘큐레이션루틴은 "Back.Calc"상수를 세트하기 위해 사용되고, 출력에러에 이 상수를 감산 또는 가산한다(블록 2128). Back.Calc상수는 트랙측정값의 차이(SAO보드간의 어느 하드웨어차 때문인)를 설명하기 위하여 PI 제어루프에 사용되고, 이에 의해서 출력기여의 가장 원활한 교환을 허용한다. Back.Calc 상수는 출력값과 트랙값간의 차이이다(블록 2130). 이와 관련하여 Back.Calc계산은 어느 NI 테스트가 수행되는가(예컨대 마름모 2132-2134)와 같은 요인에 좌우되는데 이는 SAO보드가 신뢰성을 변화시켜야 하는 사이클이기 때문이다. 즉, 구동보드는 그 출력을 제로로 낮추어야 하고 다른 보드는 그 출력을 구동해야 한다.
일단 백캘큐레이션루틴(2126)이 수행되면, "제어중의 출력인가" 루틴(236)이 SAO마이크로프로세서에 의해 실행된다. 제어중의 출력루틴(2136)은 질문의 형태로 존재하는데, 이는 실행되는 동안 평가되는 조건에 따라 좌우되는 제어불능루틴(2120) 또는 제어중 루틴(2124)중 어느 하나에 존재하게 되기 때문이다. 제어중의 출력루틴(2136)은 제22도(F) 내지 제22도(H)에 공동으로 나타나 있다.이와 관련하여 제22도(F)에 따르면, NI 테스트가 수행되고 있는지(마름모 2140)를 결정하기 위해 일련의 평가가 수행되고, 만약 그렇다면 다음에 어느 테스트가 현재 수행되고 있는가를 확인한다(마름모 2140-2148). 이 질문에 대한 대답과 이들에 대해 종속하는 질문에 대한 대답은(즉 마름모 2152-2164) SAO보드가 어느 모드에 있는지를 결정한다. 특히, 제22도(F)는 3개의 동작모드 즉, "밀착제어(Tight Control)", "모니터링", "스테이 클리어(stay clear)"를 확인한다. 동작모드의 사용은 제22도(F) 내지 제22도(H)와 아래 설명으로부터 명백해진다.
만약 NI 테스트가 "00"이라면, 어떠한 NI 테스트도 실제로 행해지고 있지 않다는 것을 이해해야 한다. 마름모(2152-2154)에 의해 나타낸 바와 같이, 필드출력으로의 SAO보드의 기여가 명령받은 출력값의 0%가 아닌 경우 밀착제어모드가 취해진다. 제22도(G)의 마름모(2166)는 출력에러(출력값-트랙차이)가 밀착편차범위(예컨대 22ma의 0.05%) 이내에 있는지를 결정하기 위해 밀착제어모드에서 평가가 이루어지는 것을 나타낸다. 만약 출력이 밀착편차범위의 밖에 있다면, 제어불능루틴(2120)이 제22도(H)에 나타낸 바와 같이 수행된다. 그렇지 않다면, 제어중 루틴(2124)이 수행된다.
만약 SAO 보드가 출력에 대해 아무런 기여도 하지 않는다면(마름모 2154), 스테이 클리어 모드가 취해진다. 스테이 클리어모드에 있어서, 출력에러가 1.6%(마름모 2168)와 같이 와이드 편차범위의 밖에 있는지를 보기 위해 검사가 수행된다. 만약 출력에러가 와이드 편차범위 이내에 있다면, 제어중 루틴(2124)이 수행된다. 그렇지 않으면 제어불능루틴(2120)이 수행된다.
만약 NI 테스트가 테스트 #1이라면(마름모 2142), SAO보드가 명령받은 출력값(마름모 2156)의 50% 이상을 구동하고 있는지를 보기 위해 결정이 내려진다. 만약 대답이 예라면, 마름모(2166)의 밀착제어평가가 수행된다. 그렇지 않으면, SAO보드는 모니터링모드를 취한다. 모니터링모드에 있어서, SAO보드가 어느 출력을 구동하는지가 먼저 판단된다(마름모 2170). 만약 대답이 예라면, 출력에러가 0.10%(마름모 2172)와 같은 모니터편차 이내에 있는지를 보기 위해 검사가 수행된다. 만약 이 질문에 대한 대답이 아니오라면, 제어불능루틴(2120)이 수행된다. 그러나, 만약 이 질문에 대한 대답이 예라면, 출력값이 측정된 트랙값(마름모 2174)보다 큰지에 따라 결정이 내려진 역시 NI 테스트가 "01-07" 이고 출력이 와이드 편차 이내(마름모 2176-2178)라면 마름모(2174)의 결정이 내려진다.
만약 출력값이 트랙값(마름모 2174)보다 크다면, 제어중 루틴(2124)이 수행된다. 그렇지 않으면, 일련의 질문이 제어중 루틴(2124)으로 들어가기 전에 취해진다(마름모 2180-2190). 따라서, 예컨대 만약 NI 테스트가 테스트 #7이고 출력이 최대가능출력의 93.75% 이상 얻어지지 않았다면, 램프다운 DAC루틴(2192)이 수행된다. 이 동작은 22ma 이상이 필드로 전송되는 것을 방지하는데, 블록(2174)은 트랙이 이미 출력값보다 크다고 확증되었음에 주목해야 한다.
램프다운 DAC루틴(2192)은 제22도(I)의 흐름도에 나타나 있다. 이와 관련하여 흐름도는 출력이 비교적 작거나 또는 큰 폭으로 램프다운하게 됨을 나타내는데, SAO보드가 출력값의 25% 이상 구동하고 있는지에 좌우된다(마름모 2194). 예컨대 작은 감소상수가 채택되면(블록 2196), 출력은 이 루틴의 호출당 0.1%로 램프다운될 수 있다. 제어기(92-96)가 특정 프로세스제어 타이밍 사이클상에서 동작하는 동안, 이것은 엄밀히 SAO회로보드(600-604)를 위한 경우는 아닌데, SAO마이크로프로세서는 가급적 빠르게 그들의 프로그램(제21도(A) 내지 제21도(B)에 나타낸 바와같이)을 반복적으로 수행한다. 즉, 각각의 SAO보드는 제어기(92-96)의 프로세스 제어사이클(예컨대 1초)당 예컨대 50-100번 정도 그 프로그램 전부를 수행한다.
제22도(H)는 모니터편차(마름모 2190)보다 출력에러가 크다고 판단되는 경우에 일련의 질문이 해소되도록 파워 램프다운 루틴(2198)이 채택되는 것을 나타낸다. 파워 램프다운 DAC루틴(2198)은 제22도(J)의 간략한 흐름도에 나타나 있다. 이와 관련하여 매우 급속한 감소비율은 출력이 수용가능한 모니터편차 한계 너머에서 발견되었다는 사실 때문에 채택된다.
제22도(F)는 ME SAO보드가 원화는 출력값의 100%(마름모 2158, 2162-2164)를 구동한다고 판단될 때마다 밀착제어모드가 취해지는 것을 나타낸다. 한편, 마름모(2158,2162-2164)중 어떤 것에 대한 대답이 아니오라면, 모니터링모드가 취해진다. 유사하게, ME SAO보드가 어떤 출력도 구동하지 않는다면(마름모 2150,2160), 스테이 클리어모드가 취해진다.
제22도(K)는 제어중 루틴(2124)을 위한 흐름도를 나타낸다. 이 루틴은 "제어기의 불능 하이 ME = 0" 플래그를 소거함으로써 시작한다(블록 2200). 이 플래그의 소거는 제어불능 카운터가 소정의 한계치에 도달한 다음에 OOCH ME = 0조건이 신호되지 않을 것임을 나타내는데 사용된다. 다음에 출력값이 최대 허용가능 출력값의 99.7% 보다 큰지에 따라 평가가 이루어진다(마름모 2202). 만약 출력값이 본래 이 최대값보다 작다면, 프로그램의 흐름은 이 루틴의 끝으로 건너뛰게 되고, 여기서제어불능 카운터가 감소한다(블록 2204). 그러나, 만약 출력값이 최대값에 있다면, 3개의 추가평가가 수행될 수 있다(마름모 2206-2210). 만약 NI 테스트가 테스트 #01 내지 테스트 #6중 하나라면, 제어불능 카운터가 감소된다. 그러나, 만약 NI 테스트가 마름모(2206)에 기재된 것들 중의 하나라면, 램프다운 DAC루틴(2192)이 수행된다. 유사하게, 만약 NI 테스트가 테스트 #07이고 SAO보드가 최대출력값의 93.7% 이상을 출력한다면(마름모 2208-2210), 램프다운 DAC루틴(2192)이 수행된다.
램프다운 OAC루틴(2192)이 이 시점에서 구현되는 경우에는, 필드로 출력송신루틴(2212)이 즉시 수행된다. 필드로 출력송신 루틴(2212)은 제22도(N)에 따라 검토된다. 필드로 출력송신 루틴(2212)은 일단 제어중 루틴(2124)이 완료되는 경우에 실행될 다음 차례의 루틴으로, 제22도(A)에 역시 나타나 있다. 그럼에도 불구하고 만약 이 SAO보드의 출력이 감소되어야 한다고 결정되면, 형편닿는 대로 빨리 회귀(backing off)를 시작하도록 허용되는 것이 바람직하다.
제22도(L) 내지 제22도(M)에 있어서, 제어불능루틴(2120)을 위한 흐름도가 나타나 있다. 이 루틴은 많은 인자 예컨대 검출된 에러의 크기 등에 답하여 DAC출력값을 변화시키는데 사용된다. 첫째로, 블록(2214)은 이 루틴이 이어지는 루틴으로 하여금 건너뛰도록 하는 것을 나타낸다. 이는 출력이 정확하지 않다면 NI 테스트가 수행되지 않아야 하기 때문이다. 다음에, 형제(sibling) 대기 카운터가 평가된다(마름모 2216-2218). 형제 대기 카운터는 출력에러에 대한 반작용을 지연시키는데 사용되어 이웃하는 SAO보드 중의 하나가 대신 반응하도록 할 수 있다. 다음에, 제어불능 카운터가 증가된다(블록 2220). 다음에 DAC출력값이 변화되어야 하는비율을 결정하기 위해 출력에러의 크기가 평가된다(마름모 2222-2224).
제22도(L)에 나타낸 바와 같이, 프로그램은 출력에러가 네가티브(마름모 2226)인지에 따라 갈라지게 된다. 만약 이 차가 네가티브라면, DAC값은 따라서 감소한다(제22도M, 블록 2228). 그렇지 않으면 DAC값은 적절한 값으로 증가한다(블록 2230). 따라서, 예컨대 DAC값은 블록(2232)에서 1OV의 출력량으로 세트되어, 트랙이 최대 출력전압으로 출력값에 도달하도록 디바이스가 허용하지 않는다면 필드로 2OV를 보내는 쓸데없는 시도를 방지하게 된다. 이 동작은 만약 접속해제된 필드와이어가 부착된다면 범프를 낮추게 된다.
제22도(N)은, 필드로 출력송신 루틴(2212)에 대한 간략한 흐름도를 나타낸다. 셋업 단계(블록 2234) 이후에, 이 루틴은 단순히 DAC제어루틴(2236)을 호출하여 디지털- 아날로그 컨버터회로 내에 2바이트값을 기록한다. DAC제어루틴은 제22도(0)의 자명한 흐름도에 나타나 있다.
제22도(A)를 다시 참조하면, 수행될 다음 루틴은 테스트 #7 에러루틴(2238)을 위한 검사(Check)임이 나타나 있다. 이 루틴은 제22도(P)의 흐름도에 나타나 있다. 제22도(P)에 나타낸 바와 같이, NI 테스트 실패 카운터가 증가되어야하는지(블록 2240)를 결정하기 위해 일련의 평가가 이루어지고, 너무 많은 테스트가 실패하면(마름모 2244) 최종적으로 NI 테스트불이행을 플래그한다(블록 2242). 이와 관련하여 테스트 #07 동안 ME SAO보드는 그 각 채널 자체에 의해 전체 출력을 구동해야 한다는 것이 재호출된다. 따라서, 만약 SAO보드가 그 자신에 의해 전체 출력을 구동하지 않으며, 그 출력전압이 최대에 있고, 전류가 필드로 가는 경우, NI 테스트불이행 카운터는 요구되는 목표에 도달하도록 시간주기를 제공한다. 그러나, 그 자신에 의해 출력을 구동한다는 목표가타당한 시간주기 이내에 도달될 수 없다면(예컨대 NI 테스트 불이행 카운터가 30을 초과하는 경우), 에러조건이 플래그된다.
제22도(A)는 수행될 마지막 루틴이 출력문제 취급루틴(2246)인 것을 나타낸다. 출력문제 취급루틴(2246)은 제22도(Q) 내지 제22도(R)에 나타나 있다. 이들 도면으로부터 알 수 있는 바와 같이, 이 루틴은 기술된 조건에 따라 번호 또는 다른 플래그를 세트 또는 소거하기 위해 사용된다. 따라서, 예컨대 만약 평가될 채널을 위한 제어불능 카운트가 소청의 양(예컨대 53)을 초과하지 않았다면, 3개의 다른 플래그가 소거된다(마름모 2248). 만약 제어불능 카운트가 소정의 양을 초과했다면, 트랙측정값이 출력값보다 낮았는지에 따라 평가가 내려진다(마름모 2252).
만약 그 대답이 예라면, "제어 거의 불능 하이", "제어불능 하이" 와 "제어불능 하이 ME=0" 플래그가 소거된다(블록 2254). 그리고, "제어불능 로우" 플래그는 필드로의 출력이 규정된 것보다 낮아짐에 따라 세트된다.
반대로, 만약 에러가 하이측(블록 2250은 아니오를 발생함)에 있다면, "제어불능 하이" 플래그가 세트되고 "제어불능 로우" 플래그는 소거된다(블록 2258). 다음에 연산증폭기 트랙신호(OAT)가 거의 제로인지를 보기 위해 OAT신호가 평가된다(마름모 2260). 만약 OAT신호가 거의 제로가 아니라면 OAT신호는 재측정되는데, DAC는 그 출력을 줄이도록 미리 명령받는다(블록 2262). 만약 이 추가 측정이 원하는 반응으로 나타나지 않으면, "OAT<>DAC" 플래그가 세트된다(블록 2264).
제22도(R)은 만약 출력값과 트랙측정값 간의 차이가 예컨대 2%와 같이(마름모 2268-2270) 어보트 편차값보다 크다면 "제어 거의 불능 하이 ME=0" 플래그가 먼저 세트되고(블록 2266) 제어불능 카운트가 제로가 된다(블록 2265)는 것을 나타낸다. 다음에, 에러카운트는 소정의 양을 초과하게 되는 이 루틴을 다음 번에 통과하는 동안, 만약 "제어 거의 불능 하이 ME=0" 플래그가 소거되지 않았다면(블록 2274) "제어불능 하이 ME=0" 플래그가 세트된다(블록 2272). OOCHME = 0 비트의 셋팅에 있어서 지연을 강제하는 것은 잘못된 에러가 보고되는 것을 방지한다.
제23도(A) 내지 제23도(I)의 한 세트의 흐름도는 제21도(B)의 NI 테스트루틴(1926)을 위해 나타낸 것이다. 마름모(2300)는 이 NI 테스트루틴이 에러조건 취급루틴에 의해 에러가 발견되는 경우 등에 건너뛸 수 있음을 나타낸다. 마름모(2302)는 테스트 #OO표지(insignia)가 사용될 때 NI 테스트루틴이 그 일초 구간동안 수행되지 않을 것임을 나타낸다. 그리고, 마름모(2304-2306)는 테스트될 채널상에서 에러가 직면할 때 또는 SAO보드를 위한 제어기가 최소값 이하(예컨대 4mA)인 출력값을 명령할 때 NI 테스트 루틴이 수행되지 않을 것임을 나타낸다. 명령받은 출력값이 거의 제로인 때 NI 테스트가 수행될 수 있는 반면에, 어느 제로출력 채널을 위한 어보트 스위치가 개방되고 완전한 테스트(예컨대 Test #7)가 가능하지 않을 것임에 따라 NI 테스트는 연기되는 것이 바람직하다.
이 SAO보드 또는 다른 SAO보드중 하나가 테스트되고 있는 경우(마름모 2308), 이 SAO보드는 어느 테스트가 수행되는지를 찾게 된다. 이와 관련하여 SAO보드(예컨대 SAO회로보드 600)는 테스트 #12-16 또는 #21-26에 대해 임의의 동작을 취할 필요가 있는데, 임의의 필요한 동작은 제어기(예컨대 제어기92)에 의해 취해질 수 있다는 것을 인식해야 한다. 테스트 #11가 수행되는 경우(마름모 2310), NI 테스트루틴은 이 SAO보드가 N1으로 지정된 그 이웃하는 SAO보드(예컨대 SAO보드 602)에 의해 발해지고 있는 필요한 출력을 취하도록 할 수 있다. 그러나, NI 테스트루틴(1926)은 이 시점에서 특별히 테스트 #21을 위해 테스트하는 것은 아니라는 점에 주목해야 한다. 이것은 Nl SAO보드에 의해 수행되는 NI 테스트루틴이 그 이웃 Nl으로 지정된 N2 SAO보드를 갖출 것이라는 사실 때문이다. 즉, NI 테스트루틴(1926)은 SAO보드가 다른 SAO보드에 의해 발해지고 있는 출력을 취하도록 시작해야 한다는 우선순위 속에서 만들어진다. 특히, 본 예에 있어서, 테스트 #7을 가장 최근에 완료한 SAO보드에 우선순위를 주게 되는데, 이 특정 테스트는 전체 출력을 책임지는 SAO보드의 능력을 평가한다.
수행되는 NI 테스트가 테스트 #11이 아닌 경우, 형제 대기 카운터는 만약 필요하다면 즉각적인 동작을 할 수 있도록 소거된다(블록 2312). 다음에, 만약 수행되는 NI 테스트가 테스트 #17 또는 테스트 #27인지를 판단한다(제23도(B)의 마름모(2314)). 만약 그 대답이 아니오라면, NI 테스트루틴(1926)은 이 호출을 위해 끝나게 된다. 그러나, 이들 2개의 NI 테스트중의 하나가 수행되고 있다면, 형제 대기 카운터는 테스트시간하에서의 SAO보드가 그 출력을 램프업하도록 하는 값으로 로드된다(블록 2316). 다음에 이 SAO보드가 어느 출력을 구동하는가에 따라 결정이 내려지고(마름모 2318), 그 결과로서 적절한 램프다운 비율이 선택되며(블록 2192와 2198), 출력값이 필드로 보내진다(블록 2212). 만약 DAC출력이 제로가 아니라면, 이 SAO보드가 램핑다운을 끝내지 않았음을(블록 2320) 나타내기 위해 플래그가세트된다.
만약 SAO보드가 현재 테스트되고 있다면(마름모 2308), SAO사이클에 있어서의 모든 하위 NI 루틴이 건너뛰어져야 한다는 것을 나타내기 위해 플래그가 세트된다(블록 2312). 다음에, 만약 테스트 #O7이 수행되거나(마름모 2324) 또는 테스트 #11이 수행되고 있다면, ME저항을 가로질러 전압을 검사함으로써 SAO보드가 어느 전원을(마름모 2326) 구동하고 있는지에 따라 결정이 내려지고 적절한 플래그가 세트된다(블록 2328). 다음에 필드에 대한 기여는 ME저항을 가로지르는 전압강하를 검사함으로써 평가된다(마름모 2330-2336). 만약 이 SAO보드가 출력의 100%를 구동하며, DAC출력이 그 최대치에 있고 트랙출력이 적절한 값에 있다면, NI 테스트는 성공적으로 완료된다(마름모 2338). 그렇지 않으면 추가 결정이 내려질 필요가 있고 적절한 동작이 NI 테스트루틴(1926)을 통과하는 동안 취해지게 된다. 예컨대, SAO보드가 출력값의 25% 이상(마름모 2334) 출력값의 100% 이하(마름모 2336)로 구동되면, DAC로 공급된 값에 0.05%가 더해지게 된다(블록 2340). 다음에, NI 테스트루틴(1926)은 상기 SAO보드가 출력에 기여하는 정도를 평가하기 위해 NI 테스트루틴이 다시 호출될 때까지 이 시점에 존재한다. 만약 DAC출력이 최대에 있고, 이 보드가 출력의 100%를 구동하지 않는다면 상기 테스트 불이행카운터가 증가된다.
제23도(A)상의 마름모(2324)에 대한 대답이 아니오라면, NI 테스트루틴(1926)은 제23도(C)상의 포인트 "A"로 점프하여, 다른 NI 테스트중 어느 것이 수행되는지(제23도(C)의 마름모(2342-2344), 제23도(D)의 마름모(2346-2348), 제23도(E)의 마름모(2350) 및 제23도(H)의 마름모(2352))를 발견하기 위해 검사를시작한다. 제23도(C) 내지 제23도(I)의 재검토로부터 알 수 있는 바와 같이, NI 테스트루틴은 각각의 NI 테스트를 위해 특별한 처방을 따르게된다. 따라서, 예컨대 테스트 #01의 경우에 있어서 상기 SAO보드는 제로출력이 얻어질 때까지 그 자신을 램프다운하도록 시도한다(마름모 2354-2356). 일단 제로출력이 얻어지면, NI 테스트루틴(1926)은 제23도(I)상의 포인트 "D"로 점프한다. 만약 램프다운이 불이행이라면, 제어기는 이 채널을 테스트하지 않도록 플래그되고 사이클의 이어지는 테스트는 이웃하는 보드상에서의 문제를 찾아내게 된다.
제23도(I)에 나타낸 바와 같이, 접지에 대하여 ME저항의 로우측에서 측정된 전압이 제로인 DAC출력에 대해 너무 높은지를(마름모 2358) 보기 위해 검사가 수행된다. 만약 전압이 너무 높다면(예컨대 0.037), 다이오드는 단락되고 NI 테스트 불이행 카운터는 증가된다(블록 2360). 다음에 만약 현재 카운트가 40불이행같이 정의 한계를 초과해왔는지를 보기 위해 NI 테스트 불이행 카운터 자신이검사된다(마름모 2362). 상기 SAO보드가 제어기(92-96)에 의해 채택된 프로세스 제어사이클 타이밍에 비해 여러번 그들의 프로그램을 반복적으로 수행한다는 점에 비추어 이 불이행카운트는 제어기에 의해 유지된 불이행 카운트(예컨대 오직 1개의 불이행이 제어레벨에서 허가됨)에 비해 비교적 높게 세트된다. 만약 카운트한계를 초과했다면, NI 테스트불이행이 발생된 것을 나타내기 위해 플래그가 세트된다(블록 2364). 그러나 마름모(2366)와 추가 엔트리포인트("B", "E")에 의해 나타낸 바와 같이, 상기 NI테스트 불이행 플래그는 SAO보드가 NI테스트를 수행하고 있는 경우만 세트되는데, 그 이웃하는 SAO보드의 하나와 반대이다.
테스트 #02의 경우에 있어서, 제23도(D)는 만약 SAO보드가 이 채널을 램프다운할 수 있는지를 결정하기 위해 DAC출력이 평가된다는 것을 나타낸다(마름모 2368). 이 채널이 제로로 램프다운 할 수 있다고 가정하면, SAO마이크로프로세서는 어보트 테스트전압으로 채널출력을 세트하며(블록 2370), 출력을 위한 시간을 정할 수 있도록 하고(블록 2372), 연산증폭기 트랙("OAT")전압신호를 측정한다(블록 2374). 다음에 이 채널을 위한 OAT전압레벨이 예컨대 150-7OOmV 정도의 예상되는 또는 수용가능한 대역(band)에 있는지에 따라 결정이 내려진다(마름모 2376). 만약 대답이 예라면 테스트 #02는 이 특이한 채널에 대해 성공적으로 완료된다. 그러나, 만약 대답이 아니오라면 NI테스트루틴(1926)은 제23도(I)상의 포인트("E")로 점프하게 되며, 여기서 NI테스트불이행카운터는 증가한다. 하여간, 각각의 아날로그 출력채널은 NI테스트루틴(1926)이 메인 SAO프로그램(1900)으로부터 호출될 때마다 매번 교대로 서비스되는 점을 인식해야 한다.
테스트 #03의 경우, 이 채널이 제로로 램프다운될 수 있고(마름모 2380) 충분히 낮다고(예컨대 l5OmV) 판단된다면(마름모 2382), 제23도(E)는 NI 테스트루틴(1926)이 접지에 대해 ME저항의 하이측에서 최종적으로 전압을 측정하게되는 것을 나타낸다(블록 2378). 만약 전압이 충분히 낮지 않다면, 어보트 스위치중 하나 또는 양쪽이 개방되지 않는다. 이와 관련하여 DN1과 DN2 어보트 스위치의 개방은 상기 시간도표에 따라 Nl과 N2제어기에 의해 각각 독립적으로 수행되게 됨에 주목해야 한다.
테스트 #5의 경우, 제23도(E) 내지 제23도(G)는 실제로 2개의 테스트가 수행되고 있음을 나타낸다. 먼저, 어보트 스위치(DN1, DN2)의 작동은 ATV신호가 발생되는 동안(블록 2384) ME저항 측정을 통해 다시 테스트된다. 다음에 이 테스트가 성공적이었다면, 연산증폭기를 디스에이블시키는 능력이 테스트된다. 이 테스트는 SAO보드 데드맨이 "개방"인지를 보기 위해 먼저 검사함으로써 달성된다(마름모 2386). 이 검사는 마이크로프로세서(610)가 제12도(D)의 데드맨 타이머(649)로부터의 "NOT DEAD" 신호를 판독하도록 함으로써 이루어진다. 만약 대답이 예라면 연산증폭기(608)는 디스에이블되어야 한다. 만약 대답이 아니오라면, 테스트를 수행하는 SAO상의 모든 연산증폭기(608)가 디스에이블된다(블록 2388). 다음에 DAC는 예컨대 3V정도(블록 2390)의 데드맨 테스트 전압을 출력하도록 명령받는다. NOT DEAD신호는 다시 검사되고(마름모 2392), 데드맨이 개방이 아니라면(블록 2394) 테스트되고 있는 채널을 위해 OAT신호가 판독된다. 이 경우에 있어서, 모든 SAO보드 연산증폭기(608)는 다시 이네이블되고(블록 2396), OAT전압은 그것이 충분히 높은지(마름모 2398)를 보기 위해 검사된다. OAT가 충분히 높았거나(예컨대 데드맨 테스트전압 레벨), 또는 만약 데드맨이 이렇게 빨리 개방되지 않았다면, 연산증폭기는 디스에이블된다(블록 2400). 다음에 OAT전압이 측정된다(블록 2402). 그 후, DAC는 ATV레벨로 리세트되고(블록 2404), 연산증폭기는 다시 이네이블된다(블록 2406). 이 단계후, 연산증폭기를 디스에이블시킬 수 있는지를 보기 위해 데드맨 전압입력으로부터의 전압이 평가된다(마름모 2408).
테스트 #04와 테스트 #06의 경우, 제23도(H)는 전압측정이 ME저항의 하이측에서 이루어지게 됨을 나타낸다(블록 2410). 다시, 어보트 스위치(DN1, DN2)를 폐쇄 및 개방하는 필요한 단계가 상기한 시간도표에 따라 이웃하는 제어기에 의해 취급되고 있음을 인식해야 한다.
바람직한 실시예에 대한 상기 설명으로부터 필드컴퓨터 유니트(12)는 소정의 프로세스 제어사이클에 따라 동작함을 인식해야 한다. 즉, 필드컴퓨터 유니트의 입력/출력 프로세스 기능과 모든 신호통신은 예컨대 1초 간격 정도의 단일 프로세스 제어사이클 이내에서 수행된다. 각각의 네트워크제어기(16)와 필드컴퓨터 유니트 제어기(92-96)를 위한 클록신호가 주어진 허용한계 이내에서 클록신호를 유지하도록 하기 위해 이 프로세스 제어사이클 동안 전부 조정되지만, 조절가능한 타임라인은 이들 인터페이스 시스템 구성요소간의 협력을 용이하게 하기 위해 일반적으로 제공된다. 예컨대, 본 발명의 한 형태에 있어서, 동기 메시지는 새로운 프로세스 제어사이클의 시작에서 각각의 필드컴퓨터 유니트(12)로 네트워크제어기(16)에 의해 보내진다. 필드컴퓨터 유니트(12)는 주어진 주기 이내에서(예컨대 1.5milli-seconds) 상기 2바이트 메시지를 차례로 기다리게 된다. 네트워크제어기(16)는 필요한 통신경로를 결정한 후, 적절한 디지털 및 아날로그 출력값을 각각의 필드컴퓨터 유니트로 보내게 된다. 다음에, 제어기(92-96)는 상기한 독립적인 중재 방법을 수행하기 위해 이 정보를 교환한다. 그러나, 네트워크제어기(16)로부터의 통신이 필드컴퓨터 유니트에 의해 수신되지 않거나 또는 통신이 그 이웃하는 제어기로부터 제어기(92-96)중의 하나에 의해 수신되지 않은 경우에는, 그럼에도 불구하고 이들 구성요소는 적절한 시간구간 후에 그들의 임무를 수행하기 위해 진행된다. 따라서 예컨대 이전에 공급된 페일-라스트와 페일-세이프 명령은 상기한 출력 중재방법에따라 구현될 수 있다.
그리고 동작타임라인도 디지털 및 아날로그 출력의 비강제적 테스트가 상기한 바와 같이 주기적으로 수행되도록 허용되어야 한다. 이 타임라인도 역시 시스템 구성요소의 추가 테스트를 할 수 있도록 구성되어야 한다. 예컨대, 사용가능 시간 슬롯 이내에서 각각의 제어기(92-96)의 RAM메모리(U42)를 테스트하는 것이 유리할 수 있다. 이 테스트는 RAM메모리중 사용되지 않는 부분의 각각의 저장위치로 특정값(예컨대 55hex)을 먼저 기록한 후, 메모리중 이 부분의 무결성을 검증하기 위하여 각각의 위치를 판독함으로써 달성될 수 있다. 다음에 입력 또는 출력 데이터 테이블의 한 부분은 RAM메모리의 이 검증된 부분으로 이동될 수 있고, 이 데이터가 얻어진 메모리부분은 동일한 방법으로 검증될 수 있다. 그러나, 다른 값이 메모리의 이 사용된 부분(예컨대 AAhex)에 기록되는 것이 바람직하다. 다음에 데이터는 일단 메모리에러가 없었다고 결정되면 교체될 수 있다. 이렇게 하여, 전체 RAM메모리(U42)는 주기적으로 테스트될 수 있다. 만약 메모리에러가 발견된다면, 이 메모리부분은 다시 테스트될 수 있거나 및/또는 에러의 존재를 프로세스 제어컴퓨터(14)에 알리도록 일반 "문제(problem)" 상태비트가 세트될 수 있다. 상기한 다른 에러와 더불어, 프로세스 제어컴퓨터는 RAM메모리(U42)에 에러를 확인할 특정 에러비트의 상태를 요구할 수 있다.
제24도(A) 내지 제27도(M)에는 본 발명에 따른 갱신된 소프트웨어를 다운로딩하는 방법을 설명하기 위해 한 세트의 흐름도가 나타나 있다. 이와 관련하여 본 발명은 제어되고 있는 물리적 프로세스를 인터럽트하는 일없이 프로세스 제어인터페이스 시스템(10)을 통해 갱신된 소프트웨어를 다운로드할 수 있는 능력을 유리하게 제공할 수 있다. 보다 상세하게는, 본 발명은 갱신되거나 또는 새로운 소프트웨어가 네트워크제어기(16)중 하나로부터 인터페이스 시스템(10)의 브레이크아웃회로(26) 및 인터페이스시스템의 필드컴퓨터 유니트(12) 각각에 선택적으로 전송되도록 한다.
따라서, 본 발명에 따른 분산 프로세스 제어 인터페이스 시스템(10)의 주요 구성요소의 각각에 포함된 소프트웨어는 개별적으로 갱신되거나 또는 그룹으로 함께 갱신될 수 있다. 즉, 어떤 시간에 필드컴퓨터 유니트(12)의 각각을 위해 소프트웨어를 갱신하고 다른 시간에 각각의 브레이크아웃회로(26)를 위해 소프트웨어를 갱신하는 것이 유리할 수도 있다. 반대로 인터페이스시스템(10)을 통해 소프트웨어를 갱신할 수도 있는데, 브레이크아웃회로(26)로 시작하고 필드컴퓨터 유니트(12)로 끝나게 된다.
이 갱신동작들 각각은 프로세스 제어동작이 계속되는 동안 수행될 수 있다는 것이 중요하다. 예컨대, 프로세스 제어컴퓨터(l4a-l4b)중 하나가 프로세스 제어를 위해 사용되고 있는 동안, 다른 프로세스 제어컴퓨터는 하나 또는 그 이상의 다운로딩동작을 수행하도록 전환할 수 있다. 본 발명에 따른 방법과 시스템의 다른 이점은 갱신된 소프트웨어를 동일한 다운로딩 동작동안 다수의 브레이크아웃회로(26) 또는 필드컴퓨터 유니트(12)로 다운로드할 수 있다는 것이다. 따라서, 예컨대 성공적인 다운로딩절차가 각각의 필드컴퓨터 유니트에 대해 검증되면, 새로운 소프트웨어를 수신한 필드컴퓨터 유니트(12) 각각의 중복제어기(92-96)는 동일한 프로세스제어사이클에서 이 소프트웨어를 사용하여 시작할 수 있다.
본 발명의 한 태양에 있어서, 시스템 구성요소중 어떤 것이 새로운 소프트웨어를 시작하도록 허가받기 전에 새로운 소프트웨어가 어드레스되는 모든 인터페이스 시스템 구성요소에 대해 성공적인 다운로드동작이 검증되는 것이 바람직하다. 즉, 모든 필드컴퓨터 유니트(12)의 왼쪽제어기들(92)이 새로운 소프트웨어를 완전히 정화하게 수용했다는 것이 검증되면, 이 왼쪽제어기들은 새로운 소프트웨어를 시작할 수 있게 된다. 그렇지 않으면, 왼쪽제어기들은 그 제어기들(92)내에 이전에 포함된 올드(old) 소프트웨어를 사용하여 백업을 시작하도록 명령받는다. 이 시점에서, 다운로딩 절차가 다시 반복될 수 있고, 또는 새로운 소프트웨어의 정확성을 검증할 수 없는 제어기를 위한 하드웨어가 검사될 수 있다.
일단 갱신된 소프트웨어가 모든 왼쪽제어기들(92)을 위해 검증되었다면, 이 제어기들은 각 필드컴퓨터 유니트(12)의 중간 제어기들(94)로 상기 소프트제어의 복사본을 전송하도록 명령받을 수 있다. 이와 관련하여 필드컴퓨터 유니트(12)의 제어기들(92-96)간의 직렬통신링크는 제어기(92-96)중의 하나가 다른 제어기중의 하나 또는 양쪽으로 갱신된 소프트웨어의 복사본을 전달하도록 할 수 있음을 인식해야 한다. 대신에, 일단 왼쪽과 중간제어기들(92-94)이 갱신된 소프트웨어로 동작하고 있다면, 오른쪽제어기(96)는 그 프로세스 제어기(예컨대 프로세스 제어컴퓨터 l4b)로부터 이 갱신된 소프트웨어의 복사본을 수신할 수 있다. 즉, 프로세스 제어컴퓨터(l4a)는 그 프로세스 제어동작으로 돌아갈 수 있고, 프로세스 제어컴퓨터(l4b)는 다운로딩 동작으로 전환될 수 있다.
물론, 양 프로세스 제어컴퓨터(l4a-l4b)는 프로세스 제어의 관점으로부터 셧다운될 수 있어서 각 필드컴퓨터 유니트의 왼쪽제어기(92)와 오른쪽제어기(96) 양쪽은 동일한 갱신된 소프트웨어를 수신할 수 있다. 그러나, 이것은 제어되는 물리적 프로세스의 인터럽션을 요구할 수 있다. 하여간, 프로세스 제어동작을 실행하는 양쪽 프로세스 제어컴퓨터(l4a-l4b)로 구현시킬 수 있는 유일한 다운로딩 기능은 왼쪽제어기(92) 또는 오른쪽제어기(96)중 어느 하나로부터 중간제어기(94)로 갱신된 소프트웨어를 전송하는 것이라는 점을 인식해야 하는데, 프로세스 제어컴퓨터(l4a-l4b)는 본 발명에 따른 이 절차에 포함될 필요는 없다.
특히, 제24도(A)에는 필드컴퓨터 유니트의 메인 "Femmai"(2420)의 간략화된 흐름도가 나타나 있다. "DOWNLDF" 비트가 다운로드 명령에 답하여 세트되지 않으면(마름모 2424), 흐름도(2420)는 각각의 필드컴퓨터 유니트(12)가 상기한 프로세스 제어활동을 일반적으로 수행하게 되는 것을 나타낸다(블록 2422). DOWNLDF 비트의 셋팅은 제24도(B)에 나타낸 직렬포트 인터럽트 루틴(2426)에서 실질적으로 수행된다. 이 특별한 응용에 있어서, 필드 다운로드명령은 단순히 명령어 "113"으로서 확인된다(마름모 2428). DOWNLDF 비트를 소거하기 전에(블록 2430), 이 비트의 값은 이웃하는 제어기에 이 제어기가 새로운 소프트웨어를 수신하고 있다는 것을 알리기 위하여 이웃통신 메시지에 위치된다. 이 동작은 이웃하는 제어기가 갱신된 소프트웨어를 수신하는 제어기를 리세트시키려는 시도를 방지한다. 제24도(C)의 필드통신 루틴("Fcomm")은 프로세스 제어컴퓨터(14)로부터의 다운로드명령을 수신하는데 사용되고 있음에 주목해야 한다.
프로세스 제어컴퓨터(14)가 다운로드명령을 발했다고 가정하면, 필드컴퓨터 유니트(12)는 제24도(E) 내지 제24도(G)에 나타낸 "FIO_DOWN_LD" 루틴으로 점프한다(블록 2432). FIO_DOWN_LD 루틴(2432)은 본 명세서에서 때때로 FIO 다운로드 루틴이라 부른다. 이 흐름도로부터 명확한 바와 같이, FIO_DOWN_LD 루틴은 일련의 서브루틴을 위한 메인루틴을 제공하는데, 제26도(G) 내지 제26도(P)와 제27도(I) 내지 제27도(M)에 나타나 있다. 이 서브루틴들은 필드컴퓨터 유니트가 다운로드된 소프트웨어를 수신하고 검증하도록 할 수 있는데, 상기 소프트웨어는 필드컴퓨터 유니트를 위한 것이라 가정한다. 그러나, 더 상세히 이 흐름도들을 검토하기 전에, 다운로딩 명령의 전송을 먼저 설명한다.
제25도(A)에는 네트메인(Netmain) 프로그램 또는 루틴(2500)의 간략화된 흐름도가 나타나 있다. 이와 관련하여 네트메인 프로그램(2500)은 네트워크제어기(16)를 위한 메인 프로그램을 나타낸다. "프로세서 제어를 하라(Do Process Control)" 블록(2502)에 의해 표시된 바와 같이, 이 네트메인 프로그램은 정상적인 프로세스 제어 타임라인을 따르고 있다. 그럼에도 불구하고, 네트메인 프로그램의 메인루프중 초기 시점에서는, 다운로딩 동작이 요구되었는지에 따라 결정된다(마름모 2504). 이 요구는 "DOWNLD"비트의 존재를 검사함으로써 결정되는데, 상기 비트는 제25도(B)에 나타낸 흐름도에 세트된다. 만약 DOWNLD비트가 세트되면, 네트메인 프로그램은 일반적으로 제25도(C) 내지 제25도(E)에 나타낸 GET_CODE 루틴(2506)으로 점프한다. 그렇지 않으면, 펄드컴퓨러 유니트(12)로부터 프로세스 제어컴퓨터(14)로 수신된 데이터를 전송하는 것 같은 정상 프로세스 제어기능이 수행되는바, 프로세스 제어컴퓨터는 그 프로세스 제어의 지배를 벗어나지 않았다고 가정한다.
그 후, NCOMM루틴(2508)이 수행된다. 이 루틴은 제25도(P)의 흐름도에 나타나 있다. 이 흐름도에 의해 나타낸 바와 같이, NCOMM루틴은 필드컴퓨터 유니트(12)의 중간 제어기(94)로 갱신된 소프트웨어를 로딩시키는 것과 관련되어 있다. 더 상세히는, NCOMM루틴은 갱신된 소프트웨어로 중간제어기(94)를 로드하도록 명령이 입력되었는지를 검사한다(마름모 2510). 제25도(B)의 CBTDEC루틴의 아래 설명으로부터 인식할 수 있는 바와 같이, 중간다운로드를 위한 요구는 디버그패널(18)을 통해 작업자가 입력할 수 있다. 만약 중간 다운로드요구가 행해졌다면, 특정 명령이 제25도(Q)에 나타낸 명령송신 루틴(25l4)을 통해 네트워크제어기(블록 25l2)에 의해 모든 필드컴퓨터 유니트(12)로 아래로(downstream) 보내지게 된다. 중간제어기(94) 전부가 함께 갱신되는 것이 바람직하지만, 적절한 응용의 경우 중간제어기(94) 전부가 아닌 일부의 선택을 허용할 수 있음을 인식해야 한다.
중간 다운로드명령이 수신되고 제24도(D)의 BCOMM루틴(2516)에 의해 실행되는바, 상기 루틴은 프로세스 제어컴퓨터(l4a-l4b)중의 하나에 연결된 브레이크아웃회로(26)의 각각에 포함된다. BCOMM루틴(2516)은 모든 출력포트로 각각의 필드컴퓨터 유니트(12)의 FCOMM(2518)루틴에 의해 결과적으로 동작되도록 하는 중간 다운로드 명령어를 통과시키게 된다. FCOMM루틴은 제24도(C)에 나타나 있다. FCOMM루틴(2518)은 XRAM으로 중간다운로드 명령을 기록하며, 여기서 이 명령은 제26도(Q) 내지 제26도(R)의 SIDE_LOAD루틴(2520)에 의해 판독된다.왼쪽제어기(92) 또는 오른쪽제어기(96)의 Side_LOAD루틴(2520)은 중간 제어기(94)의 포트 어드레스를 결정하여, 중간제어기로 중간 다운로드명령을 보내며, 대답을 들으려고 한다. 중간제어기(94)에 있어서의 제26도(S)의 이웃서브루틴(2522)은 이 명령을 수신하고, 명령을 보낸 이웃하는 제어기로부터 수신하도록 그 직렬포트를 세트한 후, 새로운 소프트웨어를 수신하도록 그 프로세스 제어 타임라인을 벗어나 제24도(E) 내지 제24도(G)의 FIO_DOWH_LD루틴(2524)으로 점프한다.
한편, NCOMM루틴(2508)은 제26도(R) 내지 제26도(S)의 CHECK_MID루틴(2526)을 이네이블시키고 실행될 CHECK_MID루틴을 위한 대기 구간을 초기화한다(블록 2530). CHECK_MID루틴(2526)도 역시 제26도(A)의 네트메인 루프의 블록으로서 나타내진다. CHECK_MID루틴(2526)은 왼쪽제어기(92) 또는 오른쪽제어기(96)중 어느 하나로부터의 갱신된 소프트웨어의 복사본이 중간제어기(94)로 성공적으로 전송되었는지를 검증하는데 사용된다. 이와 관련하여 중간제어기(94)는 합계검사 계산 및 비교를 수행하게 되고, 성공적으로 완료하면, 그 합계검사들로 송신제어기에 응답한다. 이 합계검사들은 "배타적 오아(exclusive or)" 합계검사, "순환된 배타적 오아(rotated exclusive or)" 합계검사 및 "코드의 합계(sum of code)" 합계검사로 구성될 수 있다. 이 합계검사들은 중간제어기(94)로 보내진 소프트웨어 코드에 끼워넣어지는 합계검사와 비교된다. 송신제어기는 중간제어기(94)로부터의 합계검사를 비교하여, 만약 그 자신의 합계검사와 일치하면, 정상적인 입력통신 동안 네트워크제어기(16)로 송신되는 1바이트내의 1비트가 세트된다.
일단 양호한 합계검사 메시지들 모두가 네트워크제어기(16)에 의해 수신되었다면, 유사한 확인메시지는 네트워크제어기(15)의 디버그패널(18)상에 디스플레이 된다. 디버그패널(18)상에 양호한 합계검사 메시지가 디스플레이되면 중간제어기(94)가 새로운 소프트웨어로 시작될 수 있다는 것을 작업자가 알 수 있다. 이와 관련하여 작업자는 디버그패널(18)상의 버튼을 눌러서 "이식(Transplant)" 명령이 제26도(P)의 NCOMM루틴(2508)을 통해 각각의 필드컴퓨터 유니트(12)로 보내지도록 할 수 있다 그러나, 만약 합계검사에러가 발견되었다면, "콜드 피트(Cold Feet)" 명령이 NCOMM루틴(2508)을 통해 모든 필드컴퓨터 유니트로 자동적으로 보내진다. 콜드 피트 명령은 중간제어기(94)로 하여금 올드(old) 또는 이전의 소프트웨어를 사용하여 시작하도록 (즉, 리세트되도록) 한다. 이 효과에 대한 적절한 메시지가 디버그패널(18)상에 역시 디스플레이될 수 있다.
명령버튼 디코더"CBTDEC"루틴(2528)의 관련된 부분이 제25도(B)에 나타나 있다. CBTDEC루틴(2528)은 디버그패널을 포함하는 각각의 인터페이스 시스템 구성요소(즉, 네트워크제어기(16), 브레이크아웃회로(26)와 필드컴퓨터 유니트(12))에 포함되는 것이 바람직하다는 점에서 공통적(common)이라 부른다. 이는 상기 구성요소가 등록된 각각의 기능(예컨대 마름모 2530)을 위한 네트워크제어기(16)인지의 여부에 따른 결정을 CBTDEC루틴(2528)이 왜 포함하는가에 대한 이유이다. CBTDEC루틴에서 확인된 각 기능은 특정 다운로딩동작을 언급하고 있다. 따라서 예컨대 기능 1E는 중간제어기(94)로 갱신된 소프트웨어의 다운로딩을 초기화하는데 사용된다. 마름모(2532)에 표시된 바와 같이 인터페이스시스템(10)은 왼쪽 또는 오른쪽제어기중 적어도 하나가 갱신된 소프트웨어를 성공적으로 수신한 후에 중간 다운로드명령이 전송되도록 허용할 뿐이다. 일단 작업자가 적절한 디버그 패널버튼을 눌렀다면, MID_LOAD비트가 세트된다(블록 2534). "중간필드I/O 로딩" 같은 하나 이상의 메시지가 디버그패널상에 디스플레이될 수 있다(디스플래이 블록 2536).
기능 1D는 새로운 소프트웨어코드가 어드레스된 구성요소 모두에 콜드피트 명령이 자동적으로 보내재도록 하는데 사용된다. 이와 관련하여 다운로드된 소프트웨어코드는 무시되고, 상기 구성요소들은 올드 소프트웨어코드로 시작한다.
마찬가지로, 기능 1C는 작업자가 새로운 소프트웨어코드가 어드레스된 디바이스 모두에 이식명령(Transplant command)을 보낼 수 있도록 하는데 사용된다. 상기 이식명령은 만약 네트워크제어기(16)가 그 프로세스제어 타임라인을 실행하고 있다면 새로운 소프트웨어코드로 중간제어기(94)가 시작하도록 NCOMM루틴(2508)을 통해 보내질 수 있다. 일단 이 명령이 수신되면, 제26도(D)의 REPROG루틴(2538)이 실행된다. 이 REPROG루틴(2538)은 새롭게 다운로드된 소프트웨어가 데이터메모리(예컨대 XRAM)로부터 프로그램메모리로 복사되도록 한다. CBTDEC루틴(2528)은 만약 합계검사 검증이 에러의 존재를 표시했다면(마름모 2540) 이식명령이 전송되지 않도록 하게 됨에 주목해야 한다.
기능 1B는 새로운 소프트웨어를 프로세스 제어컴퓨터(l4a-l4b)중 하나로부터 그 네트워크제어기(16)에 포함된 XRAM회로로 이동시키는데 사용된다. 기능 1B를 선택하면 명령코드("113")가 네트워크제어기(16)로부터 전송된다. 이와 관련하여 마름모(2542)는 만약 이 프로세스 제어컴퓨터가 현재 프로세스 제어를 위해 사용된다면 이 기능이 수행되지않을 것임을 나타낸다. 새로운 소프트웨어코드를 수신하는인터페이스 시스템구성요소 또는 다운스트림 디바이스는 브레이크아웃회로(26)상의 "시작과 정지" 스위치로부터 결정된다. 브레이크아웃회로(26)는 어느 타입의 디바이스가 다운스트림으로 연결되는지를 알지 못하기 때문에, 이 디바이스들 모두는 그 옵션이 선택될 때 브레이크아웃회로를 위해 의도된 새로운 코드를 수신하는 것이 바람직하다. 이와 관련하여 바람직한 절차는 수신장치가 새로운 소프트웨어코드를 사용해야 하는지를 결정하기 위해 다운스트림에서 사용될 수 있는 끼워넣어진 프로그램ID를 새로운 "오버헤드(overheads)"소프트웨어 코드가 갖추도록 하는 것이다. 네트워크제어기(16)는 어느 장치가 호출로부터 프로세스 제어컴퓨터로 다운스트림에서 그것에 접속되는가를 처음에 알게되지만, 네트워크제어기(16)는 어느 장치가 현재 그것에 접속되는지를 결정하기 위하여 다운로딩 동작에 앞서 광섬유 네트워크를 폴링(poll)할 수 있음을 인식해야 한다.
다운로드된 브레이크아웃회로 소프트웨어코드와 필드컴퓨터 유니트 소프트웨어코드의 검증은 광섬유 네트워크상의 알려진 필드컴퓨터 유니트(12)를 폴링함으로써 네트워크제어기(16)에서 달성된다. 이와 관련하여 각각의 브레이크아웃회로는 그것들이 접속되는 어느 장치에 이 소프트웨어를 전송하기 전에 수신된 새로운 브레이크아웃회로 소프트웨어를 검증하는 것이 바람직하다는 점에 주목해야 한다. 따라서, 예컨대 제2도의 브레이크아웃 회로(26f)가 완전하거나 또는 정확한 전송을 수신하지 않았음이 발견된다면, 브레이크아웃회로(26g)로 이 소프트웨어를 보내지 않게된다. 본 발명의 한 태양에 있어서, 브레이크아웃 회로(26)는 상기 소프트웨어를 검사할 충분한 프리 메모리를 구비하지 않기 때문에, 이 브레이크아웃회로는 새로운 필드컴퓨터 유니트 소프트웨어의 정확성을 검증하려고 시도하지 않는다 더 상세히는, 새로운 필드컴퓨터 유니트 소프트웨어가 2개의 패킷에 전송되고(예컨대 각각 32K), 반면에 새로운 브레이크아웃회로 소프트웨어는 하나의 전송을 요구하기만 한다(예컨대 32K). 그러나, 브레이크아웃회로(26)의 메모리용량은 적절한 응용의 경우 증가될 수 있다는 점을 이해해야 한다.
네트워크제어기(16)는 알려진 필드컴퓨터 유니트(12) 모두로부터 전송된 프로그램의 합계검사와 일치하는 합계검사를 수신할 때, 작업자는 디버그패널(18)상의 메시지프롬프트를 통해 올드 소프트웨어코드로 시작할지 또는 새로운 소프트웨어코드로 시작할지를 선택할 수 있다. 그러나, 알려진 필드컴퓨터 유니트(12)중 어느것으로부터 합계검사 메시지를 요구하고 있는 동안 네트워크제어기(16)가 배드 합계검사 또는 타임아웃을 수신한다면, 이 디바이스들 전부는 콜드 피트 명령 코드(Cold Feet command code)를 받아서 올드 소프트웨어로 자동적으로 개시된다. 게다가, 알려진 필드컴퓨터 유니트(12) 전부가 양호한 합계검사 메시지를 보냈다하더라도, 작업자가 소정의 타임아웃 주기 이내에 프롬프트된 선택에 응답하지 않는다면, 인터페이스 시스템은 자동적으로 올드 소프트웨어로 개시하도록 하는 것이 바람직하다. 하여간, 만약 타임아웃 타이머가 검증프로세스 동안 종료한다면, 다운로딩 동작은 디버그패널(18)상에 디스플래이되는 "타임아웃" 메시지와 함께 자동적으로 종결한다.
일단 DOWNLD 비트가 CBTDECC루틴(2528)의 기능 1B를 통해 세트되었다면(블록 2544), 이 비트는 제25도(A)의 네트메인루틴(2500)에 의해 검출된다. 이것은 차례로 네트워크제어기(16)가 제25도(C) 내지 제25도(E)의 GET_CODE루틴(2506)으로 점프하게 한다. 상기 GET_CODE루틴(2506)은 어느 디바이스가 소프트웨어 갱신을 위해 선택되었는지를 검출하고 이에 따라 반응을 한다. 마름모(2546)로 나타낸 바와 같이, 필드컴퓨터 유니트(12)의 중간제어기(94)는 GE7_CODE루틴(2506)을 통해 다운로드될 수 있다. 그러나, 이 절차는 양 프로세스 제어컴퓨터(l4a-l4b)가 프로세스 제어동작에 관해 "다운(down)"일 때만 구현된다. 이 경우, GET_CODE루틴은 제25도(H)에 나타낸 점프아웃(JUMPOUT) 루틴(2548)을 호출한다. 이 점프아웃루틴(2548)은 계속 이어지는 일초버스트(one second burst)의 다운로드 명령이 네트워크제어기(16)의 메인포트 밖으로 전달되도록 한다. 이 연속적인 다운로드명령들은 브레이크아웃회로(26) 및/또는 필드컴퓨터 유니트(12)의 한쪽이 그들의 프로세스제어 타임라인으로부터 점프하도록 하고, 그 위로 더 이상의 명령을 기대하는 밀착 수신루프(타임아웃 타이머 실행을 갖춘)에 위치한다. 이 시점부터 다운로딩과 검증프로세스가 자동적으로 수행된다.
중간제어기(94)가 이 시점에서 다운로딩 프로세스를 포함하지 않는다고 가정하면, 네트워크제어기는 다음에 프로세스 제어컴퓨터(14)로부터 새로운 소프트웨어를 수신한다. 본 발명의 한 태양에 있어서, 이 소프트웨어는 다은 4개의 블록 또는 패킷, 즉 (1) 네트워크제어기 소프트웨어(예컨대 32K), (2) 브레이크아웃회로 소프트웨어(예컨대 32K) 및 (3) 필드컴퓨터 유니트 소프트웨어(예컨대 각각 32K의 2개의 패스(pass))로 보내는 것이 바람직하다. 이와 관련하여 상기 판독 "Which One" 블록(2550)은 이들 소프트웨어 전송을 위한 상기 번호(1),(2) 또는 (3)과 관련되어있다. 필드컴퓨터 유니트 소프트웨어가 2개의 전송 또는 패스를 요구함에 따라, 마름모(2522)는 네트워크제어기(16)가 어느 쪽이든 상기 번호(3) 소프트웨어 전송의 제2패스를 수신하고 있는지의 여부를 검사한다. 만약 다른 번호가 발견된다면, 상기 전송요구는 배트선택(마름모 2544)으로 해석되고, 네트워크제어기(16)는 네트메인루틴으로 되돌아가게 된다(블록 2556).
소프트웨어 전송요구가 수용가능하다면, 네트워크제어기는 전송되고 있는 소프트웨어가 네트워크 제어기 소프트웨어인지를 결정한다(마름모 2558). 만약 상기 소프트웨어가 네트워크 제어기 소프트웨어가 아니라면, FIO테이블은 그것이 공백 "MT"인지를 보기 위해 검사한다(제25도(D)의 마름모 2560). 이와 관련하여 용어 FIO는 필드 입력/출력을 나타내며, 이것이 필드컴퓨터 유니트를 참조하는 간단한 다른 방법이라는 점에 주목해야 한다. FIO테이블이 공백이 아니거나, 또는 소프트웨어가 네트워크 소프트웨어라고 가정하면, 네트워크제어기(16)는 소프트웨어의 다음 32K 패킷을 요구한다(블록 2562). 네트워크제어기(16)는 다음에 프로세스 제어컴퓨터(14)로부터의 다음 명령코드를 기다리게 된다(블록 2564). 명령코드는 제25도(G)에 나타낸 바와 같이 2바이트로 수신된다.
이것이 FIO소프트웨어를 위한 제2패스(Pass)가 아니라고 가정하면(마름모 2566), 합계검사은 XRAM에 저장된다(블록 2568). 이 시점에서, 네트워크제어기(16)는 이 소프트웨어가 FIO소프트웨어인지를 검사하게 되고(마름모 2507), 소프트웨어가 FIO소프트웨어가 아니라면(블록 2572) 전송의 정확성을 검증한다. 이와 관련하여 제25도(0)는 검증루틴(2572)의 흐름도를 나타낸다. 만약 합계검사가 소프트웨어에 끼워넣어진 것들과 매치되지 않는다면, "패드 합계검사(Bad Checksum)"메시지가 디버그패널(18)상에 디스플래이되고, 상기 네트워크제어기(16)는 존재하는 "올드(Old)" 프로그램으로 되돌아가게 된다(블록 2576).
만약 합계검사가 전송된 소프트웨어에 끼워넣어진 것들과 매치되었다면, 네트워크제어기(16)는 이 패킷이 네트워크 제어기 소프트웨어인지를 검사한다(마름모 2578). 상기 소프트웨어가 네트워크 제어기 소프트웨어가 아니라면, 네트워크제어기(16)는 제25도(H)의 점프아웃루틴(2548)을 호출하게 되고, 수신루프(블록 2580)에 다운스트림 디바이스를 두게 된다. 다음에, 네트워크제어기(16)는 다음 소프트웨어 전송을 요구한다(블록 2582). 그리고, 네트워크제어기(16)는 수신된 소프트웨어가 FIO소프트웨어(마름모 2584)인지를 검사한다. 만약 소프트웨어가 FIO소프트웨어라면, 이것이 제1 또는 제2패스인지를 보기 위해 검사가 수행된다(마름모 2586). 만약 그것이 제1패스라면, 네트워크제어기(16)는 제2패스를 셋업하기 위해 (4)로 "Which One"번호를 충돌하게 한다(블록 2588). 만약 이것이 제2패스라면, 네트워크제어기는 제25도(K) 내지 제25도(N)에 나타낸 다운로드된 프로그램 검증루틴(2560)을 호출한다. 다운로드된 프로그램 검증투틴을 검증(2560)이 올드 프로그램 블록으로 복귀를 끝내지 않았다고 하면, 디버그패널(18)상에 메시지가 디스플래이되어(블록 2592), 작업자가 이 패널은 새로운 프로그램을 구현하거나(블록 2594) 또는 올드 프로그램으로 되돌아가는 선택하도록 한다(블록 2596).
제25도(I)는 새로운 프로그램루틴(2594)을 나타내고 있고, 반면에 제25도(J)는 올드 프로그램루틴(2596)을 나타낸다. 이와 관련하여 새로운프로그램루틴(2594)은 제26도(D) 내지 제26도(F)에 나타낸 리프로그루틴(Reprog routine; 2538)을 호출하고 있음에 주목해야 한다. 제25도(E)에 나타낸 바와 같이, 새로운 프로그램루틴(2594)은 제25도(B)상의 기능 1C의 선택에 응답하여 실행된다. 이와 관련하여 기능 1C를 선택하면 네트워크제어기(16)로부터 명령코드 "114"가 전송된다. 제25도(E)는 올드 프로그램루틴(2596)이 제25도(B)상의 기능 1D의 선택에 응답하여 실행되게 됨을 나타낸다. 기능 1D의 선택은 네트워크제어기(16)로부터 명령코드 "115"의 전송을 야기시킨다.
다운로드된 프로그램검증루틴(2590)은 겟 원 루틴(Get One routine;2598)을 호출하는 점에 주목해야 하는데, 이 루틴은 제25도(F)에 나타나 있다. 겟 원 루틴 획득(2598)은 일초의 타임아웃과 같이, 비교적 큰 지연을 제공하는 하나의 단순한 방법이다. 제25도(F)에 나타낸 바와 같이, 겟 원 루틴은 몇몇 카운터의 감소를 제어한다(예컨대 블록 2600).
브레이크아웃회로(26)에서의 다운로딩프로세스로 다시 돌아가면, 제24도(D)의 BCOMM루틴(2516)은 제25도(T) 내지 제25도(U)의 브레이크아웃 다운로드 루틴(2602)을 호출한다. 제25도(T) 내지 제25도(U)에 나타낸 바와 같이, 브레이크아웃 다운로드 루틴(2602)은 제25도(Z)의 점프아웃루틴(2604), 제27도(D)의 Rcv_Init 루틴(2606) 및 제25도(Y)의 Get_One 루틴(2608)과 같은 다양한 서브루틴을 호출한다. 브레이크아웃 다운로드 루틴(2602)은 네트워크제어기(16)를 통해 프로세스 제어컴퓨터(14)로부터 수신된 다양한 명령에 응답한다. 예컨대, 명령어 "118"에 응답하여 브레이크아웃 다운로드 루틴(2602)은 제25도(V) 내지 제25도(W)의 합계검사 서브루틴(2610)을 호출한다. 명령코드 "118"은 수신장치로 하여금 전송된 소프트웨어와 함께 수신된 합계검사를 다시 보내도록 하는 송신장치로부터의 요구이다. 이는 상기 송신장치가 그 프로그램메모리에 끼워 넣어진 합계검사와 이 합계검사를 비교할 수 있도록 해준다. 유사하게, 명령어 "122"에 응답하여, 브레이크아웃 다운로드 루틴(2602)은 제26도(A) 내지 제26도(B)의 수신서브루틴(2612)을 호출한다. 수신루틴(2612)은 제25도(X)의 다운로드 서브루틴을 차례로 호출한다. 브레이크아웃 다운로드 루틴(2604)은 역시 제26도(C)의 Tellall 서브루틴(2616)을 호출하여, 다운스트림 디바이스로 명령코드를 통과시킨다.
만약 소프트웨어가 브레이크아웃회로 소프트웨어로 판단되면(마름모 2618), 브레이크아웃 다운로드 루틴(2602)은 제25도(0)의 검증루틴 VXRAM(2572)을 호출한다. 만약 합계검사가 올바르다면(마름모 2620), 제26도(D)의 리프로그 루틴(2538)이 수행된다. 그렇지 않으면, 배드 합계검사 메시지가 디스플래이되고(블록 2622), 브레이크아웃 회로는 타임아웃 구현을 통해 존재하는 소프트웨어로 최종적으로 되돌아가게된다. 제25도(U)는 브레이크아웃 다운로드 루틴(2602) 역시 명령 "115"에 응답하는 것을 나타내고 있는데, 이 명령은 존재하는 소프트웨어코드로 시작하도록 하기 위해 사용된다(블록 2624). 이와 관련하여 Tellall서브루틴(2616)은 다운스트림으로 이 명령을 보내기 위해 호출되고, 브레이크아웃회로(블록 2626)를 위한 메인 프로그램으로 다시 점프된다.
제24도(E) 내지 제24도(G)를 다시 참조하면서, FIO 다운로드 루틴(2524)은 제25도(T) 내지 제25도(U)의 브레이크아웃 다운로드 루틴(2602)과 많은 유사성을가지고 있다. 따라서, 예컨대 FIO다운로드 루틴(2524)은 명령 "122"에 응답하여 제26도(G)의 수신루틴(2524)을 호출한다. 그리고, 명령 "114"의 수신은 다운로드된 코드가 FIO소프트웨어인지를 필드컴퓨터 유니트(12)가 판단하도록 한다(마름모 2628). 만약 수신된 소프트웨어가 FIO소프트웨어가 아니라면, 제27도(I)의 올드 프로그램 서브루틴(2630)이 호출된다. 그렇지 않으면, 제25도(0)의 검증루틴(2572)이 호출된다.
FIO 다운로드 루틴(2524)은 명령 "123"에 응답하여 네이버 서브루틴(2632)를 호출하게 되는점 역시 주목해야 한다. 네이버(Neighbor) 서브루틴(2632)이 제26도(J) 내지 제26도(K)에 나타나 있다. 네이버 서브루틴(2632)은 하나의 제어기(100)으로부터 동일한 필드컴퓨터 유니트(12)의 이웃하는 제어기 양쪽으로 새로운 소프트웨어를 전송하기 위해 사용된다. 이와 관련하여 네이버 서브루틴(2632)은 직렬포트가 네이버1 제어기를 향하도록 하고(블록 2634), 명령코드 "113" 신호 버스트(burst)는 그 프로세스제어 타임라인으로부터 벗어나 이웃하는 제어기를 얻도록 보내진다(블록 2636). 다음에 직렬포트는 네이버2 제어기를 향하게 되고(블록 2638), 명령코드 "113" 신호가이 제어기로 보내진다(블록 2640). 이네이블 데이터 모드 명령코드 "122" 또한 이 제어기들로 보내진다. 명령코드 "122"를 수신하면, 이웃하는 제어기는 수신서브루틴(2524)으로 분기되고, 검증루틴(2572)으로 합계검사 테스트를 수행한다.
제25도(G)는 FIO다운로드 루틴(2524)이 명령코드 "124"를 검사하는 것을 나타낸다(마름모 2642). 이 명령코드는 송신 제어기로 다시 합계검사를 보내기 위해새로운 소프트웨어를 수신한 이웃하는 제어기를 위한 요구이다. 이와 관련하여 송신제어기는 명령코드 "124"를 전송하기 전에 이웃하는 제어기가 소프트웨어를 검증하고 수신하기 위해 충분한 시간주기 동안 대기하게 됨에 주목해야 한다. 만약 합계검사가 송신제어기의 프로그램에 끼워넣어진 합계검사와 매치된다면, 상기 프로세스는 다른 이웃하는 제어기를 위해 반복된다. 만약 합계검사가 매치되지 않는다면, 다운로딩 프로세스는 그 메인 프로그램의 시작으로 점프하는 송신제어기에 의해 종결된다.
제26도(V)에는 자기측 수신루틴(My Side Receive routine, 2644)의 흐름도가 나타나 있다. 필드컴퓨터 유니트(12)를 위한 프로그램이 RAM에 저장된다는 사실 때문에, 상기 자기측 수신루턴(2644)은 필드컴퓨터 유니트에 인스톨된 제어기(100)내의 오버헤드 소프트웨어를 로딩하기 위해 사용된다. 상기 자기측 수신루틴(2644)은 프로그램소스를 위한 검색을 시작한다. 이와 관련하여 새로운 제어기는 그 네이버1 제어기를 향하게 되고(블록 2626), 제26도(W)의 네이버 서브루틴(2648)을 호출한다. 이 네이버 서브루틴(2648)은 이 이웃하는 제어기로 명령코드 "120" 신호를 보내게 되고(블록 2650), 명령코드 "121" 신호 회답을 기대한다(블록 2652). 만약 새로운 제어기가 세트된 타임아웃 구간내에 예상된 회답을 수신하지 못한다면, 상기 제어기는 네이버2 제어기로 상기 프로세스를 반복한다(블록 2654). 다시, 만약 예상된 회답이 수신되지않으면, 새로운 제어기는 인터페이스 네트워크로부터 그 프로그램 소프트웨어를 수신하기 위해 메인 직렬 포트로 향한다(블록 2656). 새로운 제어기가 그 메인 포트를 향하는 동안 이 새로운 제어기가 명령코드 "113"을 발견한다면, 상기한 바와 같이 그 소프트웨어를 수신하는 FIO 다운로드루틴(2524)으로 점프한다.
만약 새로운 제어기가 예정된 명령코드 "121"를 수신한다면, 제26도(X) 내지 제26도(Y)의 명령 서브루틴(2658)은 오버헤드 소프트웨어를 수신하기 위해 호출된다. 만약 제26도(Q) 내지 제26도(R)의 모듈 사이드_로드(Side Load)에 있어서의 이웃하는 제어기가 명령코드 "120"를 수신한다면, 어느 포트 어드레스로부터 이 요구가 왔는지를 기억하게 되고, 명령코드 "121"에 답하게 되며, XRAM의 "DOWN"바이트내로 이 명령코드를 기록한다. 사이드_로드 루틴의 다음 실시(invocation)상에서, 송신 네이버는 데이터 수신모드로 이 제어기를 두기 위해 새로운 제어기로 명령코드 "122"를 보내게 되고, 그 자신의 프로그램 메모리("PRAM")로부터 한 블록의 프로그램 메모리를 보내게 된다. 프로그램 전송의 방법에 있어서, 새로운 소프트웨어가 수신제어기의 프로그램메모리 내에 직접 기록되고 프로그램이 실행될 때까지 검증은 시도되지 않는다. 만약 전송이 성공적이지 못하다면, 전체 자기측 수신루틴이 다시 반복된다.
이상 본 발명이 예시적 방법으로 설명되었지만, 당업자라면 본 발명의 정신을 벗어나지 않고도 본 명세서에 기술된 특정 실시예들의 변형이 가능하다는 것은 자명하다. 이러한 변형은 첨부되는 청구범위에 의해서만 제한되는 본 발명의 범위내에 있는 것으로 간주된다.

Claims (67)

  1. 한 세트의 적어도 3개의 중복컴퓨터(92, 94, 96)를 가지는 필드컴퓨터 유니트(12)로서,
    상기 필드컴퓨터유니트(12)의 입력 및 출력채널들 양쪽을 위한 아날로그 신호와 디지털 신호를 독립적으로 중재 및 수신하기 위하여 상기 중복컴퓨터(92, 94, 96)와 피결합되는 수단(1000, 1100)과,
    상기 출력채널과 피결합된 한 세트의 출력회로(500, 600)를 통해 상기 각각의 중복컴퓨터로부터 상기 독립적으로 중재된 출력신호를 처리하는 수단을 구비하고, 상기 출력회로의 각각은 상기 중복컴퓨터중 하나로부터 상기 출력회로에 접속된 프로세스 제어디바이스(84, 86)로 필드 출력값 신호가 전송되지 않도록 하는 어보트 수단(510, 606)을 가지며, 대응되게 중재되는 출력신호 각각은 어보트되지 않는한 상기 프로세스 제어 디바이스(84, 86)와 통신되는 것을 특징으로 하는 필드컴퓨터 유니트.
  2. 제1항에 있어서, 상기 출력회로 각각은 상기 출력채널 각각을 위한 개별적인 어보트 회로(510; 606)를 포함하고, 특정 출력채널을 위한 상기 개별적인 어보트 회로들 각각에 대한 출력 도선들이 서로 연결되어 한 세트의 적어도 3개의 개별적인 어보트 회로(510; 606)가 상기 프로세스 제어디바이스(84; 86)를 위해 공통 출력을 제공하는 것을 특징으로 하는 필드컴퓨터 유니트.
  3. 제2항에 있어서, 상기 중복컴퓨터(92, 94, 96) 각각은 상기 출력 채널 각각을 위한 상기 어보트 회로 세트에 있어서 상기 어보트 회로(510; 606)중 하나로 출력 신호값을 전송하고, 상기 중복컴퓨터 각각은 또한 상기 출력채널 각각을 위한 상기 어보트 회로 세트에 있어서 나머지 어보트 회로(510; 606)로 개별적인 어보트 신호값을 전송하는 것을 특징으로 하는 필드컴퓨터 유니트.
  4. 상기 청구항중 어느 한 항에 있어서, 어느 2개의 이웃하는 중복 필드컴퓨터는 상기 중복 필드컴퓨터중 제3의 컴퓨터의 중재된 출력신호의 전송을 금지시킬 수 있는 것을 특징으로 하는 필드컴퓨터유니트.
  5. 제1항에 있어서, 상기 어보트수단(510, 606) 각각은 중복 필드컴퓨터의 각 중재된 출력신호를 위한 한 세트의 어보트 스위치(518, 520, DN1, DN2)를 포함하고, 상기 각 어보트 스위치는 이웃하는 중복 필드컴퓨터에 의해 제어되어, 특정 출력채널을 위한 상기 어보트 스위치들의 조합된 개방이 그 출력채널을 위한 중재된 출력신호의 전송을 금지하도록 동작하는 것을 특징으로 하는 필드컴퓨터 유니트.
  6. 제5항에 있어서, 어보트 스위치들은 제로인 중재된 출략값을 가지는 어느 출력채널에 대해 개방상태에 있는 것을 특징으로 하는 필드컴퓨터 유니트.
  7. 제5항에 있어서, 상기 중복 필드컴퓨터중의 어느 하나는 그 이웃하는 중복 필드컴퓨터들이 상기 출력채널중 적어도 하나를 위해 그들의 어보트 스위치를 개방하도록 요구할 수 있는 것을 특징으로 하는 필드컴퓨터 유니트.
  8. 제1항에 있어서, 상기 중복 필드컴퓨터 각각은 그 중재된 아날로그 출력신호들을 각 프로세스제어 디바이스(86)로 실제로 전송된 아날로그 출력신호들과 비교하는 아날로그 출력회로(600)를 포함하고, 만약 상기 아날로그 출력회로(600)중의 하나에 의해 소정의 한계 이상의 편차가 검출되면, 상기 아날로그 출력회로(600)는 그 중재된 아날로그 출력신호를 비기여레벨로 강제하게 되는 것을 특징으로 하는 필드컴퓨터 유니트.
  9. 제8항에 있어서, 상기 각 아날로그 출력회로(600)는 자체조정 수단을 구비하여 이 자체조정 수단에 의해 독립적으로 결정되는 방식으로 상기 아날로그 출력회로를 위하여 중복컴퓨터에 의해 명령받은 원하는 출력레벨에 중재된 아날로그 출력신호가 도달하도록 하는 것을 특징으로 하는 필드컴퓨터 유니트.
  10. 제1항에 있어서, 상기 중복컴퓨터들중의 어느 2개로 하여금 나머지 중복 컴퓨터를 리세트 상태로 유지할 수 있도록 하기 위하여 상기 중복컴퓨터들 각각 사이에서 이웃하는 것끼리의 전용 통신수단(102)을 포함하는 것을 특징으로 하는 필드컴퓨터 유니트.
  11. 제1항에 있어서, 상기 각 중복컴퓨터는 상기 컴퓨터프로세서가 다수의 아날로그 신호와 디지털 신호소스로부터 단일 도선으로 직렬 입력신호를 수신하도록 하기 위한 직렬 입력회로 수단(116,U11)과 컴퓨터프로세서(U4O)를 포함하고, 상기 중복컴퓨터중의 각각의 다른 것으로부터 개별적인 이웃 통신 신호를 포함하는 것을 특징으로 하는 필드컴퓨터 유니트.
  12. 제1항에 있어서, 상기 중재수단(1000, 1100)은 다수의 소프트웨어로 선택가능한 디폴트(default) 입력 및 출력조건을 포함하는 것을 특징으로 하는 필드컴퓨터 유니트.
  13. 제1항에 있어서, 상기 각 중복컴퓨터(92, 94, 96)를 위한 적어도 하나의 아날로그 입력회로(300)를 더 포함하고, 이 아날로그 입력회로(300) 각각은 소정의 시간구간에 걸쳐 다수의 다른 입력 펄스신호를 보고하기 위한 선택가능한 모드수단을 가지며, 이 선택가능한 모드수단은 펄스카운트를 보고하기 위한 제1모드와 평균주파수값을 보고하기 위한 제2모드를 포함하는 것을 특징으로 하는 필드컴퓨터 유니트.
  14. 제13항에 있어서, 상기 각 출력회로는 상기 중복 컴퓨터가 이 출력회로의 비강제적 테스트를 수행하도록 하는 수단을 포함하는 것을 특징으로 하는 필드컴퓨터유니트.
  15. 물리적 프로세스에 영향을 주는 프로세스 제어결정을 하기 위한 프로세스 컴퓨터수단(14)을 갖춘 프로세스 제어시스템에 있어서,
    한 세트의 3개의 증복컴퓨터들(92, 94, 96)를 가지는 상기 전항들중 어느 한 항에 따른 복수의 원격적으로 위치한 3중의 자체완비된 중복 필드컴퓨터 유니트(12)로서, 적어도 2개의 능동 쌍방항 통신채널(46, 48)을 가지는 통신 네트워크를 통해 상기 컴퓨터 수단에 접속되는 필드컴퓨터 유니트(12)를 구비하고,
    여기에서 상기 3중 중복 필드컴퓨터 유니트 각각의 아날로그 및 디지털 신호들을 수신하여 독립적으로 중재하기 위하여 상기 중복 컴퓨터와 피결합되는 상기 수단은 상기 물리적 프로세스와 연관된 센서들로부터 원(raw) 아날로그 및 디지털 입력신호들을 수신하는 수단(200)과,
    상기 입력신호들 각각을 중재하는 수단(92, 94, 96)과,
    상기 네트워크를 통해 상기 프로세스 컴퓨터 수단에 상기 중재된 입력신호들을 전송하는 수단(902)과,
    상기 프로세스 컴퓨터 수단으로부터 출력값 신호를 수신하는 수단(900)과,
    상기 프로세스 컴퓨터수단으로부터 수신된 상기 출력값 신호의 독립적인 중복중재를 제공하는 수단(92, 94, 96)을 포함하고,
    상기 중재된 출력값 신호들 각각을 처리하는 상기 수단(500, 600)은 상기 물리적 프로세스와 관련된 디바이스(84, 86)에 접속되는 한 세트의 개별적인 어보트회로(510, 606)를 구비하는 것을 특징으로 하는 분산 인터페이스 시스템.
  16. 제15항에 있어서, 상기 네트워크는 상기 통신채널(46, 48) 각각에 걸쳐 적어도 하나의 신호분포레벨에 통신신호 흐름의 방향을 개별적으로 변화시키는 네트워크 제어수단(16)을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  17. 제15항 또는 제16항에 있어서, 상기 네트워크는 상기 프로세스 컴퓨터수단(14)과 상기 각 3중 중복컴퓨터유니트(12)간의 양방향 직렬통신을 지시하는 복수의 서로 연결된 브레이크아읏회로(26)를 포함하는 것을 특징으로 하는 분산 인터페이스시스템.
  18. 제17항에 있어서, 제1 브레이크아웃회로(26)는 상기 프로세스 컴퓨터수단(14)으로부터 상기 3중 중복컴퓨터유니트(12)의 소정의 그룹으로 통신을 지시하기 위해 상기 프로세스 컴퓨터수단(14)에 접속되고, 복수의 제2 브레이크아웃회로(26)는 특정 3중 중복 컴퓨터 유니트로 통신을 지시하기 위하여 상기 제1 브레이크아웃 회로에 접속되며, 상기 제2 브레이크아웃회로(26) 각각은 복수의 상기 3중 중복 컴퓨터 유니트(12)에 접속되는 것을 특징으로 하는 분산 인터페이스 시스템.
  19. 제17항에 있어서, 복수의 제1 브레이크아웃회로(26)는 네트워크제어기수단(16)과 함께 링을 형성하도록 접속되고, 이 링은 그 링 주변의 어느 방향으로도 신호가 전송되도록 할 수 있으며,
    제1브레이크아웃회로(26)중의 적어도 하나는 적어도 하나의 제2 브레이크아웃회로(26)와 연결되고 상기 각각의 제2 브레이크아웃회로(26)는 상기 복수의 3중 중복 컴퓨터유니트(12)와 연결되는 것을 특징으로 하는 분산 인터페이스 시스템.
  20. 제18항에 있어서, 상기 각각의 브레이크아웃회로들(26)은 상기 브레이크아웃회로들(26)중의 어느 것이 제1 또는 제2 브레이크아웃회로로서 구성 되도록 할 수 있는 수단을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  21. 제17항에 있어서, 상기 각각의 브레이크아웃회로(26)는 상기 브레이크아웃회로들(26)중 어느 것이 소정의 신호강도로 수신된 신호를 반복하도록 할 수 있는 수단을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  22. 제15항에 있어서, 상기 네트워크는 상기 프로세스 컴퓨터수단(14)으로부터 상기 네트워크를 통해 복수의 3중 중복 필드컴퓨터 유니트(12)로 갱신된 소프트웨어의 동시통신 다운로딩(broadcast downloading)을 위한 수단(16)을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  23. 제16항에 있어서, 각각의 통신채널(46, 48)은 상기 네트워크를 위한 신호분포의 제1레벨상에서 상기 프로세스 컴퓨터수단(14)에 접속된 물리적인 광섬유링을 형성하는 것을 특징으로 하는 분산 인터페이스 시스템.
  24. 출력신호가 아날로그 디바이스(86)의 공통제어입력에 연결되는 중복컴퓨터 각각을 위한 아날로그 출력회로(600)를 구비하는 적어도 3개의 중복컴퓨터(92, 94, 96)를 갖춘 제1항 내지 제l4항중 어느 한 항에 따른 필드 컴퓨터시스템으로부터 아날로그 디바이스(86)를 제어하는 방법으로서,
    상기 아날로그 디바이스로 보내진 상기 아날로그 출력회로(600)의 합산된 출력이 소정의 한계만큼 상기 아날로그 디바이스(86)에 대한 제어입력의 아날로그 레벨에서 벗어났는지를 상기 아날로그 출력회로(60) 각각에서 독립적으로 결정하는 단계;
    상기 아날로그 출력회로(600)중 어느 것이 상기 아날로그 디바이스(86)에 대한 제어입력으로 공급되는 아날로그레벨에 기여할 수 없는 레벨로 출력회로의 아날로그출력을 독립적으로 강제하는 그러한 편차를 발견하는 단계;
    상기 아날로그 출력회로(600)중 하나 이상이 이 출력회로의 아날로그 출력신호를 상기 비기여레벨로 강제했는지를 판단하는 단계, 및
    만약 상기 하나 이상의 아날로그 출력회로(600)가 상기 비기여레벨로 출력회로의 아날로그 출력신호를 강제했다면, 그들의 개별적인 중복컴퓨터에 의해 명령받은 레벨로 상기 아날로그 출력회로의 아날로그 출력신호를 저장하고, 나머지 아날로그 출력회로의 아날로그 출력신호를 상기 비기여레벨로 강제하는 단계를 구비하는 것을 특징으로 하는 필드컴퓨터 시스템으로부터 아날로그 디바이스를 제어하는 방법.
  25. 제24항에 있어서, 상기 비기여레벨은 실질적으로 제로출력레벨인 것을 특징으로 하는 아날로그 디바이스를 제어하는 방법.
  26. 제24항 또는 제25항에 있어서, 각각의 아날로그 출력회로(600)는 그 레벨이 상기 소정의 한계너머로 벗어나는 아날로그 출력신호를 발생시키는지의 판단을 독립적으로 행하는 것을 특징으로 하는 아날로그 디바이스를 제어하는 방법.
  27. 제26항에 있어서, 각각의 아날로그 출력회로(600)는, 아날로그 출력회로가 상기 아날로그 디바이스(86)에 대한 제어입력의 아날로그레벨에 실질적으로 기여하지 않도록 하는 적어도 하나의 테스트레벨로 그 아날로그출력을 강제하는 단계와, 그 아날로그 출력신호가 상기 테스트레벨을 달성했는지를 결정하는 단계 및, 테스트된 아날로그 출력신호의 아날로그 출력신호를 그 중복컴퓨터에 의해 명령받은 레벨로 다시 저장하는 단계를 포함하는 비강제적 테스트절차를 주기적으로 수행하는 것을 특징으로 하는 아날로그 디바이스를 제어하는 방법.
  28. 한 세트의 중복 프로세스제어 컴퓨터(l4a, l4b)와 그리고 상기 물리적 프로세스와 연관된 센서들(58, 60, 62)로부터 복수의 원(raw) 아날로그 및 디지털 신호입력을 수신하고 적어도 하나의 프로세스제어 디바이스(84, 86)로 출력신호를 출력할 수 있는 필드컴퓨터 유니트(12)를 가지는 컴퓨터 시스템에서 고장(faults)에 대해 실질적인 허용한계를 가지고 컴퓨터로 구현되는 프로세스 제어방법에 있어서,
    상기 원 입력신호중 적어도 일부분을 상기 필드컴퓨터 유니트(12)에 포함된 적어도 3개의 중복필드컴퓨터 (92, 94, 96)에 있어서 중재된 입력값 신호로 변환하는 단계와,
    복수의 통신채널(46, 48)에 걸쳐 상기 중복 프로세스 컴퓨터(l4a, l4b) 세트로 상기 중재된 입력값 신호중 적어도 일부분을 동시에 전송하는 단계와,
    상기 복수의 통신채널에 걸쳐 적어도 2개의 상기 중복 프로세스컴퓨터로부터 상기 필드컴퓨터 유니트(12)로 출력값 신호를 동시에 전송하는 단계와,
    상기 중복필드컴퓨터 각각이 상기 필드컴퓨터 유니트에 의해 수신된 상기 각각의 출력값 신호를 위해 개별적인 중재된 출력신호를 발생시키도록 상기 중복필드컴퓨터 각각에서 상기 출력값 신호를 독립적으로 중재하는 단계, 및
    상기 프로세스 제어디바이스로 상기 적어도 하나의 중재된 출력신호가 전송되는 것을 금지시킬 수 있는 출력강제장치(510, 606)를 통해 상기 중재된 출력신호를 처리하는 단계를 구비하고,
    여기에서 어느 이웃하는 2개의 중복 필드컴퓨터는 제3의 중복 필드컴퓨터의 중재된 출력신호의 전송을 금지시킬 수 있는 것을 특징으로 하는 컴퓨터로 구현되는 프로세스 제어방법.
  29. 제 28항에 있어서, 각각의 중복 필드컴퓨터는 각각의 프로세스 제어디바이스(86)로 실제로 전송된 아날로그 출력신호와 그 중재된 아날로그 출력신호를 비교하는 아날로그 출력회로(600)를 포함하고, 만약 소정의 한계를 벗어나는 편차가 상기 아날로그 출력회로(600)중 하나에 의해 검출되면, 상기 아날로그 출력회로는 비기여레벨로 그 중재된 아날로그 출력신호를 강제하게 되는 것을 특징으로 하는 컴퓨터로 구현되는 프로세스 제어방법.
  30. 제28항 또는 제29항에 있어서, 상기 출력강제장치(510,606)는 중복 필드컴퓨터의 각각의 중재된 출력신호를 위한 한 세트의 어보트 스위치들(518, 520; DN1, DN2)을 포함하고, 이 어보트 스위치들 각각은 이웃하는 중복 필드컴퓨터에 의해 제어되어, 특정 출력채널을 위한 상기 어보트 스위치들의 조합된 개방은 그 출력채널을 위한 중재된 출력신호의 전송을 금지하도록 동작하는 것을 특징으로 하는 컴퓨터로 구현되는 프로세스 제어방법.
  31. 제3O항에 있어서, 제로의 중재된 출력값을 가지는 어느 출력채널을 위한 어보트 스위치들을 개방하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 프로세스 제어방법.
  32. 제30항에 있어서, 상기 중복 필드컴퓨터(92, 94, 96)중 어느 것은 그 이웃하는 중복 필드컴퓨터가 적어도 상기 출력채널중의 하나를 위하여 그 어보트 스위치를 개방하도록 요구할 수 있는 것을 특징으로 하는 컴퓨터로 구현되는 프로세스 제어방법.
  33. 적어도 3개의 중복컴퓨터(92, 94, 96)를 가지는 필드컴퓨터 유니트(12)에서의 입력 및 출력 신호를 처리하는 방법에 있어서,
    대응하는 입력신호들 사이에서 과반수 일치에 도달할 수 없는 경우 소프트웨어로 선택가능한 복수의 입력값 조건들중 하나를 과반수 투표로 결정하여 채택함으로써 상기 중복컴퓨터들 각각에서 복수의 대응하는 입력 데이터신호를 독립적으로 중재하는 단계(1000, 1100)와;
    대응하는 출력신호들 사이에서 과반수 일치에 도달할 수 없는 경우 소프트웨어로 선택가능한 복수의 출력값 조건들중 하나를 과반수 투표로 결정하여 채택함으로써 상기 중복컴퓨터들 각각에서 복수의 대응하는 출력 데이터신호를 독립적으로 중재하는 단계(1068, 1274)를 갖출 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  34. 제33항에 있어서, 아날로그 데이터를 위한 과반수 투표결정은 중재될 각 데이터 쌍 간의 차이들을 계산하는 단계와;
    상기 차이들이 소정의 허용한계값을 초과하지 않는 데이터의 쌍을 결정하는 단계; 및
    데이터의 값과 관계없는 소정의 선택 규칙에 따라 상기 결정된 데이터의 쌍들로부터 하나의 데이터를 선택하는 단계를 구비하는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  35. 제33항 또는 제34항에 있어서, 상기 입력 및 출력 데이터 신호들의 타당성을 검사하는 단계와, 타당성있는 데이터신호들만이 중재되도록 하는 단계를 포함하는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  36. 제35항에 있어서, 상기 소프트웨어로 선택가능한 입력값 조건은 하이선택(Select-High) 조건 및 로우선택(Select-Low)조건을 포함하는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  37. 제36항에 있어서, 상기 소프트웨어로 선택가능한 출력값 조건은 페일 세이프(Fail-Safe) 조건과 페일-라스트(Fail-Last) 조건을 포함하는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  38. 제37항에 있어서, 상기 소프트웨어로 선택가능한 입력 및 출력값 조건은 각 프로세스 제어사이클과 함께 변화될 수 있는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  39. 제33항에 있어서, 대응하는 아날로그 입력데이터 신호의 쌍이 적어도 하나의허용한계 테스트를 받는 단계와, 상기 허용한계 테스트를 통과하는 아날로그 입력데이터 신호만이 중재되도록 하는 단계를 포함하는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  40. 제39항에 있어서, 대응하는 아날로그 입력데이터 신호의 쌍들은 와이드 허용한계 테스트뿐만 아니라 내로우 히용한계 테스트를 받으며, 상기 내로우 허용한계 테스트의 통과에는 초기 프로세스 제어사이클 동안의 중재를 위하여 대응하는 아날로그 입력데이터 신호를 한정하도록 요구되고, 상기 와이드 허용한계 테스트의 통과에는 이어지는 프로세스 제어사이클동안의 중재를 위하여 대응하는 아날로그 입력데이터 신호들을 계속 한정하도록 요구되는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  41. 제40항에 있어서, 각각의 대응하는 아날로그 입력신호사이의 차이값이 결정되고, 바로 선행하는 프로세스 제어사이클을 위한 대응하는 차이값이 현재의 프로세스 제어사이클을 위한 중재된 아날로그 입력값에 가산되는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  42. 제37항에 있어서, 마지막 중재된 아날로그 출력값에 가장 가까운 아날로그 출력값이 페일-라스트 조건 동안 선택되는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  43. 제33항에 있어서, 대응하는 입력 및 출력데이터신호 양쪽간의 특정 불일치를 나타내는 신호가 발생되는 것을 특징으로 하는 필드컴퓨터 유니트에서의 입력 및 출력 신호를 처리하는 방법.
  44. 적어도 하나의 제어회로(100)와 복수의 출력회로(500, 600)를 갖춘 필드컴퓨터 유니트(12)에 있어서,
    다른 전압레벨을 가지는 복수의 전력선을 제공하는 수단(906, 918)과,
    전력의 적어도 하나의 백업 배터리소스(52)를 제공하는 수단과,
    상기 전력선중 하나로부터 상기 배터리소스(52)를 충전시키는 수단(K2,910)과,
    고전류 부하조건하에서 상기 배터리소스(52)의 전기적 저장용량을 주기적으로 테스트하는 수단(Kl, IU9), 및
    상기 배터리소스(52)의 전기적 저장용량이 상기 전력선중 적어도 하나로부터 상기 출력회로(500, 600)로 전력이 전송되는 것을 금지함으로써 소정의 제1 문턱값에 도달할 때 상기 배터리소스(52)로부터 이용가능한 전력을 보존하기 위한 수단(912, 918)을 구비하는 것을 특징으로 하는 전원공급시스템.
  45. 제44항에 있어서, 상기 배터리 소스(52)의 전기적 저장용량이 소정의 제2문턱값에 도달할 때, 상기 배터리소스(52)로부터 전력을 오프시키는 수단(912, 918)을 더 포함하는 것을 특징으로 하는 전원공급시스템.
  46. 제44항 또는 제45항에 있어서, 상기 배터리소스(52)의 전기적 저장용량을 테스트하는 수단은 상기 배터리소스를 하이 및 로우 전류 인출부하에 선택적으로 연결하기 위한 스위칭수단(Kl)과, 상기 배터리가 상기 하이 전류 인출부하에 연결될 때 상기 배터리소스(52)의 전압레벨을 측정하기 위한 검출수단(IU3‥‥)을 포함하는 것을 특징으로 하는 전원공급시스템.
  47. 적어도 3개의 중복컴퓨터(92, 94, 96)를 제어하는 방법에 있어서,
    상기 중복컴퓨터의 각각에서 이웃하는 중복컴퓨터와 관련된 소정의 에러조건의 존재를 검출하는 단계;
    상기 중복컴퓨터중의 하나가 소정의 에러조건을 발견할 때 이웃하는 중복컴퓨터를 위한 리세트 조건을 요구하는 단계; 및
    상기 중복컴퓨터중 2개가 상기 이웃하는 중복컴퓨터를 위해 상기 소정의 에러를 검출할 때 이웃하는 중복컴퓨터를 위한 리세트 조건을 야기시키는 단계(102)를 구비하는 것을 특징으로 하는 적어도 3개의 중복컴퓨터를 제어하는 방법.
  48. 제47항에 있어서, 상기 소정의 에러가 검출된 이웃하는 중복컴퓨터가 일시적으로 리세트되는 것을 특징으로 하는 적어도 3개의 중복컴퓨터를 제어하는 방법.
  49. 제48항에 있어서, 일시적으로 리세트된 이웃하는 중복컴퓨터는 소정의 주기가 경과한 후 상기 소정의 에러조건이 상기 중복컴퓨터중 2개에 의해 다시 검출될 때 영구적으로 디스에이블되는 것을 특징으로 하는 적어도 3개의 중복컴퓨터를 재어하는 방법.
  50. 제47항 내지 제49항중의 어느 한항에 있어서, 상기 소정의 에러조건이 통신 실패인 것을 특징으로 하는 적어도 3개의 중복컴퓨터를 제어하는 방법.
  51. 제47항에 있어서, 상기 중복컴퓨터들 각각은 그 전원공급선중 적어도 하나를 모니터하고, 상기 모니터된 전원공급선이 소정의 레벨 이하로 떨어질 때 상기 중복컴퓨터중의 어느 것이 그 자신을 위한 리세트조건을 야기시킬 수 있는 것을 특징으로 하는 적어도 3개의 중복컴퓨터를 제어하는 방법.
  52. 물리적 프로세스에 영향을 주는 프로세스 제어결정을 하기 위해 프로세스 컴퓨터수단(14)을 갖춘 프로세스 제어시스템에 있어서,
    적어도 2개의 능동 양방향 통신채널(46, 48)을 갖춘 통신네트위크를 통해 상기 컴퓨터수단(14)에 연결되고 원격적으로 위치한 복수의 자체완비된 필드컴퓨터 유니트(12)로 이루어져 있고,
    상기 각 필드컴퓨터 유니트는 상기 물리적 프로세스와 관련된 센서로부터 원(raw) 아날로그 및 디지털 입력신호를 수신하기 위한 수단(200)과,
    프로세스 컴퓨터수단으로부터 출력값 신호를 수신하기 위한 수단(900)을 포함하며,
    여기에서 상기 네트워크를 위한 신호분포의 제l레벨상에서 상기 각각의 통신 채널은 상기 프로세스 컴퓨터수단(14)을 연결하는 링과 이 링내의 복수의 브레이크 아웃회로(26)를 구비하고 상기 네트위크를 위한 신호분포의 제2레벨상에서 상기 각 브레이크아웃회로(26)는 프로세스 컴퓨터수단(14)과 각 필드컴퓨터유니트(12)간의 양방향 직렬통신을 지시하기 위하여 복수의 필드컴퓨터 유니트에 접속되는 것을 특징으로 하는 분산 인터페이스 시스템.
  53. 제52항에 있어서, 상기 네트워크는 각각의 통신채널에 걸쳐 상기 제1신호 분포레벨의 통신신호 흐름의 방향을 개별적으로 변화시키기 위한 네트워크 제어기 수단을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  54. 제52항 또는 53항에 있어서, 상기 링의 각 브레이크아웃회로(26)(제1 브레이크아웃회로)는 적어도 하나의 제2브레이크아웃회로(26)에 접속되고, 상기 각 제2브레이크아웃회로(26)는 복수의 필드컴퓨터 유니트(12)에 접속되는 것을 특징으로 하는 분산 인터페이스 시스템.
  55. 제 54항에 있어서, 각각의 브레이크아웃회로(26)는 상기 브레이크아웃회로(26)중 어느 것이 제1 또는 제2브레이크아웃회로로 구성될 수 있도록 하는 수단을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  56. 제 52항에 있어서, 상기 브레이크아웃회로(26) 각각은 상기 브레이크아웃 회로(26)중 어느 것이 소정의 신호강도에서 수신된 신호를 반복할 수 있도록 하는 수단을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  57. 제 52항에 있어서, 상기 네트워크는 상기 프로세스 컴퓨터수단(14)으로부터 상기 네트워크를 통해 복수의 필드컴퓨터 유니트(12)로 갱신된 소프트웨어의 동시통신 다운로딩(broadcast downloading)을 위한 수단을 포함하는 것을 특징으로 하는 분산 인터페이스 시스템.
  58. 제52항에 있어서, 상기 링은 물리적 광섬유링을 구비하는 것을 특징으로 하는 분산 인터페이스 시스템.
  59. 프로세스 제어컴퓨터와 복수의 필드컴퓨터유니트(12)간의 양방향통신을 제공하는 네트워크제어기(16)를 갖춘 프로세스 제어컴퓨터(14)를 위하여 제52항 내지 제58항중의 어느 한항에 따른 분산 인터페이스 시스템(10)에서의 통신 지시방법으로서,
    링이 이 링주변의 어느 방향으로도 신호들이 전송되도록 할 수 있는 상기 네트워크 제어기로 형성되도록 복수의 제1브레이크아웃회로(26b)간의 통신링크를 제공하는 단계와,
    상기 각각의 제1브레이크아웃회로(26b)와 복수의 필드컴퓨터유니트(12)간의 통신링크를 제공하는 단계와,
    한 방향으로 상기 링 주변에 메시지를 전달하고, 반대 방향으로 상기 링 주변에 메시지를 전달하는 단계와,
    상기 메시지의 각각에 대한 회답이 소정의 시간주기 이내에 상기 네트워크 제어기(16)에서 수신되었는지를 결정하는 단계 및,
    상기 결정에 응답하여 각각의 필드컴퓨터유니트로 통신경로를 저장하는 단계를 구비하는 것을 특징으로 하는 분산 인터페이스 시스템에서의 통신 지시방법.
  60. 제59항에 있어서, 상기 방법은 데이터통신이 각 프로세스 사이클과 함께 허가되기 전에 반복되는 것을 특징으로 하는 분산 인터페이스 시스템에서의 통신 지시방법.
  61. 제60항에 있어서, 상기 각각의 브레이크아웃회로(26)는 그들의 개별적인 필드컴퓨터유니트로 상기 각각의 메시지를 전송하고, 상기 각각의 필드컴퓨터유니트는 상기 메시지에 대한 회답을 전송하는 것을 특징으로 하는 분산 인터페이스 시스템에서의 통신 지시방법.
  62. 제61항에 있어서, 상기 메시지중의 적어도 하나는 각각의 필드컴퓨터유니트(12)가 클록신호를 상기 프로세스 제어컴퓨터(14)의 클록신호로 조정할 수 있도록 하는 것을 특징으로 하는 분산 인터페이스 시스템에서의 통신 지시방법.
  63. 제59항 내지 제62항중 어느 한항에 있어서, 적어도 2개의 프로세스 제어컴퓨터(l4a, l4b)가 제공되고, 대응하는 브레이크아웃회로(26)의 세트는 상기 프로세스 제어컴퓨터(l4a, l4b) 각각과 상기 필드컴퓨터유니트(12) 각각 사이의 양방향 통신을 할 수 있도록 제공되는 것을 특징으로 하는 분산 인터페이스 시스템에서의 통신 지시방법.
  64. 복수의 필드컴퓨터 유니트로 개정된 컴퓨터 프로그램을 부수적으로 인스톨하는 방법으로서, 여기에서 상기 필드컴퓨터 유니트 각각은 적어도 3개의 중복컴퓨터(92, 94, 96)를 포함하고, 필드컴퓨터 유니트(12)는 물리적 프로세스를 제어하기 위한 출력신호를 계속적으로 생성하며,
    (a) 네트워크제어기(16)와 복수의 브레이크아웃회로(26)를 가지며, 소스컴퓨터(14)로부터 상기 필드컴퓨터 유니트(12)로 신호를 전송하는 통신 네트워크를 제공하는 단계와;
    (b) 상기 소스컴퓨터(14)로부터 상기 네트워크제어기를 통하여 상기 필드컴퓨터유니트에 있어서의 상기 중복컴퓨터중 첫 번째 컴퓨터로 상기 개정된 컴퓨터프로그램을 전송하는 단계;
    (c) 상기 각각의 선택된 필드컴퓨터유니트에 있어서의 상기 중복컴퓨터중 첫번째 컴퓨터에서 상기 개정된 컴퓨터프로그램의 전송을 확인하는 단계; 및
    (d) 상기 개정된 컴퓨터프로그램을 수신한 상기 각각의 필드컴퓨터유니트에서 상기 개정된 컴퓨터프로그램이 확인되었을 때 이 개정된 컴퓨터프로그램을 수신한 각각의 필드컴퓨터유니트에서의 상기 중복컴퓨터중 첫 번째 컴퓨터에서 상기 개정된 컴퓨터 프로그램을 활성화시키는 단계를 구비하고,
    여기에서 상기 각각의 필드컴퓨터유니트에 있어서의 상기 중복컴퓨터중 다른 컴퓨터들은 상기 (a) 내지 (d) 단계동안 상기 출력신호를 계속적으로 생성하는 것을 특징으로 하는 개정된 컴퓨터 프로그램을 부수적으로 인스톨하는 방법.
  65. 제64항에 있어서, 상기 수신된 컴퓨터 프로그램은 필드컴퓨터유니트(12)에 있어서 각각의 중복컴퓨터(92, 94, 96) 간의 이웃하는 것끼리의 전용 통신수단(102)을 통해 각각의 필드컴퓨터유니트의 하나 또는 다른 2개의 중복컴퓨터에 전송되는 것을 특징으로 하는 개정된 컴퓨터 프로그램을 부수적으로 인스톨하는 방법.
  66. 제65항에 있어서, 상기 수신된 컴퓨터 프로그램은 수신하고 있는 중복컴퓨터의 프로그램메모리내에 직접 기록될 수 있는 것을 특징으로 하는 개정된 컴퓨터 프로그램을 부수적으로 인스톨하는 방법.
  67. 제64항 내지 66항중 어느 한 항에 있어서, 제15항 내지 제23항중의 어느 한항에 따른 분산 인터페이스 시스템에 사용되는 것을 특징으로 하는 개정된 컴퓨터 프로그램을 부수적으로 인스톨하는 방법.
KR1019940703353A 1992-03-31 1993-03-15 한세트의적어도3개의중복컴퓨터를가지는필드컴퓨터유니트,이필드컴퓨터유니트에연결된프로세스제어시스템및이들을제어하는방법 KR100322462B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/864,931 US5428769A (en) 1992-03-31 1992-03-31 Process control interface system having triply redundant remote field units
US07/864931 1992-03-31
PCT/US1993/002253 WO1993020488A2 (en) 1992-03-31 1993-03-15 Process control interface system having triply redundant remote field units

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020010022541A Division KR100322461B1 (ko) 1992-03-31 2001-04-26 필드 컴퓨터 유니트에서 디지털 출력회로 및 아날로그출력회로를 비강제적으로 테스트하는 방법

Publications (1)

Publication Number Publication Date
KR100322462B1 true KR100322462B1 (ko) 2002-11-30

Family

ID=25344354

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1019940703353A KR100322462B1 (ko) 1992-03-31 1993-03-15 한세트의적어도3개의중복컴퓨터를가지는필드컴퓨터유니트,이필드컴퓨터유니트에연결된프로세스제어시스템및이들을제어하는방법
KR1020010022541A KR100322461B1 (ko) 1992-03-31 2001-04-26 필드 컴퓨터 유니트에서 디지털 출력회로 및 아날로그출력회로를 비강제적으로 테스트하는 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020010022541A KR100322461B1 (ko) 1992-03-31 2001-04-26 필드 컴퓨터 유니트에서 디지털 출력회로 및 아날로그출력회로를 비강제적으로 테스트하는 방법

Country Status (12)

Country Link
US (4) US5428769A (ko)
EP (4) EP0869415B1 (ko)
JP (1) JPH07507889A (ko)
KR (2) KR100322462B1 (ko)
AU (1) AU3918393A (ko)
CA (1) CA2131156A1 (ko)
DE (2) DE69322626T2 (ko)
ES (2) ES2191884T3 (ko)
HK (2) HK1011427A1 (ko)
MX (1) MX9301799A (ko)
SG (1) SG55081A1 (ko)
WO (1) WO1993020488A2 (ko)

Families Citing this family (106)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100302223B1 (ko) * 1992-06-12 2001-11-22 그래햄 이. 테일러 프로세스제어컴퓨터용비밀인터페이스및그데이터의전송방법
US5754757A (en) * 1992-11-06 1998-05-19 The University Of Newcastle Upon Tyne Efficient schemes for constructing reliable computing nodes in distributed systems
US5666129A (en) * 1994-07-06 1997-09-09 Level One Communications, Inc. Electrical display elements for displaying multiple different conditions
ATE195819T1 (de) * 1995-05-11 2000-09-15 Siemens Ag Einrichtung zur numerischen steuerung einer werkzeugmaschine oder eines roboters
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US6381506B1 (en) 1996-11-27 2002-04-30 Victor Grappone Fail-safe microprocessor-based control and monitoring of electrical devices
US6070250A (en) * 1996-12-13 2000-05-30 Westinghouse Process Control, Inc. Workstation-based distributed process control system
SE9702176L (sv) * 1997-06-06 1998-12-07 Ericsson Telefon Ab L M En maskinvarukonstruktion för majoritetsval, samt test och underhåll av majoritetsval
US6216051B1 (en) * 1998-05-04 2001-04-10 Nec Electronics, Inc. Manufacturing backup system
US6748451B2 (en) 1998-05-26 2004-06-08 Dow Global Technologies Inc. Distributed computing environment using real-time scheduling logic and time deterministic architecture
US6368366B1 (en) 1999-07-07 2002-04-09 The Lubrizol Corporation Process and apparatus for making aqueous hydrocarbon fuel compositions, and aqueous hydrocarbon fuel composition
US6383237B1 (en) 1999-07-07 2002-05-07 Deborah A. Langer Process and apparatus for making aqueous hydrocarbon fuel compositions, and aqueous hydrocarbon fuel compositions
US6368367B1 (en) 1999-07-07 2002-04-09 The Lubrizol Corporation Process and apparatus for making aqueous hydrocarbon fuel compositions, and aqueous hydrocarbon fuel composition
US6647301B1 (en) 1999-04-22 2003-11-11 Dow Global Technologies Inc. Process control system with integrated safety control system
US7089530B1 (en) 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
WO2000070417A1 (en) 1999-05-17 2000-11-23 The Foxboro Company Process control configuration system with parameterized objects
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6522934B1 (en) * 1999-07-02 2003-02-18 Fisher-Rosemount Systems, Inc. Dynamic unit selection in a process control system
US6419714B2 (en) 1999-07-07 2002-07-16 The Lubrizol Corporation Emulsifier for an acqueous hydrocarbon fuel
US6652607B2 (en) 1999-07-07 2003-11-25 The Lubrizol Corporation Concentrated emulsion for making an aqueous hydrocarbon fuel
US6827749B2 (en) 1999-07-07 2004-12-07 The Lubrizol Corporation Continuous process for making an aqueous hydrocarbon fuel emulsions
US6530964B2 (en) 1999-07-07 2003-03-11 The Lubrizol Corporation Continuous process for making an aqueous hydrocarbon fuel
US6913630B2 (en) 1999-07-07 2005-07-05 The Lubrizol Corporation Amino alkylphenol emulsifiers for an aqueous hydrocarbon fuel
US20040111956A1 (en) * 1999-07-07 2004-06-17 Westfall David L. Continuous process for making an aqueous hydrocarbon fuel emulsion
US6850973B1 (en) 1999-09-29 2005-02-01 Fisher-Rosemount Systems, Inc. Downloadable code in a distributed process control system
US6473660B1 (en) 1999-12-03 2002-10-29 The Foxboro Company Process control system and method with automatic fault avoidance
US6732300B1 (en) 2000-02-18 2004-05-04 Lev Freydel Hybrid triple redundant computer system
US6550018B1 (en) 2000-02-18 2003-04-15 The University Of Akron Hybrid multiple redundant computer system
US6931641B1 (en) * 2000-04-04 2005-08-16 International Business Machines Corporation Controller for multiple instruction thread processors
US7292897B2 (en) * 2000-04-28 2007-11-06 Hitachi, Ltd. Multiplexing control system and multiplexing method therefor
DE10063350C1 (de) * 2000-12-19 2002-07-18 Siemens Ag Verfahren zur Überwachung einer Datenverarbeitung und -übertragung
US20020141402A1 (en) * 2001-03-08 2002-10-03 Chang Li-Tien Telecommunication auto-looper
US6704887B2 (en) * 2001-03-08 2004-03-09 The United States Of America As Represented By The Secretary Of The Air Force Method and apparatus for improved security in distributed-environment voting
US7552191B1 (en) * 2001-06-12 2009-06-23 F5 Networks, Inc. Method and apparatus to facilitate automatic sharing in a client server environment
JP2003177938A (ja) * 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
US6850807B2 (en) * 2001-09-10 2005-02-01 Kabushiki Kaisha Toshiba Triple redundant control device and method
US7093168B2 (en) * 2002-01-22 2006-08-15 Honeywell International, Inc. Signal validation and arbitration system and method
EP1468337A1 (en) * 2002-01-22 2004-10-20 Honeywell International Inc. Signal validation and arbitration system and method
NO20021247D0 (no) * 2002-03-13 2002-03-13 Ericsson Telefon Ab L M Fremgangsmåte og system for oppgradering av programvare
GB0216740D0 (en) * 2002-07-18 2002-08-28 Ricardo Consulting Eng Self-testing watch dog system
DE10240584A1 (de) 2002-08-28 2004-03-11 Pilz Gmbh & Co. Sicherheitssteuerung zum fehlersicheren Steuern von sicherheitskritischen Prozessen sowie Verfahren zum Aufspielen eines neuen Betriebsprogrammes auf eine solche
US7516043B2 (en) * 2003-07-31 2009-04-07 Fisher Controls International Llc Triggered field device data collection in a process control system
US7085865B2 (en) * 2003-08-21 2006-08-01 International Business Machines Corporation I/O throughput by pre-termination arbitration
US6844840B1 (en) * 2003-10-14 2005-01-18 Cirrus Logic, Inc. Successive-approximation-register (SAR) analog-to-digital converter (ADC) and method utilizing N three-way elements
US7526568B1 (en) * 2004-02-20 2009-04-28 Broadcast Pix, Inc. Integrated live video production system
US7761923B2 (en) 2004-03-01 2010-07-20 Invensys Systems, Inc. Process control methods and apparatus for intrusion detection, protection and network hardening
US7202624B2 (en) * 2004-04-30 2007-04-10 Minebea Co., Ltd. Self calibrating fan
DE102004035442B4 (de) * 2004-07-22 2006-06-01 Phoenix Contact Gmbh & Co. Kg Verfahren und Vorrichtung zum sicheren Schalten eines Automatisierungsbussystems
JP4529079B2 (ja) * 2004-09-02 2010-08-25 横河電機株式会社 制御システム
JP2006114149A (ja) * 2004-10-15 2006-04-27 Fujitsu Ltd 半導体試験システム
KR20070062565A (ko) * 2004-10-25 2007-06-15 로베르트 보쉬 게엠베하 적어도 2개의 처리 유닛들을 갖는 컴퓨터 시스템에서 모드전환 및 신호 비교를 위한 방법 및 장치
US20070255875A1 (en) * 2004-10-25 2007-11-01 Reinhard Weiberle Method and Device for Switching Over in a Computer System Having at Least Two Execution Units
US8938557B2 (en) * 2004-12-23 2015-01-20 Abb Technology Ag Method for configuring field devices
JP4743508B2 (ja) * 2005-11-29 2011-08-10 横河電機株式会社 プラント制御システム
WO2007123753A2 (en) * 2006-03-30 2007-11-01 Invensys Systems, Inc. Digital data processing apparatus and methods for improving plant performance
JP4645519B2 (ja) * 2006-04-27 2011-03-09 株式会社デンソー 演算処理装置,制御装置およびプログラム
US7546486B2 (en) * 2006-08-28 2009-06-09 Bycast Inc. Scalable distributed object management in a distributed fixed content storage system
US7680034B2 (en) * 2006-11-03 2010-03-16 General Electric Company Redundant control systems and methods
US7898937B2 (en) * 2006-12-06 2011-03-01 Cisco Technology, Inc. Voting to establish a new network master device after a network failover
US7710075B1 (en) 2007-01-31 2010-05-04 Network Appliance, Inc. Apparatus and implementation of a battery in a non volatile memory subsystem
US20090006902A1 (en) * 2007-06-29 2009-01-01 International Business Machines Corporation Methods, systems, and computer program products for reporting fru failures in storage device enclosures
US20090037996A1 (en) * 2007-07-30 2009-02-05 Shiakallis Peter P Multi-Domain Secure Computer System
US20090076628A1 (en) * 2007-09-18 2009-03-19 David Mark Smith Methods and apparatus to upgrade and provide control redundancy in process plants
US9395771B1 (en) * 2007-10-26 2016-07-19 Pce, Inc. Plenum pressure control system
DE102007054923A1 (de) * 2007-11-15 2009-05-20 Endress + Hauser Process Solutions Ag Verfahren zum Betreiben eines Feldgerätes
DE102007062974B4 (de) * 2007-12-21 2010-04-08 Phoenix Contact Gmbh & Co. Kg Signalverarbeitungsvorrichtung
US7991535B2 (en) * 2008-02-08 2011-08-02 Gittere Robert J Portable, palm-sized data acquisition system for use in internal combustion engines and industry
US7899850B2 (en) 2008-02-22 2011-03-01 Bycast, Inc. Relational objects for the optimized management of fixed-content storage systems
WO2009155483A1 (en) 2008-06-20 2009-12-23 Invensys Systems, Inc. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
DE102008038131B4 (de) * 2008-08-18 2013-12-05 EAE Ewert Automation Electronic GmbH Redundantes Steuerungssystem und Verfahren zur sicherheitsgerichteten Ansteuerung von Aktoren
US8072098B2 (en) * 2008-09-29 2011-12-06 Honeywell International Inc. Remotely configurable analog/digital input circuit and related apparatus and method
US8214165B2 (en) * 2008-12-30 2012-07-03 International Business Machines Corporation Apparatus, system, and method for precise early detection of AC power loss
US8898267B2 (en) 2009-01-19 2014-11-25 Netapp, Inc. Modifying information lifecycle management rules in a distributed system
EP2233991A1 (de) * 2009-03-25 2010-09-29 Siemens Aktiengesellschaft Sicherheitsgerichtetes Automatisierungssystem mit automatischer Adresswiederherstellung
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
AT509310B1 (de) * 2009-12-16 2015-10-15 Bachmann Gmbh Verfahren zum betrieb einer speicherprogrammierbaren steuerung (sps) mit dezentraler, autonomer ablaufsteuerung
DE102010029370A1 (de) * 2010-05-27 2011-12-01 Siemens Aktiengesellschaft U-Boot-Propulsionsantriebssystem
EP2576316A2 (en) * 2010-05-31 2013-04-10 Central Signal, LLC Train detection
US9151786B2 (en) * 2010-10-11 2015-10-06 General Electric Company Systems, methods, and apparatus for detecting shifts in redundant sensor signals
US8930752B2 (en) 2011-02-15 2015-01-06 International Business Machines Corporation Scheduler for multiprocessor system switch with selective pairing
US8671311B2 (en) 2011-02-15 2014-03-11 International Business Machines Corporation Multiprocessor switch with selective pairing
US8635492B2 (en) * 2011-02-15 2014-01-21 International Business Machines Corporation State recovery and lockstep execution restart in a system with multiprocessor pairing
WO2012130241A1 (en) 2011-03-30 2012-10-04 Vestas Wind Systems A/S Wind power plant with highly reliable real-time power control
WO2012163636A1 (de) * 2011-05-27 2012-12-06 Siemens Aktiengesellschaft Verfahren zum test von redundanten analogausgängen und zugehörige einrichtung
WO2013126852A2 (en) 2012-02-24 2013-08-29 Missing Link Electronics, Inc. Partitioning systems operating in multiple domains
US9355120B1 (en) 2012-03-02 2016-05-31 Netapp, Inc. Systems and methods for managing files in a content storage system
JP2014056374A (ja) * 2012-09-12 2014-03-27 Renesas Electronics Corp 情報処理装置
DE102013100159A1 (de) * 2012-11-28 2014-05-28 Endress + Hauser Gmbh + Co. Kg Feldgerät zur Bestimmung oder Überwachung einer Prozessgröße in der Automatisierungstechnik
US10803990B1 (en) 2012-12-22 2020-10-13 Bertec Corporation Measurement and testing system that includes a data processing device configured to synchronize a first plurality of data values with a second plurality of data values by determining which first timestamps correspond to which second timestamps and to interpolate values missing from the second values
US10331324B1 (en) 2012-12-22 2019-06-25 Bertec Corporation Measurement and testing system
US9829311B1 (en) * 2012-12-22 2017-11-28 Bertec Corporation Force measurement system
US11705244B1 (en) 2012-12-22 2023-07-18 Bertec Corporation Force and/or motion measurement system that includes at least one camera and at least one data processing device configured to execute computer executable instructions for determining a position and/or movement
US9740178B2 (en) * 2013-03-14 2017-08-22 GM Global Technology Operations LLC Primary controller designation in fault tolerant systems
DE102014113371A1 (de) 2014-09-17 2016-03-17 Knorr-Bremse Systeme für Schienenfahrzeuge GmbH Verfahren zur Überwachung und Diagnose von Komponenten eines Schienenfahrzeugs, mit erweiterbarer Auswertungssoftware
US9838142B2 (en) 2014-10-15 2017-12-05 Christopher B. TYRRELL Electrical conductor to optical input conversion system
JP2016092445A (ja) * 2014-10-29 2016-05-23 株式会社リコー シリアル通信システム
CN104460661B (zh) * 2014-12-05 2017-12-12 国家电网公司 可进行远程停电复位和远程监控的远程调试系统
DE102015213744A1 (de) * 2015-07-21 2017-01-26 Ellenberger & Poensgen Gmbh Stromverteiler
US10825263B2 (en) 2016-06-16 2020-11-03 Honeywell International Inc. Advanced discrete control device diagnostic on digital output modules
KR101988361B1 (ko) * 2017-06-15 2019-06-12 버슘머트리얼즈 유에스, 엘엘씨 가스 공급 시스템
US10579558B1 (en) * 2019-03-06 2020-03-03 Honeywell International Inc. Flexible redundant input/output (I/O) schemes for I/O channels
CN111123130A (zh) * 2019-12-25 2020-05-08 北京空间飞行器总体设计部 一种卫星锂离子蓄电池电压遥测健康性在轨自主诊断的方法
US20240031439A1 (en) 2020-12-07 2024-01-25 Behault Industrial Property Office B.V. A cyber-physical system for an autonomous or semi-autonomous vehicle
CN113296388A (zh) * 2021-05-27 2021-08-24 四川腾盾科技有限公司 一种三余度无人机舵机输出指令表决方法、系统、计算机程序及存储介质
CN114033558B (zh) * 2021-11-09 2023-01-31 唐山中芯智控科技有限公司 一种低成本高速高精度的燃气轮机专用模拟量输出模块

Family Cites Families (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US33521A (en) * 1861-10-22 Improved apparatus for heating air for blast-furnaces
US3377623A (en) * 1965-09-29 1968-04-09 Foxboro Co Process backup system
DE1549397B2 (de) * 1967-06-16 1972-09-14 Chemische Werke Hüls AG, 4370 Mari Verfahren zur automatischen steuerung chemischer anlagen
US3665173A (en) * 1968-09-03 1972-05-23 Ibm Triple modular redundancy/sparing
US3593307A (en) * 1968-09-20 1971-07-13 Adaptronics Inc Redundant, self-checking, self-organizing control system
GB1253309A (en) * 1969-11-21 1971-11-10 Marconi Co Ltd Improvements in or relating to data processing arrangements
GB1308497A (en) * 1970-09-25 1973-02-21 Marconi Co Ltd Data processing arrangements
US4049957A (en) * 1971-06-23 1977-09-20 Hitachi, Ltd. Dual computer system
US3783250A (en) * 1972-02-25 1974-01-01 Nasa Adaptive voting computer system
US3845356A (en) * 1972-04-06 1974-10-29 Foxboro Co Process control system for hazardous areas
US3895223A (en) * 1973-01-03 1975-07-15 Westinghouse Electric Corp Circuit arrangement for enhancing the reliability of common bus outputs of plural redundant systems
DE2303828A1 (de) * 1973-01-26 1974-08-01 Standard Elektrik Lorenz Ag Steuerverfahren mit drei parallel betriebenen rechnern
CH556576A (de) * 1973-03-28 1974-11-29 Hasler Ag Einrichtung zur synchronisierung dreier rechner.
US3898621A (en) * 1973-04-06 1975-08-05 Gte Automatic Electric Lab Inc Data processor system diagnostic arrangement
CA1026850A (en) * 1973-09-24 1978-02-21 Smiths Industries Limited Dual, simultaneously operating control system with fault detection
US4015246A (en) * 1975-04-14 1977-03-29 The Charles Stark Draper Laboratory, Inc. Synchronous fault tolerant multi-processor system
JPS5831602B2 (ja) * 1976-02-04 1983-07-07 株式会社日立製作所 二重系制御装置
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4099234A (en) * 1976-11-15 1978-07-04 Honeywell Information Systems Inc. Input/output processing system utilizing locked processors
DE2701924B2 (de) * 1977-01-19 1981-03-19 Standard Elektrik Lorenz Ag, 7000 Stuttgart Steuereinrichtung für spurgebundene Fahrzeuge
US4105900A (en) * 1977-02-16 1978-08-08 The Boeing Company Signal selection apparatus for redundant signal sources
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
US4101958A (en) * 1977-09-01 1978-07-18 Rockwell International Corporation Apparatus and method for effecting redundant control data transfer in a digital flight control system
US4133027A (en) * 1977-09-13 1979-01-02 Honeywell Inc. Process control system with backup process controller
US4159444A (en) * 1978-03-21 1979-06-26 Sperry Rand Corporation Fail operational dual electromechanical servo actuator for aircraft with model monitoring
GB2019622B (en) * 1978-04-14 1982-04-07 Lucas Industries Ltd Digital computing apparatus
GB2022893B (en) * 1978-06-10 1983-01-12 Westinghouse Brake & Signal Fault detection
FR2430633A1 (fr) * 1978-07-07 1980-02-01 Sfena Systeme de commande auto-surveille, d'un processus
US4270168A (en) * 1978-08-31 1981-05-26 United Technologies Corporation Selective disablement in fail-operational, fail-safe multi-computer control system
JPS55146552A (en) * 1979-05-02 1980-11-14 Hitachi Ltd N 1 backkup method of dispersion type hierarchy system
US4271505A (en) * 1979-07-02 1981-06-02 The Foxboro Company Process communication link
US4276648A (en) * 1979-09-04 1981-06-30 The Boeing Company Midvalue signal selection and fault detection apparatus and method
DE2939487A1 (de) * 1979-09-28 1981-04-16 Siemens AG, 1000 Berlin und 8000 München Rechnerarchitektur auf der basis einer multi-mikrocomputerstruktur als fehlertolerantes system
US4277832A (en) * 1979-10-01 1981-07-07 General Electric Company Fluid flow control system
US4656475A (en) * 1979-10-30 1987-04-07 General Electric Company Method and apparatus for controlling distributed electrical loads
US4347563A (en) * 1980-06-16 1982-08-31 Forney Engineering Company Industrial control system
US4352103A (en) * 1980-01-24 1982-09-28 Forney Engineering Company Industrial control system
US4304001A (en) * 1980-01-24 1981-12-01 Forney Engineering Company Industrial control system with interconnected remotely located computer control units
US4342083A (en) * 1980-02-05 1982-07-27 The Bendix Corporation Communication system for a multiple-computer system
US4412281A (en) 1980-07-11 1983-10-25 Raytheon Company Distributed signal processing system
EP0268041B1 (de) * 1980-09-02 1992-06-17 Deutsche Airbus GmbH Servo-Einheit zur Betätigung von zu einem Flugsteuerungs-System gehörenden Steuerflächen oder dgl.
US4530045A (en) * 1980-09-23 1985-07-16 Petroff Alan M Measurement and control system
US4375683A (en) * 1980-11-12 1983-03-01 August Systems Fault tolerant computational system and voter circuit
US4371754A (en) * 1980-11-19 1983-02-01 Rockwell International Corporation Automatic fault recovery system for a multiple processor telecommunications switching control
US4424559A (en) * 1981-02-27 1984-01-03 New Brunswick Scientific Co., Inc. Modular instrumentation for monitoring and control of biochemical processes
JPS57164636A (en) 1981-04-03 1982-10-09 Hitachi Ltd Control method for transmission system
US4443861A (en) * 1981-04-13 1984-04-17 Forney Engineering Company Combined mode supervisory program-panel controller method and apparatus for a process control system
US4451742A (en) * 1981-05-27 1984-05-29 Mostek Corporation Power supply control for integrated circuit
US4532630A (en) * 1981-05-28 1985-07-30 Marconi Avionics Limited Similar-redundant signal systems
IN160140B (ko) * 1981-10-10 1987-06-27 Westinghouse Brake & Signal
DE3208573C2 (de) * 1982-03-10 1985-06-27 Standard Elektrik Lorenz Ag, 7000 Stuttgart 2 aus 3-Auswahleinrichtung für ein 3-Rechnersystem
US4472806A (en) * 1982-05-03 1984-09-18 The Boeing Company Signal selection and fault detection apparatus
JPS58171537U (ja) * 1982-05-07 1983-11-16 ブラザー工業株式会社 電子機器
US4517639A (en) * 1982-05-13 1985-05-14 The Boeing Company Fault scoring and selection circuit and method for redundant system
US4644538A (en) * 1982-06-16 1987-02-17 The Boeing Company Autopilot flight director system
JPS5985153A (ja) * 1982-11-08 1984-05-17 Hitachi Ltd 冗長化制御装置
IT1169167B (it) * 1983-02-15 1987-05-27 Gd Spa Sistema di controllo funzionale per trasduttori di uscita di un'unita' centrale di controllo e comando per macchine e/o dispositivi utilizzabili in linee di produzione e/o confezionamento di prodotti
DE3310585C2 (de) 1983-03-23 1985-08-01 Texas Instruments Deutschland Gmbh, 8050 Freising Speicherschutzschaltung
US4872106A (en) * 1983-04-06 1989-10-03 New Forney Corp. Industrial process control system with back-up data processors to take over from failed primary data processors
JPS59212902A (ja) * 1983-05-18 1984-12-01 Hitachi Ltd 多重化制御装置
JPS59224228A (ja) * 1983-06-02 1984-12-17 Fanuc Ltd 数値制御装置
US4562575A (en) * 1983-07-07 1985-12-31 Motorola, Inc. Method and apparatus for the selection of redundant system modules
US4634110A (en) * 1983-07-28 1987-01-06 Harris Corporation Fault detection and redundancy management system
US4610013A (en) * 1983-11-08 1986-09-02 Avco Corporation Remote multiplexer terminal with redundant central processor units
US4600870A (en) 1983-11-17 1986-07-15 United Technologies Corporation Dual controller position control system
JPH0754442B2 (ja) * 1983-11-24 1995-06-07 大倉電気株式会社 プロセス制御システム
JPS60122407A (ja) * 1983-12-06 1985-06-29 Fanuc Ltd プログラマブル・コントロ−ラ
US4617475A (en) * 1984-03-30 1986-10-14 Trilogy Computer Development Partners, Ltd. Wired logic voting circuit
US4823256A (en) * 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
US4695952A (en) * 1984-07-30 1987-09-22 United Technologies Corporation Dual redundant bus interface circuit architecture
JPS61267846A (ja) * 1984-11-12 1986-11-27 Nec Corp メモリを有する集積回路装置
US4622667A (en) * 1984-11-27 1986-11-11 Sperry Corporation Digital fail operational automatic flight control system utilizing redundant dissimilar data processing
US4663704A (en) * 1984-12-03 1987-05-05 Westinghouse Electric Corp. Universal process control device and method for developing a process control loop program
US4672530A (en) * 1984-12-17 1987-06-09 Combustion Engineering, Inc. Distributed control with universal program
US4635184A (en) * 1984-12-17 1987-01-06 Combustion Engineering, Inc. Distributed control with mutual spare switch over capability
US4777626A (en) * 1984-12-22 1988-10-11 Tokyo Electric Co., Ltd. Memory device having backup power supply
US4639885A (en) * 1984-12-24 1987-01-27 United Technologies Corporation EMI suppression for electronic engine control frequency signal inputs
US4665522A (en) * 1985-01-28 1987-05-12 The Charles Stark Draper Laboratory, Inc. Multi-channel redundant processing systems
FR2577087B1 (fr) * 1985-02-07 1987-03-06 Thomson Csf Mat Tel Dispositif de distribution d'horloge tripliquee, chaque signal d'horloge comportant un signal de synchronisation
US4726026A (en) * 1985-02-08 1988-02-16 Triconex Corporation Fault-tolerant voted output system
US4982430A (en) * 1985-04-24 1991-01-01 General Instrument Corporation Bootstrap channel security arrangement for communication network
US4752869A (en) * 1985-05-09 1988-06-21 Westinghouse Electric Corp. Auxiliary reactor protection system
DE3522220C2 (de) 1985-06-21 1997-02-06 Licentia Gmbh Schaltungsanordnung zur sicheren Ansteuerung von Stellelementen eines Prozesses
US4683105A (en) * 1985-10-31 1987-07-28 Westinghouse Electric Corp. Testable, fault-tolerant power interface circuit for normally de-energized loads
FR2591777B1 (fr) * 1985-12-13 1991-03-15 Cimsa Sintra Reseau informatise de grande securite de fonctionnement et procede de commande utilisant un tel reseau
JPH0778750B2 (ja) * 1985-12-24 1995-08-23 日本電気株式会社 高信頼性コンピュータ方式
US4799140A (en) * 1986-03-06 1989-01-17 Orbital Sciences Corporation Ii Majority vote sequencer
ATE86939T1 (de) * 1986-04-03 1993-04-15 Otis Elevator Co Zweirichtungsringverbindungssystem fuer aufzugsgruppensteuerung.
US4967347A (en) * 1986-04-03 1990-10-30 Bh-F (Triplex) Inc. Multiple-redundant fault detection system and related method for its use
US4713832A (en) * 1986-04-11 1987-12-15 Ampex Corporation Programmable divider up/down counter with anti-aliasing feature and asynchronous read/write
GB8615057D0 (en) * 1986-06-20 1986-07-23 Approved Prod Technology Ltd Adaptive control systems
US4843537A (en) * 1986-07-04 1989-06-27 Hitachi, Ltd. Control system
US4730313A (en) * 1986-08-18 1988-03-08 Racal Data Communications Inc. Access circuit diagnostics for integrated services digital network
US4797884A (en) * 1986-09-29 1989-01-10 Texas Instruments Incorporated Redundant device control unit
US4774709A (en) * 1986-10-02 1988-09-27 United Technologies Corporation Symmetrization for redundant channels
US4914657A (en) * 1987-04-15 1990-04-03 Allied-Signal Inc. Operations controller for a fault tolerant multiple node processing system
SE457391B (sv) * 1987-04-16 1988-12-19 Ericsson Telefon Ab L M Programminnesstyrt realtidssystem omfattande tre i huvudsak identiska processorer
DE3714960A1 (de) * 1987-04-30 1988-11-10 Licentia Gmbh Anordnung zur sicheren erfassung von prozesszustaenden innerhalb frei miteinander kuppelbarer einheiten und verfahren zur durchfuehrung
DE3723727A1 (de) * 1987-07-17 1989-01-26 Siemens Ag Stromversorgungseinrichtung
US4858101A (en) * 1987-08-26 1989-08-15 Allen-Bradley Company, Inc. Programmable controller with parallel processors
US4868826A (en) * 1987-08-31 1989-09-19 Triplex Fault-tolerant output circuits
JPH0731537B2 (ja) * 1987-09-11 1995-04-10 株式会社日立製作所 多重化制御装置
US4916612A (en) * 1987-11-02 1990-04-10 The Boeing Company Dual channel signal selection and fault detection system
US4847830A (en) * 1987-12-02 1989-07-11 Network Equipment Technologies, Inc. Method and apparatus for automatic loading of a data set in a node of a communication network
US4965745A (en) * 1987-12-18 1990-10-23 General Electric Company YIQ based color cell texture
US4868851A (en) * 1988-01-26 1989-09-19 Harris Corporation Signal processing apparatus and method
JPH01245335A (ja) * 1988-03-28 1989-09-29 Hitachi Ltd プログラマブルコントローラの多重化システム
US4872213A (en) * 1988-03-31 1989-10-03 Barber-Colman Company Versatile interface means for computer-based control systems
US4841232A (en) * 1988-04-29 1989-06-20 International Business Machines Corporation Method and apparatus for testing three state drivers
JP2533612B2 (ja) * 1988-05-16 1996-09-11 富士通株式会社 メモリのデ―タ保護方式
US4926364A (en) * 1988-07-25 1990-05-15 Westinghouse Electric Corp. Method and apparatus for determining weighted average of process variable
ATE97753T1 (de) * 1988-09-12 1993-12-15 Siemens Ag Einrichtung zum betrieb eines redundanten mehrrechnersystems fuer die steuerung eines elektronischen stellwerkes in der eisenbahnsignaltechnik.
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US4975931A (en) * 1988-12-19 1990-12-04 Hughes Aircraft Company High speed programmable divider
US4959768A (en) * 1989-01-23 1990-09-25 Honeywell Inc. Apparatus for tracking predetermined data for updating a secondary data base
US4958270A (en) * 1989-01-23 1990-09-18 Honeywell Inc. Method for control data base updating of a redundant processor in a process control system
US4995040A (en) * 1989-02-03 1991-02-19 Rockwell International Corporation Apparatus for management, comparison, and correction of redundant digital data
US4955020A (en) * 1989-06-29 1990-09-04 Infotron Systems Corporation Bus architecture for digital communications
US5008805A (en) * 1989-08-03 1991-04-16 International Business Machines Corporation Real time, fail safe process control system and method
JPH0823793B2 (ja) * 1989-12-13 1996-03-06 富士通株式会社 メモリカード
JP2850544B2 (ja) * 1990-01-30 1999-01-27 日本電気株式会社 集積回路装置
SE466172B (sv) * 1990-05-15 1992-01-07 Asea Brown Boveri Anordning foer bildande av en mot en anordningen tillfoerd storhet svarande stroem
US5170362A (en) * 1991-01-15 1992-12-08 Atlantic Richfield Company Redundant system for interactively evaluating the capabilities of multiple test subjects to perform a task utilizing a computerized test system
US5271023A (en) * 1991-06-03 1993-12-14 Motorola, Inc. Uninterruptable fault tolerant data processor
JPH05128080A (ja) 1991-10-14 1993-05-25 Mitsubishi Electric Corp 情報処理装置
US5442620A (en) 1992-03-26 1995-08-15 At&T Corp. Apparatus and method for preventing communications circuit misconnections in a bidirectional line-switched ring transmission system
US5313386A (en) * 1992-06-11 1994-05-17 Allen-Bradley Company, Inc. Programmable controller with backup capability
US5425266A (en) * 1994-01-25 1995-06-20 Envirotest Systems Corp. Apparatus and method for non-intrusive testing of motor vehicle evaporative fuel systems
US5408871A (en) * 1994-01-27 1995-04-25 General Motors Corporation Idle air control system diagnostic

Also Published As

Publication number Publication date
MX9301799A (es) 1994-01-31
SG55081A1 (en) 1998-12-21
US6061809A (en) 2000-05-09
CA2131156A1 (en) 1993-10-14
EP1193576A2 (en) 2002-04-03
US5862315A (en) 1999-01-19
EP0869415A3 (en) 1999-12-15
EP0869415B1 (en) 2003-04-16
DE69332897T2 (de) 2004-02-26
WO1993020488A2 (en) 1993-10-14
DE69332897D1 (de) 2003-05-22
DE69322626T2 (de) 1999-07-08
EP1300735A2 (en) 2003-04-09
KR100322461B1 (ko) 2002-02-07
US5428769A (en) 1995-06-27
ES2191884T3 (es) 2003-09-16
JPH07507889A (ja) 1995-08-31
HK1011427A1 (en) 1999-07-09
EP0869415A2 (en) 1998-10-07
DE69322626D1 (de) 1999-01-28
EP0631673B1 (en) 1998-12-16
WO1993020488A3 (en) 1994-03-31
US5970226A (en) 1999-10-19
EP0631673A1 (en) 1995-01-04
HK1048670A1 (zh) 2003-04-11
ES2128424T3 (es) 1999-05-16
AU3918393A (en) 1993-11-08

Similar Documents

Publication Publication Date Title
KR100322462B1 (ko) 한세트의적어도3개의중복컴퓨터를가지는필드컴퓨터유니트,이필드컴퓨터유니트에연결된프로세스제어시스템및이들을제어하는방법
EP0180085B1 (en) Distributed microprocessor based sensor signal processing system for a complex process
CN1103949C (zh) 自动自测试系统
US5761518A (en) System for replacing control processor by operating processor in partially disabled mode for tracking control outputs and in write enabled mode for transferring control loops
US4141066A (en) Process control system with backup process controller
US4829596A (en) Programmable controller with fiber optic input/output module
EP0929855B1 (en) Maintenance interface device for use in a process control network
EP1717653B1 (en) Safety device
US4403297A (en) Process control system prover
EP2085838B1 (en) Input channel diagnostics
US7149925B2 (en) Peripheral component with high error protection for stored programmable controls
CA2707373A1 (en) Platform and method to implement safety critical instrumentation and control (i&amp;c) functions
EP1837672A1 (en) Fault detection method and apparatus
CN103728930A (zh) 过程控制系统及其管理方法
US6462684B1 (en) Advanced self-calibrating, self-repairing data acquisition system
CN111665794B (zh) 用于输入/输出(i/o)通道的灵活冗余i/o方案
EP2595018A2 (en) Method and apparatus for analogue output current control
CN107024237A (zh) 具有至少两个外围单元和一个传感器的装置
Lock Digitally controlled power systems: how much intelligence is needed and where it should be
CN212963770U (zh) 一种炉膛内温度检测及传输系统
JP3360385B2 (ja) プラント制御装置
US11669391B2 (en) Data processing procedure for safety instrumentation and control (IandC) systems, IandC system platform, and design procedure for IandC system computing facilities
US7743125B1 (en) Computer multiple communications port unit
JPS598002A (ja) 分離型コントロ−ラ
KLUMPAR Instructions, Written (see Report Writing, Instructions)

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee