KR101558084B1 - 복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법 - Google Patents

복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법 Download PDF

Info

Publication number
KR101558084B1
KR101558084B1 KR1020140044648A KR20140044648A KR101558084B1 KR 101558084 B1 KR101558084 B1 KR 101558084B1 KR 1020140044648 A KR1020140044648 A KR 1020140044648A KR 20140044648 A KR20140044648 A KR 20140044648A KR 101558084 B1 KR101558084 B1 KR 101558084B1
Authority
KR
South Korea
Prior art keywords
cpu
backplane
module
access
count
Prior art date
Application number
KR1020140044648A
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 엘에스산전 주식회사
Priority to KR1020140044648A priority Critical patent/KR101558084B1/ko
Priority to US14/681,966 priority patent/US9940276B2/en
Priority to ES15163449.0T priority patent/ES2680622T3/es
Priority to CN201510277850.0A priority patent/CN105022333B/zh
Priority to EP15163449.0A priority patent/EP2933697B1/en
Priority to JP2015083356A priority patent/JP6055019B2/ja
Application granted granted Critical
Publication of KR101558084B1 publication Critical patent/KR101558084B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • 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/052Linking several PLC's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/12Plc mp multi processor system
    • G05B2219/1212Exchange control data between plc's only when other plc's are inactive

Abstract

복수의 CPU 모듈을 구비하는 PLC 시스템 및 제어방법이 개시된다. 본 발명의 제어방법은, 마스터 CPU 모듈에 의해 할당된 타임슬롯에 해당하는 카운트인 경우, 클럭신호를 확인하여 백플레인에 억세스하고, 클럭신호를 생성하며, 백플레인에 대한 억세스가 종료되는 시점에, 클럭신호의 생성을 종료한다.

Description

복수의 CPU 모듈을 구비하는 PLC 시스템 및 제어방법{PLC SYSTEM HAVING A PLURALITY OF CPU MODULES AND CONTROL METHOD THEREOF}
본 발명은 복수의 CPU 모듈을 구비하는 PLC 시스템 및 제어방법에 관한 것이다.
일반적으로 공장 자동화(Factory Automation; FA)에서 사용되는 모듈러 타입의 프로그램가능한 로직 콘트롤러(Programmable Logic Controller, PLC)에서는, 각 모듈간에 백플레인(Backplane)이라는 하나의 병렬회로를 통해 통신을 수행한다.
즉, 하나의 모듈에서 다른 모듈로 통신하기 위해 이 백플레인을 이용하게 되는데, 통신을 요청하는 모듈은 이 백플레인에 대한 제어권을 획득하여야 한다. 만약 제어권 없이 백플레인을 여러개의 모듈이 억세스하고자 하는 경우에는 신호의 충돌이 발생하여 정상적인 억세스가 불가능하다.
보통 통신을 요청하는 마스터(master) 모듈과 마스터 모듈의 요청에 응답하는 슬레이브(slave) 모듈간 통신에 있어, 공용자원에 대한 제어권은 일정한 규칙에 의해 토큰(token)을 발행하고, 소정 마스터가 토큰을 소유할 때(즉, 제어권을 가질 때) 억세스하는 방식으로 동작하지만, 이러한 규칙은 토큰 소유권의 결정을 위해 미리 정해 놓은 규칙에 따라 토큰을 주고 받는 시간 및 토큰 처리시간이 소요되므로, 실시간 제어에 있어 만족할 만한 성능을 구현하기 어려운 문제점이 있다.
도 1은 종래 멀티 마스터 시스템에서 토큰에 의해 제어권을 획득하는 방식을 설명하기 위한 일예시도이다.
도면에 도시된 바와 같이, 복수의 마스터(100~400)는 토큰이라고 하는 제어권을 라운드-로빈(round-robin) 형식으로 마스터(100~400)가 소유할 수 있다. 토큰을 소유하는 마스터는, 백플레인에 억세스하는 권한을 가지며, 백플레인을 통해 슬레이브 모듈에 억세스할 수 있다.
즉, 마스터가 슬레이브를 제어할 필요가 있는 경우, 마스터는, 자신이 토큰을 가지는지 확인하여, 토큰을 가지고 있는 경우 백플레인을 통해 슬레이브에 억세스하고, 토큰을 가지고 있지 않으면 슬레이브에 억세스하지 못하고 대기하게 된다. 토큰을 소유하게 된 이후에, 마스터는 슬레이브에 억세스하게 되며, 일정한 알고리즘에 따라 토큰을 다른 마스터에 넘겨준다.
도 1에서는 라운드-로빈 방식이 설명되었으나, 구현자의 일정한 규칙에 의해 다양한 방식으로 토큰을 송수신하는 것이 가능하다.
그러나, 이와 같은 방식은 토큰 제어 알고리즘 및 토큰 송수신 처리 시간이 소요되므로, 실시간성에 제약이 따르게 되는 문제점이 있다.
도 2는 종래 멀티 마스터 시스템에서 타임슬롯에 의해 제어권을 획득하는 방식을 설명하기 위한 일예시도로서, n개의 마스터가 시스템에 존재하는 경우를 나타낸 것이다.
도면에 도시된 바와 같이, 연속적인 시간을 마스터 갯수 또는 그 이상의 슬롯으로 배분하여, 마스터는 자신에게 할당된 시간에만 백플레인에 억세스하는 것이다.
마스터는 슬레이브를 제어할 필요가 있는 경우 자신에게 할당된 타임슬롯인지 확인하여 백플레인을 통해 억세스를 시작하고, 자신에게 할당되지 않는 타임슬롯 동안에는 대기하거나 일정 시간 이후 재시도(retry)하는 방식으로 동작한다.
이 방식은, 토큰을 직접적으로 주고 받지 않으므로, 처리 시간이 줄어도는 효과가 있으나, 각 마스터의 시간측정 오차에 의해 동시에 억세스를 시도할 수 있으므로, 충돌이 발생할 가능성이 있다.
즉, 복수의 마스터 시스템은 각자의 클럭에 의해 구동되므로, 클럭에 시간오차가 발생하는 경우, 이에 의해 동일한 시각에 클럭오류에 의해 충돌가능성이 발생한다.
본 발명이 해결하고자 하는 기술적 과제는, 복수의 CPU 모듈을 구비하는 PLC 시스템에서, 실시간으로 슬레이브 모듈에 억세스하기 위한 백플레인 제어권을 획득하는, PLC 시스템 및 제어방법을 제공하는 것이다.
상기와 같은 기술적 과제를 해결하기 위해, 본 발명의 일실시예의 프로그램가능한 로직 콘트롤러(PLC) 시스템은, 백플레인에 연결된 복수의 중앙처리장치(CPU) 모듈이 백플레인에 억세스 가능한 카운트를 나타내는 타임슬롯을 결정하고, 할당된 타임슬롯에 백플레인에 억세스하는 제1CPU 모듈; 및 상기 제1CPU에 의해 할당된 타임슬롯에 백플레인에 각각 억세스하는 복수의 제2CPU 모듈을 포함하고, 상기 제1 및 제2CPU 모듈은, 백플레인에 억세스한 경우 클럭신호를 생성하고, 상기 제1 및 제2CPU 모듈은, 백플레인에 억세스한 CPU 모듈이 생성하는 클럭신호를 검출하는 검출부를 각각 포함할 수 있다.
본 발명의 일실시예에서, 백플레인에 억세스하려는 CPU 모듈은, 상기 검출부에 의해 클럭신호가 검출되는 경우 백플레인에 억세스하지 않을 수 있다.
본 발명의 일실시예에서, 상기 제1CPU 모듈은, 상기 백플레인에 억세스한 CPU 모듈이 클럭신호의 생성을 중단한 경우, 타임슬롯의 카운트를 시작 카운트로 동기화할 수 있다.
본 발명의 일실시예에서, 상기 제1CPU 모듈은, 상기 제1CPU 모듈 및 상기 복수의 제2CPU 모듈의 개수와 특성을 고려하여 타임슬롯을 결정할 수 있다.
본 발명의 일실시예에서, 상기 제1CPU 모듈은, 상기 복수의 제2CPU 모듈에, 타임슬롯 최대 카운트, 타임슬롯 현재 카운트, 타임슬롯 시작 카운트 및 타임슬롯 종료 카운트를 각각 전송할 수 있다.
또한, 상기와 같은 기술적 과제를 해결하기 위해, 본 발명의 일실시예의 PLC 시스템 제어방법은, 백플레인에 연결된 복수의 CPU 모듈이 백플레인에 억세스 가능한 카운트를 나타내는 타임슬롯을 결정하는 단계; 할당된 타임슬롯에 해당하는 카운트인 경우, 클럭신호를 확인하는 단계; 백플레인에 억세스하는 단계; 및 백플레인에 대한 억세스가 종료되는 시점에, 카운트를 동기화하는 단계를 포함할 수 있다.
본 발명의 일실시예의 PLC 시스템 제어방법은, 할당된 타임슬롯에 해당하는 카운트에서, 클럭신호가 검출되는 경우, 백플레인에 억세스하지 않는 단계를 더 포함할 수 있다.
본 발명의 일실시예의 PLC 시스템 제어방법은, 다음 카운트에서의 타임슬롯에 백플레인에 억세스하기 위해 대기하는 단계를 더 포함할 수 있다.
본 발명의 일실시예의 PLC 시스템 제어방법은, 백플레인에 억세스하는 시점에 클럭신호를 생성하는 단계를 더 포함할 수 있다.
본 발명의 일실시예의 PLC 시스템 제어방법은, 백플레인에 대한 억세스가 종료되는 시점에 클럭신호의 생성을 종료하는 단계를 더 포함할 수 있다.
본 발명의 일실시예에서, 상기 타임슬롯은, 상기 백플레인에 연결된 복수의 CPU 모듈의 개수와 특성을 고려하여 결정될 수 있다.
또한, 상기와 같은 기술적 과제를 해결하기 위해, 본 발명의 일실시예의 PLC 시스템 제어방법은, 마스터 CPU 모듈에 의해 할당된 타임슬롯에 해당하는 카운트인 경우, 클럭신호를 확인하는 단계; 백플레인에 억세스하고, 클럭신호를 생성하는 단계; 및 백플레인에 대한 억세스가 종료되는 시점에, 클럭신호의 생성을 종료하는 단계를 포함할 수 있다.
본 발명의 일실시예의 PLC 시스템 제어방법은, 할당된 타임슬롯에 해당하는 카운트에서, 클럭신호가 검출되는 경우, 백플레인에 억세스하지 않는 단계를 더 포함할 수 있다.
본 발명의 일실시예의 PLC 시스템 제어방법은, 다음 카운트에서의 타임슬롯에 백플레인에 억세스하기 위해 대기하는 단계를 더 포함할 수 있다.
본 발명의 일실시예의 PLC 시스템 제어방법은, 클럭신호의 생성을 종료하는 경우, 상기 마스터 CPU 모듈이 카운트를 동기화할 수 있다.
상기와 같은 본 발명은, CPU 모듈 자신의 타임슬롯에 해당하여도 다른 CPU 모듈이 접속중인지를 확인함으로써 충돌을 회피할 수 있으며, 또한 마스터 CPU 모듈은, 어떤 CPU 모듈이 슬레이브 모듈에 대한 억세스를 종료하는 시점에 카운트를 동기화하여, 억세스를 위해 대기하는 시간을 줄일 수 있다.
도 1은 종래 멀티 마스터 시스템에서 토큰에 의해 제어권을 획득하는 방식을 설명하기 위한 일예시도이다.
도 2는 종래 멀티 마스터 시스템에서 타임슬롯에 의해 제어권을 획득하는 방식을 설명하기 위한 일예시도
도 3은 본 발명이 적용되는 프로그램가능한 로직 콘트롤러(PLC) 시스템을 개략적으로 설명하기 위한 구성도이다.
도 4는 도 3의 연결관계를 설명하기 위한 블럭도이다.
도 5는 도 3의 CPU0가 생성하여 CPU1, CPU2 및 CPU3에 전달하는 파라미터를 설명하기 위한 일예시도이다.
도 6는 CPU0가 생성한 타임슬롯을 설명하기 위한 일예시도이다.
도 7은 본 발명의 PLC 시스템의 제어방법을 설명하기 위한 일실시예 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
이하, 첨부된 도면을 참조하여, 종래의 멀티 마스터 시스템의 제어권 획득에 관하여 설명하고, 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.
도 3은 본 발명이 적용되는 프로그램가능한 로직 콘트롤러(PLC) 시스템을 개략적으로 설명하기 위한 구성도이고, 도 4는 도 3의 연결관계를 설명하기 위한 블럭도이다.
도 3에 도시된 바와 같이, 본 발명의 일실시예가 적용되는 PLC 시스템은, 복수의 슬롯(A)으로 구성되며, 이중 복수의 중앙처리장치(Central Processing Unit; CPU) 모듈(10, 20, 30, 40)이 소정 슬롯에 배치되고, 이 복수의 CPU 모듈(10, 20, 30, 40)에 의해 제어되는 다수의 슬레이브 모듈이 각각 CPU 모듈(10, 20, 30, 40) 근처의 슬롯에 배치될 수 있다.
이때, 슬레이브 모듈은, 예를 들어, 통신모듈, 입출력모듈, 카운터 모듈 등, 다양한 모듈을 포함할 수 있으며, 본 발명이 슬레이브 모듈의 종류에 제한되는 것은 아니다.
즉, CPU 모듈 0(10)의 근처의 슬롯에 해당 CPU0 모듈(10)의 슬레이브 모듈(11, 12)이 배치될 수 있으며, 다른 CPU 모듈(20, 30, 40) 역시, 그 근처에 각각의 슬레이브 모듈이 배치될 수 있을 것이다. 본 발명의 일실시예에서는, 하나의 CPU 모듈에 대응하는 슬레이브 모듈이 2개인 경우를 예를 들어 나타내었으나, 이에 한정되는 것은 아니며, 필요에 따라 슬레이브 모듈의 종류 및 갯수가 결정될 수 있음은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 자명하다 할 것이다.
설명의 편의를 위하여, 이하에서는, 'CPU 모듈 0'를 도면에서와 같이 'CPU0'라고 하기로 하고, CPU0(10)의 슬레이브 모듈을 S0_1(11), S0_2(12)라 하기로 한다. 마찬가지로, CPU1(20)의 슬레이브 모듈을 S1_1(21), S1_2(22)라 하고, CPU2(30)의 슬레이브 모듈을 S2_1(31), S2_2(32)라 하고, CPU3(40)의 슬레이브 모듈을 S3_1(41), S3_2(42)라 하기로 한다.
또한, CPU0(10)를 전 PLC 시스템을 제어하는 마스터 CPU 모듈로 정하고, 그 외 CPU1, 2, 3(20, 30, 40)를 버스 마스터 CPU 모듈로 하기로 한다. 다만, 본 발명이 이에 한정되는 것이 아님은 자명하다.
위에서 언급한 바와 같이, 하나의 PLC 시스템의 복수의 슬롯(A) 내에 배치되는 모듈은 백플레인을 통해 연결된다.
즉, 도 4는 이를 설명하기 위한 것으로서, 도 3의 예를 모식적으로 나타낸 것이다.
즉, CPU0(10), S0_1(11), S0_2(12), CPU1(20), S1_1(21), S1_2(22), CPU2(30), S2_1(31), S2_2(32) 및 CPU3(40), S3_1(41), S3_2(42)은 각각 백플레인(B)을 통해 연결되어 있음을 알 수 있다.
위와 같은 PLC 시스템에서, 복수의 CPU 모듈의 제어를 위해, 마스터 CPU 모듈인 CPU0(10)는 일정 시간에 따라 타임슬롯을 분배하되, 각 CPU 모듈은 자신의 타임슬롯에 해당하여도 무조건 백플레인(B)을 통해 슬레이브 모듈에 억세스하지 않고, 타임슬롯 시간에 다른 CPU 모듈의 억세스가 있는지 확인하는 방법으로 충돌을 회피하여, CPU 모듈이 백플레인(B)을 통해 슬레이브 모듈에 억세스하고, 각 CPU 모듈의 억세스가 종료되는 시점을 기준으로, 마스터 CPU 모듈이 타임슬롯의 카운트를 동기화하여, 원천적인 충돌을 회피하는 것이다. 이하, 상세하게 설명하기로 한다.
본 발명의 설명에서는, '백플레인(B)을 통해 슬레이브 모듈에 억세스'하는 것과, '백플레인(B)에 억세스'하는 것을 동일한 의미로 사용하는 것으로 한다.
도 3 및 도 4와 같은 PLC 시스템에 전원이 인가되면, CPU0(10)는 PLC 시스템 내에 존재하는 CPU 모듈의 개수를 확인하고, 타임슬롯을 결정하여 이를 CPU1(20), CPU2(30) 및 CPU3(40)에 전달할 수 있다. 이때, 타임슬롯은, CPU 모듈의 개수와 해당 CPU 모듈의 특성을 고려하여 결정될 수 있으며, 따라서 각 CPU 모듈에 할당되는 타임슬롯의 길이는, 동일할 수도 있고, 동일하지 않을 수도 있다.
도 5는 도 3의 CPU0가 생성하여 CPU1, CPU2 및 CPU3에 전달하는 파라미터를 설명하기 위한 일예시도이다.
도면에 도시된 바와 같이, 본 발명의 파라미터는, 타임슬롯 최대 카운트(5A), 타임슬롯 현재 카운트(5B), 타임슬롯 시작 카운트(5C), 및 타임슬롯 종료 카운트(5D)를 포함할 수 있다.
타임슬롯 최대 카운트(5A)는 각 CPU 모듈마다 할당된 타임슬롯의 크기를 합한 크기와 같거나 크게 설정되는 것이다.
타임슬롯 현재 카운트(5B)는 0부터 타임슬롯 최대 카운트까지 프리 러닝(free running)하는 것으로서, 각 CPU 모듈의 각각의 슬레이브 모듈에 대한 억세스가 끝나는 시점에 CPU0(10)이 0으로 동기화하며, 따라서, 0이 되는 순간이 모든 CPU 모듈이 동일하다.
타임슬롯 시작 카운트(5C)는 각 CPU 모듈이 백플레인(B)에 억세스 가능한 타임슬롯의 시점이고, 타임슬롯 종료 카운트(5D)는 각 CPU 모듈이 백플레인(B)에 억세스 가능한 타임슬롯의 종점을 나타낸다.
즉, CPU0(10)는 PLC 시스템이 온(ON) 또는 리셋(reset)되는 경우, 백플레인(B)에 접속되는 CPU 모듈(10~40)의 수와 특성을 확인하여, 각 CPU 모듈(10~40)이 억세스할 수 있는 타임슬롯을 설정하고, 타임슬롯 최대 카운트(5A)를 설정하고, 타임슬롯 시작 카운트(5C), 및 타임슬롯 종료 카운트(5D)를 설정할 수 있다.
이후, CPU0(10)는 타임슬롯 최대 카운트(5A), 타임슬롯 현재 카운트(5B), 타임슬롯 시작 카운트(5C), 및 타임슬롯 종료 카운트(5D)를 다른 CPU 모듈(20~40)에 전송할 수 있다. 타임슬롯 최대 카운트(5A) 및 타임슬롯 현재 카운트(5B)는 모든 CPU 모듈(10~40)에 대해 동일하고, 타임슬롯 시작 카운트(5C), 및 타임슬롯 종료 카운트(5D)는 각각의 CPU 모듈(10~40) 별로 상이하다.
예를 들어, CPU0(10)의 타임슬롯이 0 내지 9의 카운트이고, CPU1(20)은 10 내지 19 카운트, CPU2(30)는 20 내지 29 카운트, CPU3(40)은 30 내지 39 카운트에 해당하는 타임슬롯에서 각각 억세스 가능한 것으로 CPU0(10)설정할 수 있으며, 이때 CPU0(10)의 타임슬롯 시작 카운트(5C)는 0일 수 있고, 타임슬롯 종료 카운트(5D)는 9일 수 있다.
도 3과 같은 본 발명의 일실시예가 적용되는 PLC 시스템은 하나의 클럭을 공유한다. 따라서, 각 CPU 모듈(10~40)은 클럭을 검출하는 검출부를 포함할 수 있으며, PLC 시스템의 클럭에 따라, 각 CPU 모듈(10~40)은 클럭신호를 발생할 수도 있다.
도 6는 CPU0(10)가 생성한 타임슬롯을 설명하기 위한 일예시도이다.
위의 예를 다시 들면, (a)와 같이, CPU0(10)는 타임슬롯1(TS1)에, CPU1(20)은 타임슬롯2(TS2)에, CPU2(30)는 타임슬롯3(TS3)에, CPU3(40)은 타임슬롯4(TS4)에 각각 백플레인(B)을 통해 슬레이브 모듈로 억세스할 수 있는 것임을 나타낸다.
이때, CPU0(10)는 TS1에 해당하는 카운트에서 백플레인(B)을 통해 S0_1(11) 또는 S0_2(12)에 억세스할 수 있으며, 이때, 백플레인(B)을 통해 S0_1(11) 또는 S0_2(12)에 억세스한 CPU0(10)는 (b)와 같이 클럭신호를 생성할 수 있다.
나머지 CPU 모듈(20, 30, 40)은, 각각의 클럭신호 검출부를 통해 확인하여, PLC 시스템에 클럭신호가 있는 경우, 어떤 임의의 CPU 모듈이 백플레인(B)을 통해 슬레이브 모듈에 접속하고 있음을 알 수 있다.
즉, (c)와 같이, T1 카운트에 백플레인(B)을 통해 S0_1(11) 또는 S0_2(12)에 억세스한 CPU0(10)는 T2 카운트에 해당 억세스를 종료할 수 있다.
만약 CPU1(20)이 T2 카운트에 백플레인(B)을 통해 슬레이브 모듈에 접속하고자 하는 경우, 자신의 클럭신호 검출부를 통해 PLC 시스템의 클럭신호를 확인할 수 있다. T2 카운트에서 PLC 시스템에서 CPU1(20)은 CPU0(10)가 생성한 클럭신호를 확인할 수 있으므로, 해당 T2 카운트에서 백플레인(B)을 통해 접속이 불가능함을 확인하고, 다음의 타임슬롯에 억세스할 수 있도록 대기할 수 있다.
CPU0(10)는 T2 카운트에서 억세스를 종료하는 동시에 클럭신호의 생성을 종료한다. 이 경우, 본 발명의 PLC 시스템의 CPU0(10)는, T2 카운트에서 카운트를 동기화할 수 있다. 즉, (c)와 같이, T2에 해당하는 카운트에서 다시 0부터 카운트를 시작할 수 있다. 즉, TS1이 다시 처음부터 시작될 수 있다.
다만, 본 발명의 설명에서, 억세스를 종료하는 CPU 모듈과 카운트를 동기화하는 CPU 모듈을 동일한 것으로 하여 설명하였으나, 카운트를 동기화하는 CPU 모듈은 마스터 CPU 모듈인 CPU0(10)이고, 억세스를 종료하는 CPU 모듈은 모든 CPU 모듈에 해당한다고 할 수 있다.
자신의 순서를 기다리고 있던 CPU1(20)은, 동기화한 이후 다시 자신의 타임슬롯이 카운트되는 경우, T4(즉, 10) 카운트에 백플레인을 통해 슬레이브 모듈에 억세스할 수 있다. 슬레이브 모듈에 억세스한 CPU1(20)은 소정 클럭신호를 생성하며, 이 클럭신호를 확인한 다른 CPU 모듈은 백플레인(B)으로의 억세스를 하지 않고, 다음 자신의 타임슬롯이 카운트될 때까지 대기할 수 있다.
본 발명의 일예에서는 T5 카운트까지 CPU1(20)이 자신의 슬레이브 모듈에 억세스할 수 있으며, 도시되지는 않았으나, (c)와 같이 다시 카운트를 동기화하여 처음부터 타임슬롯을 다시 카운트할 수 있다.
이와 같은 본 발명에 의하면, CPU 모듈이 억세스가 종료되는 시점에서 카운트를 동기화함으로써, 다른 CPU 모듈의 대기시간을 줄일 수 있다. 예를 들어 (b)와 같은 경우, CPU0(10)가 억세스를 종료하여도 카운트를 동기화하지 않으면, CPU1(20)는 T6 카운트까지 자신의 타임슬롯을 기다려야 하지만, 본 발명에 의하면 그보다 빠른 시간인 T4에서 억세스가 가능하므로, 대기 카운트를 줄이게 할 수 있다.
도 7은 본 발명의 PLC 시스템의 제어방법을 설명하기 위한 일실시예 흐름도이다.
도면에 도시된 바와 같이, 본 발명의 PLC 시스템에서, 마스터 CPU 모듈인 CPU0(10)은, PLC 시스템이 온 또는 리셋되는 경우(S71), CPU 모듈의 수와 특성을 고려하여 각 CPU 모듈이 백플레인(B)을 통해 슬레이브 모듈에 억세스 가능한 카운트를 결정하는 타임슬롯을 결정할 수 있다(S72). 이때, CPU0(10)는, 타임슬롯 최대 카운트(5A), 타임슬롯 현재 카운트(5B)와, 각 CPU 모듈에 대한 타임슬롯 시작 카운트(5C) 및 타임슬롯 종료 카운트(5D)를 결정하여, 각 CPU 모듈에 전달할 수 있다.
이후, 슬레이브 모듈로부터 억세스가 요구된 CPU 모듈이, 예를 들어 CPU1(20)인 경우를 생각해보기로 한다. 다만, 본 발명의 동작이 CPU1(20) 만에 한정되는 것은 아니며, 다른 CPU 모듈에 적용될 수 있음은 자명하다.
CPU1(20)은, S1_1(21) 또는 S1_2(22)로부터 억세스의 요구가 있는 경우(S73), 현재 카운트가 자신의 타임슬롯에 해당하는 카운트인지 확인한다. 즉, 도 6에서 10 내지 20 카운트에 해당하는지 확인할 수 있다(S74).
S74의 확인 결과, 자신의 타임슬롯이 아닌 경우에는, 자신의 타임슬롯에 해당하게 될 때까지 소정 시간 대기할 수 있다(S76). 만약, 소정 시간이 경과하여도 자신의 타임슬롯에 해당하는 카운트에 도달하지 않는 경우에는, CPU1(20)은 억세스에 실패하였음을 알릴 수 있다(S77).
S74의 확인 결과, 자신의 타임슬롯인 경우, 즉, 현재 카운트가 10 내지 20 카운트에 해당하는 경우, 클럭신호가 존재하는지 확인할 수 있다(S75). 이러한 확인은, 현재 클럭신호가 생성되고 있는지를, CPU1(20)에 포함되는 클럭신호 검출부가 검출함으로써 이루어질 수 있다. 즉, 예를 들어, 현재 카운트에서 CPU2(30)가 백플레인(B)을 통해 억세스하고 있는 경우에는, CPU2(30)는 클럭신호를 생성하는데, CPU1(20)의 클럭신호 검출부는 이를 확인하고, CPU1(20)은 현재 카운트에 백플레인(B)에 접근할 수 없는 것으로 결정하고, 다음 자신의 타임슬롯에 해당하게 소정 시간 대기할 수 있다(S76). 만약, 소정 시간이 경과하여도 자신의 트임슬롯에 해당하는 카운트에 도달하지 않는 경우에는, CPU1(20)은 억세스에 실패하였음을 알릴 수 있다(S77).
자신의 타임슬롯에 해당하고 발생되고 있는 클럭신호가 없는 경우, CPU1(20)은 백플레인(B)을 통해 S1_1(21) 또는 S1_2(22)에 억세스할 수 있다(S78). 이와 동시에, CPU1(20)은 클럭신호를 생성하여, 현재 백플레인(B)을 통해 슬레이브 모듈에 억세스하고 있음을 알릴 수 있다(S79). S79과 S79는 순차적인 관계로 도시되어 있으나, 설명의 편의를 위한 것으로서, 동시에 수행되는 관계임은, 위에서 설명한 바에 의해 자명하다 할 수 있다. 다만, 본 발명의 일실시예에서, CPU1(20)의 클럭신호의 생성이, 백플레인(B)을 통한 슬레이브 모듈과 동시에 이루어지는 것에만 한정되는 것은 아니다.
S79의 클럭신호의 생성은, 백플레인(B)을 통해 슬레이브 모듈에 억세스하는 동안 지속적으로 수행될 수 있다.
이후, CPU1(20)은, 억세스를 종료하는 경우(S80), 이와 동시에 클럭신호의 생성을 중단하고(S81), PLC 시스템의 CPU0(10)는, 클럭신호가 중단되는 시점에서 카운트를 동기화하여, 동기화한 카운트를 각 CPU 모듈에 전달할 수 있다(S81).
이와 같이, 본 발명은, CPU 모듈 자신의 타임슬롯에 해당하여도 다른 CPU 모듈이 접속중인지를 확인함으로써 충돌을 회피할 수 있으며, 또한 마스터 CPU 모듈은, 어떤 CPU 모듈이 슬레이브 모듈에 대한 억세스를 종료하는 시점에 카운트를 동기화하여, 억세스를 위해 대기하는 시간을 줄일 수 있다.
이상에서 본 발명에 따른 실시예들이 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.
10, 20, 30, 40: CPU 모듈
11, 12, 21, 22, 31, 32, 41, 42: 슬레이브 모듈

Claims (15)

  1. 백플레인에 연결된 복수의 중앙처리장치(CPU) 모듈이 백플레인에 억세스 가능한 카운트를 나타내는 타임슬롯을 결정하고, 할당된 타임슬롯에 백플레인에 억세스하는 제1CPU 모듈; 및
    상기 제1CPU에 의해 할당된 타임슬롯에 백플레인에 각각 억세스하는 복수의 제2CPU 모듈을 포함하고,
    상기 제1 및 제2CPU 모듈은, 백플레인에 억세스한 경우 클럭신호를 생성하고,
    상기 제1 및 제2CPU 모듈은, 백플레인에 억세스한 CPU 모듈이 생성하는 클럭신호를 검출하는 검출부를 각각 포함하는 프로그램가능한 로직 콘트롤러(PLC) 시스템.
  2. 제1항에 있어서, 백플레인에 억세스하려는 CPU 모듈은,
    상기 검출부에 의해 클럭신호가 검출되는 경우 백플레인에 억세스하지 않는 PLC 시스템.
  3. 제1항에 있어서, 상기 제1CPU 모듈은,
    상기 백플레인에 억세스한 CPU 모듈이 클럭신호의 생성을 중단한 경우, 타임슬롯의 카운트를 시작 카운트로 동기화하는 PLC 시스템.
  4. 제1항에 있어서, 상기 제1CPU 모듈은,
    상기 제1CPU 모듈 및 상기 복수의 제2CPU 모듈의 개수와 특성을 고려하여 타임슬롯을 결정하는 PLC 시스템.
  5. 제1항에 있어서, 상기 제1CPU 모듈은,
    상기 복수의 제2CPU 모듈에, 타임슬롯 최대 카운트, 타임슬롯 현재 카운트, 타임슬롯 시작 카운트 및 타임슬롯 종료 카운트를 각각 전송하는 PLC 시스템.
  6. 복수의 CPU 모듈을 구비하되, 상기 복수의 CPU 모듈 중 하나는 마스터 CPU 모듈인 PLC 시스템을 제어하는 방법에 있어서,
    상기 마스터 CPU 모듈이 백플레인에 연결된 복수의 CPU 모듈이 상기 백플레인에 억세스 가능한 카운트를 나타내는 타임슬롯을 결정하는 단계;
    상기 복수의 CPU 모듈 중 자신과 연결된 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈이 자신의 현재 카운트가 상기 마스터 CPU 모듈에 의해 할당된 타임슬롯에 해당하는 카운트인 경우, 상기 백플레인을 통해 다른 CPU 모듈에 의해 생성된 클럭신호가 존재하는지를 확인하는 단계;
    상기 클럭신호가 존재하는지를 확인한 결과, 클럭신호가 존재하는 않는 것으로 판단하면, 상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈이 백플레인에 억세스하는 단계; 및
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈이 상기 백플레인에 대한 억세스가 종료되는 시점에, 상기 마스터 CPU 모듈이 카운트를 동기화하는 단계를 포함하는 PLC 시스템 제어방법.
  7. 제6항에 있어서,
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈은 할당된 타임슬롯에 해당하는 카운트에서, 클럭신호가 검출되는 경우, 상기 백플레인에 억세스하지 않는 단계를 더 포함하는 PLC 시스템 제어방법.
  8. 제7항에 있어서,
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈은 다음 카운트에서의 타임슬롯에 상기 백플레인에 억세스하기 위해 대기하는 단계를 더 포함하는 PLC 시스템 제어방법.
  9. 제6항에 있어서,
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈은 상기 백플레인에 억세스하는 시점에 클럭신호를 생성하는 단계를 더 포함하는 PLC 시스템 제어방법.
  10. 제9항에 있어서,
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈은 상기 백플레인에 대한 억세스가 종료되는 시점에 클럭신호의 생성을 종료하는 단계를 더 포함하는 PLC 시스템 제어방법.
  11. 제6항에 있어서, 상기 마스터 CPU 모듈은 상기 백플레인에 연결된 복수의 CPU 모듈의 개수와 특성을 고려하여 상기 타임슬롯을 결정하는 PLC 시스템 제어방법.
  12. 백플레인을 통해 연결되는 복수의 CPU 모듈을 구비하되, 상기 복수의 CPU 모듈 중 하나는 마스터 CPU 모듈인 PLC 시스템을 제어하는 방법에 있어서,
    상기 복수의 CPU 모듈 중 자신과 연결된 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈이 자신의 현재 카운트가 상기 마스터 CPU 모듈에 의해 할당된 타임슬롯에 해당하는 카운트인 경우, 상기 백플레인을 통해 다른 CPU 모듈에 의해 생성된 클럭신호가 존재하는지를 확인하는 단계;
    클럭신호가 존재하는 않는 것으로 판단하면, 상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈이 상기 백플레인에 억세스하고, 클럭신호를 생성하는 단계; 및
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈이 상기 백플레인에 대한 억세스가 종료되는 시점에, 클럭신호의 생성을 종료하는 단계를 포함하는 PLC 시스템 제어방법.
  13. 제12항에 있어서,
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈은 할당된 타임슬롯에 해당하는 카운트에서, 클럭신호가 검출되는 경우, 상기 백플레인에 억세스하지 않는 단계를 더 포함하는 PLC 시스템 제어방법.
  14. 제13항에 있어서,
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈은 다음 카운트에서의 타임슬롯에 상기 백플레인에 억세스하기 위해 대기하는 단계를 더 포함하는 PLC 시스템 제어방법.
  15. 제12항에 있어서,
    상기 슬레이브 모듈로부터 억세스의 요구가 있는 것으로 판단한 CPU 모듈이 클럭신호의 생성을 종료하는 경우, 상기 마스터 CPU 모듈이 카운트를 동기화하는 PLC 시스템 제어방법.
KR1020140044648A 2014-04-15 2014-04-15 복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법 KR101558084B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020140044648A KR101558084B1 (ko) 2014-04-15 2014-04-15 복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법
US14/681,966 US9940276B2 (en) 2014-04-15 2015-04-08 PLC system having a plurality of CPU modules and control method thereof
ES15163449.0T ES2680622T3 (es) 2014-04-15 2015-04-14 Sistema de PLC que tiene una pluralidad de módulos de CPU y método de control del mismo
CN201510277850.0A CN105022333B (zh) 2014-04-15 2015-04-14 具有多个cpu模块的plc系统及其控制方法
EP15163449.0A EP2933697B1 (en) 2014-04-15 2015-04-14 Plc system having a plurality of cpu modules and control method thereof
JP2015083356A JP6055019B2 (ja) 2014-04-15 2015-04-15 複数のcpuモジュールを備えるplcシステム及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140044648A KR101558084B1 (ko) 2014-04-15 2014-04-15 복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법

Publications (1)

Publication Number Publication Date
KR101558084B1 true KR101558084B1 (ko) 2015-10-06

Family

ID=53016464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140044648A KR101558084B1 (ko) 2014-04-15 2014-04-15 복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법

Country Status (6)

Country Link
US (1) US9940276B2 (ko)
EP (1) EP2933697B1 (ko)
JP (1) JP6055019B2 (ko)
KR (1) KR101558084B1 (ko)
CN (1) CN105022333B (ko)
ES (1) ES2680622T3 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641094A (zh) * 2021-07-06 2021-11-12 江苏徐工工程机械研究院有限公司 预防工程机械控制器失效的安全系统及工程机械

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5984029B1 (ja) * 2015-12-24 2016-09-06 パナソニックIpマネジメント株式会社 ドアホンシステムおよび通信制御方法
JP6772748B2 (ja) * 2016-10-14 2020-10-21 オムロン株式会社 演算装置および制御システム
TWI647554B (zh) * 2018-02-09 2019-01-11 凱立自動化有限公司 Tandem signal transmission control module
CN109445516A (zh) * 2018-09-27 2019-03-08 北京中电华大电子设计有限责任公司 一种应用于双核SoC中外设时钟控制方法及电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023740A (en) 1995-07-11 2000-02-08 Nokia Telecommunications Oy Handling interrupts in a synchronous environment
US6799234B1 (en) 2001-10-27 2004-09-28 Cisco Technology, Inc. Apparatus and method for randomly assigning slots in a PCI backplane
KR100495879B1 (ko) 2002-12-27 2005-06-16 엘지전자 주식회사 다중 디바이스 제어시스템 및 그 제어방법

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4199661A (en) 1978-05-05 1980-04-22 Control Data Corporation Method and apparatus for eliminating conflicts on a communication channel
US4937777A (en) 1987-10-07 1990-06-26 Allen-Bradley Company, Inc. Programmable controller with multiple task processors
AUPM457694A0 (en) 1994-03-21 1994-04-14 Gerard Industries Pty Ltd Home and building electrical control protocol
US6141769A (en) * 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
DE10144070A1 (de) 2001-09-07 2003-03-27 Philips Corp Intellectual Pty Kommunikationsnetzwerk und Verfahren zur Steuerung des Kommunikationsnetzwerks
US7336700B2 (en) * 2001-09-20 2008-02-26 Lockheed Martin Corporation System bus transceiver interface
EP1622794A1 (en) 2003-05-06 2006-02-08 Philips Intellectual Property & Standards GmbH Timeslot sharing over different cycles in tdma bus
DE102005061392A1 (de) 2005-12-22 2007-06-28 Robert Bosch Gmbh Bus-Guardian eines Teilnehmers eines Kommunikationssystems, sowie Teilnehmer für ein Kommunikationssystem
US7809025B2 (en) * 2006-09-29 2010-10-05 Hewlett-Packard Development Company, L.P. System and method for distributing clock signals
CN101621714B (zh) 2008-06-30 2013-06-12 华为技术有限公司 节点、数据处理系统和数据处理方法
US8135893B2 (en) * 2008-09-12 2012-03-13 Honeywell International, Inc. System, apparatus and method for granting access to a shared communications bus
US20110208885A1 (en) * 2010-02-25 2011-08-25 Panasonic Corporation Data bus control method and apparatus
JP5411835B2 (ja) 2010-11-17 2014-02-12 株式会社日立製作所 プログラマブルコントローラ、および、通信制御方法
US20130254584A1 (en) 2010-12-16 2013-09-26 Mitsubishi Electric Corporation Sequencer system and control method therefor
CN103597416A (zh) 2011-06-09 2014-02-19 三菱电机株式会社 可编程控制器系统
CN103116564B (zh) 2013-03-11 2015-06-24 武汉邮电科学研究院 一种时隙复用的单条双向背板总线及其冗余保护方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023740A (en) 1995-07-11 2000-02-08 Nokia Telecommunications Oy Handling interrupts in a synchronous environment
US6799234B1 (en) 2001-10-27 2004-09-28 Cisco Technology, Inc. Apparatus and method for randomly assigning slots in a PCI backplane
KR100495879B1 (ko) 2002-12-27 2005-06-16 엘지전자 주식회사 다중 디바이스 제어시스템 및 그 제어방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641094A (zh) * 2021-07-06 2021-11-12 江苏徐工工程机械研究院有限公司 预防工程机械控制器失效的安全系统及工程机械
CN113641094B (zh) * 2021-07-06 2024-02-02 江苏徐工工程机械研究院有限公司 预防工程机械控制器失效的安全系统及工程机械

Also Published As

Publication number Publication date
ES2680622T3 (es) 2018-09-10
CN105022333A (zh) 2015-11-04
JP6055019B2 (ja) 2016-12-27
EP2933697A1 (en) 2015-10-21
US9940276B2 (en) 2018-04-10
CN105022333B (zh) 2018-01-16
US20150293866A1 (en) 2015-10-15
EP2933697B1 (en) 2018-06-06
JP2015204117A (ja) 2015-11-16

Similar Documents

Publication Publication Date Title
KR101558084B1 (ko) 복수의 cpu 모듈을 구비하는 plc 시스템 및 제어방법
US4570257A (en) Communication system with slot time error detection
US4677612A (en) Communication system with subdivided transmission cycles
US4581734A (en) Multipriority communication system
EP3261295B1 (en) Industry internet field broadband bus architecture system
JP4241343B2 (ja) 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
KR0155269B1 (ko) 버스 중재방법 및 그 장치
EP0172884B1 (en) Multipriority communication system
CN102347878A (zh) 一种多点通信系统、方法及设备
US20070220296A1 (en) Data processing apparatus
CN109586978B (zh) 总线拓扑网络自组网方法
JPS5824061B2 (ja) デ−タ通信制御方式
JPS5818727A (ja) 分散形優先競合の自己制御方法および装置
JPS58119069A (ja) 分散型競合制御システム
KR0120012B1 (ko) 송신버스 점유 예약방법
KR102589284B1 (ko) 고속통신기반의 전력변환장치용 제어장치
JPS5840215B2 (ja) システム同期方式
JP4152387B2 (ja) バスシステム
JP2006148815A (ja) シリアルバス使用権の分散調停方法、ノード、プログラム
JP3699529B2 (ja) バス制御装置
JPS5940741A (ja) ロ−カルネツトワ−クアクセス方式
JPH01192239A (ja) 通信回線におけるポーリング方式
KR101127663B1 (ko) 멀티 마스터를 지닌 백플래인에서 마스터의 접근 권한을 관리하는 장치 및 방법과 이를 이용한 백플래인 시스템
JPS636186B2 (ko)
JPH06131307A (ja) マルチcpuシステムにおける負荷分散方式

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190701

Year of fee payment: 5