KR20130084679A - 안전 장치, 안전 장치의 연산 방법 - Google Patents

안전 장치, 안전 장치의 연산 방법 Download PDF

Info

Publication number
KR20130084679A
KR20130084679A KR1020137013736A KR20137013736A KR20130084679A KR 20130084679 A KR20130084679 A KR 20130084679A KR 1020137013736 A KR1020137013736 A KR 1020137013736A KR 20137013736 A KR20137013736 A KR 20137013736A KR 20130084679 A KR20130084679 A KR 20130084679A
Authority
KR
South Korea
Prior art keywords
value
calculation
unit
result
output
Prior art date
Application number
KR1020137013736A
Other languages
English (en)
Other versions
KR101533169B1 (ko
Inventor
기요시 이시이
마사노부 소가
히데아키 에모토
신이치 도다
가츠야 다이고
겐이치 모리모토
Original Assignee
미츠비시 쥬고교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미츠비시 쥬고교 가부시키가이샤 filed Critical 미츠비시 쥬고교 가부시키가이샤
Publication of KR20130084679A publication Critical patent/KR20130084679A/ko
Application granted granted Critical
Publication of KR101533169B1 publication Critical patent/KR101533169B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • 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
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0421Multiprocessor system
    • 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
    • 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/0428Safety, 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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/058Safety, 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • 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/14014Redundant processors and I-O
    • 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/14136Redundancy, masking redundancy, avoid failure but no fault detection
    • 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/24182Redundancy
    • 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/24191Redundant processors are different in structure

Landscapes

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

Abstract

안전 장치는, 제 1 연산부와, 제 2 연산부와, 출력 제어부와, 상기 제 1 연산부 및 제 2 연산부를 구비하는 제 1 중앙 연산 처리 장치를 구비한다. 제 1 연산부와 제 2 연산부는 서로 다른 하드웨어이다. 제 1 연산부는, 제어 대상으로부터 검출된 검출값에 대해 제 1 연산을 행하여 제 1 결과값을 취득한다. 제 2 연산부는 검출값에 대해 제 2 연산을 행하여 제 2 결과값을 취득하고, 제 1 결과값과 제 2 결과값이 일치하는지 여부를 판정한다. 출력 제어부는 상기 제 2 연산부가 상기 제 1 결과값과 상기 제 2 결과값이 일치한다고 판정한 경우에는, 상기 제 1 결과값을 출력한다. 제 2 연산부는, 상기 제 2 연산부가 상기 제 1 결과값과 상기 제 2 결과값이 일치하지 않는다고 판정한 경우에는, 상기 제 1 결과값을 출력하지 않는다.

Description

안전 장치, 안전 장치의 연산 방법{SAFETY DEVICE, AND SAFETY DEVICE COMPUTATION METHOD}
본 발명은 안전 장치, 안전 장치의 연산 방법에 관한 것이다.
본원은 2011년 1월 31일에, 일본에 출원된 일본 특허 출원 제 2011-018220호에 기초해서 우선권을 주장하며, 그 내용을 여기에 원용한다.
화력 플랜트 등에 있어서, 플랜트의 상태를 감시해서 이상을 검지하여 플랜트를 안전하게 정지시키는 안전 장치로서, 전자식의 안전 장치가 적용되고 있다. 플랜트의 안전 장치에는 높은 신뢰성이 요구되기 때문에, 국제 기능 안전 규격 IEC 61508 등에 요구 사항이 규정되어 있다. 이 때문에, 플랜트의 이용자로부터, 이들 안전 규격을 준수하라는 요구가 늘어나고 있다.
전자식의 안전 장치에서는, 그 신뢰성을 높이기 위해서 안전 기능의 로직을 연산하는 전자식의 안전 장치의 연산 장치(CPU 보드 상에서 소프트웨어를 동작시켜서 실현)의 다중화가 일반적으로 사용되고 있다. 비특허문헌 1에서는, 연산 장치 단체(單體)를 병렬로 마련함으로써 다중화하고, 각 연산 장치가 자기 진단을 행한 후, 연산 장치 서로간에 연산 결과를 비교함으로써 연산 장치의 고장을 검지한다. 이로써, 비특허문헌 1에 기재된 안전 장치(제어 장치)에서는, 안전 기능이 작용할 때 고장으로 인해서 동작하지 않게 될 확률을 줄이고 있다.
도 16은 배경기술에 따른 안전 장치의 구성도이다. 도 16에 나타낸 바와 같이, 비특허문헌 2의 안전 장치(900)는 하나의 시스템 내에서 안전 기능이 작용할 때 고장으로 인해서 동작하지 않게 될 확률을 줄이기 위해서, 동일한 기능을 다른 기술로 구성하고 있다. 다른 기술이란, 예컨대 도 16에 나타낸 바와 같이, 실행측의 출력 스위치(SWa1)를 반도체 스위치, 대기측의 출력 스위치(SWa2)를 메카니컬 스위치로 구성하고 있다. 또한, 비특허문헌 2에 기재된 발명도, 도 16에 나타낸 바와 같이 연산 장치(CPU)가 병렬로 접속되어, 다중화되어 있다. 이와 같이, 비특허문헌 2의 안전 장치(900)는, 하드웨어의 공통부를 없애서, 안전 기능이 작용할 때에 고장으로 인해서 동작하지 않게 될 확률을 줄이고 있다.
일반적으로, 다중화한 각 연산 장치에 동일한 소프트웨어를 탑재하면, 커먼 모드 고장의 요인이 되기 때문에, 높은 신뢰성을 실현하는 데에 있어서 방해가 된다는 문제점이 있다. 커먼 모드 고장이란, 공통의 애플리케이션을 갖고 있는 것에 의해, 공통의 고장 요인을 갖는 것이다. 이 때문에, 특허문헌 1에 기재된 발명은 N개의 다중화 장치에서, 각각 다른 소프트웨어를 탑재하여 다양화를 도모함으로써 커먼 모드 고장을 배제하고 있다. 특허문헌 1에 기재된 발명은, 기능을 복수의 소프트웨어에 의한 모듈로 구성하는 경우에, 각 모듈을 하나 이상의 버전의 소프트웨어로 작성한다. 그리고, 특허문헌 1에 기재된 발명은, 모듈의 조합을 바꿔서 N 종류의 버전의 소프트웨어로 실현하고 있다.
일본 특허 공개 평 6-34269호 공보
IEC 61508-6 ed1.0, Functional safety of electrical/electronic/프로그램mable electronic safety-related systems-Part 6: Guidelines on the application of IEC 61508-2 and IEC 61508-3, International Electrotechnical Commission, 2004년 4월 안도 다다아키, 안도 노부키요, '안전 계장 시스템과 ProSafe 시리즈의 진단기능', 요코가와 기보(技報) Vol.43 No.4 p.175-180, 1999
그러나 특허문헌 1에 기재된 배경 기술에서는, N개의 다른 알고리즘이나 소프트웨어를 개발하는 것은, 용이하지 않고 비용이 증대한다는 문제점이 있었다. 또한, 비특허문헌 2에 기재된 안전 장치에서는, 다양성을 확보하기 위해서 다른 하드웨어를 설치하는 것이 개시되어 있지만, CPU(연산 부분)의 하드웨어 및 소프트웨어에 대한 다양성의 확보는 개시되어 있지 않다. 이 때문에, 비특허문헌 2의 안전 장치에서는, 하드웨어에 의한 커먼 모드 고장을 방지할 수는 있지만, 소프트웨어에 의한 커먼 모드 고장은 방지할 수 없는 경우가 있다는 문제점이 있었다.
본 발명은, 상기 문제점을 감안해서 이루어진 것으로, 저렴하게 커먼 모드 고장을 방지할 수 있는 안전 장치, 안전 장치의 연산 방법을 제공하는 것을 목적으로 하고 있다.
상기 목적을 달성하기 위해서, 본 발명의 일 실시예에 따른 안전 장치는, 제 1 연산부와, 제 2 연산부와, 출력 제어부와, 상기 제 1 연산부 및 제 2 연산부를 구비하는 제 1 중앙 연산 처리 장치를 구비한다. 제 1 연산부와 제 2 연산부는 서로 다른 하드웨어이다. 제 1 연산부는 제어 대상으로부터 검출된 검출값에 대해 제 1 연산을 행하여 제 1 결과값을 취득한다. 제 2 연산부는 검출값에 대해 제 2 연산을 행하여 제 2 결과값을 취득하고, 제 1 결과값과 제 2 결과값이 일치하는지 여부를 판정한다. 출력 제어부는 상기 제 2 연산부가 상기 제 1 결과값과 상기 제 2 결과값이 일치한다고 판정한 경우에는 상기 제 1 결과값을 출력한다. 제 2 연산부는 상기 제 2 연산부가 상기 제 1 결과값과 상기 제 2 결과값이 일치하지 않는다고 판정한 경우에는 상기 제 1 결과값을 출력하지 않는다.
본 발명에 의하면, 저렴하게, 커먼 모드 고장의 가능성을 낮출 수 있는 안전 장치를 실현할 수 있다.
도 1은 본 발명의 실시예 1에 따른 안전 장치의 구성도,
도 2는 동 실시예에 따른 연산 장치의 구성도,
도 3은 동 실시예에 따른 연산 장치의 데이터의 예를 설명하는 도면,
도 4는 동 실시예에 따른 제 1 연산부와 제 2 연산부가 행하는 연산을 설명하는 도면,
도 5는 연산 장치가 행하는 연산의 개략의 일례를 설명하는 도면,
도 6은 동 실시예에 따른 연산 장치가 행하는 연산의 일례를 설명하는 도면,
도 7은 동 실시예에 따른 안전 장치의 처리 순서의 흐름도,
도 8은 본 발명의 실시예 2에 따른 연산 장치의 구성의 일례를 설명하는 도면,
도 9는 동 실시예에 따른 연산 블록의 입출력 데이터의 일례를 설명하는 도면,
도 10은 동 실시예에 따른 역연산 블록의 입출력 데이터와 유지되어 있는 데이터의 일례를 설명하는 도면,
도 11(a)는 동 실시예에 따른 연산 블록의 구성의 일례를 설명하는 도면,
도 11(b)는 동 실시예에 따른 역연산 블록의 구성의 일례를 설명하는 도면,
도 12는 동 실시예에 따른 역연산 블록의 처리 순서를 설명하는 도면,
도 13은 동 실시예에 따른 역연산 블록의 처리 순서의 흐름도,
도 14(a)는 본 발명의 실시예 3에 따른 입력이 1개의 경우의 디지털값의 순방향의 연산을 설명하는 도면,
도 14(b)는 동 실시예에 따른 입력이 1개의 경우의 디지털값의 역연산을 설명하는 도면,
도 15(a)는 동 실시예에 따른 입력이 2개의 경우의 디지털값의 순방향의 연산을 설명하는 도면,
도 15(b)는 동 실시예에 따른 입력이 2개의 경우의 디지털값의 역연산을 설명하는 도면,
도 16은 배경기술에 따른 안전 장치의 구성도이다.
이하, 도면을 이용해서 본 발명의 실시예에 대해 구체적으로 설명한다. 한편, 본 발명은 관련 실시예로 한정되지 않고, 그 기술 사상의 범위 내에서 여러가지의 변경이 가능하다.
(실시예 1)
도 1은 본 발명의 실시예 1에 따른 안전 장치의 구성도이다. 한편, 본 실시예의 안전 장치는, 화력 플랜트, 수력 플랜트, 전력 플랜트 등의 플랜트에 적용하는 예를 설명하지만, 공장의 생산 라인, 빌딩의 유지 보수 시스템, 대형 공기 조절 시스템 등의 분산형 제어에 의한 안전 장치가 이용되고 있는 시스템에도 적용할 수 있다.
도 1에 나타낸 바와 같이, 본 실시예에 따른 안전 장치(100)는, 입력 장치(2), 연산 장치(3a~3d), 출력 장치(4)를 구비하고 있다. 또한, 안전 장치(100)는 액츄에이터(5)에 접속되어 있다.
액츄에이터(5)는, 예컨대 발전용 가스 터빈의 연료 공급을 강제 정지하는 밸브이다. 또한, 안전 장치(100)에는 센서(1)가 부착되어 있다. 액츄에이터(5)는 안전 장치(100)가 출력하는 지령값에 기초해서 동작한다.
센서(1)는 열량이나 유량 등의 아날로그값을 검출한다. 또한, 센서(1)는 액츄에이터(5)에 부착되어 있는 도시 생략한 각종 스위치의 논리 상태 등의 디지털값을 검출한다. 센서(1)는, 아날로그값의 검출값과, 디지털값의 검출값을 안전 장치(100)에 출력한다.
안전 장치(100)의 입력 장치(2)는, 센서(1)가 출력하는 아날로그값의 검출값과 디지털값의 검출값을 연산 장치(3a~3d)에 출력한다.
연산 장치(3a)는 입력 장치(2)가 출력하는 아날로그값의 검출값과 디지털값의 검출값에 대해서 각각 연산 처리를 실시하여 연산 결과를 출력 장치(4)에 출력한다.
연산 장치(3b)는 입력 장치(2)가 출력하는 아날로그값의 검출값과 디지털값의 검출값에 대해서 각각 연산 처리를 실시하여, 연산 결과를 출력 장치(4)에 출력한다.
연산 장치(3c)는 입력 장치(2)가 출력하는 아날로그값의 검출값과 디지털값의 검출값에 대해서 각각 연산 처리를 실시하여, 연산 결과를 출력 장치(4)에 출력한다.
연산 장치(3d)는 입력 장치(2)가 출력하는 아날로그값의 검출값과 디지털값의 검출값에 대해서 각각 연산 처리를 실시하여, 연산 결과를 출력 장치(4)에 출력한다.
출력 장치(4)는, 연산 장치(3a~3d)가 출력하는 연산 결과에 대해, 후술하는 바와 같이 다수결 처리를 행하여, 다수결 결과에 기초해서 선택된 연산 결과를 지령값으로서 액츄에이터(5)에 출력한다.
이하, 연산 장치(3a~3d)를 총칭하여 '연산 장치(3)'라고 한다.
도 2는 본 실시예에 따른 연산 장치의 구성도이다. 도 2에 나타낸 바와 같이, 연산 장치(3)는 분리부(31), 제 1 연산부(32), 제 2 연산부(33), 자기 진단부(34), 출력 제어부(35)를 구비하고 있다. 또한, 제 1 연산부(32)는 제 1 안전 기능 연산부(101), 제 1 안전 기능 연산 검증부(102)를 구비하고 있다. 또한, 제 2 연산부(33)는 제 2 안전 기능 연산부(111), 제 2 안전 기능 연산 검증부(112)를 구비하고 있다. 또한, 제 1 연산부(32)와 제 2 연산부(33)는, 예컨대 하나의 CPU(Central Processing Unit)가 갖는 논리 연산 장치 ALU(Arithmetic and Logic Unit)와 부동 소수점 연산 장치 FPU(Floating Point number processing Unit)로 실행된다.
분리부(31)는 입력 장치(2)가 출력하는 아날로그값의 검출값과 디지털값의 검출값을, 아날로그값의 검출값 ina와 디지털값의 검출값 ing으로 분리한다. 분리부(31)는 디지털값의 검출값 ing를 제 1 연산부(32)의 제 1 안전 기능 연산부(101)와, 제 2 연산부(33)의 제 2 안전 기능 연산 검증부(112)에 출력한다. 분리부(31)는 아날로그값의 검출값 ina를 제 1 연산부(32)의 제 1 안전 기능 연산 검증부(102)와, 제 2 연산부(33)의 제 2 안전 기능 연산부(111)에 출력한다.
제 1 연산부(32)는 예컨대, 논리 연산 장치 ALU(Arithmetic and Logic Unit)로 실행된다. 제 1 연산부(32)는 예컨대, 소프트웨어의 전환에 의해, 제 1 안전 기능 연산부(101)와 제 1 안전 기능 연산 검증부(102)를 실현한다.
제 1 안전 기능 연산부(101)는, 분리부(31)가 출력하는 디지털값의 검출값 ing에 대해 논리 연산(제 1 연산)을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득하고, 연산 결과 out1를 제 2 안전 기능 연산 검증부(112)와 출력 제어부(35)에 출력한다.
제 1 안전 기능 연산 검증부(102)는, 분리부(31)가 출력하는 아날로그값의 검출값 ina에 대해, 에뮬레이션에 의한 공지된 정수 연산(제 2 연산)을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득한다. 제 1 안전 기능 연산 검증부(102)는 이 연산 결과가 제 2 안전 기능 연산부(111)에 의한 연산 결과 out2와 일치하는지 여부를 판정한다. 제 1 안전 기능 연산 검증부(102)는 판정 결과, 제 1 안전 기능 연산 검증부(102)에 의한 연산 결과가, 제 2 안전 기능 연산부(111)에 의한 연산 결과 out2와 일치하는 경우, 연산 결과가 정상이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다. 제 1 안전 기능 연산 검증부(102)는 판정 결과, 제 1 안전 기능 연산 검증부(102)에 의한 연산 결과가, 제 2 안전 기능 연산부(111)에 의한 연산 결과 out2와 일치하지 않는 경우, 연산 결과가 이상(異常)이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다.
한편, 제 1 안전 기능 연산 검증부(102)가 행하는 에뮬레이션에 의한 정수 연산은, 예컨대 제 1 연산부(32)에 어셈블리 코드로 라이브러리에 실장되어 있는 소프트웨어에 의한 에뮬레이션이나, 마이크로 코드로 ALU에 존재하지 않는 조작을 에뮬레이션함으로써, 정수의 나눗셈이나 부동 소수점의 처리를 행한다. 또는, 제 1 연산부(32)는, 도시 생략한 나눗셈기나 부동 소수점 유닛과 같은 별도의 하드웨어 부품이나, 코프로세서 등을 구비함으로써 정수의 나눗셈이나 부동 소수점의 처리를 행한다.
제 2 연산부(33)는 예컨대, 부동 소수점 연산 장치 FPU(Floating Point number processing Unit)로 실행된다. 제 2 연산부(33)는, 예컨대 소프트웨어의 전환에 의해, 제 2 안전 기능 연산부(111)와 제 2 안전 기능 연산 검증부(112)를 실현한다.
제 2 안전 기능 연산부(111)는, 분리부(31)가 출력하는 아날로그값의 검출값 ina에 대해 부동 소수점 연산(제 1 연산)을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득하고, 연산 결과 out2를 제 1 안전 기능 연산 검증부(102)와 출력 제어부(35)에 출력한다.
제 2 안전 기능 연산 검증부(112)는, 분리부(31)가 출력하는 디지털값의 검출값 ing에 대해 후술하는 바와 같이 아날로그 연산으로 모의(模擬)한 논리 연산(제 2 연산)을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득한다. 제 2 안전 기능 연산 검증부(112)는 이 연산 결과가 제 1 안전 기능 연산부(101)에 의한 연산 결과 out1와 일치하는지 여부를 판정한다. 제 2 안전 기능 연산 검증부(112)는 판정 결과, 제 2 안전 기능 연산 검증부(112)에 의한 연산 결과가, 제 1 안전 기능 연산부(101)에 의한 연산 결과 out1와 일치하는 경우, 연산 결과가 정상이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다. 제 2 안전 기능 연산 검증부(112)는 판정 결과, 제 1 안전 기능 연산 검증부(112)에 의한 연산 결과가, 제 1 안전 기능 연산부(101)에 의한 연산 결과 out1와 일치하지 않는 경우, 연산 결과가 이상이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다.
자기 진단부(34)는, 연산 장치(3)의 건전성을 진단하여, 진단 결과를 출력 제어부(35)에 출력한다. 자기 진단부(34)는 예컨대, 연산 장치(3)에, 도시 생략한 전원 공급 장치로부터 공급된 전원 전압의 전압값이, 소정의 값의 범위인지 여부를 판정한다. 자기 진단부(34)는 전압값이 소정의 범위 내에 있는 경우를 정상이라고 판정하고, 전압값이 소정의 값의 범위 외에 있는 경우를 이상이라고 판정하여, 판정 결과를 출력 제어부(35)에 출력한다.
출력 제어부(35)는, 제 1 안전 기능 연산 검증부(102)가 출력하는 정보가, 연산 결과가 정상이라는 것을 나타내는 정보인 경우, 제 2 안전 기능 연산부(111)가 출력하는 아날로그값의 연산 결과를 출력 장치(4)에 출력한다. 출력 제어부(35)는, 제 2 안전 기능 연산 검증부(112)가 출력하는 정보가, 연산 결과가 정상이라는 것을 나타내는 정보인 경우, 제 1 안전 기능 연산부(101)가 출력하는 디지털값의 연산 결과를 출력 장치(4)에 출력한다.
출력 제어부(35)는, 제 1 안전 기능 연산 검증부(102)가 출력하는 정보가 연산 결과가 이상이라는 것을 나타내는 정보인 경우, 제 2 안전 기능 연산부(111)가 출력하는 아날로그값의 연산 결과를 출력 장치(4)에 출력하지 않는다. 출력 제어부(35)는, 제 2 안전 기능 연산 검증부(112)가 출력하는 정보가, 연산 결과가 이상이라는 것을 나타내는 정보인 경우, 제 1 안전 기능 연산부(101)가 출력하는 디지털값의 연산 결과를 출력 장치(4)에 출력하지 않는다.
도 3은 본 실시예에 따른 연산 장치의 데이터의 예를 설명하는 도면이다. 도 3에 있어서, 각 열은 연산 장치(3)마다의 입력값 in, 분리부(31)의 출력(아날로그값의 검출값 ina 및 디지털값의 검출값 ing), 제 1 안전 기능 연산부(101)의 출력 out1(논리 연산 결과 1~4), 제 2 안전 기능 연산부(111)의 출력 out2(아날로그 연산 결과 1~4)이다. 각 행은 연산 장치(3a~3d)마다의 데이터이다. 이와 같이, 연산 장치(3a~3d)에는 동일한 입력값 in이 입력된다. 그리고, 연산 장치(3a~3d)의 분리부(31)가, 입력값 in을 분리해서 디지털값의 검출값 ing를 각각의 제 1 안전 기능 연산부(101)에 출력하고, 아날로그값의 검출값 ina를 각각의 제 2 안전 기능 연산부(111)에 출력하고 있다. 그리고, 연산 장치(3a~3d)의 각 제 1 안전 기능 연산부(101)가, 각각 논리 연산 결과 1~4(out1)를 출력하고 있다. 또한, 연산 장치(3a~3d)의 각 제 2 안전 기능 연산부(111)가, 각각 아날로그 연산 결과 1~4(out2)를 출력하고 있다.
도 4는 본 실시예에 따른 제 1 연산부(32)와 제 2 연산부(33)가 행하는 연산을 설명하는 도면이다. 도 4에 나타낸 바와 같이, 제 1 연산부(32)의 제 1 안전 기능 연산부(101)는 디지털값의 검출값에 대해 논리 연산을 행한다. 이 연산 결과를 검증하기 위해서, 제 2 연산부(33)의 제 2 안전 기능 검증부(112)는, 디지털값의 검출값에 대해 아날로그 연산으로 모의한 논리 연산을 행한다.
또한, 제 2 연산부(33)의 제 2 안전 기능 연산부(111)는, 아날로그값의 검출값에 대해 아날로그 연산(부동 소수점 연산)을 행한다. 이 연산 결과를 검증하기 위해서, 제 1 연산부(32)의 제 1 안전 기능 검증부(102)는, 아날로그값의 검출값에 대해 에뮬레이션에 의한 정수 연산을 행한다.
도 5는 연산 장치가 행하는 연산의 개략의 일례를 설명하는 도면이다.
도 5에 나타낸 바와 같이, 연산 장치(3)에는, 입력 장치(2)가 출력하는 디지털값의 검출값 DIN1(151) 및 DIN2(152), 아날로그값의 검출값 AIN3(153)가 입력되어 있다. 도 5에 있어서 부호 161, 162, 및 163이 연산 요소이다. 부호 161은 논리합의 논리 연산을 행하는 연산 요소이고, 부호 163은 논리곱의 논리 연산을 행하는 연산 요소이다. 또한, 부호 162는 입력값이 소정 값을 넘었을 때에 H 레벨(참 또는 '1'이라고도 함)의 신호를 출력하는 함수의 연산을 행하는 연산 요소이다. 이와 같이, 연산 장치(3)는 미리 연산 요소(가산, 감산, 나눗셈, 리미터, 꺾은선 함수 등)을 함수화해서 기억하고 있다. 그리고, 도 5에 나타낸 바와 같이, 연산 요소(161)의 출력을 연산 요소(163)의 입력에 화살표(181)로 접속하고, 연산 요소(162)의 출력을 연산 요소(163)의 입력에 화살표(182)로 접속하여, 로직을 구성하고 있다. 연산 장치(3)는 도 5에 나타낸 바와 같은 구성도(데이터 플로우라고도 함)로부터, 논리 연산을 행하는 프로그램으로 변환한 것을 실행한다.
도 5에 있어서, 예컨대 디지털값의 검출값 DIN1(151)이나 DIN2(152) 중 어느 하나가 H 레벨(참 또는 '1'이라고도 함)인 경우, 연산 요소(161)는 H 레벨을 연산 요소(163)에 출력한다. 그리고, 아날로그값의 AIN3(153)가 소정 값을 넘은 경우, 연산 요소(162)는 H 레벨을 연산 요소(163)에 출력한다. 그리고, 연산 요소(163)는 연산 요소(161)의 출력과, 연산 요소(162)의 출력의 논리곱을 취하여, 연산 결과 DOUT1(171)를 취득한다.
또한, 도 5에 나타낸 것은 연산 장치(3)가 행하는 연산을 설명하기 위한 개략이다. 실제 연산은, 예컨대 아날로그값의 검출값 AIN3(153)가 열량인 경우, 연산 요소(163)는 이 아날로그값의 검출값 AIN3(153)이 소정 열량을 넘은 경우에, 열량을 낮추기 위해서, 액츄에이터(5)에 열량을 낮추라는 지시를 나타내는 정보(예컨대, 연료 공급을 강제 정지하는 밸브를 닫음)를 생성하여 액츄에이터(5)에 지령값으로서 출력한다.
또한, 예컨대, 디지털값의 검출값 DIN1(151)이나 DIN2(152)가, 액츄에이터(5)가 구비하는 열량을 설정하기 위한 스위치의 상태를 나타내는 검출값인 경우, 연산 장치(3)는 상기 아날로그값의 검출값 AIN3(153)이 소정 열량을 넘은 경우에, 열량을 낮추기 위해서, 액츄에이터(5)에 열량을 낮추라는 지시를 나타내는 정보를 생성한다. 그리고, 연산 장치(3)는 액츄에이터(5)에 열량을 설정하기 위한 스위치의 상태를 지령값으로서 출력한다.
이하 설명에서는, 연산 장치(3)의 동작의 설명을 간략화하기 위해서, 연산 장치(3)에 입력된 디지털값의 검출값, 아날로그값의 검출값을, 각각 따로따로 연산하는 예를 설명한다.
도 6은 본 실시예에 따른 연산 장치가 행하는 연산의 일례를 설명하는 도면이다.
도 6에 있어서, 각 행은 ALU를 사용한 논리 연산의 예와 FPU를 사용한 부동 소수점 연산에 의한 논리 연산의 예의 대응 관계이고, 각 열은 ALU를 사용한 논리 연산의 예와, FPU를 사용한 부동 소수점 연산부에 의한 논리 연산의 예이다. 도 6에 나타낸 바와 같이, 논리 연산으로 이용하는 값은, 참과 거짓이다. 또한, 부동 소수점 연산에 의한 논리 연산으로 이용하는 값은 1.0과 0.0이다.
논리곱 Y=(X1) AND (X2)은 부동 소수점 연산으로 행하는 경우, Y=(X1)×(X2)의 연산을 행한다.
논리합 Y=(X1) OR (X2)은 부동 소수점 연산으로 행하는 경우, Y=float((X1)+(X2))!=0.0)의 연산을 행한다. 한편, 연산자 'float'는, 4 바이트부동 소수점이고, 연산자 '!='는 비교 연산자에서 다른 경우이다. 즉, X1와 X2의 합이 0.0와 다른 경우, Y=1.0이고, X1와 X2의 합이 0인 경우 Y=0.0이다.
부정 Y=X~는 부동 소수점 연산으로 행하는 경우, Y=1.0-X의 연산을 행한다.
배타적 논리합 Y=(X1)^(X2)은, 부동 소수점 연산으로 행하는 경우, Y=fabs(X1-X2)의 연산을 행한다. 연산자 'fabs'는 절대값을 취하는 연산자이다. 즉, X1와 X2의 차이의 절대값을 연산한다.
한편, 도 6에는, 논리 연산을 부동 소수점 연산으로 행하는 일례를 나타내었지만, 그 외에도 공지된 부동 소수점 연산을 이용함으로써 부정 논리곱 등의 각종의 논리 연산을 부동 소수점 연산으로 실현할 수 있다.
도 7은 본 실시예에 따른 안전 장치의 처리 순서의 흐름도이다.
우선, 안전 장치(100)의 연산 장치(3)에는, 입력 장치(2)가 출력하는 아날로그값의 검출값과 디지털값의 검출값이 입력된다.
연산 장치(3)의 분리부(31)는 입력 장치(2)가 출력하는 아날로그값의 검출값과 디지털값의 검출값을, 아날로그값의 검출값 ina와 디지털값의 검출값 ing으로 나눈다(스텝 S1).
분리부(31)는 디지털값의 검출값 ing를 제 1 연산부(32)의 제 1 안전 기능 연산부(101)와, 제 2 연산부(33)의 제 2 안전 기능 연산 검증부(112)에 출력한다. 분리부(31)는 아날로그값의 검출값 ina를, 제 1 연산부(32)의 제 1 안전 기능 연산 검증부(102)와, 제 2 연산부(33)의 제 2 안전 기능 연산부(111)에 출력한다.
다음으로 제 1 안전 기능 연산부(101)는, 분리부(31)가 출력하는 디지털값의 검출값 ing에 대해 논리 연산을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득하고, 연산 결과 out1를 제 2 안전 기능 연산 검증부(112)와 출력 제어부(35)에 출력한다(스텝 2). 즉, 제 1 안전 기능 연산부(101)는, 디지털값의 검출값 ing에 대해 논리 연산을 ALU로 실행한다.
제 2 안전 기능 연산 검증부(112)는, 분리부(31)가 출력하는 디지털값의 검출값 ing에 대해 아날로그 연산으로 모의한 논리 연산을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득한다(스텝 S3). 즉, 제 2 안전 기능 연산 검증부(112)는 제 1 안전 기능 연산부(101)의 연산 결과를 검증하기 위해서, 아날로그 연산으로 모의한 논리 연산을, FPU로 실행한다.
제 2 안전 기능 연산 검증부(112)는, 제 2 안전 기능 연산 검증부(112)에 의한 연산 결과가, 제 1 안전 기능 연산부(101)에 의한 연산 결과 out1과 일치하는지 여부를 판정한다(스텝 S4).
판정 결과, 제 2 안전 기능 연산 검증부(112)에 의한 연산 결과가 제 1 안전 기능 연산부(101)의 연산 결과 out1와 일치하는 경우(스텝 S4:예), 제 2 안전 기능 연산 검증부(112)는 제 1 안전 기능 연산부(101)에 의한 연산 결과가 정상이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다.
출력 제어부(35)는, 제 2 안전 기능 연산 검증부(112)가 출력하는 연산 결과가 정상이라는 것을 나타내는 정보에 기초해서, 제 1 안전 기능 연산부(101)가 출력하는 연산 결과를 출력 장치(4)에 출력한다(스텝 S5).
판정 결과, 제 2 안전 기능 연산 검증부(112)에 의한 연산 결과가 제 1 안전 기능 연산부(101)에 의한 연산 결과 out1와 일치하지 않는 경우(스텝 S4:아니오), 제 2 안전 기능 연산 검증부(112)는 연산 결과가 이상이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다.
출력 제어부(35)는, 제 2 안전 기능 연산 검증부(112)가 출력하는 연산 결과가 이상이라는 것을 나타내는 정보에 기초해서, 제 1 안전 기능 연산부(101)가 출력하는 연산 결과를 출력 장치(4)에 출력하지 않는다(스텝 S6).
다음으로 제 2 안전 기능 연산부(111)는, 분리부(31)가 출력하는 아날로그값의 검출값 ina에 대해 아날로그 연산을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득하고, 연산 결과 out2를 제 1 안전 기능 연산 검증부(102)와 출력 제어부(35)에 출력한다(스텝 S7). 즉, 제 2 안전 기능 연산부(111)는 아날로그값의 검출값 ina에 대해 아날로그 연산을, FPU로 실행한다.
제 1 안전 기능 연산 검증부(102)는, 분리부(31)가 출력하는 아날로그값의 검출값 ina에 대해 에뮬레이션에 의해 정수 연산을 행하여, 액츄에이터(5)의 제어량인 출력값을 취득한다(스텝 S8). 즉, 제 1 안전 기능 연산 검증부(102)는 제 2 안전 기능 연산부(111)의 연산 결과를 검증하기 위해서, 정수 연산을 에뮬레이트하여 ALU로 실행한다.
제 1 안전 기능 연산 검증부(102)는, 제 1 안전 기능 연산 검증부(102)에 의한 연산 결과가, 제 2 안전 기능 연산부(111)에 의한 연산 결과 out2와 일치하는지 여부를 판정한다(스텝 S9).
판정 결과, 제 1 안전 기능 연산 검증부(102)에 의한 연산 결과가 제 2 안전 기능 연산부(111)에 의한 연산 결과 out2와 일치하는 경우(스텝 S9:예), 제 1 안전 기능 연산 검증부(102)는 연산 결과가 정상이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다.
출력 제어부(35)는, 제 1 안전 기능 연산 검증부(102)가 출력하는 연산 결과가 정상이라는 것을 나타내는 정보에 기초해서, 제 2 안전 기능 연산부(111)가 출력하는 연산 결과를 출력 장치(4)에 출력한다(스텝 S10).
판정 결과, 제 1 안전 기능 연산부(102)에 의한 연산 결과가 제 2 안전 기능 연산 검증부(111)에 의한 연산 결과 out2와 일치하지 않는 경우(스텝 S9:아니오), 제 1 안전 기능 연산 검증부(102)는 연산 결과가 이상이라는 것을 나타내는 정보를 출력 제어부(35)에 출력한다.
출력 제어부(35)는, 제 1 안전 기능 연산 검증부(102)가 출력하는 연산 결과가 이상이라는 것을 나타내는 정보에 기초해서, 제 2 안전 기능 연산부(111)가 출력하는 연산 결과를 출력 장치(4)에 출력하지 않는다(스텝 S11).
다음으로 출력 장치(4)에는, 연산 장치(3a~3d)가 스텝 S1~스텝 S11에 의해 연산한 연산 결과가 입력된다. 출력 장치(4)는, 입력된 연산 결과에 대해 다수결 처리를 행하여, 다수결 처리에 기초해서 지령값을 액츄에이터(5)에 출력한다(스텝 S12).
한편, 본 실시예에서는 연산 장치(3)의 출력 제어부(35)는, 제 2 안전 기능 연산 검증부(112)가 출력하는 연산 결과가 이상인 경우, 제 1 안전 기능 연산부(101)가 출력하는 연산 결과를 출력 장치(4)에 출력하지 않는 예를 설명했다. 출력 제어부(35)는 제 2 안전 기능 연산 검증부(112)가 출력하는 연산 결과가 이상인 경우, 연산 장치(3)에 이상이 있기 때문에, 출력 장치(4)에, 연산 장치(3)에 이상이 있다는 것을 나타내는 정보를 보내도록 해도 된다. 마찬가지로, 출력 제어부(35)는 제 1 안전 기능 연산 검증부(102)가 출력하는 연산 결과가 이상인 경우, 연산 장치(3)에 이상이 있기 때문에, 출력 장치(4)에, 연산 장치(3)에 이상이 있다는 것을 나타내는 정보를 보내도록 해도 된다.
출력 장치(4)는, 연산 장치(3)가 출력하는 이상이 있다는 것을 나타내는 정보가 입력된 경우, 예컨대 도시 생략한 표시부에 이상이 발생한 연산 장치(3)의 고유 번호 등을 표시하여, 안전 장치(100)의 사용자에게 알리도록 해도 된다. 이 경우, 연산 장치(3) 내에서, 다른 하드웨어(ALU와 FPU)와 다른 소프트웨어(다른 연산방식)에서 2중으로 연산 결과를 확인하고 있기 때문에, 연산 장치(3)의 이상을 검출할 수도 있다는 효과가 있다.
한편, 다른 연산 방식이란, 예컨대 디지털값에 대한 논리 연산과 아날로그값에 대한 부동 소수점 연산이고, 또는 디지털값에 대한 부동 소수점 연산에 의한 논리 연산과 아날로그값에 대한 에뮬레이션에 의한 정수 연산 등이다.
다음으로 출력 장치(4)가 행하는 다수결 처리에 대해서 설명한다.
연산 장치(3a~3d)로부터 4개의 연산 결과가 입력된 경우, 출력 장치(4)는 4개의 연산 결과로 다수결을 행하여, 예컨대, 4개 중 2개 이상(以上)이 안전측을 제어하는 출력값이면, 안전측을 제어하는 출력값을 액츄에이터(5)에 출력한다. 한편, 안전측을 제어하는 출력값이란, 제어 대상을 안전한 상태로 제어하는 출력으로, 미리 설정해 둔다.
연산 장치(3a~3d)로부터 3개의 연산 결과가 입력된 경우, 즉 하나의 연산 결과가 이상(異常) 때문에 연산 장치(3)에 의해 출력되지 않은 경우, 출력 장치(4)는 3개의 연산 결과로 다수결을 행하며, 예컨대 3개 중 2개 이상이 안전측을 제어하는 출력값이면, 안전측을 제어하는 출력값을 액츄에이터(5)에 출력한다.
연산 장치(3a~3d)로부터 2개의 연산 결과가 입력된 경우, 즉 2개의 연산 결과가 이상 때문에 연산 장치(3)에 의해 출력되지 않은 경우, 출력 장치(4)는 2개의 연산 결과 중 하나 이상이 안전측을 제어하는 출력값이면, 안전측을 제어하는 출력값을 액츄에이터(5)에 출력한다. 안전측을 제어하는 출력값이 하나 이상 없는 경우에는, 미리 설정해 둔 소정의 출력 순서에 기초해서, 입력된 연산 결과 중 하나의 연산 결과를 지령값으로서 액츄에이터(5)에 출력한다.
연산 장치(3a~3d)로부터 하나의 연산 결과가 입력된 경우, 즉 3개의 연산 결과가 이상 때문에 연산 장치(3)에 의해 출력되지 않은 경우, 출력 장치(4)는 입력된 연산 결과를 지령값으로서 액츄에이터(5)에 출력한다.
연산 장치(3a~3d)로부터 하나도 연산 결과가 입력되지 않는 경우, 즉 4개의 연산 결과가 이상 때문에 연산 장치에 의해 출력되지 않은 경우, 출력 장치(4)는 미리 설정되어 있는 안전 동작을 위한 제어값을 지령값으로서 액츄에이터(5)에 출력한다.
한편, 상술한 다수결 처리는, 출력 장치(5)가 아날로그의 검출값에 대한 연산값, 디지털값에 대한 검출값에 대한 연산값 각각에 행한다.
또한, 도 7에 나타낸 흐름도에 있어서, 예컨대, 스텝 S2와 스텝 S7의 연산을, 제 1 안전 기능 연산부(101)와 제 2 안전 기능 연산부(111)가 병행해서 행하도록 해도 된다. 또한, 스텝 S3, S4와 스텝 S8~S9를, 제 1 안전 기능 연산 검증부(102)와 제 2 안전 기능 연산 검증부(112)가 병행해서 행하도록 해도 된다.
또한, 도 1의 구성예에서는, 연산 장치(3)를 다중하는 예를 나타냈지만, 본 실시예의 안전 장치(100)를 이용하는 경우, 하나의 연산 장치(3) 내에서 다른 하드웨어와 소프트웨어로 확인하고 있기 때문에, 다중화하지 않고 연산 장치(3)는 하나이어도 된다.
이상과 같이, 본 실시예의 안전 장치(100)는 하나의 CPU(연산 장치(3))의 ALU(제 1 연산부(32))와 FPU(제 2 연산부(33))를 이용해서, 입력값으로부터 각각 다른 하드웨어와 다른 연산 방식을 이용해서 연산하고 있다. 그 결과, 연산의 신뢰성을 높이는 효과도 있고 또한, CPU 내의 고장도 검지할 수 있다. 또한, 본 실시예의 안전 장치(100)는, 제 1 연산부(32)가 논리 연산을 행하고, 제 2 연산부(33)가 이와는 다른 논리 방식인 부동 소수점 연산을 행하기 때문에, 소프트웨어에도 다양성을 갖게 할 수 있다. 그 결과, 커먼 모드 고장의 가능성을 낮출 수 있다.
한편, 본 실시예에서는, 연산 장치(3)가 하나의 CPU가 구비하는 ALU와 FPU를 이용하는 예를 설명했지만, 디지털 신호 프로세서 DSP를 구비한 CPU라면, DSP에 의해 ALU와 FPU를 구성하도록 해도 된다. 또는, 하나의 디지털 신호 프로세서 DSP에 의해, ALU(제 1 연산부(32))와 FPU(제 2 연산부(33))를 구성하도록 해도 된다.
(실시예 2)
도 8은 본 발명의 실시예 2에 따른 연산 장치의 구성의 일례를 설명하는 도면이다. 도 8에 나타낸 바와 같이, 본 실시예에 따른 연산 장치(300)는 제 1 연산부(32a), 제 2 연산부(33a)를 구비하고 있다. 또한, 도 8에는 나타내고 있지 않지만, 실시예 1의 도 2와 마찬가지로, 연산 장치(300)는, 분리부(31), 자기 진단부(34), 출력 제어부(35)를 구비하고 있다. 또한, 제 2 연산부(33a)는 입력 데이터부(201), 연산 블록(FB1)(202), 연산 블록(FBj)(203), 연산 블록(FBm)(204), 출력 데이터부(205)를 구비하고 있다. 제 1 연산부(32a)는, 역연산용 입력 데이터부(211), 역연산 블록(FB1-1)(212), 블록(FBj-1)(213), 역연산 블록(FBm-1)(214), 역연산 출력부(215)를 구비하고 있다.
우선, 연산 장치(300)에서 행하는 처리의 개요를 설명한다. 한편, 이하의 설명에서는, 입력값이 아날로그값의 검출값인 것만으로 해서 설명한다.
연산 장치(300)의 분리부(31)는, 입력 장치(2)(도 1)가 출력하는 아날로그값의 검출값을 제 2 연산부(33a)에 출력한다. 제 2 연산부(33a)에서는, 입력된 아날로그값의 검출값에 대해 차례로 연산 블록(FB1)(202)~연산 블록(FBm)(204)이 연산을 행한다. 또한, 제 2 연산부(33a)는 연산 결과와 연산 도중에 사용한 요소를, 후술하는 바와 같이 제 1 연산부(32a)의 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)에 출력한다.
제 1 연산부(32a)는, 입력된 연산 결과와 연산 도중에 사용한 요소를 이용해서, 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)에 의해 역연산을 행하여, 연산 결과를 검증한다. 또한, 실시예 1과 같이, 제 1 연산부(32a)와 제 2 연산부(33a)는 예컨대, 하나의 CPU(연산 장치(3))가 구비하는 ALU와 FPU이다.
제 2 연산부(33a)의 입력 데이터부(201)는, 분리부(31)가 출력하는 아날로그값의 검출값을 연산 블록(FB1)(202)에 출력한다. 또한, 입력 데이터부(201)는 입력된 아날로그값의 검출값을 기억한다.
연산 블록(FB1)(202)~연산 블록(FBm)(204)은, 분리부(31)가 출력하는 아날로그값의 검출값에 기초해서, 안전 기능의 출력을 생성하는 데 필요한 연산을 행하기 위해서 구성되어 있다.
연산 블록(FB1)(202)은, 입력 데이터부(201)가 출력하는 아날로그값의 검출값에 대해 소정의 함수 F1에 따라 연산을 행한다. 연산 블록(FB1)(202)은, 연산 결과(Y1n)를 연산 블록(FBj)(203)에 출력한다. 나아가 연산 블록(FB1)(202)은 입력된 아날로그값의 검출값 in(X1n), 연산 결과(Y1n), 연산 도중에 사용한 요소(W1n, V1n)를 역연산 블록(FB1-1)(212)에 출력한다. 또한, 연산 블록(FB1)(202)은 전회 연산 도중에 사용한 요소(W1 (n-1))를 기억하고 있다. 한편, 첨자 n은, 금회 연산에 의한 값을 나타내고, n-1는 전회 연산에 의한 값을 나타내고 있다.
연산 블록(FBj)(203)은, 연산 블록(FB1)(202)이 출력하는 연산 결과(Y1n(=Xjn))에 대해 소정의 함수 F2에 따라 연산을 행한다. 연산 블록(FBj)(203)은 연산 결과(Yjn)를 연산 블록(FBm)(204)에 출력한다. 나아가 연산 블록(FBj)(203)은, 연산 블록(FB1)(202)이 출력하는 연산 결과(Y1n(=Xjn)), 연산 결과(Yjn), 연산 도중에 사용한 요소(Wjn, Vjn)을 역연산 블록(FBj-1)(213)에 출력한다. 또한, 연산 블록(FBj)(203)은, 전회의 연산 도중에 사용한 요소(Wj (n-1))를 기억하고 있다.
연산 블록(FBm)(204)은 연산 블록(FBj)(203)이 출력하는 연산 결과(Yjn(=Xmn))에 대해 소정의 함수 F3에 따라 연산을 행한다. 연산 블록(FBm)(204)은 연산 결과(Ymn)를 출력 데이터부(205)에 출력한다. 나아가 연산 블록(FBm)(204)은 연산 블록(FBj)(203)이 출력하는 연산 결과(Yjn(=Xmn)), 연산 결과(Ymn), 연산 도중에 사용한 요소(Wmn, Vmn)을 역연산 블록(FBm-1)(214)에 출력한다. 또한, 연산 블록(FBm)(204)은, 전회의 연산 도중에 사용한 요소(Wm (n-1))를 기억하고 있다.
출력 데이터부(205)는, 연산 블록(FBm)(204)이 출력하는 연산 결과가 입력된 것에 따라, 연산 블록(FB1)(202)~연산부블록(FBm)(204)의 연산이 종료되었다고 판단한다. 또한, 출력 데이터부(205)는, 연산이 종료된 것을 나타내는 정보를 역연산 출력부(215)에 출력한다.
역연산 출력부(215)는, 출력 데이터부(205)가 출력하는 연산이 종료된 것을 나타내는 정보에 기초해서, 역연산 블록(FBm-1)(214)에 역연산을 개시하는 정보를 출력한다.
역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)은, 연산 블록(FB1)(202)~연산 블록(FBm)(204)이 출력하는 아날로그값의 검출값 in(X1n), 연산 결과(Y1n(=Xjn)), (Yjn(=Xmn)), 및 (Ymn), 연산 도중에 이용한 요소(W1n, V1n), (Wjn, Vjn) 및 (Wmn, Vmn)에 기초해서, 역연산을 행하기 위해서 구성되어 있다.
역연산 블록(FBm-1)(214)은, 역연산 출력부(215)가 출력하는 역연산을 개시하는 정보에 기초해서, 연산 블록(FBm)(204)이 출력하는 연산 결과 Yjn(=Xmn), 연산 결과 Ymn, 연산 도중에 사용한 요소(Wmn, Vmn)를 이용해서, 소정의 함수 F3 -1에 따라 역연산을 행한다. 역연산 블록(FBm-1)(214)은 역연산을 개시하는 정보를 역연산 블록(FBj-1)(213)에 출력한다.
또한, 역연산 블록(FBm-1)(214)은, 역연산 결과 Xmn'가 연산 결과 Xmn와 일치하는지 여부를 판정한다(불일치 체킹이라고도 함). 판정 결과, 역연산 결과 Xmn'와 연산 결과 Xmn가 일치한 경우에는, 역연산 블록(FBm-1)(214)은, 연산 블록(FBm)(204)의 연산 결과가 정상이라고 판정한다. 판정 결과, 역연산 결과 Xmn'와 연산 결과 Xmn가 일치하지 않는 경우, 역연산 블록(FBm-1)(214)은, 연산 블록(FBm)(204)의 연산 결과가 이상이라고 판정한다. 역연산 블록(FBm-1)(214)은, 판정 결과를 출력 제어부(35)에 출력한다.
또한, 역연산 블록(FBm-1)(214)은, 역연산 도중에 사용한 요소 Wm (n-1)'가, 기억되어 있는 전회 주기의 역연산 도중에 사용한 요소 Wm (n-1)와 일치하는지 여부를 판정한다. 판정 결과, 역연산 도중에 사용한 요소 Wm (n-1)'와 전회 주기의 역연산 도중에 사용한 요소 Wm (n-1)가 일치한 경우, 역연산 블록(FBm-1)(214)은, 연산 블록(FBm)(204)의 연산 결과가 정상이라고 판정한다. 또한, 역연산 블록(FBm-1)(214)은, 입력된 연산 도중에 사용한 요소 Wmn을 다음 회 주기의 역연산으로 사용할 수 있도록 Wm (n-1)'에 덮어쓰기해서 저장한다.
판정 결과, 역연산 도중에 사용한 요소 Wm (n-1)'와 역연산 도중에 사용한 요소 Wm(n-1)가 일치하지 않는 경우, 역연산 블록(FBm-1)(214)은, 연산 블록(FBm)(204)의 연산 결과가 이상이라고 판정한다. 역연산 블록(FBm-1)(214)은 판정 결과를 출력 제어부(35)에 출력한다.
역연산 블록(FBj-1)(213)은 역연산 블록(FBm-1)(214)이 출력하는 역연산을 개시하는 정보에 기초해서, 연산 블록(FBj)(203)이 출력하는 연산 결과 Y1n(=Xjn), 연산 결과 Yjn, 연산 도중에 사용한 요소(Wjn, Vjn)를 이용하여, 소정의 함수 F2 -1에 따라 역연산을 행한다. 역연산 블록(FBj-1)(213)은 역연산을 개시하는 정보를 역연산 블록(FB1-1)(212)에 출력한다.
또한, 역연산 블록(FBj-1)(213)는, 역연산 결과 Xjn'가, 연산 결과 Xjn와 일치하는지 여부를 판정한다. 판정 결과 역연산 결과 Xjn'와 연산 결과 Xjn가 일치한 경우, 역연산 블록(FBj-1)(213)는, 연산 블록(FBj)(203)의 연산 결과가 정상이라고 판정한다. 판정 결과, 역연산 결과 Xjn'와 연산 결과 Xjn가 일치하지 않는 경우, 역연산 블록(FBj-1)(213)는, 연산 블록(FBj)(203)의 연산 결과가 이상이라고 판정한다. 역연산 블록(FBj-1)(213)는, 판정 결과를, 출력 제어부(35)에 출력한다.
또한, 역연산 블록(FBj-1)(213)는, 역연산 도중에 사용한 요소 Wj (n-1)'가, 전회 주기의 역연산 도중에 사용한 요소 Wj (n-1)와 일치하는지 여부를 판정한다. 판정 결과, 역연산 도중에 사용한 요소 Wj (n-1)'와 전회 주기의 역연산 도중에 사용한 요소 Wj(n-1)가 일치한 경우, 역연산 블록(FBj-1)(213)는, 연산 블록(FBj)(203)의 연산 결과가 정상이라고 판정한다. 또한, 역연산 블록(FBj-1)(213)은 입력된 연산 도중에 사용한 요소 Wjn을 다음 회 주기의 역연산에 사용할 수 있도록 Wj (n-1)'에 덮어쓰기해서 저장한다.
판정 결과, 역연산 도중에 사용한 요소 Wj (n-1)'와 전회 주기의 역연산 도중에 사용한 요소 Wj (n-1)가 일치하지 않는 경우, 역연산 블록(FBj-1)(213)는, 연산 블록(FBj)(203)의 연산 결과가 이상이라고 판정한다. 역연산 블록(FBj-1)(213)은 판정 결과를 출력 제어부(35)에 출력한다.
역연산 블록(FB1-1)(212)은 역연산 블록(FBj-1)(213)이 출력하는 역연산을 개시하는 정보에 기초해서, 연산 블록(FB1)(202)이 출력하는 아날로그값의 검출값 in(X1n), 연산 결과 Y1n, 연산 도중에 사용한 요소(W1, V1)를 이용해서 소정의 함수 F1 -1에 따라 역연산을 행한다. 역연산 블록(FB1-1)(212)은, 역연산이 종료한 것을 나타내는 정보를 역연산용 입력 데이터부(211)에 출력한다.
또한, 역연산 블록(FB1-1)(212)은, 역연산 결과 X1n'가, 아날로그값의 검출값 in(X1n)와 일치하는지 여부를 판정한다. 판정 결과, 역연산 결과 X1n'와 아날로그값의 검출값 in(X1n)이 일치한 경우, 역연산 블록(FB1-1)(213)은, 연산 블록(FB1)(202)의 연산 결과가 정상이라고 판정한다. 판정 결과, 역연산 결과 X1n'와 아날로그값의 검출값 in(X1n)이 일치하지 않는 경우, 역연산 블록(FB1-1)(212)은, 연산 블록(FB1)(202)의 연산 결과가 이상이라고 판정한다. 역연산 블록(FB1-1)(212)은 판정 결과를 출력 제어부(35)에 출력한다.
또한, 역연산 블록(FB1-1)(212)은, 역연산 도중에 사용한 요소 W1 (n-1)'가, 전회 주기의 역연산 도중에 사용한 요소 W1 (n-1)와 일치하는지 여부를 판정한다. 판정 결과, 역연산 도중에 사용한 요소 W1 (n-1)'와 전회 주기의 역연산 도중에 사용한 요소 W1(n-1)가 일치한 경우, 역연산 블록(FB1-1)(212)은 연산 블록(FB1)(202)의 연산 결과가 정상이라고 판정한다. 또한, 역연산 블록(FB1-1)(212)은, 입력된 연산 도중에 사용한 요소 W1n을 다음 회 주기의 역연산에 사용할 수 있도록 W1 (n-1)'에 덮어쓰기해서 저장한다.
판정 결과, 역연산 도중에 사용한 요소 W1 (n-1)'와 전회 주기의 역연산 도중에 사용한 요소 W1 (n-1)가 일치하지 않는 경우, 역연산 블록(FB1-1)(212)은, 연산 블록(FB1)(202)의 연산 결과가 이상이라고 판정한다. 역연산 블록(FB1-1)(212)은 판정 결과를 출력 제어부(35)에 출력한다.
역연산용 입력 데이터부(211)는, 연산 블록(FB1)(212)이 출력하는 역연산이 종료된 것을 나타내는 정보를 출력 제어부(35)에 출력한다.
출력 제어부(35)는, 역연산용 입력 데이터부(211)가 출력하는 역연산이 종료된 것을 나타내는 정보, 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)이 출력하는 판정 결과에 기초해서, 연산 블록(FB1)(202)~연산 블록(FBm)(204)의 연산이 정상인 경우, 연산 블록(FBm)(204)의 연산 결과를 지령값으로서 출력 장치(4)에 출력한다.
한편, 연산 블록(FB1)(202)~연산 블록(FBm)(204)에서 이용하는 소정의 함수 F1~F3, 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)에서 이용하는 소정의 함수 F1 -1~F3 -1는 미리 입력값에 기초해서, 안전 장치(100)의 설계자가 미리 설정해 둔다.
한편, 본 실시예에서는, 연산 블록(FB1)(202)~연산 블록(FBm)(204)의 모든 연산이 종료한 후, 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)이 역연산을 행하는 예를 설명했다. 예컨대, 각 연산 블록(FB1)(202)의 연산이 종료된 후, 역연산 블록(FB1-1)(212)이 역연산을 행하도록 해도 된다.
도 9는 본 실시예에 따른 연산 블록과 역연산 블록의 입출력 데이터의 일례를 설명하는 도면이다. 도 10은 본 실시예에 따른 역연산 블록의 입출력 데이터와 유지되어 있는 데이터의 일례를 설명하는 도면이다.
도 9에 나타낸 바와 같이, 연산 블록(FB1)(202)~연산 블록(FBm)(204)은 각각 Xn이 입력되고, 각각 Yn, Wn 및 Vn을 출력한다.
도 10에 나타낸 바와 같이, 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)은, 각각 Yn, Wn, Vn, 및 Xn이 입력되어, Xn'을 출력한다. 또한, 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)은 각각 전회 주기의 W(n-1)를 유지하고 있다.
다음으로 연산 블록(FB1)(202)~연산 블록(FBm)(204), 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)이 행하는 처리에 대해서 도 11(a)~도 13을 이용해서 설명한다. 도 11(a)는 본 실시예에 따른 연산 블록의 구성의 일례를 설명하는 도면이다. 도 11(b)는 본 실시예에 따른 역연산 블록의 구성의 일례를 설명하는 도면이다. 도 12는 본 실시예에 따른 역연산 블록의 처리 순서를 설명하는 도면이다. 도 13은 본 실시예에 따른 역연산 블록의 처리 순서의 흐름도이다.
도 11(a)와 도 11(b)는, 도 8에 있어서의 연산 블록의 파선으로 둘러싼 220의 연산 블록(FBj)(203)과 역연산 블록(FBj-1)(213)의 구성의 일례이다.
도 11(a)에 나타낸 바와 같이, 연산 블록(FBj)(203)은, Xjn, Wj (n-1)을 입력값, Yjn, Wjn 및 Vjn을 출력값으로 하는 연산을 행한다. 도 11(b)에 나타낸 바와 같이, 역연산 블록(FBj-1)(213)은, Yjn, Wjn 및 Vjn을 입력값, Xjn', Wj (n-1)'를 출력값으로 하는 역연산을 행한다.
도 11(a)와 도 11(b)에서, 첨자 n은 금회 주기의 데이터, 첨자 n-1은 전회 주기의 데이터이다. 또한, Xjn은 입력열, Yjn은 출력열이다. 또한, Wjn은 중간 데이터열(출력을 계산하기까지의 도중의 주요한 연산값), Vjn은 Xjn과 Wj (n-1)를 일의적으로 구하기 위해서 필요한 중간 데이터이다. Xjn'는 Xjn의 역연산값, Wj (n-1)'는 Wj (n-1)의 역연산값이며, Wj (n-1)는 역연산용으로 전회 주기의 Wjn을 카피한 데이터열이다.
도 11(a)에 나타낸 바와 같이, 연산 블록(FBj)(203)은 입력값의 Xjn과 Wj (n-1)에 대해 소정의 함수 F2를 실시하여 출력값 Yjn, Wjn, Vjn을 취득한다.
도 11(b)에 나타낸 바와 같이, 역연산 블록(FBj-1)(213)는 입력값 Yjn과 Wjn 및 Vjn에 대해 소정의 함수 F2 - 1를 실시하여, 출력값 Xjn', Wj (n-1)'를 취득한다.
다음으로 역연산 블록(FBj-1)(212)가 행하는 역연산의 순서를 구체적으로 설명한다.
우선, 역연산 블록(FBj-1)(212)은 연산 블록(FBj)(202)의 연산 결과 Yjn을 입력값으로서 카피한다(스텝 S101, 도 12의 C1, C2).
다음으로 역연산 블록(FBj-1)(212)은, 연산 블록(FBj)(202)의 연산 도중에 사용한 요소 Wjn과 Vjn을 입력값으로서 카피한다(스텝 S102, 도 12의 C3).
다음으로 역연산 블록(FBj-1)(212)은 연산 블록(FBj)(202)로의 입력값인 Xjn을 출력값으로서 카피한다(스텝 S103, 도 12의 C4).
다음으로 역연산 블록(FBj-1)(212)은 카피한 입력값 Yjn, Wjn, 및 Vjn에 대해, 소정의 함수 F2 -1에 의해 역연산을 행하여, Xjn'와 Wj (n-1)'를 취득한다(스텝 S104, 도 13의 C5).
다음으로 역연산 블록(FBj-1)(212)는, 역연산에 의해 구한 Xjn'와, 카피한 Xjn가 일치하는지 여부를 판정한다(스텝 S105).
판정 결과, 역연산에 의해 구한 Xjn'와, 카피한 Xjn가 일치하는 경우(스텝 S105:예), 스텝 S107으로 진행한다. 판정 결과, 역연산에 의해 구한 Xjn'와, 카피한 Xjn가 일치하지 않는 경우(스텝 S105:아니오), 스텝 S106으로 진행한다.
다음으로 역연산 블록(FBj-1)(212)은 역연산 도중에 사용한 요소 Wj (n-1)'와, 카피한 Wj (n-1)가 일치하는지 여부를 판정한다(스텝 S107, 도 12의 C6).
판정 결과, 역연산에 의해 구한 Wj (n-1)'와 카피한 Wj (n-1)가 일치하는 경우(스텝 S107:예), 스텝 S108로 진행한다. 판정 결과, 역연산에 의해 구한 Wj (n -1)'과 카피한 Wj (n-1)가 일치하지 않는 경우(스텝 S107:아니오), 스텝 S106으로 진행한다.
역연산 블록(FBj-1)(212)은 연산 결과, 또는 연산 도중에 사용한 요소가 일치하지 않기 때문에 이상이라고 판정하고, 판정 결과를 출력 제어부(35)에 출력한다(스텝 S106).
역연산 블록(FBj-1)(212)은 연산 결과와, 연산 도중에 사용한 요소가 일치했기 때문에 정상이라고 판정하고, 판정 결과를 출력 제어부(35)에 출력한다. 또한, 역연산 블록(FBj-1)(212)은 카피한 Wjn을 다음 회 주기의 역연산 체킹에 사용할 수 있도록 Wj (n-1)'에 덮어쓰기해서 저장한다(스텝 S108, 도 12의 C7).
이상과 같이, 본 실시예에서는, 제 2 연산부(33)가 취득한 연산 결과에 대해, 제 1 연산부(32a)가 제 2 연산부(33a)에서 취득된 연산 결과와 연산 도중에 사용된 요소를 이용해서 역연산을 행한다. 그리고, 제 1 연산부(32a)는, 역연산한 연산 결과가, 제 2 연산부(33a)(FPU)가 취득한 연산 결과의 입력값과 일치하는지 판정한다. 또한, 제 1 연산부(32a)(ALU)는 역연산 도중에 사용한 요소가 전회 주기로 사용한 요소와 일치하는지도 판정한다. 그 결과, 다른 하드웨어 또한 다른 소프트웨어에 의해, 연산 결과가 맞는지를 체킹할 수 있기 때문에, 저렴하게 커먼 모드 고장의 가능성을 낮출 수 있다.
한편, 본 실시예에서는, 연산 블록(FB1)(202)~연산 블록(FBm)(204), 역연산 블록(FB1-1)(212)~역연산 블록(FBm-1)(214)와 같이, 3개씩 이용하는 예를 설명했지만, 연산 블록 및 역연산 블록의 수는 이것으로 한정하지 않고, 검출되는 검출값이나 지령값에 기초해서 정하도록 해도 된다.
또한, 본 실시예의 구성에 실시예 1의 구성을 더하도록 해도 된다. 이 경우, 제 2 연산부(33a)가 취득한 연산 결과에 대해, 제 1 연산부(32a)가 역연산과, 순방향 연산을 행함으로써 더 신뢰성을 높일 수 있다.
또한, 본 실시예에서는, 도 8과 같이 하나의 연산 장치(3)에 대해서만 이용하는 예를 설명했지만, 도 1과 같이 연산 장치(3)를 다중화해도 된다.
(실시예 3)
실시예 2에서는, 아날로그값의 검출값이 연산 장치(3)에 입력된 경우, 제 2 연산부(33a)가 연산한 연산 결과에 대해, 제 1 연산부(32a)가 역연산하여 판정하는 예를 설명했다. 본 실시예에서는, 디지털값의 검출값이 연산 장치(3)에 입력된 경우, 제 1 연산부(32b)가 연산한 연산 결과에 대해, 제 2 연산부(33b)가 역연산해서 판정하는 예를 설명한다. 한편, 제 2 연산부(33b)는 실시예 1에서 설명한 바와 같이, 디지털값을 부동 소수점 연산에 의해 논리 연산하는 것으로 행한다.
도 14(a)는 본 실시예에 따른 입력이 1개인 경우의 디지털값의 순방향의 연산을 설명하는 도면이다. 도 14(b)는 본 실시예에 따른 입력이 1개인 경우의 디지털값의 역연산을 설명하는 도면이다.
도 14(a)에 나타낸 바와 같이, 입력이 1개, 출력이 1개의 경우, 제 1 연산부(32b)는 입력 Xn에 대해 소정의 함수 F를 실시하여 출력 Yn을 취득한다. 또한, 도 14(b)에 나타낸 바와 같이, 제 2 연산부(33b)는, 출력 Yn에 함수 F- 1를 실시하여 Xn'를 역연산하고, 역연산한 Xn'와 Xn을 비교함으로써, 연산이 정상인지 여부를 판정할 수 있다. 이러한 연산으로서, 예컨대, NOT 논리(부정)이 있다.
도 15(a)는 본 실시예에 따른 입력이 2개인 경우의 디지털값의 순방향의 연산을 설명하는 도면이다. 도 15(b)는 본 실시예에 따른 입력이 2개인 경우의 디지털값의 역연산을 설명하는 도면이다.
도 15(a)에 나타낸 바와 같이, 입력이 2개, 출력이 1개의 경우, 제 1 연산부(32b)는 입력 X1와 X2에 대해 소정의 함수 F를 실시하여 출력 Yn을 취득한다. 여기서, 출력 Yn만으로는, 입력 X1, X2를 일의(一意)적으로 구할 수 없기 때문에, 예컨대, 도 15(b)에 나타낸 바와 같이, 제 2 연산부(33b)가 입력 X2와 출력 Yn을 입력값으로 해서, 이들 X2와 Yn에 대해 소정의 함수 F- 1를 실시하여, X1'을 취득한다. 그리고, 제 2 연산부(33b)가 취득한 X1'과 입력의 X1를 비교함으로써 연산이 정상인지 여부를 판정할 수 있다. 이러한 연산으로서, 예컨대, AND 논리(논리곱), OR 논리(논리합) 등이 있다.
이상과 같이, 본 실시예에서는, 제 1 연산부(32b)(ALU)가 취득한 연산 결과에 대해, 제 2 연산부(33b)(FPU)가 제 1 연산부(32b)에서 취득된 연산 결과에 대해 역연산을 행한다. 그리고, 제 2 연산부(33b)(FPU)는, 역연산한 연산 결과가 제 1 연산부(32b)(ALU)의 입력값과 일치하는지 판정한다. 그 결과, 다른 하드웨어 또한 다른 소프트웨어에 의해, 연산 결과가 맞는지를 체킹할 수 있기 때문에, 저렴하게 커먼 모드 고장의 가능성을 낮출 수 있다.
또한, 본 실시예의 구성에 실시예 1의 구성을 더하도록 해도 된다. 이 경우, 제 1 연산부(32b)가 취득한 연산 결과에 대해, 제 2 연산부(33b)가 역연산과, 순방향의 연산을 행함으로써 더 신뢰성을 높일 수 있다.
또한, 본 실시예의 구성에 실시예 2의 구성을 더하도록 해도 된다. 이 경우, 아날로그값의 검출값에 대해서도 디지털값의 검출값에 대해서도, 다른 하드웨어, 소프트웨어로 역연산하여 비교하여 있기 때문에, 커먼 모드 고장의 가능성을 낮게 할 수 있다.
또한, 본 실시예에서는, 도 8과 같이 하나의 연산 장치(3)에 대해서만 이용하는 예를 설명했지만, 도 1과 같이, 연산 장치(3)를 다중화해도 된다.
한편, 본 실시예에서는, 하나의 연산 장치(3)에 ALU와 FPU를 구비하고, 제 1 연산부(32b)의 연산이 ALU에서 실행되고, 제 2 연산부(33b)의 연산이 FPU에서 실행되는 예를 설명했지만, 예컨대 RISC(Reduced Instruction Set Computer) 프로세서의 경우, 슈퍼스칼라에 의해 FPU를 ALU와 병렬로 동작시킬 수 있기 때문에, 본 실시예를 실현할 수 있다. 또한, 하나의 CPU 내에 복수의 연산부를 구비하는, 예컨대 듀얼·코어·프로세서를 연산 장치(3)에 이용해도, 본 실시예와 같은 효과를 얻을 수 있다.
(산업상의 이용 가능성)
본 발명은 화력 플랜트, 수력 플랜트, 전력 플랜트 등의 플랜트에 적용할 수 있다.
100 : 안전 장치 2 : 입력 장치
3, 3a~3d, 300 : 연산 장치 4 : 출력 장치
31 : 분리부 32, 32a, 32b : 제 1 연산부
33, 33a, 33b : 제 2 연산부 34 : 자기 진단부
35 : 출력 제어부 101 : 제 1 안전 기능 연산부
102 : 제 1 안전 기능 연산 검증부 111 : 제 2 안전 기능 연산부
112 : 제 2 안전 기능 연산 검증부 201 : 입력 데이터부
202~204 : 연산 블록 FB1~연산부 블록 FBm
212~214 : 역연산 블록 FB1-1~역연산 블록 FBm-1
205 : 출력 데이터부 211 : 역연산용 입력 데이터부
215 : 역연산 출력부

Claims (11)

  1. 제어 대상으로부터 검출된 검출값에 대해 제 1 연산을 행하여 제 1 결과값을 취득하는 제 1 연산부와,
    상기 검출값에 대해 제 2 연산을 행하여 제 2 결과값을 취득하고, 상기 제 1 결과값과, 상기 제 2 결과값이 일치하는지 여부를 판정하는 제 2 연산부와,
    상기 제 2 연산부가 상기 제 1 결과값과 상기 제 2 결과값이 일치한다고 판정한 경우에는 상기 제 1 결과값을 출력하고, 상기 제 2 연산부가 상기 제 1 결과값과 상기 제 2 결과값이 일치하지 않는다고 판정한 경우에는 상기 제 1 결과값을 출력하지 않는 출력 제어부와,
    상기 제 1 연산부 및 상기 제 2 연산부를 구비하는 제 1 중앙 연산 처리 장치
    를 구비하고,
    상기 제 1 연산부와 상기 제 2 연산부는 서로 다른 하드웨어인
    안전 장치.
  2. 제 1 항에 있어서,
    상기 제 1 연산이 논리 연산이고 또한 상기 제 2 연산이 부동 소수점 연산이거나, 혹은 상기 제 2 연산이 논리 연산이고 또한 상기 제 1 연산이 부동 소수점 연산인 안전 장치.
  3. 제 2 항에 있어서,
    상기 제 1 연산이 상기 논리 연산이고 또한 상기 제 2 연산이 상기 부동 소수점 연산인 경우에는, 상기 제 1 연산부가 상기 논리 연산을 행하고 또한 상기 제 2 연산부가 상기 논리 연산을 부동 소수점 연산에 의해 모의(模擬)하여 행하며,
    상기 제 2 연산이 상기 논리 연산이고 또한 상기 제 1 연산이 상기 부동 소수점 연산인 경우에는, 상기 제 1 연산부가 상기 부동 소수점 연산을 행하고 또한 제 2 연산부가 에뮬레이션에 의해 정수 연산을 행하는
    안전 장치.
  4. 제 1 항에 있어서,
    상기 제 1 연산부는,
    상기 제 1 연산 도중에 제 3 결과값을 취득하여, 상기 검출값과, 상기 제 1 결과값과, 상기 제 3 결과값을, 상기 제 2 연산부에 입력하고,
    상기 제 2 연산부는,
    상기 제 1 결과값 및 상기 제 3 결과값을 이용해서, 상기 제 1 연산의 역연산을 행하여 제 4 결과값을 취득하고, 상기 제 4 결과값과 검출값이 일치하는지 여부를 판정하며,
    출력 제어부는,
    상기 제 2 연산부가, 상기 검출값과 상기 제 4 결과값이 일치한다고 판정한 경우에는 상기 제 1 결과값을 출력하고, 상기 제 2 연산부가 상기 검출값과 상기 제 4 연산 결과가 일치하지 않는다고 판정한 경우에는 상기 제 1 결과값을 출력하지 않는
    안전 장치.
  5. 제 1 항에 있어서,
    상기 제 1 중앙 연산 처리 장치와 동일 구조를 갖고, 상기 제 1 중앙 연산 처리 장치와 병렬로 접속된 제 2 중앙 연산 처리 장치와,
    상기 제 1 중앙 연산 처리 장치의 상기 출력 제어부가 출력하는 상기 제 1 결과값과, 상기 제 2 중앙 연산 처리 장치의 상기 출력 제어부가 출력하는 제 5 결과값에 기초해서, 상기 제어 대상을 제어하기 위한 지령값을 결정하는 출력 장치
    를 더 구비하는 안전 장치.
  6. 제 5 항에 있어서,
    상기 출력 제어부는,
    상기 제 2 연산부가 상기 제 1 결과값과 상기 제 2 결과값이 일치하지 않는다고 판정한 경우에는, 상기 제 1 연산부 또는 상기 제 2 연산부에 이상(異常)이 있다는 것을 나타내는 정보를 상기 출력 장치에 출력하고,
    상기 출력 장치는,
    상기 정보에 기초해서 상기 지령값을 결정하는
    안전 장치.
  7. 제어 대상으로부터 검출된 검출값에 대해 제 1 연산을 행하여 제 1 결과값을 취득하는 공정과,
    상기 검출값에 대해 제 2 연산을 행하여 제 2 결과값을 취득하는 공정과,
    상기 제 1 결과값과 상기 제 2 결과값이 일치하는지 여부를 판정하는 공정과,
    상기 제 1 결과값과 상기 제 2 결과값이 일치한다고 판정한 경우에는 상기 제 1 결과값을 출력하고, 상기 제 1 결과값과 상기 제 2 결과값이 일치하지 않는다고 판정한 경우에는 상기 제 1 결과값을 출력하지 않는 공정
    을 포함하는 안전 장치의 연산 방법.
  8. 제 7 항에 있어서,
    상기 제 1 연산이 논리 연산이고 또한 상기 제 2 연산이 부동 소수점 연산이거나 혹은, 상기 제 2 연산이 논리 연산이고 또한 상기 제 1 연산이 부동 소수점 연산인 연산 방법.
  9. 제 8 항에 있어서,
    상기 제 1 연산이 상기 논리 연산이고 또한 상기 제 2 연산이 상기 부동 소수점 연산인 경우에는, 상기 제 1 연산을 행하는 공정은 상기 검출값에 대해 상기 논리 연산을 행하는 공정을 포함하고, 또한 상기 제 2 연산을 행하는 공정은 상기 검출값에 대해 상기 논리 연산을 상기 부동 소수점 연산에 의해 모의하여 행하는 공정을 포함하고,
    상기 제 2 연산이 상기 논리 연산이고 또한 상기 제 1 연산 처리가 상기 부동 소수점 연산인 경우에는, 상기 제 1 연산을 행하는 공정은 상기 부동 소수점 연산을 행하는 공정을 포함하고, 또한 상기 제 2 연산을 행하는 공정은 에뮬레이션에 의해 정수 연산을 행하는 공정을 포함하는
    연산 방법.
  10. 제 7 항에 있어서,
    상기 제 1 연산을 행하는 공정은 상기 제 1 연산 도중에 제 3 결과값을 취득하는 공정을 포함하고,
    상기 제 2 연산을 행하는 공정은, 상기 제 1 결과값 및 상기 제 3 결과값을 이용해서 상기 제 1 연산의 역연산을 행하여 제 4 결과값을 취득하는 공정을 포함하여,
    상기 제 4 결과값과 검출값이 일치하는지 여부를 판정하는 공정과,
    상기 검출값과 상기 제 4 결과값이 일치한다고 판정한 경우에는, 상기 제 1 결과값을 출력하고, 상기 검출값과 상기 제 4 연산 결과가 일치하지 않는다고 판정한 경우에는, 상기 제 1 결과값을 출력하지 않는 공정을 더 포함하는
    연산 방법.
  11. 제 7 항에 있어서,
    상기 제 1 결과값과 상기 제 2 결과값이 일치하지 않는다고 판정한 경우에는 이상이 있다는 것을 나타내는 정보를 출력하는 공정과,
    상기 정보에 기초해서 상기 제어 대상을 제어하는 공정
    을 더 포함하는 안전 방법.
KR1020137013736A 2011-01-31 2011-10-06 안전 장치, 안전 장치의 연산 방법 KR101533169B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011018220A JP5683294B2 (ja) 2011-01-31 2011-01-31 安全装置、安全装置の演算方法
JPJP-P-2011-018220 2011-01-31
PCT/JP2011/073079 WO2012105089A1 (ja) 2011-01-31 2011-10-06 安全装置、安全装置の演算方法

Publications (2)

Publication Number Publication Date
KR20130084679A true KR20130084679A (ko) 2013-07-25
KR101533169B1 KR101533169B1 (ko) 2015-07-01

Family

ID=46602323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137013736A KR101533169B1 (ko) 2011-01-31 2011-10-06 안전 장치, 안전 장치의 연산 방법

Country Status (6)

Country Link
US (1) US9753437B2 (ko)
EP (1) EP2672339B1 (ko)
JP (1) JP5683294B2 (ko)
KR (1) KR101533169B1 (ko)
CN (1) CN103238122B (ko)
WO (1) WO2012105089A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10185291B2 (en) * 2013-06-28 2019-01-22 Fisher Controls International Llc System and method for shutting down a field device
JP6078444B2 (ja) * 2013-09-20 2017-02-08 日立オートモティブシステムズ株式会社 パワーステアリング装置および車両搭載機器の制御装置
JP6053651B2 (ja) * 2013-09-20 2016-12-27 日立オートモティブシステムズ株式会社 パワーステアリング装置および車両搭載機器の制御装置
JP5902778B1 (ja) * 2014-09-03 2016-04-13 ファナック株式会社 周辺機器を安全に制御する機能を有する工作機械
PL3073333T3 (pl) * 2015-03-23 2020-06-29 Siemens Aktiengesellschaft Instalacja palnika z urządzeniem bezpieczeństwa
JP6731108B2 (ja) * 2017-02-22 2020-07-29 株式会社日立製作所 制御システムおよび制御方法
JP7218212B2 (ja) * 2019-03-05 2023-02-06 株式会社東芝 半導体装置
WO2021081895A1 (zh) * 2019-10-31 2021-05-06 西门子股份公司 控制系统、现场设备、分布式控制系统及控制系统的备份方法
EP3832453A1 (de) * 2019-12-05 2021-06-09 Wieland Electric GmbH Verfahren zur durchführung einer gleitkommaarithmetik

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63254525A (ja) 1987-04-10 1988-10-21 Matsushita Electric Ind Co Ltd 除算装置
JP2885800B2 (ja) * 1988-06-28 1999-04-26 日本信号株式会社 二重系処理装置
JPH0634269A (ja) 1992-07-17 1994-02-08 Matsushita Electric Ind Co Ltd 乾燥処理装置
FR2704329B1 (fr) * 1993-04-21 1995-07-13 Csee Transport Système de sécurité à microprocesseur, applicable notamment au domaine des transports ferroviaires.
JPH06342369A (ja) 1993-06-01 1994-12-13 Hitachi Ltd 多重バージョン機能実現方法および開発支援システム
JPH08292894A (ja) * 1995-04-20 1996-11-05 Toshiba Corp ディジタル制御装置
JPH10116105A (ja) 1996-10-11 1998-05-06 Tokyo Electric Power Co Inc:The 一般化予測制御システム及び脱硝制御装置
KR100408493B1 (ko) * 2001-05-07 2003-12-06 한국전력기술 주식회사 소프트웨어 공통유형고장을 자체 배제한 디지털원자로 보호시스템 및 그 제어방법
JP4025540B2 (ja) * 2001-12-10 2007-12-19 株式会社日立製作所 多重化制御装置
EP1810150A2 (de) 2004-10-25 2007-07-25 Robert Bosch Gmbh Verfahren und vorrichtung zur steuerung eines rechnersystems
KR20070062576A (ko) * 2004-10-25 2007-06-15 로베르트 보쉬 게엠베하 적어도 2개의 실행 유닛을 포함하는 컴퓨터 시스템에서프로그램 코드로부터 처리를 분리하기 위한 방법 및 장치
DE102006050715A1 (de) 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren und System zum Erzeugen eines gültigen Signals
JP4461135B2 (ja) 2006-12-25 2010-05-12 富士通株式会社 演算回路及び演算方法並びに情報処理装置
WO2009155993A1 (en) * 2008-06-27 2009-12-30 Abb Research Ltd. A safety system for a machine
DE102009019087A1 (de) * 2009-04-20 2010-11-11 Pilz Gmbh & Co. Kg Sicherheitssteuerung und Verfahren zum Steuern einer automatisierten Anlage
CN101694588B (zh) * 2009-10-14 2012-04-18 北京全路通信信号研究设计院有限公司 一种二乘二取二主备控制切换系统和方法

Also Published As

Publication number Publication date
US9753437B2 (en) 2017-09-05
CN103238122B (zh) 2016-01-06
JP2012159956A (ja) 2012-08-23
EP2672339B1 (en) 2019-04-03
JP5683294B2 (ja) 2015-03-11
WO2012105089A1 (ja) 2012-08-09
KR101533169B1 (ko) 2015-07-01
EP2672339A4 (en) 2018-01-24
CN103238122A (zh) 2013-08-07
EP2672339A1 (en) 2013-12-11
US20130245794A1 (en) 2013-09-19

Similar Documents

Publication Publication Date Title
KR101533169B1 (ko) 안전 장치, 안전 장치의 연산 방법
EP1857936B1 (en) Information processing apparatus and information processing method
CN103778028B (zh) 半导体器件
Latif-Shabgahi et al. A taxonomy for software voting algorithms used in safety-critical systems
US8117512B2 (en) Failure detection and mitigation in logic circuits
JP5981988B2 (ja) 安全制御装置の動作方法および安全制御装置
EP1854008A2 (en) Generic software fault mitigation
US10114356B2 (en) Method and apparatus for controlling a physical unit in an automation system
EP2533154B1 (en) Failure detection and mitigation in logic circuits
CN102930081A (zh) 一种基于相关性模型的机内测试设计方法
CN104698833B (zh) 冗余控制方法和系统
US20120150492A1 (en) Method and Device for Monitoring a Device Equipped with a Microprocessor
Krstic et al. A mid-value select voter
CA2689416A1 (en) Control apparatus and control method
CN101943910B (zh) 用于容错控制的自校验方法
Pakonen et al. Verification of fault tolerant safety I&C systems using model checking
CN110531608A (zh) 基于冗余设计的高可靠电子设备定量fmeca分析方法和系统
CN111044826B (zh) 检测方法及检测系统
CN114282570A (zh) 一种航空发动机传感器故障容错方法及其容错系统
JP2011128821A (ja) 二重化フィールド機器
Mueller et al. „Methodological Approach to the Sensitivity Analysis of Failure Effects in Modern Digital I&C Systems “
JP2011103071A (ja) 多重化制御装置
Kim et al. Fault-tolerant architecture and reliability analysis for NISS-RPS
JP5925925B2 (ja) 診断付き出力装置
KR100807093B1 (ko) 지수 평활법을 이용한 예측 하이브리드 중복 구조의 고장허용 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180618

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190618

Year of fee payment: 5