KR102494296B1 - 프로그래머블 컨트롤러 시스템 및 모듈 - Google Patents

프로그래머블 컨트롤러 시스템 및 모듈 Download PDF

Info

Publication number
KR102494296B1
KR102494296B1 KR1020200124879A KR20200124879A KR102494296B1 KR 102494296 B1 KR102494296 B1 KR 102494296B1 KR 1020200124879 A KR1020200124879 A KR 1020200124879A KR 20200124879 A KR20200124879 A KR 20200124879A KR 102494296 B1 KR102494296 B1 KR 102494296B1
Authority
KR
South Korea
Prior art keywords
synchronization
module
correction
self
cycle
Prior art date
Application number
KR1020200124879A
Other languages
English (en)
Other versions
KR20210064039A (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 KR20210064039A publication Critical patent/KR20210064039A/ko
Application granted granted Critical
Publication of KR102494296B1 publication Critical patent/KR102494296B1/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
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • 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
    • 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/15Plc structure of the system
    • G05B2219/15049Timer, counter, clock-calendar, flip-flop as peripheral

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Programmable Controllers (AREA)

Abstract

본 발명은 프로그래머블 컨트롤러 시스템을 구성하는 각 모듈의 셀프 모듈 주기를 동기시킬 수 있는 프로그래머블 컨트롤러 시스템을 제공하는 것을 과제로 한다.
베이스 보드(B1)와, 베이스 보드에 접속된 복수의 모듈(M1∼M6)을 구비하는 프로그래머블 컨트롤러 시스템(SYS)에서, 복수의 모듈은 각각, 개별 클록을 생성하는 개별 클록 생성부(CL1∼CL6)와, 개별 클록 생성부에 의해 생성된 개별 클록으로부터 셀프 모듈 주기를 생성하는 카운터부(Co1∼Co6)와, 동기 제어부로부터 출력된 동기 개시 신호에 기초하는 동기 기준점과, 셀프 모듈 주기에 기초하여, 셀프 모듈 주기의 어긋남량을 산출하고, 산출된 어긋남량에 기초하여, 셀프 모듈 주기를 보정하는 동기 보정부(SY1∼SY6)를 구비하는 구성으로 했다.

Description

프로그래머블 컨트롤러 시스템 및 모듈{PROGRAMMABLE CONTROLLER SYSTEM AND MODULE}
본 발명은 프로그래머블 컨트롤러 시스템 및 모듈에 관한 것이다.
최근, 프로그래머블 컨트롤러(「PLC」라고도 함) 시스템은, 고성능화, 고기능화함과 더불어 적용 분야가 넓어지고 있고, 사용자의 필요성도 다종 다양해지고 있다. 프로그래머블 컨트롤러 시스템 및 프로그래머블 컨트롤러 시스템을 이용한 장치의 고성능화, 고기능화에 대응하기 위해, PLC를 사용하는 제어 방법으로서, 예측 제어 등의 고도의 제어 이론에 의한 제어 방법이 채용되고 있다. 또한, 프로그래머블 컨트롤러 시스템의 제어 연산을 행하는 CPU(Central Processing Unit) 모듈의 연산 성능 향상에 의한 대응이 이루어지고 있다.
이러한 프로그래머블 컨트롤러 시스템으로서 복수의 모듈(유닛)로 구성되는 제어 장치의 유닛 사이에서 제어 타이밍의 기초가 되는 시각을 동기하여, 프로그래머블 컨트롤러 시스템 전체적으로 성능을 향상시키는 기술이 알려져 있다(예컨대, 특허문헌 1 참조). 특허문헌 1에 기재된 각 모듈은, 클록 생성부에 의해 생성되는 펄스에 기초하여 스캔을 실행하고 있다. 원래, 동등한 구성, 동등한 성능으로 동작하는 기기의 경우, 스캔 동작도 동일해진다.
그러나, 전원 투입의 시간의 차이나 CPU 모듈의 초기화 내용의 차이 등에 의해, 스캔 타이밍이 어긋날 가능성이 있다. 클록 생성부에 의해 생성되는 펄스는 어떠한 것이라도 상관없지만, 통상은 수정 발진자 등에 의해 공급되는 안정된 신호이며, 이후의 설명에서는 클록 펄스로 기술한다.
따라서, 특허문헌 1에 기재된 프로그래머블 컨트롤러 시스템에서는, 베이스 보드에 접속된 각 모듈의 기준 클록은, 베이스 보드에 배치된 동기 제어 회로에 의해 기준 클록이 동기되어 있다. 특허문헌 1에 기재된 프로그래머블 컨트롤러 시스템에서는, 각 모듈의 기동 개시 후, 모든 모듈의 기준 시각의 동기가 이루어지고 있다.
특허문헌 1 : 국제 공개 제2012/081115호
그러나, 각 모듈의 일부가 상이한 정수배의 주기로 일부 모듈의 기동 개시 시각에 지연이 발생한 경우나, 일부 모듈을 나중에 기동시켜 동기하고자 한 경우에, 당초부터 존재하는 상이한 정수배의 주기로 운용하는 모듈과, 나중에 기동된 모듈의 관계에서, 기준 시각의 기점이 일치하지 않는 상황이 발생하는 문제가 있다.
본 발명은 이러한 점을 감안하여 이루어진 것으로, 프로그래머블 컨트롤러 시스템을 구성하는 각 모듈의 셀프 모듈 주기를 동기시킬 수 있는 프로그래머블 컨트롤러 시스템을 제공하는 것을 목적의 하나로 한다.
본 실시형태의 프로그래머블 컨트롤러 시스템은, 그 일양태에서는, 베이스 보드와, 상기 베이스 보드에 접속된 복수의 모듈을 구비하는 프로그래머블 컨트롤러 시스템으로서, 상기 베이스 보드는, 상기 복수의 모듈의 동기를 제어하는 동기 제어부를 구비하고, 상기 복수의 모듈은 각각, 개별 클록을 생성하는 개별 클록 생성부와, 상기 개별 클록 생성부에 의해 생성된 상기 개별 클록으로부터 셀프 모듈 주기를 생성하는 카운터부와, 상기 동기 제어부로부터 출력된 동기 개시 신호에 기초하는 동기 기준점과, 상기 셀프 모듈 주기에 기초하여, 상기 셀프 모듈 주기의 어긋남량을 산출하고, 상기 산출된 어긋남량에 기초하여, 상기 셀프 모듈 주기를 보정하는 동기 보정부를 구비하는 것을 특징으로 하고 있다.
본 발명에 의하면, 프로그래머블 컨트롤러 시스템을 구성하는 각 모듈의 셀프 모듈 주기를 동기시킬 수 있는 프로그래머블 컨트롤러 시스템을 제공할 수 있다.
도 1은 본 실시형태의 프로그래머블 컨트롤러 시스템의 구성을 도시하는 도면이다.
도 2는 PLC 시스템의 기능 구성의 일례를 도시하는 도면이다.
도 3은 제1 CPU 모듈∼제6 CPU 모듈과 베이스 보드의 사이에서 통지되는 정보의 타이밍차트의 일례를 도시하는 도면이다.
도 4는 동기 개시 신호를 접수한 제1 CPU 모듈∼제6 CPU 모듈이 동기 불일치 상태로부터 동기 상태로 이행하는 상태를 도시하는 도면이다.
도 5는 PLC 시스템을 구성하는 제1 CPU 모듈, 제2 CPU 모듈, 베이스 보드 사이에서 실행되는 동기 보정 처리의 시퀀스차트의 일례를 도시하는 도면이다.
도 6은 제1 CPU 모듈이 실행하는 동기 보정 처리의 일례를 도시하는 플로우차트이다.
도 7은 동기 보정 실행 처리의 일례를 도시하는 플로우차트이다.
이하, 본 발명의 일실시형태(이하, 「실시형태」로 약기함)에 관해 상세히 설명한다. 또, 본 발명은, 이하의 실시형태에 한정되는 것이 아니라, 그 취지의 범위 내에서 다양하게 변형하여 실시할 수 있다.
도 1은, 본 실시형태의 프로그래머블 컨트롤러 시스템의 구성을 도시하는 도면이다. 프로그래머블 컨트롤러(이하, 「PLC」이라고 함) 시스템(SYS)은, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6), 커넥터(K1∼K6), 베이스 보드(B1)를 포함하여 구성된다.
제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)은, 커넥터(K1∼K6)를 통해 베이스 보드(B1) 상의 버스(도시하지 않음)를 통해 접속된다. 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)을 특별히 구별하여 설명하지 않는 경우에는, 이하「모듈(M)」이라고 부른다.
도 2는 PLC 시스템의 기능 구성의 일례를 도시하는 도면이다. 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)은 각각, 프로세서(P1∼P6), 인터럽트 제어부(W1∼W6), 개별 클록 생성부(CL1∼CL6), 카운터부(Co1∼Co6), 전원 제어부(Pa1∼Pa6), 동기 보정부(SY1∼SY6)를 구비한다. 베이스 보드(B1)는, 동기 제어부(BSY1) 및 기준 클록 생성부(BCL1)를 구비한다.
제1 CPU 모듈(M1) 및 제2 CPU 모듈(M2)은, 사용자의 애플리케이션을 실행하는 애플리케이션 실행 기능을 갖춘다. 제3 CPU 모듈(M3) 및 제4 CPU 모듈(M4)은, IO 버스 내장 CPU 모듈이라고도 불리며, IO 버스 기능 및 애플리케이션 실행 기능을 갖춘다. IO 버스 기능은, 자신이 가지고 있는 리모트 네트워크의 사이에서 일정한 주기로 통신을 행한다. 제5 CPU 모듈(M5) 및 제6 CPU 모듈(M6)은, IO 버스 마스터 모듈이라고도 불리며, IO 버스 기능을 갖춘다. 각 모듈(M)은, 기타 입력 모듈이나 출력 모듈 등, 여러가지 모듈을 동기 대상으로 해도 좋다.
개별 클록 생성부(CL1∼CL6)는, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)에서 실행하는 셀프 모듈 주기의 개별 클록을 생성한다. 카운터부(Co1∼Co6)는, 개별 클록 생성부(CL1∼CL6)에 의해 생성된 개별 클록으로부터 셀프 모듈 주기를 생성한다. 또한, 카운터부(Co1∼Co6)는, 개별 클록 생성부(CL1∼CL6)에 의해 생성된 개별 클록치를 카운트하여 카운트치로서 유지한다. 본 실시형태에서는, 개별 클록 생성부(CL1∼CL6)는, 미리 정해진 주파수의 수정을 이용하여 임의의 주기의 펄스를 생성하여 출력한다. 각 개별 클록 생성부(CL1∼CL6)의 수정의 수정 진동자 오차(PPM 오차)는 불균일하고 온도에 따라서도 클록 주파수가 변하여 일정하지 않기 때문에, 각 모듈(M)마다의 셀프 모듈 주기는 서서히 어긋난다. 개별 클록 생성부(CL1∼CL6)가 생성하는 개별 시각의 셀프 모듈 주기의 개별 클록은 임의의 값이면 상관없지만, 본 실시형태에서는, 개별 클록 생성부(CL1∼CL6)는, 1 MHz의 수정을 이용하여 100 μs 주기의 펄스를 생성하고 있다.
프로세서(P1∼P6)는, 일정한 주기로 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)이 갖춘 개별 기능을 각각 실행한다. 프로세서(P1∼P6)는, PLC 시스템(SYS)의 입력 신호를 취득하여, 입력 데이터로서 통지하는 입력 기능이나, 이들 입력 데이터를 접수하고 연산하여 연산 결과를 출력 데이터로서 통지하는 애플리케이션 실행 기능이나, 출력 데이터를 수취하여, 디지털 또는 아날로그 신호로서 출력하는 출력 기능 등을 실행해도 좋다. 프로세서(P1∼P6)는, 필요에 따라서 모듈 사이를 접속하는 버스 기능이나 외부 메모리나 입력 회로 혹은 출력 회로 등을 함께 갖춰도 좋다.
전원 제어부(Pa1∼Pa6)는, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 전원 상태(SY_P1∼SY_P6)를 베이스 보드(B1) 상에 배치된 동기 제어부(BSY1)에 통지한다. 전원 상태(SY_P1∼SY_P6)는, 자신의 모듈(M)의 전원 상태를 베이스 보드(B1)의 동기 제어부(BSY1)에 대하여 통지하는 정보이며, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 보정부(SY1∼SY6)의 전원 투입시에 통지된다. 전원 상태(SY_P1∼SY_P6)는, 예컨대 1 bit로 구성되는 정보이며, 초기 상태에서는「0」(오프)이 되어 있고, 전원 제어부(Pa1∼Pa6)는, 자신의 모듈(M)의 전원이 투입된 경우에는「1」(온)을 통지한다.
프로세서(P1∼P6)는, 동기 필요 여부에 따라서 동기 보정부(SY1∼SY6)에 대하여 동기 대상인지 아닌지를 나타내는 동기 설정을 동기 개시 요구 레지스터 및 동기 설정 레지스터를 이용함으로써 행하여, 모듈 개별의 기동 완료시 등의 타이밍에 동기 개시 요구를 행한다.
동기 보정부(SY1∼SY6)는, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 설정 상태(SY_EN1∼SY_EN6)를 동기 설정 레지스터를 이용하여 베이스 보드(B1) 상에 배치된 동기 제어부(BSY1)에 통지한다.
동기 설정 상태 레지스터는, 자신의 모듈(M)이 동기 대상인지 아닌지를 베이스 보드(B1)의 동기 제어부(BSY1)에 대하여 통지하는 정보이며, 자신의 모듈(M)의 전원 투입시에 통지된다. 동기 설정 상태 레지스터는, 예컨대 1 bit로 구성되는 정보이다. 동기 보정부(SY1∼SY6)는, 자신의 모듈(M)이 동기 대상이 아닌 경우에는 동기 설정 상태 레지스터에「0」(오프)를 설정하여 통지하고, 동기 대상인 경우에는 동기 설정 상태 레지스터에「1」(온)을 설정하여 통지한다.
동기 보정부(SY1∼SY6)는, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 개시 요구(SY_RQ1∼SY_RQ6)를 동기 개시 요구 레지스터를 이용하여 베이스 보드(B1) 상에 배치된 동기 제어부(BSY1)에 통지한다.
동기 개시 요구 레지스터는, 베이스 보드(B1) 상의 동기 제어부(BSY1)에 대하여 동기의 개시를 요구하는 정보이며, 자신의 모듈(M)의 전원 상태(SY_P1∼SY_P6), 동기 설정 상태(SY_EN1∼SY_EN6) 및 이니셜 완료시 등의 임의의 타이밍에 통지된다. 동기 개시 요구 레지스터는, 예컨대 1 bit로 구성되는 정보이다. 동기 보정부(SY1∼SY6)는, 동기 개시의 요구를 행하기 전에는 동기 개시 요구 레지스터에「0」(오프)를 설정하여 통지하고, 동기 개시의 요구를 행하는 경우에는 동기 개시 요구 레지스터에「1」(온)을 설정하여 통지한다.
기준 클록 생성부(BCL1)는, PLC 시스템(SYS)을 동기하는 기준이 되는 기준 시각을 생성한다. 기준 클록 생성부(BCL1)는, 생성한 기준 시각의 정보를 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)에 배치된 동기 보정부(SY1∼SY6) 및 베이스 보드(B1)에 배치된 동기 제어부(BSY1)에 대하여 출력한다. 기준 클록 생성부(BCL1)가 생성하는 기준 시각의 주기는 임의의 값이면 상관없지만, 본 실시형태에서는, 기준 클록 생성부(BCL1)는, 1 MHz의 수정을 이용하여 100 μs 주기의 펄스(CLK100 μs)를 기준 시각으로서 생성하여 출력한다.
동기 제어부(BSY1)는, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)로부터 접수한 동기 설정 상태(SY_EN1∼SY_EN6), 동기 개시 요구(SY_RQ1∼SY_RQ6), 전원 상태(SY_P1∼SY_P6) 및 기준 클록 생성부(BCL1)에 의해 생성된 기준 시각(CLK100 μs)의 정보에 기초하여 동기 개시 신호(SY_EXE)를 생성하여, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 보정부(SY1∼SY6)에 대하여 출력한다. 예컨대, 동기 제어부(BSY1)는, 기준 클록 생성부(BCL1)에 의해 생성된 기준 시각(CLK100 μs)의 상승 또는 하강 엣지에 기초하여 동기 개시 신호(SY_EXE)를 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 보정부(SY1∼SY6)에 출력한다.
도 3은, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)과 베이스 보드(B1)의 사이에서 통지되는 정보의 타이밍차트의 일례를 도시하는 도면이다. 동기 제어부(BSY1)는, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 전원 상태(SY_P1∼SY_P6) 및 동기 대상의 모듈(M)의 동기 설정 상태(SY_EN1∼SY_EN6)가 온이 된 상태에서, 동기 대상의 모든 모듈(M)의 동기 개시 요구(SY_RQ1∼SY_RQ6)가 온이 된 경우에, 동기 제어부(BSY1)는, 모듈(M)마다의 동기 개시 요구(SY_RQ1∼SY_RQ6)를 플립 플롭을 이용하여 유지한다.
동기 제어부(BSY1)는, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 보정부(SY1∼SY6)로부터 각각 동기 개시 요구(SY_RQ1∼SY_RQ6)를 펄스로서 접수한다. 동기 제어부(BSY1)는, 동기 대상의 모듈(M)의 모든 동기 개시 요구(SY_RQ1∼SY_RQ6)를 T1∼T6의 타이밍에 접수했는지 아닌지를, 기준 시각(클록)의 상승 엣지에 의해 판단한다. 동기 제어부(BSY1)는, 접수한 동기 개시 요구(SY_RQ1∼SY_RQ6)를 내부 신호(SY_RQFF1∼SY_RQFF6)로서 래치하는 것에 의해, 동기 대상의 모든 모듈(M)로부터 동기 개시 요구(SY_RQ1∼SY_RQ6)를 접수했는지 아닌지를 판단할 수 있다. 동기 제어부(BSY1)는, 동기 대상의 모든 모듈(M)로부터 동기 개시 요구(SY_RQ1∼SY_RQ6)를 접수한 경우에는, 기준 시각(CLK100 μs)의 상승 엣지 또는 하강 엣지에 기초하여 동기 개시 신호(SY_EXE)를 펄스로서 동기 대상의 각 모듈(M)에 출력한다.
도 4는, 동기 개시 신호(SY_EXE)를 접수한 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)이 동기 불일치 상태로부터 동기 상태로 이행하는 상태를 도시하는 도면이다. 도 4의 (1)은, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 불일치 상태를 도시하는 도면이다. 도 4의 (2)는, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)이 동기 불일치 상태로부터 동기 상태로 이행하는 상태를 도시하는 도면이다.
도 4의 (1)에 도시하는 바와 같이, 동기 보정전은, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 자신의 모듈(M)의 주기(이하, 「셀프 모듈 주기」라고도 함)의 개시 기점은 예컨대 시각 T7에서 각각 일치하지 않는다. 따라서, 각 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 셀프 모듈 주기의 개시 기점이 일치하도록 동기 보정을 행한다.
처음에, 동기 개시 신호(SY_EXE)를 접수한 각 모듈(M)의 동기 보정부(SY1∼SY6)는, 각각 카운터부(Co1∼Co6)의 시간 상태로부터 셀프 모듈 주기를 취득한다. 동기 보정부(SY1∼SY6)는, 동기 개시 신호(SY_EXE)에 기초하는 동기 기준점과, 셀프 모듈 주기에 기초하여, 동기 기준 어긋남폭을 산출한다. 동기 기준 어긋남폭은, 셀프 모듈 주기의 어긋남량을 나타내는 차분이다. 동기 기준점은, 각 모듈(M)끼리를 동기시키는 기준이 되는 시각이며, 본 실시형태에서는, 동기 보정부(SY1∼SY6)는, 동기 개시 신호(SY_EXE)의 상승 엣지에 기초하여 동기 기준점을 설정한다. 이 경우, 동기 개시 신호(SY_EXE)가 출력되는 시각과, 동기 기준점의 시각은 일치한다. 또, 동기 보정부(SY1∼SY6)는, 동기 개시 신호(SY_EXE)가 출력되고 나서 미리 정해진 시간 경과 후의 시각을 동기 기준점으로서 설정해도 좋다.
동기 보정부(SY1∼SY6)는, 셀프 모듈 주기의 개시 기점부터 동기 기준점까지의 경과 시간을 동기 기준 어긋남폭으로서 산출한다. 예컨대, 도 4의 (2)에 도시하는 바와 같이, 제1 CPU 모듈(M1)의 동기 보정부(SY1)는, 제1 CPU 모듈(M1)의 주기의 개시 기점 t1로부터 동기 개시 신호(SY_EXE)의 상승 엣지에 기초하여 설정되는 동기 기준점(Te)까지의 경과 시간(Te-t1=k1)을 제1 CPU 모듈(M1)의 동기 기준 어긋남폭으로서 산출한다. 동기 보정부(SY1)는, 산출된 동기 기준 어긋남폭이 (1) 식 또는 (2) 식 중의 어느 식이 성립하는지 아닌지에 기초하여 보정 방향을 설정한다.
동기 기준 어긋남폭≥(셀프 모듈 주기-동기 기준 어긋남폭) : -의 보정 방향…(1)
동기 기준 어긋남폭<(셀프 모듈 주기-동기 기준 어긋남폭) : +의 보정 방향…(2)
(1)식이 성립하는 경우에는, 동기 보정부(SY1)는, -(마이너스)의 보정 방향, 즉, 주기를 단축하는 방향으로 보정 방향을 설정한다. (2)식이 성립하는 경우에는, 동기 보정부(SY1)는, +(플러스)의 보정 방향, 즉, 주기를 연장시키는 방향으로 보정 방향을 설정한다. 동기 보정부(SY2∼SY6)는, 동기 보정부(SY1)와 마찬가지로, 제2 CPU 모듈(M2)∼제6 CPU 모듈(M6)의 보정 방향을 설정한다. 도 4의 (2) 중, -(마이너스)의 보정 방향, 즉, 주기를 단축하는 방향의 보정 방향의 주기(예컨대, 다음번 주기 C1, C3, C5)를 2개선의 화살표로 나타내고, +(플러스)의 보정 방향, 즉, 주기를 연장시키는 방향의 보정 방향의 주기(예컨대, 다음번 주기 C2, C4, C6)를 3개선의 화살표로 나타내고 있다. 또, 동기 보정부(SY1∼SY6)는, 동기 기준점으로부터 셀프 모듈 주기의 종료 시점까지의 경과 시간을 동기 기준 어긋남폭으로서 산출해도 좋다. 그 경우, 동기 보정부(SY1∼SY6)는, 보정 방향의 정부(正負)의 부호를 반대로 설정한다.
동기 보정부(SY1∼SY6)는, 확정한 보정 방향의 정보를 동기 보정 방향 레지스터에 설정한다. 동기 보정 방향 레지스터는, 마이너스 방향으로 보정할지 플러스 방향으로 보정할지를 확정하는 정보이다. 동기 보정 방향 레지스터는, 예컨대 1 bit로 구성되는 정보이다. 동기 보정부(SY1∼SY6)는, 확정한 보정 방향이 +(플러스)인 경우에는, 동기 보정 방향 레지스터에「0」을 설정하고, 확정한 보정 방향이 -(마이너스)인 경우에는, 동기 보정 방향 레지스터에「1」을 설정한다.
예컨대, 셀프 모듈 주기가「4000 μs」, 동기 기준 어긋남폭이「3700 μs」인 도 4의 제5 CPU 모듈(M5)의 경우에 관해 설명한다. 셀프 모듈 주기가 개시되고 나서 3700 μs일 때에, 동기 개시 신호(SY_EXE)의 펄스를 접수한 경우, 즉 동기 기준점(Te)을 3700 μs로 설정한 경우에는, 셀프 모듈 주기「4000 μs」로부터 동기 기준 어긋남폭「3700 μs」를 감산한 값이, 동기 기준 어긋남폭「3700 μs」보다 큰지 아닌지를 판단한다.
셀프 모듈 주기「4000 μs」로부터 동기 기준 어긋남폭「3700 μs」를 감산한 값「300 μs」는, 동기 기준 어긋남폭「3700 μs」보다 작은, 즉, (1)식이 성립한다. 이 경우, 제5 CPU 모듈(M5)의 동기 보정부(SY5)는, -(마이너스)의 보정 방향, 즉, 동기 개시 신호(SY_EXE)의 펄스를 접수한 다음 주기(이하, 「다음번 주기」라고도 함)(C5)의 주기를 단축하는 방향으로 보정 방향을 설정한다.
또한, 셀프 모듈 주기가 4000 μs, 동기 기준 어긋남폭이「1800 μs」인 도 4의 제6 CPU 모듈(M6)의 경우에 관해 설명한다. 셀프 모듈 주기가 개시되고 나서 1800 μs일 때에, 동기 개시 신호(SY_EXE)의 펄스를 접수한 경우, 즉 동기 기준점(Te)이 1800 μs인 경우에는, 셀프 모듈 주기「4000 μs」로부터 동기 기준 어긋남폭「1800 μs」를 감산한 값이, 동기 기준 어긋남폭「1800 μs」보다 큰지 아닌지를 판단한다.
셀프 모듈 주기「4000 μs」로부터 동기 기준 어긋남폭「1800 μs」를 감산한 값「2200 μs」는, 동기 기준 어긋남폭「1800 μs」보다 큰, 즉, (2)식이 성립한다. 이 경우, 제6 CPU 모듈(M6)의 동기 보정부(SY6)는, +(플러스)의 보정 방향, 즉, 다음번 주기 C6의 주기를 연장시키는 방향으로 보정 방향을 설정한다.
또, 제6 CPU 모듈(M6)의 동기 일치시의 예와 같이, 제6 CPU 모듈(M6)의 주기의 개시 기점 t6`이, 동기 개시 신호(SY_EXE)의 상승 엣지에 기초하여 설정되는 동기 기준점(Te)과 일치하는 경우, 즉, 동기 기준 어긋남폭이 0인 경우에는, 동기 보정부(SY1∼SY6)는, 보정 방향을 설정하지 않고 동기 보정도 행하지 않는다.
이와 같이, 셀프 모듈 주기로부터 동기 기준 어긋남폭을 감산한 값이, 동기 기준 어긋남폭보다 큰지 아닌지에 기초하여 보정 방향을 바꾸는 것에 의해, 최대로 셀프 모듈 주기분 보정을 해야 하므로, 그 대략 절반의 시간으로 보정을 행할 수 있다.
동기 보정부(SY1∼SY6)는, 동기 기준 어긋남폭의 값과, 셀프 모듈 주기로부터 동기 기준 어긋남폭을 감산한 값 중 어느 적은(작은) 값을 동기 보정 타겟 시간으로서 동기 보정 타겟 시간 레지스터에 설정한다. 동기 보정 타겟 시간 레지스터는, 임의의 bit수로 구성되는 정보이다. 동기 보정 타겟 시간은, 동기 보정을 행하는 전체 시간의 정보이다.
예컨대, 셀프 모듈 주기가「4000 μs」, 동기 기준 어긋남폭이「3700 μs」인 도 4의 제5 CPU 모듈(M5)의 경우에 관해 설명한다. 제5 CPU 모듈(M5)의 동기 기준 어긋남폭「3700 μs」는, 셀프 모듈 주기로부터 동기 기준 어긋남폭을 감산한 값「4000 μs-3700 μs=300 μs」보다 크다. 따라서, 제5 CPU 모듈(M5)의 동기 보정부(SY5)는, 셀프 모듈 주기로부터 동기 기준 어긋남폭을 감산한 값「300 μs」를 동기 보정 타겟 시간으로서 동기 보정 타겟 시간 레지스터에 설정한다.
또한, 셀프 모듈 주기가「4000 μs」, 동기 기준 어긋남폭이「1800 μs」인 도 4의 제6 CPU 모듈(M6)의 경우에 관해 설명한다. 제6 CPU 모듈(M6)의 동기 기준 어긋남폭「1800 μs」는, 셀프 모듈 주기로부터 동기 기준 어긋남폭을 감산한 값「4000 μs-1800 μs=2200 μs」보다 작다. 따라서, 제6 CPU 모듈(M6)의 동기 보정부(SY6)는, 동기 기준 어긋남폭「1800 μs」를 동기 보정 타겟 시간으로서 동기 보정 타겟 시간 레지스터에 설정한다.
동기 보정부(SY1∼SY6)는, 동기 보정을 행할 때의 임의의 단위 시간을 동기 보정폭으로서 동기 보정폭 레지스터에 설정한다. 동기 보정부(SY1∼SY6)는, 동기 보정폭 레지스터에 설정된 동기 보정폭의 단위로, 동기 보정 타겟 시간분의 보정을 행한다. 동기 보정폭 레지스터는, 임의의 bit수로 구성되는 정보이다. 동기 보정폭은, 1회의 주기로 보정하는 단위 시간을 나타내고, 동기 보정 타겟 시간을 어느 정도의 폭으로 분할하여 보정하는 것인지를 나타내는 정보이다.
동기 보정폭 레지스터에 설정되는 동기 보정폭은, 미리 프로세서(P1∼P6)나 인터럽트 제어부(W1∼W6)로 지정한 값이어도 좋다. 또한, 동기 보정폭 레지스터에는, 실제로 보정을 행하는 동기 보정 타겟 시간을 지정해도 좋다. 동기 보정 타겟 시간이 동기 보정폭보다 긴 경우에는, 다음번 주기 이후, 1주기마다 주기 시간으로부터 동기 보정폭분을 증감시켜, 셀프 모듈 주기를 보정해도 좋다. 이것에 의해, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)이 갖춘 IO 버스나 실현하는 기능에 의해, 한번에 대폭 보정을 행함으로써 IO 버스에 참가하는 국(모듈)의 탈락 등을 초래하는 등의 문제를 회피할 수 있다. 동기 보정 타겟 시간이 동기 보정폭과 동일하거나 그것보다 짧은 경우는, 다음번 주기에 동기 보정 타겟 시간분을 보정해도 좋다.
동기 보정부(SY1∼SY6)는, 동기 보정 실행을 지시하는 정보를 동기 보정 실행 레지스터에 설정한다. 동기 보정 실행 레지스터는, 예컨대 1 bit에 의해 구성되는 정보이다. 동기 보정부(SY1∼SY6)는, 동기 보정을 행하기 전에는 동기 보정 실행 레지스터에「0」(오프)를 설정하여 통지하고, 동기 보정을 행하는 경우에는 동기 보정 실행 레지스터에「1」(온)을 설정하여 통지한다.
동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간 레지스터의 정보, 동기 보정 방향 레지스터의 정보, 동기 보정폭 레지스터의 정보를 설정하고, 동기 보정 실행 레지스터를「1」(온)로 설정하는 것에 의해 각각 동기 보정을 개시한다.
예컨대, 동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간이 동기 보정폭 이하인 경우에는, 동기 보정 타겟 시간을 실보정 시간으로서 설정한다. 이것에 대하여, 동기 보정 타겟 시간이 동기 보정폭보다 큰 경우에는, 동기 보정부(SY1)는, 동기 보정폭을 실보정 시간으로서 산출하여 설정한다.
예컨대, 동기 보정 타겟 시간이「300 μs」, 동기 보정폭이「500 μs」인 도 4의 제5 CPU 모듈(M5)의 경우에 관해 설명한다. 동기 보정 타겟 시간「300 μs」가 동기 보정폭「500 μs」이하인 경우에는, 동기 보정부(SY5)는, 동기 보정 타겟 시간「300 μs」를 실보정 시간으로서 설정한다. 그리고, 동기 보정부(SY5)는, 설정한 보정 방향이 -(마이너스) 방향인 경우에는, 셀프 모듈 주기「4000 μs」로 설정한 실보정 시간「300 μs」를 감산한 값「4000 μs-300 μs=3700 μs」를 다음번 주기의 길이 C5로서 설정하여 셀프 모듈 주기를 보정한다.
동기 보정 타겟 시간이「1800 μs」, 동기 보정폭이「500 μs」인 도 4의 제6 CPU 모듈(M6)의 경우에 관해 설명한다. 동기 보정 타겟 시간「1800 μs」가 동기 보정폭「500 μs」이하인 경우에는, 동기 보정부(SY5)는, 동기 보정 타겟 시간「1800 μs」를 실보정 시간으로서 설정한다. 그리고, 동기 보정부(SY5)는, 설정한 보정 방향이 +(플러스) 방향인 경우에는, 셀프 모듈 주기「4000 μs」로 설정한 실보정 시간「1800 μs」를 가산한 값「4000 μs+1800 μs=5800 μs」를 다음번 주기 C6의 길이로서 설정하여 셀프 모듈 주기를 보정한다.
이것에 의해, 동일한 셀프 모듈 주기「4000 μs」인 제5 CPU 모듈(M5)의 주기 C5의 다음 주기 C5b의 개시 기점 Tb와, 제6 CPU 모듈(M6)의 주기 C6의 다음 주기 C6b의 개시 기점 Tb는 일치한다. 이것에 의해, 도 4의 (1)에 도시하는 바와 같이, 동기가 불일치 상태인 각 모듈(M)의 셀프 모듈 주기의 개시 기점을 일치시킬 수 있다.
또한, 마찬가지로, 셀프 모듈 주기「1000 μs」인 제1 CPU 모듈(M1), 제2 CPU 모듈(M2)의 다음번 주기 C1, C2, 셀프 모듈 주기「2000 μs」인 제3 CPU 모듈(M3), 제3 CPU 모듈(M3)의 다음번 주기 C3, C4의 주기의 길이를 결정하여 동기 보정을 행한다.
이것에 의해, 도 4의 (2)에 도시하는 바와 같이, 상이한 셀프 모듈 주기인 제1 CPU 모듈(M1), 제2 CPU 모듈(M2)의 셀프 모듈 주기「1 ms」, 제3 CPU 모듈(M3), 제4 CPU 모듈(M4)의 셀프 모듈 주기「2 ms」, 제5 CPU 모듈(M5), 제6 CPU 모듈(M6)의 셀프 모듈 주기「4 ms」의 최소 공배수「4 ms」의 후의 개시 기점 Tb에서, 각 모듈의 셀프 모듈 주기의 개시 기점을 일치시킬 수 있다.
즉, 도 4의 (1)에 도시하는 바와 같이, 동기 개시 신호(SY_EXE)를 기점으로 한 일련의 동기 보정이 행해지기 전의 비동기 상태에서는, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)이 각각의 클록 생성부(CL1∼CL6)에 의해 생성한 주기를 기초로 동작하고 있기 때문에, 기점이 되는 개시 시각에 대하여 동기한 상태로 되지 않는다.
이것에 대하여, 본 실시형태에서 동기 개시 신호(SY_EXE)를 기점으로 한 일련의 동기 보정을 행한 경우에는, 동기 개시 신호(SY_EXE)를 접수했을 때에, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6)의 동기 보정부(SY1∼SY6)는, 동기 보정 방향과 동기 보정 타겟 시간을 결정한다. 이것에 의해, 동기 보정부(SY1∼SY6)는, 다음번 주기에서 동기 보정을 행함으로써, 각 모듈(M)의 최소 공배수 후의 1회째 혹은 2회째의 주기에서 개시 기점을 동기시킬 수 있다. 이것에 의해, PLC 시스템(SYS)의 동기를 관리하는 모듈 등의 구성을 별도로 갖추지 않고, PLC 시스템(SYS)을 구성하는 각 모듈(M)의 셀프 모듈 주기를 동기시킬 수 있다.
또한, 동기 보정 타겟 시간이「300 μs」이며, 동기 보정폭이「1 μs」인 경우에는, 동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간「300 μs」를 동기 보정폭「1 μs」의 폭으로 나눈 값인 「300회」의 주기에 걸쳐 분할하여 보정한다.
이 경우, 보정 방향이 -(마이너스) 방향인 경우에는, 동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간「300 μs」로부터 동기 보정폭「1 μs」를 감산한 값「299 μs」로「300회」의 주기에 걸쳐 보정한다.
또한, 보정 방향이 +(플러스) 방향인 경우에는, 동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간「300 μs」로부터 동기 보정폭「1 μs」를 가산한 값「301 μs」로「300회」의 주기에 걸쳐 보정한다.
보다 구체적으로는, 동기 보정 타겟 시간이「300 μs」, 셀프 모듈 주기가「4000 μs」, 동기 보정폭이「100 μs」인 경우에 관해 설명한다. 동기 보정 타겟 시간「300 μs」가 동기 보정폭「100 μs」보다 큰 경우에는, 동기 보정부(SY5)는, 동기 보정폭「100 μs」를 실보정 시간으로서 설정한다. 그리고, 동기 보정부(SY1∼SY6)는, 설정한 보정 방향이 +(플러스) 방향인 경우에는, 셀프 모듈 주기「4000 μs」로 설정한 실보정 시간「100 μs」를 가산한 값「4000 μs+100 μs=4100 μs」를 다음번 주기의 길이로서 설정하여 셀프 모듈 주기를 보정한다.
동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간「300 μs」로부터 실보정 시간「100 μs」를 감산한 값「300 μs-100 μs=200 μs」를 동기 보정 타겟 시간으로서 설정한다. 그 후, 동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간이「0」이하가 되기까지의 동안에, 1주기마다 실보정 시간의 가산 및 동기 보정 타겟 시간의 감산을 반복 실행하여, 3회의 주기에 걸쳐 셀프 모듈 주기의 보정을 행한다.
이와 같이, 복수의 주기에 걸쳐 분할하여 보정하는 것에 의해, 셀프 모듈 주기가 갑자기 단축하는 것을 억지함으로써, 단축된 주기 내에서 애플리케이션 실행 기능이나, IO 버스 기능을 시간 내에 실행할 수 없게 되는 것을 방지하여 PLC 시스템(SYS)의 오작동을 방지할 수 있다.
또한, 동기 보정폭이 동기 보정 타겟 시간보다 큰 값이 설정되어 있어도 좋다. 이 경우, 동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간만큼 보정을 행한다. 예컨대, 동기 보정 타겟 시간이「300 μs」이고, 동기 보정폭이「500 μs」인 경우, 동기 보정폭「500 μs」는, 동기 보정 타겟 시간「300 μs」보다 크다. 이 경우, 동기 보정부(SY1∼SY6)는, 동기 보정 타겟 시간「300 μs」로 보정을 행한다.
또한, PLC 시스템(SYS)의 초기 상승시(예컨대, 초기화의 타이밍)에는, 동기 보정폭으로서 최대치를 설정하여 셀프 모듈 주기를 1주기로 보정하고, PLC 시스템(SYS)의 상승 후에, 각 모듈(M)을 개개로 상승시키는 경우(예컨대, 복수의 모듈(M) 중 적어도 하나의 모듈이 움직이고 있는 타이밍)에는, 임의의 동기 보정폭을 설정하여 셀프 모듈 주기를 n(n>2)회의 주기에 걸쳐 분할하여 보정해도 좋다. 이것에 의해, PLC 시스템(SYS)의 초기 상승시에는, 조기에 동기 보정을 행할 수 있음과 더불어, PLC 시스템(SYS)의 상승 후에, 각 모듈(M)을 개개로 상승시키는 경우에는, 셀프 모듈 주기가 갑자기 단축되는 것에 의해 각 모듈(M)에서 각종 기능을 실행할 수 없게 되는 것을 방지할 수 있다.
또, 동기 보정부(SY1∼SY6)는, 동기 보정을 행한 후에, 각 모듈(M)의 개별 클록 생성부(CL1∼CL6)와 베이스 보드(B1) 상의 기준 클록 생성부(BCL1)의 수정 진동자 오차(PPM 오차)를, 카운터부(Co1∼Co6) 등을 이용하여 판정한다. 그리고, 판정의 결과, 수정 진동자 오차(PPM 오차)가 일정한 범위를 넘은 경우에, 베이스 보드(B1) 상의 기준 클록 생성부(BCL1)의 상승시, 혹은 프로세서(P1∼P6)나 인터럽트 제어부(W1∼W6)의 IO 버스 기능에서 지정하는 임의의 타이밍에, 동일한 동기 보정 처리 순서를 개시하여 각 모듈(M)의 개별의 셀프 모듈 주기를 일시적으로 감산 또는 가산함으로써 보정하여 동기를 계속적으로 유지할 수 있다.
도 5는, PLC 시스템(SYS)을 구성하는 제1 CPU 모듈(M1), 제2 CPU 모듈(M2), 베이스 보드(B1) 사이에서 실행되는 동기 보정 처리의 시퀀스차트의 일례를 도시하는 도면이다. 도 5의 실시형태에서는, 제1 CPU 모듈(M1)∼제6 CPU 모듈(M6) 중, 제1 CPU 모듈(M1) 및 제2 CPU 모듈(M2)에 관해서만 설명하고, 제3 CPU 모듈(M3)∼제6 CPU 모듈(M6)에 관해서도 동일하다.
처음에, 제1 CPU 모듈(M1)의 전원이 투입되면, 제1 CPU 모듈(M1)의 전원 제어부(Pa1)는, 전원 상태(SY_P1)를 베이스 보드(B1)에 통지한다(S101). 또한, 제1 CPU 모듈(M1)의 동기 보정부(SY1)는, 동기 설정 상태(SY_EN1)를 베이스 보드(B1)에 통지한다(S102).
마찬가지로, 제2 CPU 모듈(M2)의 전원이 투입되면, 제2 CPU 모듈(M2)의 전원 제어부(Pa2)는, 전원 상태(SY_P2)를 베이스 보드(B1)에 통지한다(S103). 또한, 제2 CPU 모듈(M2)의 동기 보정부(SY2)는, 동기 설정 상태(SY_EN2)를 베이스 보드(B1)에 통지한다(S104).
제1 CPU 모듈(M1)의 동기 보정부(SY1)는, 임의의 타이밍에 동기 개시 요구(SY_RQ1)를 동기 개시 요구 레지스터를 이용하여 베이스 보드(B1) 상에 배치된 동기 제어부(BSY1)에 통지한다(S105). 마찬가지로, 제2 CPU 모듈(M2)의 동기 보정부(SY2)는, 임의의 타이밍에 동기 개시 요구(SY_RQ2)를 동기 개시 요구 레지스터를 이용하여 베이스 보드(B1) 상에 배치된 동기 제어부(BSY1)에 통지한다(S106).
베이스 보드(B1)의 동기 제어부(BSY1)는, 동기 대상의 모든 모듈(M)로부터 동기 개시 요구(SY_RQ1∼SY_RQ6)를 접수했는지 아닌지를 판정한다(S107). 동기 대상의 모든 모듈(M)로부터 동기 개시 요구(SY_RQ1∼SY_RQ6)를 접수하지 않은 경우(S107 : NO)에는, 동기 대상의 모든 모듈(M)로부터 동기 개시 요구(SY_RQ1∼SY_RQ6)를 접수할 때까지 처리를 대기한다.
동기 대상의 모든 모듈(M)로부터 동기 개시 요구(SY_RQ1∼SY_RQ6)를 접수한 경우(S107 : YES)에는, 베이스 보드(B1)의 동기 제어부(BSY1)는, 기준 클록 생성부(BCL1)에 의해 생성된 기준 시각(CLK100 μs)의 상승 엣지에 기초하여 동기 개시 신호(SY_EXE) 및 기준 시각(CLK100 μs)을 제1 CPU 모듈(M1)의 동기 보정부(SY1), 제2 CPU 모듈(M2)의 동기 보정부(SY2)에 각각 출력한다(S108∼S111).
동기 개시 요구(SY_RQ1)를 접수한 제1 CPU 모듈(M1)의 동기 보정부(SY1)는, 후술하는 동기 보정 처리를 행한다(S112). 마찬가지로, 동기 개시 요구(SY_RQ2)를 접수한 제2 CPU 모듈(M2)의 동기 보정부(SY2)는, 후술하는 동기 보정 처리를 행한다(S113). 이하, 제1 CPU 모듈(M1)에 의해 행해지는 S112의 동기 보정 처리와, 제2 CPU 모듈(M2)에 의해 행해지는 S113의 동기 보정 처리는, 대략 동일한 처리이기 때문에, 이하 동일한 부호에 기초하여 플로우차트로 설명한다.
도 6은, 제1 CPU 모듈(M1)이 실행하는 동기 보정 처리의 일례를 도시하는 플로우차트이다. 또, 제2 CPU 모듈(M2)∼제6 CPU 모듈(M6)이 실행하는 동기 보정 처리도 제1 CPU 모듈(M1)이 실행하는 동기 보정 처리와 동일하므로 설명을 생략한다.
처음에, 동기 보정부(SY1)는, 셀프 모듈이 동기 대상인 경우에는, 모듈 기능의 이니셜 설정을 행한다(S201). 동기 보정부(SY1)는, 이니셜 설정이 완료되었는지 아닌지를 판정한다(S202). 판정의 결과, 이니셜 설정이 완료되지 않은 경우(S202 : NO)에는 처리를 대기한다. 판정의 결과, 이니셜 설정이 완료된 경우(S202 : YES)에는, 동기 보정부(SY1)는 동기 개시 요구(SY_RQ1)를 베이스 보드(B1)에 통지한다(S203).
동기 보정부(SY1)는, 베이스 보드(B1)의 동기 제어부(BSY1)로부터 동기 개시 신호(SY_EXE)를 접수했는지 아닌지를 판정한다(S204). 동기 제어부(BSY1)로부터 동기 개시 신호(SY_EXE)를 접수하지 않은 경우(S204 : NO)에는, 동기 개시 신호(SY_EXE)를 접수하기까지의 동안 처리를 대기한다.
동기 제어부(BSY1)로부터 동기 개시 신호(SY_EXE)를 접수한 경우(S204 : YES)에는, 동기 보정부(SY1)는, 산출된 동기 기준 어긋남폭이 (1)식 또는 (2)식 중의 어느 식이 성립하는지 아닌지에 기초하여 보정 방향을 설정한다(S205).
동기 보정부(SY1)는, 동기 기준 어긋남폭의 값과, 셀프 모듈 주기로부터 동기 기준 어긋남폭을 감산한 값 중, 어느 적은(작은) 값을 동기 보정 타겟 시간으로서 설정한다(S206). 동기 보정부(SY1)는, 동기 보정을 행할 때의 임의의 단위 시간을 동기 보정폭으로서 동기 보정폭 레지스터에 설정한다(S207).
동기 보정부(SY1)는, 프로세서(P1)로부터 동기 보정 실행 요구를 접수했는지 아닌지를 판정한다(S208). 프로세서(P1)로부터 동기 보정 실행 요구를 접수하지 않은 경우(S208 : NO)에는, 프로세서(P1)로부터 동기 보정 실행 요구를 접수하기까지의 동안 처리를 대기한다. 프로세서(P1)로부터 동기 보정 실행 요구를 접수한 경우(S208 : YES)에는, 후술하는 동기 보정 실행 처리를 행한다(S209).
도 7은, 동기 보정 실행 처리의 일례를 도시하는 플로우차트이다. 처음에, 동기 보정부(SY1)는, 도 6의 S206에서 설정한 동기 보정 타겟 시간이 0보다 큰지 아닌지를 판정한다(S301). 동기 보정 타겟 시간이 0 이하인 경우(S301 : NO)에는, 동기 보정 실행 처리는 종료된다.
동기 보정 타겟 시간이 0보다 큰 경우(S301 : YES)에는, 동기 보정부(SY1)는, 동기 보정 타겟 시간이 도 6의 S207에서 설정한 동기 보정폭 이하인지 아닌지를 판정한다(S302).
동기 보정 타겟 시간이 동기 보정폭 이하인 경우(S302 : YES)에는, 동기 보정부(SY1)는, 동기 보정 타겟 시간을 실보정 시간으로서 설정한다(S303). 이 처리가 끝나면 처리는 S305로 진행한다. 동기 보정 타겟 시간이 동기 보정폭보다 큰 경우(S302 : NO)에는, 동기 보정부(SY1)는, 동기 보정폭을 실보정 시간으로서 설정한다(S304). 이 처리가 끝나면 처리는 S305로 진행한다.
S305에서, 동기 보정부(SY1)는, 도 6의 S205에서 설정한 보정 방향을 판정한다(S305). 설정한 보정 방향이 +(플러스) 방향인 경우에는, 동기 보정부(SY1)는, 셀프 모듈 주기에 실보정 시간을 가산한 시간을 다음번 주기로서 설정한다(S306). 이 처리가 끝나면 처리는 S308로 진행한다. 설정한 보정 방향이 -(마이너스) 방향인 경우에는, 동기 보정부(SY1)는, 셀프 모듈 주기로부터 실보정 시간을 감산한 시간을 다음번 주기로서 설정한다(S306). 이 처리가 끝나면 처리는 S308로 진행한다.
동기 보정부(SY1)는, 동기 보정 타겟 시간으로부터 실보정 시간을 감산한 값을 동기 보정 타겟 시간으로서 설정한다(S308). 동기 보정부(SY1)는, 동기 보정 타겟 시간이 0보다 큰지 아닌지를 판정한다(S309).
동기 보정 타겟 시간이 0보다 큰 경우(S309 : YES)에는, 처리는 S302로 되돌아가, 동기 보정 타겟 시간이 0이 되기까지의 동안, S302, S304∼S309의 처리가 반복 실행된다. 동기 보정 타겟 시간이 0 이하인 경우(S309 : NO)에는, 동기 보정부(SY1)는, 동기 개시 요구(SY_RQ1)를 오프로 하고(S310), 동기 보정 실행 처리를 종료한다.
또, 본 발명은 상기 실시형태에 한정되지 않고, 다양하게 변경하여 실시하는 것이 가능하다. 상기 실시형태에서, 첨부 도면에 도시되어 있는 구성 요소의 크기나 형상, 기능 등에 관해서는, 이것에 한정되지 않고, 본 발명의 효과를 발휘하는 범위 내에서 적절하게 변경하는 것이 가능하다. 기타, 본 발명의 원하는 범위를 일탈하지 않는 한 적절하게 변경하여 실시하는 것이 가능하다.
이상 설명한 바와 같이, 본 발명은, 프로그래머블 컨트롤러 시스템을 구성하는 각 모듈의 셀프 모듈 주기를 동기시킬 수 있고, 프로그래머블 컨트롤러 시스템을 사용하는 기기에 적용하기에 적합하다.
SYS : 프로그래머블 컨트롤러 시스템 M1∼M6 : 제1 CPU 모듈∼제6 CPU 모듈
K1∼K6 : 커넥터 B1 : 베이스 보드
P1∼P6 : 프로세서 W1∼W6 : 인터럽트 제어부
CL1∼CL6 : 개별 클록 생성부 Co1∼Co6 : 카운터부
Pa1∼Pa6 : 전원 제어부 SY1∼SY6 : 동기 보정부
BSY1 : 동기 제어부 BCL1 : 기준 클록 생성부

Claims (10)

  1. 베이스 보드와, 상기 베이스 보드에 접속된 복수의 모듈을 포함하는 프로그래머블 컨트롤러 시스템으로서,
    상기 베이스 보드는,
    상기 복수의 모듈의 동기를 제어하는 동기 제어부를 포함하고,
    상기 복수의 모듈은 각각,
    개별 클록을 생성하는 개별 클록 생성부와,
    상기 개별 클록 생성부에 의해 생성된 상기 개별 클록으로부터 셀프 모듈 주기를 생성하는 카운터부와,
    상기 동기 제어부로부터 출력된 동기 개시 신호에 기초하는 동기 기준점과, 상기 셀프 모듈 주기에 기초하여, 상기 셀프 모듈 주기의 어긋남량을 산출하고, 상기 산출된 어긋남량에 기초하여, 상기 셀프 모듈 주기를 보정하는 동기 보정부를 포함하고,
    동기 보정을 행하는 전체 시간인 동기 보정 타겟 시간이 동기 보정을 행하는 임의의 단위 시간인 동기 보정폭과 동일하거나 동기 보정폭보다 짧은 경우는, 다음번 주기에 상기 동기 보정 타겟 시간분을 단축 또는 연장하는 보정을 행하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  2. 제1항에 있어서,
    상기 동기 보정부는, 상기 동기 개시 신호의 상승 엣지에 기초하여 상기 동기 기준점을 설정하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 동기 보정부는, 상기 동기 개시 신호가 출력되고 나서 미리 정해진 시간 경과 후의 시각을 상기 동기 기준점으로서 설정하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  4. 제1항 또는 제2항에 있어서,
    상기 동기 보정부는, 상기 셀프 모듈 주기를 1주기로 단축 또는 연장하는 보정을 행하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  5. 제1항 또는 제2항에 있어서,
    상기 동기 보정부는, 상기 셀프 모듈 주기를 n(n>2)회의 주기에 걸쳐 분할하여 단축 또는 연장하는 보정을 행하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  6. 제1항 또는 제2항에 있어서,
    상기 동기 보정부는,
    초기화의 타이밍에서는, 상기 셀프 모듈 주기를 1주기로 단축 또는 연장하는 보정을 행하고,
    상기 모듈 중 적어도 하나의 모듈이 움직이고 있는 타이밍에서는, 상기 셀프 모듈 주기를 n(n>2)회의 주기에 걸쳐 분할하여 단축 또는 연장하는 보정을 행하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  7. 제1항 또는 제2항에 있어서,
    상기 베이스 보드는, 기준 시각을 생성하는 기준 클록 생성부를 더 포함하고,
    상기 동기 제어부는, 상기 기준 시각에 기초하여 상기 동기 개시 신호를 상기 각 모듈에 출력하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  8. 제7항에 있어서,
    상기 각 모듈의 개별 클록 생성부와 베이스 보드 상의 상기 기준 클록 생성부의 PPM 오차가 일정한 범위를 넘은 경우에 모듈 개별의 주기를 일시적으로 단축 또는 연장함으로써 보정하여 동기를 계속적으로 유지하는 것을 특징으로 하는 프로그래머블 컨트롤러 시스템.
  9. 복수의 모듈의 동기를 제어하는 동기 제어부를 포함하는 베이스 보드에 복수개 접속된 프로그래머블 컨트롤러 시스템의 모듈로서,
    상기 복수의 모듈은 각각,
    개별 클록을 생성하는 개별 클록 생성부와,
    상기 개별 클록 생성부에 의해 생성된 상기 개별 클록으로부터 셀프 모듈 주기를 생성하는 카운터부와,
    상기 동기 제어부로부터 출력된 동기 개시 신호에 기초하는 동기 기준점과, 상기 셀프 모듈 주기에 기초하여, 상기 셀프 모듈 주기의 어긋남량을 산출하고, 상기 산출된 어긋남량에 기초하여, 상기 셀프 모듈 주기를 보정하는 동기 보정부를 포함하고,
    동기 보정을 행하는 전체 시간인 동기 보정 타겟 시간이 동기 보정을 행하는 임의의 단위 시간인 동기 보정폭과 동일하거나 동기 보정폭보다 짧은 경우는, 다음번 주기에 상기 동기 보정 타겟 시간분을 단축 또는 연장하는 보정을 행하는 것을 특징으로 하는 모듈.
  10. 삭제
KR1020200124879A 2019-11-25 2020-09-25 프로그래머블 컨트롤러 시스템 및 모듈 KR102494296B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2019-212503 2019-11-25
JP2019212503A JP7439474B2 (ja) 2019-11-25 2019-11-25 プログラマブルコントローラシステムおよびモジュール

Publications (2)

Publication Number Publication Date
KR20210064039A KR20210064039A (ko) 2021-06-02
KR102494296B1 true KR102494296B1 (ko) 2023-01-31

Family

ID=75923457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200124879A KR102494296B1 (ko) 2019-11-25 2020-09-25 프로그래머블 컨트롤러 시스템 및 모듈

Country Status (4)

Country Link
JP (1) JP7439474B2 (ko)
KR (1) KR102494296B1 (ko)
CN (1) CN112835321B (ko)
TW (1) TWI764300B (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123688A (ja) * 2009-12-11 2011-06-23 Fuji Electric Systems Co Ltd 同期プログラマブルコントローラ、同期プログラマブルコントローラシステム

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072432B2 (en) 2002-07-05 2006-07-04 Meshnetworks, Inc. System and method for correcting the clock drift and maintaining the synchronization of low quality clocks in wireless networks
JP5141972B2 (ja) 2007-12-07 2013-02-13 オムロン株式会社 産業用コントローラ
US8867482B2 (en) * 2010-12-10 2014-10-21 Panasonic Intellectual Property Corporation Of America Signal generation method and signal generation device
KR101502713B1 (ko) * 2010-12-16 2015-03-13 미쓰비시덴키 가부시키가이샤 시퀀서 시스템 및 그 제어 방법
WO2014037684A1 (en) * 2012-09-04 2014-03-13 Khalifa University of Science, Technology, and Research Methods and devices for clock synchronization
KR101726743B1 (ko) * 2013-01-08 2017-04-13 후지 덴키 가부시키가이샤 제어 시스템, 마스터 프로그래머블 컨트롤러, 슬레이브 프로그래머블 컨트롤러 및 제어 방법
CN103389914B (zh) * 2013-07-03 2015-10-21 浙江大学 基于时钟同步技术的星载三模冗余系统
WO2015102605A1 (en) * 2013-12-31 2015-07-09 Schneider Electric It Corporation Automatic sub-millisecond clock synchronization
WO2015128981A1 (ja) 2014-02-27 2015-09-03 富士電機株式会社 プログラマブルコントローラシステム、そのコントローラ
WO2016092243A1 (en) * 2014-12-11 2016-06-16 Khalifa University of Science, Technology, and Research Method and devices for time transfer using end to end transparent clocks
JP6820851B2 (ja) 2014-12-16 2021-01-27 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツングRobert Bosch Gmbh ネットワークデバイスのクロックを同期させる方法
US9871609B2 (en) * 2015-07-08 2018-01-16 Mitsubishi Electric Corporation Network system, time master station, and time slave station
JP2017069809A (ja) * 2015-09-30 2017-04-06 住友電気工業株式会社 通信装置
CN106708168B (zh) * 2015-11-13 2019-12-06 华为技术有限公司 多处理器系统及时钟同步方法
US10135606B2 (en) * 2016-10-27 2018-11-20 Macom Connectivity Solutions, Llc Mitigating interaction between adaptive equalization and timing recovery
US10014026B1 (en) * 2017-06-20 2018-07-03 Seagate Technology Llc Head delay calibration and tracking in MSMR systems
CN110291821A (zh) * 2018-01-19 2019-09-27 深圳市大疆创新科技有限公司 定位系统和定位系统的时间同步控制方法、装置
CN108592715A (zh) * 2018-05-02 2018-09-28 南京雷芯聚力电子科技有限公司 一种可编程电子雷管控制芯片及其控制流程

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123688A (ja) * 2009-12-11 2011-06-23 Fuji Electric Systems Co Ltd 同期プログラマブルコントローラ、同期プログラマブルコントローラシステム

Also Published As

Publication number Publication date
JP7439474B2 (ja) 2024-02-28
KR20210064039A (ko) 2021-06-02
JP2021086211A (ja) 2021-06-03
CN112835321A (zh) 2021-05-25
TWI764300B (zh) 2022-05-11
TW202121084A (zh) 2021-06-01
CN112835321B (zh) 2024-05-14

Similar Documents

Publication Publication Date Title
US10110367B2 (en) High precision timer in CPU cluster
US5006979A (en) Phase synchronization system
US8281177B2 (en) Distributed control system
US7490257B2 (en) Clock distributor for use in semiconductor logics for generating clock signals when enabled and a method therefor
JP3039781B1 (ja) タイマ回路
CN115080495A (zh) 一种标准外设扩展接口设备的时间同步方法及系统
KR102494296B1 (ko) 프로그래머블 컨트롤러 시스템 및 모듈
CN112835053B (zh) 激光雷达同步的方法和装置、电子设备和存储介质
CN108988832B (zh) 用于检测与电子装置相关联的延迟的方法和相应的电子装置
JP2011083841A (ja) ロボット制御装置、ロボット制御システム及びロボット制御方法
JP6423971B2 (ja) 機能ユニット及び制御装置
JP2011123688A (ja) 同期プログラマブルコントローラ、同期プログラマブルコントローラシステム
JP2002016492A (ja) ディジタルpllパルス発生装置
CN110098885B (zh) 一种时钟同步电路、装置及其方法
JP2013183403A (ja) クロック位相同期化装置およびクロック位相同期化方法
JP2005094933A (ja) モータ駆動装置
JP2012141730A (ja) 動作クロック生成装置及び処理装置
JP6608019B2 (ja) 機能ユニット及び制御装置
JP2006292579A (ja) 測定システム
US6760798B1 (en) Interface mechanism and method for interfacing a real-time clock with a data processing circuit
JP2021182808A (ja) 同期制御システム
JP2006048284A (ja) プログラマブルコントローラ装置およびオプションモジュールとの同期方法
JP4588435B2 (ja) 出力信号を安定して生成する同期化回路
KR100907394B1 (ko) 동기식 회로의 클럭 발생 장치
KR20030046686A (ko) 이동 통신 시스템에서 망동기 클럭을 생성하기 위한 클럭생성 장치

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant