처음‎ > ‎지식기반‎ > ‎

다중화 제어 시스템

게시자: Sundew Shin, 2011. 3. 22. 오전 5:51   [ 2012. 3. 21. 오전 5:05에 업데이트됨 ]

시작하는 글

 제어 또는, 서버운영 등과 관련하여 '이중화'라는 용어를 종종 들어 봤을 것이다. Primary와 이와 동일한 spec을 가진 Secondary 모듈이 서로 병렬로 연결된 Fault-tolerant, 즉, 운영상 에러에 대비된 시스템 구성 말이다. 하지만, 삼중화, 사중화 시스템? 이건 또 뭐란 말인가. 이중화 시스템도 역시 온전히 Fault-tolerant하기에 부족하다는 말인가? 필자는 삼중/사중을 넘어, 이 시스템 다중화라는 나름 흥미로운 주제에 대해 관심있는 여러분들과 의견을 나눠 보고자 한다.

문제 분석

 특별히 처음 '삼중화'라는 용어를 들었을 때 유독 의구심이 생겼던 이유는, 평소 생각 하기로 이중화 제어 시스템에서는, 산업 장비(Industrial PLC, etc.)들이야 그 안정성이 생명이라 웬만해서는 잘 죽지 않는데 이를 이중화 해서 보완 했으니 그 시스템 정지기간(down-time)이란 거의 제로(0)가 아닐까 막연히 믿어 왔고, Siemens의 S7-400H와 같은 것으로  이중화 시스템을 구성 해서 꽤나 큼직한 설비에 깔고 다니면서 나름 자부심과 확신이 있었기 때문이다. 그런데 '삼중화'라니? CPU 삼중화. IO모듈 삼중화, Sensor/Actuator 삼중화, Network 삼중화?? 생각할 수록 머리가 꼬이면서 혼돈스럽기 까지 했다.
하지만 조금 더 알고 보니, 소위 삼중화 이상되는 다중화 시스템들은, 연산주체(Processor, Hardware)의 결과물에 대한 신뢰를 높이기 위한 중첩구조(Architecture)를 주로 얘기하고 있다는 것을 알게 되었다.[1] 이야기의 출발은 여기서 부터인데, 알면 알 수록 흥미롭다.

다중화 (Redundancy)

redundant
re·dun·dant
Pronunciation: \-dənt\
Function: adjective
1 a: exceeding what is necessary or normal [2]
 먼저 '다중화'의 사전적 의미에서 부터 시작 하기 위해 Merriam-Webster사전을 찾아 보았다. 단어의 기본형인 redundant를 '필요하거나 정상적인 것보다 넘치는 어떤'이라는 뜻으로 설명하고 있다. 여기 두 단어를 덧붙여, Redundant Control System이 되면 '필요 제어, 그 이 상을 갖춘 시스템' 쯤이 될 것이다. 세상이 그렇듯, 엔지니어링에서 '부가'(extra)라던지 '보조'(auxiliary) 같은 요소들은 비용(cost)과 시스템의 복잡성(complexity)에 직접적인 영향을 미친다.
비용을 쓰며 필요 이상의 것을 만드는 이유는 좀 더 신뢰할 수 있는 시스템이 절실히 필요하기 때문이다. 산업현장의 시스템이 대부분 그렇지만 일시적 시스템정지의 결과는 실로 치명적이다. 반도체생산공장 같은 곳은 한번의 시스템장애가 수십억원의 손실로 직결 되고, 안전관련설비들에서는 사람이 죽고 살고하는 문제가 된다.
이에 Safety 시스템 개념을 소개 하고자 한다.
Safety 시스템은 Fail-safe와 Fault-tolerant, 이 두 개념의 적적한 조합으로 구현 된다.
(TODO: Fail-safe & Fault-tolerant)

다중화 레벨(-level)

 결론 부터 말하자면 우리의 궁극적인 목표는 시스템 down-time이 0(sec)에 근사한, 그래서 이용가능성 (Availability)이 100%에 가장 가까운 시스템을 구분 해 내거나 만들어 내는데 있다.


세부 내용을 살피기에 앞서 우리는 어떤 종류의 다중화가 있는지 부터 살펴 볼 필요가 있겠다. 위 그림[3]에서와 같이 설비제어 시스템 전체를 포괄적으로 봤을 때, Sensor, IO모듈과 같은 Hardware 모듈들과 그 연결망인 Network망을 대상으로 하는 것과, 그림에서는 보이지 않지만, 내부 Processor를 다중화 하는 방법, 또, Software에 의한 방법이 있다. 해서 다중화를 다음의 세가지 레벨로 구분해 본다:

  • Software (Algorithm) 다중화
  • Processor 다중화
  • 모듈/Network 다중화
위의 각 다중화 종류들은 하나를 적용하면 다른 하나를 적용할 수 없는 서로 배타적인 관계가 아닌, 한 시스템에 중첩하여 적용 할 수 있는 상보적 관계라고 볼 수 있다. 보통 많은 사람들이 '이중화' 시스템 이야기를 할 때는 가장 가시적인 모듈/Network 레벨만을 고려해서 얘기 할 때가 많다. 다음 장 부터는 본격적으로, 각 다중화레벨의 기술적 의미를 살펴 보고, 그 대표적인 구현방식에 대해 알아 보도록 한다.

Software 다중화

 Software 다중화를 '알고리즘 (Algorithm) 다중화'라고도 부르는 이유는 이 영역에 있어 컴퓨터과학계(Computer Sciences)에서 개발한 정보확인 및 복구 관련한 다양한 알고리즘이 존재 하기 때문이다.
다음은 대표적인 Software 다중화의 구현들이다:
  • 제어 로직 다중화: 목표제어출력에 있어 단일 입력 조건을 다중입력에 'AND'와 'OR'가 조합 된 판단로직으로 구성 하면서 결과에 신뢰성을 높이는 프로그램 방법
  • 정보 다중화: 잡신호의 간섭 등을 보완 하기 위하여 수신정보에 대한 에러 검출 및 수정 알고리즘
    • Parity나 Checksum 등, 에러검출용 부가 정보를 기준으로 대상정보의 온전성을 알아 내는 방법
      1. Correction code를 이용한 정보 재건 알고리즘
      2. 송신측에 정보 재전송을 요구 하는 알고리즘: ARQ (Automatic Repeat-request) Algorithm
  • N-버젼 프로그래밍
    • 완전 분리된 여러 그룹의 개발자들이 같은 목적의 이질적인 알고리즘들을 개발 하여 동일입력을 주고 나온 결과를 비교/판단 하는 것
    • NVX (N-version execution environment)라 불리는 플랫폼 위에서 위의 비교 작업이 일어나며, 결과의 선택은 밑에서 보게될 TMR과 같이 다수결의 답을 최종적으로 선택하는 방법
    • 열차선로선택 제어, 자동비행 제어 등에서 사용 [4]
  • OS차원에서의 다중화
    • 제어 Logic을 위에서 실행 시켜주는 운영체제들도 안정적 동작을 위해 내부적으로 Kernel 혹은, Kernel Extension 형태로 다중화 구현이 되어 있다.
    • Windows Embedded CE 6.0은, 안정적 운영에 절대로 중요한, 자체 OS관련 모듈들은 Kernel-mode영역에서, 그 밖에 모든 응용프로그램들은 user-mode 영역에서 실행 시키는 이중화 구조로 되어 있어 사용자 프로그램의 버그 등이 OS레벨에 악영향을 미치는 것을 차단 해 준다. [5]


Processor 다중화

 먼저 Processor를 다중화해서 이용가능성을 높힌다는 말은 역으로, Processor의 연산결과가 정확하지 않을 때가 있다는 무서운 사실을 전재로 하고 있다. Processor, 포괄적으로 우리 PC를 한 번 생각 해 보자. PC의 연산결과를 믿은 수 없다는 말은 다소 생소 할 수 있다. 하지만 사실 컴퓨터는 꽤나 많이 실수를 한다! 날이 너무 더워서 일 때도 있고 운영체제(OS)에 버그가 있어서 일 때도 있다. 아무튼, 사실 PC는 상당히 Fault-tolerant하게 설계 되어 있기 때문에 어지간해서는 실수를 우리에게 가시적으로 잘 들키지 않을 뿐이다. 예전 Windows OS에서의 끝장난 파란 화면(the 'blue-screen') 같은 것을 빼고 말이다.
아무튼 이런 PC내부의 Processor의 실수를 처리하기 위해 H/W와 S/W적인 방법[6]이 총 동원 되고 있는데, 단순한 에러검출 모니터링 차원을 넘어서 아예 이 Processor 자체를 다중화하겠다는게 바로 말 그대로 Processor 다중화이다. Processor 다중화 방식에 대해 살펴 보자.

n-level 방식


 August사와 Triconex사에 의해 지원 되는 방식으로, 홀수개의 Processor들이 동일입력에 대해 연산 한 후, 그 연산 결과를 다수결에 따라 결정하여 내보내는 방식으로, 과반수 미만의 Processor들에서 발생하는 연산에러를 걸러 주는 형식이다. 주로 3개의 Processor를 사용하는 TMR (Triple Modular Redundant)방식이 대표적이다.[7]

Pair-and-spare 방식

 둘로 구성된 짝(pair) Processor가 같은 입력을 받아 연산 하고 그 결과를 검사 하여 둘이 틀린 경우, 그 틀린 결과를 낸 Processor를 표시하여 수리 받게 한다. 이 방식은 ABB, Honeywell, Moore, Siemens, Yokogawa 등에 의해 지원된다.
 이 방식의 계량종인 HIQuad라는 것은 사중화로, 4개의 Processor를 사용하여 TMR과 일반적인 Pair-and-spare방식이 갖는 문제점을 해결하고 이 방식은 HIMA에서 사용한다고 한다.[8]

모듈/Network 다중화

 모듈/Network 다중화는 삼중,사중, 높을 수록 좋겠지만 시공과 유지보수에 엄청난 예산이 필요하므로 최대 이중화 까지가 일반적이다.
특히 다른 다중화레벨에서도 마찮가지지만 특별히 종종 이슈가 되는 한계가, 아래 그림에서 보는 바와 같이 'Total Failure' 상태, 즉, 다중화 되어 독립적으로 운영되는 각각의 경로(path) 구성 모듈중 일부가 동시에 문제를 발생 시켰을 때 시스템이 사용불능이 되는 것이다.

실재로 필자가 2007년에 SAS(Samsung Austin Semiconductor)공장의 UPW (Ultra-pure Water) 설비제어 시스템 프로젝트에 참여 할 당시 우리가 공급하는 이중화 시스템의 설계에 치명적 결함이 있다면서 미국인 담당자가 이 문제를 이슈화 했던 적이 있었다. 당시에는 구구절절히 이해 시키느라 적잖은 노력을 썼었는데, 이 'Total Failure'라는 용어 하나만 알았더라도 폼나게 상황을 진정 시킬 수 있었던 것이다!
이와 같은 한계를 경제적으로 극복하고자 고안 된 방법이 아래 그림과 같이 각 모듈간에 건널목을 연결 해서 문제의 모듈을 우회 할 수 있도록 해 주는 것이다.

주로 구성 모듈들이 H/W 구조적으로, 동일한 용도의 포트(port)가 둘이 있다던지 하는 식으로, 이런 연결을 지원 해 줘야 경재적인 고려 가능성이 있는 구성이다. 아래는 그 얘로, 3100-EMC (Emerson FX Drive Communications Interface) Module의 외형과 설치 구성도이다.

다중화 시스템 Spec 읽기

 지금까지 다중화 시스템의 구현 레벨들을 살펴 보았다. 지금까지의 내용을 이해 했다면 우리는 이제, 각 제어기 메이커들의 다중화지원 관련 된 전문적인 사양요약서나 시스템 시방서 등의 내용들을 이해 할 수 있을 것이다. 자고로, 한 번 보고 다 알 것만 같은 이유 없는 기분이 들 때는 문제를 꼭 풀어 봐야 하는 것이다!

AB GuardLogix, Rockwell Automation

In order to satisfy SIL 3 requirements, a Safety Partner, catalog number 1756-LSP, must be installed in the slot immediately to the right of the Primary Controller. The Safety Partner is a co-processor that provides redundancy for safety-related functions in the system.
The Safety Partner is configured by the Primary Controller. Only a single download of the user program to the primary controller is required. The Safety Partner’s operating mode is controlled by the Primary Controller.[9]
  위 인용문의 내용대로, AB GuardLogix 1756-LSP는 GuardLogix CPU의 Co-processor모듈로 Processor 이중화를 구현한다. 여기서 특이할 점은 모든 연산에 이 이중화모듈이 Primary와 더불어 연산에 참여하는 것이 아니라 Safety 관련함수들의 실행에만 참여한다는 것이다. 컴퓨터과학에서는 특정 연산이 '비싸다'(expensive)는 표현을 쓰는데 이는 목적연산이 필요 이상의 CPU time을 소모할 때를 말한다. 우회적으로 판단컨데 GuardLogix 구조에서는 일반 함수들을 이중화 Processor에서 돌리기엔 너무 비싼 것이다.[10]

S7-400H/F/HF, Siemens

The redundant structure of the S7-400H ensures availability at all times. This means all essential components are duplicated. This redundant structure includes the CPUs, the power supply modules, and the hardware for linking the two CPUs.[11]
  • S7-400F
    Fail-safe automation system.
    In the event of a fault in the control system, the production process is brought into a safe state and interrupted
  • S7-400FH
    Fail-safe and highly available automation system.
    In the event of a fault in the control system, redundant control components take over and the production process continues 
    [12]
  S7-400H series는 CPU/IO/연결HW 등, 핵심 모듈의 이중화를 지원한다.

RTP 3000, RTP Corp.

Multi-processor Architecture
Mobile Intel Celeron Processor-based (12msec Response Time)
5msec Scan Time, regardless of the size of application and amount of I/O points
Built-in Proof Test Software
Availability of 99.999999% (six 9s)
MBTF of greater than 2500 years

TUV approved SIL-3 [13]
 RTP 3000 series는 명실상부, 차세대 최강 시스템으로 아래 그림과 같이 입력에서 출력까지를 더 여러 단계로 구분 하여, Chassis Processor는 이중화를, Node Processor는 삼중화로 하는 Processor 다중화로 구성 되어 있다.
 다중화의 발걸음은 여기서 멈추지 않고 모듈/Network 다중화로 연결 되는데, 아래 그림과 같이, 삼중화 I/O Network을 구성하고 있다.
  그 결과, MBTF가 2500년 이상이라는 실로 놀라운 성능을 자랑 하고 있다.

시스템 시방서 예제

다음은 한 해외 고객의 시방서 중 다중화 요구 사항을 명기 해 놓은 부분이다:
In order to establish a high degree of system availability, the system shall be configured to prevent any failure with some redundancy equipments, to be proposed by the manufacturer in accordance with his standards. About redundancy in the PLC parts, a battery must be included and also a redundancy logic inside the controllerThe defective redundancy component should be removed from the system for repairs, while the system remains in service.
As a minimum, Supplier shall provide redundancy for the following specific components and applications:
  • All data communications networks
  • All system power supplies & redundant power feeds
  • Internal AND external power distribution for all processors
  • All control and/or monitoring processors
The system's redundancy scheme shall be such that failure of an element shall result inautomatic fail over of the element's functions to its backup without any loss of functionality or degradation of plant availability, and without upset to normal control, operator display, calculations, data acquisition, or any other normal PLC function. All such transfers shall be alarmed. The PLC configuration shall allow failed redundant elements to be replaced without affecting the active element of the redundant pair. At no time during processor replacement operation shall the process control, or interlocking be frozen or interrupted.
Where redundant or triple field measurements are provided for the same process variable, theredundant measurements shall be connected to different input cards. The failure of one I/O card shall not disable both protective and control functions of a system.

이 고객이 최소한으로 요구하고 있는 사항을 정리 하자면 다음과 같다:
  • Software 다중화
    • 제어로직
  • 모듈/Network 다중화
    • Processor & Power Supply 모듈
      • 보조독립전원 (e.g. UPS) 시스템 파생
    • 이더넷(PLC<-->PLC)과 Fieldbus(PLC<->Remote I/O) 모듈간의 네트웍 루프
      • 이더넷 & Fieldbus 모듈 다중화 파생
    • 전력 공급망
각 다중화 레벨에 맞춰 이 정도로 요약이 되면 요구에 맞는 시스템을 구성 하는데 문제가 없을 것이다. 참고로 오류시 자동절체(automatic fail over)라던지 전력공급중에 모듈을 바꿀 수 있는 무정전교체(hot swap)와 같은 기능들은 다중화를 지원하는 모듈들의 중요한 필수기능들이다. 

맺는 글

  지금까지 우리는 제어시스템 다중화의 레벨과 종류를 살펴 보고, 이들의 개념적 차이를 알아 봤다. 또한, 대표적인 제어시스템 공급업체들의 제품들을 살펴보면서 각 제품, 혹은, 시스템의 다중화 지원 정도를 제한적으로나마 살펴 볼 수 있는 기회를 갖았다.
이 글을 읽은 독자들이 앞으로 제어시스템의 어느 단계에서건 다중화와 관련된 시스템구성 설명을 접했을 때 해당내용이 어느 범주에 속하는지에 대한 감을 갖게 된다면 당초 이 글이 목표 했던바는 이루게 되는것이라 생각한다. 나름 확인 과정을 꼼꼼히 거쳤지만 틀렸거나 시대에 뒤떨어진 내용이 있다면 부디 지적해 주길 바란다.[끝]


note: 이 글은 새로운 내용이 입수/정리 되는데로 자주 갱신 될 것이기 때문에 가장 최신의 정보를 위해서 주기적으로 내용 확인이 필요 할 것이다. 만일 당신이 이 글에 대한 제안사항이나, 직접 추가/수정 하고 싶은 내용이 있다면 언제던지 환영이다.
(Related to: Programmable Controls)

Appendix A: 참고내용

[GuardLogix와 달리 ControlLogix는 모듈/Network 이중화만을 지원한다 [9] [13]]


[이중화된 CPU 모듈간의 정보 공유 [14]]

Appendix B: 용어 해설

  • Fault-tolerant vs. Fail-safe - A fail-safe system is one that cannot cause harm when it fails. A fault-tolerant system can continue to operate with faults, though its operation may be degraded in some fashion.
    Fault-tolerant: Parallel operation for reducing risk of production loss
    Fail-safe: Protect life, environment, and investment by safely disconnecting to a secure 'off' position
  • SIL - SIL, Safety Integrity Level, which is specified for a plant before the development of Safety System
    Specifications.
  • 1oo2D, 2oo3D - 'A out of B' Redundancy, 즉, B개의 신호 중 A개를 선별 하여 받아 들임을 의미 한다. 예로 2oo3D는 셋중 둘의 신호를 유효한 것으로 받아 들이는 TMR이 이에 해당 한다.

References

  1. High Availability Redundant Processing Architecture FAQs
    http://www.intel.com/network/csp/products/hafaq.htm
  2. redundant, Merriam-Webster Online Dictionary. 2009.
    http://www.merriam-webster.com/dictionary/redundant
  3. Allen-Bradley, Safety Networks
    http://www.ab.com/en/epub/catalogs/12762/2181376/2416247/360807/1837522/tab6.html
  4. N-version Programming
    http://en.wikipedia.org/wiki/N-version_programming
  5. Explore The New Features In Windows Embedded CE 6.0
    http://msdn.microsoft.com/en-us/magazine/cc163502.aspx
  6. Use Processor Redundancy for Maximum Reliability
    http://www.commsdesign.com/design_corner/showArticle.jhtml?articleID=16504011
  7. Triconex, TRICON Fault Tolerant Systems
    http://www.dia.uniroma3.it/autom/Reti_e_Sistemi_Automazione/PDFseminari/TRICON%20Fault%20Tolerant%20Systems.pdf
  8. Safety System의 이해
    http://www.brl.pe.kr/safetysys/safety%20system-1.htm
  9. GuardLogix Controller Systems
    http://www.indautomation.ru/downloads/ab/GuardLogix.pdf
  10. Difference between Triconex PLC & Other PLC
    http://www.control.com/thread/1026153895
  11. SIMATIC Fault-tolerant Systems S7-400H
    http://support.automation.siemens.com/WW/llisapi.dll/csfetch/1186523/S7-400H_en-US.pdf
  12. SIMATIC S7-400 F/FH Failsafe PLC
    https://www.sea.siemens.com/automat/product/plc/s74f/aus74fov.html
  13. RTP 3000 Critical Control and Safety System
    http://www.rtpcorp.com/documents/3000SISDatasheet_000.pdf
  14. Software Redundancy for SIMATIIC S7-300 and S7-400
    http://support.automation.siemens.com/WW/llisapi.dll?func=cslib.csinfo&lang=en&objid=1137637&caller=view
  15. ControlLogix Redundancy System
    http://samplecode.rockwellautomation.com/idc/groups/literature/documents/um/1756-um523_-en-p.pdf

tag:redundancy | tag:article
Comments