KR101571635B1 - Plc 고속 카운터의 동작 방법 - Google Patents

Plc 고속 카운터의 동작 방법 Download PDF

Info

Publication number
KR101571635B1
KR101571635B1 KR1020140148900A KR20140148900A KR101571635B1 KR 101571635 B1 KR101571635 B1 KR 101571635B1 KR 1020140148900 A KR1020140148900 A KR 1020140148900A KR 20140148900 A KR20140148900 A KR 20140148900A KR 101571635 B1 KR101571635 B1 KR 101571635B1
Authority
KR
South Korea
Prior art keywords
counter
current value
ring
value
mode
Prior art date
Application number
KR1020140148900A
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 KR1020140148900A priority Critical patent/KR101571635B1/ko
Priority to CN201510717681.8A priority patent/CN105573244B/zh
Priority to US14/927,987 priority patent/US9813066B2/en
Application granted granted Critical
Publication of KR101571635B1 publication Critical patent/KR101571635B1/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/07Programme control other than numerical control, i.e. in sequence controllers or logic controllers where the programme is defined in the fixed connection of electrical elements, e.g. potentiometers, counters, transistors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K21/00Details of pulse counters or frequency dividers
    • H03K21/02Input circuits
    • H03K21/026Input circuits comprising logic circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K21/00Details of pulse counters or frequency dividers
    • H03K21/38Starting, stopping or resetting the counter
    • 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)
  • Programmable Controllers (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)

Abstract

본 발명은 PLC 고속 카운터 및 이의 동작 방법에 관한 것으로, 본 발명의 일 측면에 따른 PLC 고속 카운터는, 엔코더로부터 입력되는 고속의 펄스열을 CMOS 레벨로 변환하여 출력하는 입력회로; 상기 입력회로로부터 펄스열을 전달받아 리니어 카운트 방식에 따라 계수하여 계수값을 생성하고, 상기 계수값을 바탕으로 링 카운터 현재값을 계산하는 마이크로 프로세서 유닛; 및 상기 마이크로 프로세서 유닛으로부터 상기 계수값을 전달받아 리니어 카운터 현재값으로 저장하는 버퍼로 구성되고, 외부기기로부터 현재값 요청이 입력되면, 상기 마이크로 프로세서 유닛은 동작 모드를 판단하여 링 카운터 모드이면 상기 링 카운터 현재값을 전송한다.

Description

PLC 고속 카운터의 동작 방법{OPERATING METHOD OF PLC HIGH SPEED COUNTER}
본 발명은 PLC 고속 카운터에 관한 것으로, 상세하게는 PLC 고속 카운터의 링 카운터 모드 시의 현재값을 리니어 카운터 모드 시의 현재값과 수학식을 통해 계산함으로써, 마이크로 프로세서의 인터럽트 부담을 최소화할 수 있으며, 성능을 향상시킬 수 있는 PLC 고속 카운터의 동작 방법에 관한 것이다.
PLC(Programmable Logic Controller)의 고속 카운터는 펄스 발생기, 엔코더(encoder) 등에서 나오는 신호처럼 일반 카운터 명령으로 처리할 수 없는 고속의 펄스열을 계수하기 위한 모듈이다.
일반적으로 PLC 고속 카운터의 동작을 위해서는 PC 혹은 HMI 기기를 이용하여 PLC 고속 카운터의 모드를 설정한다. 이때, 설정된 모드에 따라, PLC 고속 카운터는 리니어 카운터 모드 또는 링 카운터 모드로 동작한다.
설정된 모드에 따라, PLC 고속 카운터는 엔코더로부터 입력되는 고속의 펄스열을 계수한 후, 현재값을 저장한다.
PLC 고속 카운터가 링 카운터 모드인 경우, PLC 고속 카운터는 사용자가 설정한 링 카운트 최소값과 링 카운트 최대값 범위 안의 값이 되도록 펄스열을 계수한 후, 현재값을 저장한다.
PLC 고속 카운터가 리니어 카운터 모드인 경우, PLC 고속 카운터는 전체 카운트 범위 안의 값이 되도록 펄스열을 계수한 후, 현재값을 저장한다.
PC 또는 HMI는 PLC 고속 카운터로부터 현재값을 읽어가서 화면에 표시함으로써, 사용자에게 현재의 계수값(계수된 현재값)을 알려준다.
도 1은 PLC 고속 카운터의 카운터 모드에 따른 현재값 계수 과정을 도시한 도면으로, Signed 32bit의 최대 계수 범위인 경우의 동작을 도시하고 있다.
도 1(a)는 PLC 고속 카운터가 리니어 카운터 모드로 동작하는 경우의 현재값 계수 과정을 도시하고 있다.
펄스열이 PLC 고속 카운터로 입력되면, PLC 고속 카운터는 가산 조건에 따라 현재값을 가산하다가 현재값이 전체 카운트 범위의 상한(2,147,483,647)에 도달하면 이후로는 가산 조건이 발생해도 더 이상 가산하지 않는다.
반대로, PLC 고속 카운터는 감산 조건에 따라 현재값을 감산하다가 현재값이 전체 카운트 범위의 하한(-2,147,483,647)에 도달하면 이후로는 감산 조건이 발생해도 더 이상 감산하지 않는다.
도 1(b)는 PLC 고속 카운터가 링 카운터 모드로 동작하는 경우의 현재값 계수 과정을 도시하고 있다. PLC 고속 카운터가 링 카운터 모드로 동작하는 경우, 사용자는 링 카운트 최대값과 링 카운트 최소값을 설정한다.
펄스열이 PLC 고속 카운터로 입력되면, PLC 고속 카운터는 가산 조건 또는 감산 조건에 따라 현재값을 가산하거나 감산한다.
이때, PLC 고속 카운터는 가산하다가 현재값이 링 카운트 최대값에 도달하는 순간 캐리가 발생하고 현재값은 링 카운트 최소값으로 변경되며, 이후 가산 조건이 발생하면 PLC 고속 카운터는 가산 동작을 한다.
반대로, PLC 고속 카운터가 감산하다가 현재값이 (링 카운트 최소값 - 1)에 도달하는 순간 보로가 발생하고 현재값은 (링 카운트 최대값 - 1)로 변경되며, 이후 감산 조건이 발생하면 감산 동작을 한다.
도 2는 종래 기술에 따른 PLC 고속 카운터의 카운트 처리 흐름도이다.
PLC 고속 카운터로 펄스열이 입력되면, PLC 고속 카운터는 펄스열의 상승 에지 및 하강 에지를 감지할 때마다 PLC 스캔 프로그램을 잠시 중단하고 인터럽트를 발생한 뒤 카운트 처리 루틴을 수행한다.
이때, 도 2에서와 같이, PLC 고속 카운터는 펄스열이 입력될 때마다 매번 인터럽트 루틴에서 카운터 모드가 리니어 카운터 모드인지 링 카운터 모드인지를 판단하고, 이에 따라 분기하여 가산 동작, 감산 동작 또는 링 카운트 동작을 한다.
따라서, 종래에는 입력 펄스열의 에지마다 인터럽트를 발생한 뒤 고속 카운터 기능을 수행해야 하며, 카운트 모드에 따라 도 2와 같이 복잡한 분기 처리를 해야 하므로, 인터럽트 처리 시간이 길어지게 된다.
이에 따라, 입력 펄스열의 속도가 매우 빠른 경우 인터럽트 처리를 위해 PLC 고속 카운터의 MPU의 자원을 과도하게 점유하므로 PLC 스캔 프로그램의 처리속도가 느려지는 문제점이 있다.
또한, 여러 개의 고속 카운터 채널에 동시에 펄스열이 입력되는 경우에는 입력 펄스를 계수하지 못하고 빠뜨리는 현상이 발생할 수도 있다.
또한, 카운트별로 처리 루틴의 분기 처리가 필요하기 때문에 소프트웨어의 용량이 커지고, 작성 시간이 길어지며, 유지 보수가 어려운 단점이 있다.
따라서, 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 안출된 것으로, 본 발명의 목적은, PLC 고속 카운터의 링 카운터 모드 시의 현재값을 리니어 카운터 모드 시의 현재값과 수학식을 통해 계산함으로써, 마이크로 프로세서의 인터럽트 부담을 최소화할 수 있으며, 성능을 향상시킬 수 있는 PLC 고속 카운터의 동작 방법을 제공함에 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 PLC 고속 카운터의 동작 방법은, 펄스가 입력되면 리니어 카운트 방식에 따라 계수하여 계수값을 생성하는 단계; 상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계; 외부로부터 현재값 요청이 입력되면, PLC 고속 카운터의 모드를 판단하는 단계; 및 상기 PLC 고속 카운터의 모드를 판단한 결과, 링 카운터 모드인 것으로 판단되면, 상기 리니어 카운터 현재값에 상응하는 링 카운터 현재값을 전송하는 단계로 이루어진다.
또한, 본 발명의 PLC 고속 카운터의 동작 방법은, 상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계와 상기 PLC 고속 카운터의 모드를 판단하는 단계 사이에, 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계를 더 포함한다.
이때, 상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계에서 저장된 링 카운터 현재값을 전송하는 것일 수 있다.
또한, 상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계에서 저장된 계수값을 바탕으로 링 카운터 현재값을 계산하고, 계산된 링 카운터 현재값을 전송하는 것일 수 있다.
한편, 상기 계수값을 바탕으로 링 카운터 현재값을 계산하는 것은 하기의 수학식에 의해서 이루어질 수 있다.
[수학식]
Figure 112014104427377-pat00001
여기서, RINGMAX는 링 카운트 최대값이고, RINGMIN은 링 카운트 최소값이고, FLOOR()은 FLOOR 함수를 의미한다.
또한, 상기 PLC 고속 카운터의 모드를 판단하는 단계에서의 판단 결과, 리니어 카운터 모드이면, 상기 버퍼에 저장된 리니어 카운터 현재값을 전송하는 단계가 이루어진다.
종래에는 PLC 고속 카운터의 모드에 따라 분기하여 서로 다른 처리 과정을 수행하였으나, 이와 같은 본 발명에 따르면, PLC 고속 카운터는 링 카운터 모드 시의 현재값을 리니어 카운터 모드 시의 현재값과 수학식을 통해 계산한다.
따라서, PLC 고속 카운터 모드에 상관없이 하나의 처리 과정을 수행하기 때문에, 불필요한 분기 동작을 제거함으로써 인터럽트 처리 시간을 줄일 수 있다.
또한, 종래에는 PLC 고속 카운터의 모드에 따라 매번 다른 분기 처리를 수행하기 때문에 소프트웨어의 용량이 늘어나고 처리시간이 길어지는 문제점이 있었으나, 본 발명에 따르면, 짧은 인터럽트 처리만을 수행하고, 외부로부터 현재값 요청이 있는 경우에만 연산 수식에 의해 링 카운터 현재값을 계산하면 되기 때문에 과부하로 인한 성능 저하와 PLC 스캔 프로그램 수행시간 증가를 방지할 수 있다.
도 1은 종래 PLC 고속 카운터의 카운터 모드에 따른 현재값 계수 과정을 도시한 도면이다.
도 2는 종래 기술에 따른 PLC 고속 카운터의 카운트 처리 흐름도이다.
도 3은 본 발명의 실시 예에 따른 PLC 고속 카운터의 구성도이다.
도 4는 본 발명의 제 1 실시 예에 따른 PLC 고속 카운터의 카운트 처리 흐름도이다.
도 5는 본 발명의 제 1 실시 예에 따른 PLC 고속 카운터의 현재값 전송 과정을 도시한 흐름도이다.
도 6은 본 발명의 제 2 실시 예에 따른 PLC 고속 카운터의 카운트 처리 흐름도이다.
도 7은 본 발명의 제 2 실시 예에 따른 PLC 고속 카운터의 현재값 전송 과정을 도시한 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 도면부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 본 발명의 실시 예에 따른 PLC 고속 카운터의 구조 및 동작에 대하여 첨부한 도면을 참조하여 상세하게 설명해 보기로 한다.
도 3은 본 발명의 실시 예에 따른 PLC 고속 카운터의 구성도이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 PLC 고속 카운터(100)는 엔코더(300)로부터 입력되는 고속의 펄스열을 계수하고, 계수된 결과(‘계수값’)를 현재값으로 저장하고 있다가, 외부기기(200)로부터 현재값 요청을 수신하면, 저장하고 있던 현재값을 외부기기(200)로 전송한다.
상기 외부기기(200)는 PLC 고속 카운터(100)의 동작 모드, 링 카운트 최소값과 링 카운트 최대값, 리니어 카운터 모드 시의 전체 카운트 범위(‘리니어 카운트 범위’)를 설정한다.
이때, 상기 외부기기(200)는 PLC 고속 카운터(100)가 링 카운터 모드로 동작할지 리니어 카운터 모드로 동작할지를 설정하며, 링 카운트 최대값 및 링 카운트 최소값은 링 카운터 현재값을 계산하는 데 이용된다.
또한, 상기 외부기기(200)는 PLC 고속 카운터(100)로 현재값을 요청 및 수신하여, 사용자가 현재값을 확인할 수 있도록 표시장치를 이용하여 표시한다.
상기 외부기기(200) 및 엔코더(300)는 본 발명이 속하는 기술분야에서 통상의 기술로서 이에 대한 상세한 설명은 생략하며, 이하에서는 PLC 고속 카운터(100)의 구성에 대해서 상술하도록 한다.
상기 PLC 고속 카운터(100)는 입력회로(120), 마이크로 프로세서 유닛(MPU; Micro Processor Unit)(140) 및 버퍼(160)로 구성될 수 있다.
상기 입력회로(120)는 엔코더(300)로부터 입력되는 고속의 펄스열을 CMOS 레벨로 변환하여 마이크로 프로세서 유닛(140)으로 전달한다. 이때, 상기 입력회로(120)는 본 발명의 속하는 기술분야에 기 공지되어 있는 구성을 사용자가 적절하게 선택하여 구현할 수 있으므로, 입력회로(120)에 대한 상세한 설명은 생략한다.
상기 MPU(140)는 입력회로(120)로부터 전달되는 펄스열을 리니어 카운트 방식에 따라 계수하여, 계수한 결과(‘계수값’)를 버퍼(160)로 전송한다.
이하, 리니어 카운트 방식에 따라 계산되어 버퍼(160)에 저장된 계수값을 ‘리니어 카운터 현재값’이라고 하며, 따라서, 계수값과 리니어 카운터 현재값은 동일하다.
또한, 상기 MPU(140)는 상기 계수값을 후술할 수학식 1에 대입하여 ‘링 카운터 현재값’을 계산하여, 계산된 링 카운터 현재값을 버퍼(160)로 전송하도록 구성될 수 있다.
이때, 상기 MPU(140)는 외부기기(200)로부터 현재값 요청이 입력되면, 링 카운터 모드인지 리니어 카운터 모드인지를 판단하고, 링 카운터 모드이면 링 카운터 현재값을 외부기기(200)로 전송하고, 리니어 카운터 모드이면 리니어 카운터 현재값을 외부기기(200)로 전송한다.
선택적으로, 상기 MPU(140)는 외부기기(200)로부터 현재값 요청이 입력되면, 링 카운터 모드인지 리니어 카운터 모드인지를 판단하여, 리니어 카운터 모드이면, 버퍼(160)에 저장된 리니어 카운터 현재값을 외부기기(200)로 전송하고, 링 카운터 모드이면, 버퍼(160)에 저장된 리니어 카운터 현재값(계수값)을 수학식 1에 대입하여 링 카운터 현재값을 계산한 후, 계산된 링 카운터 현재값을 외부기기(200)로 전송하도록 구현될 수 있다.
즉, 종래에는 PLC 고속 카운터가 링 카운터 모드인 경우에 링 카운트 방식에 따라 펄스열을 계수하였으나, 본 발명에서는 링 카운트 방식을 이용하지 않고, 리니어 카운트 방식과 수학식을 이용하여 링 카운터 모드 시의 현재값을 계수한다. 상기 MPU(140)의 동작에 대한 구체적인 설명은 도 4 내지 7을 참조하여 후술하도록 한다.
상기 버퍼(160)는 MPU(140)로부터 전송되는 계수값(리니어 카운터 현재값) 및 링 카운터 현재값을 저장한다. 이때, 상기 버퍼(160)는 본 발명이 속하는 기술 분야에서 기 공지되어 있는 것을 사용자가 적절하게 선택하여 구현할 수 있으므로, 버퍼(160)에 대한 상세한 설명은 생략한다.
도 4는 본 발명의 제 1 실시 예에 따른 PLC 고속 카운터의 카운트 처리 흐름도이다.
도 4를 참조하면, 엔코더(300)로부터 펄스가 입력되면(S410), PLC 고속 카운터(100)는 현재 상태가 가산 조건인지 감산 조건인지를 판단한다(S420).
만약, 단계 S420에 따른 판단 결과, 가산 조건인 경우, 버퍼(160)에 저장된 리니어 카운터 현재값이 설정된 리니어 카운트 범위의 상한인지를 판단한다(S430).
만약, 리니어 카운터 현재값이 상한인 경우(S430-Yes), 계수를 종료하고, 리니어 카운터 현재값이 상한이 아닌 경우(S430-No), 리니어 카운터 현재값을 1 증가시킨다(S440). 이때, 1 증가된 리니어 카운터 현재값은 버퍼(160)에 저장된다.
한편, 단계 S420에 따른 판단 결과, 감산 조건인 경우인 경우, 버퍼(160)에 저장된 리니어 카운터 현재값이 설정된 리니어 카운트 범위의 하한인지를 판단한다(S450).
이때, 리니어 카운터 현재값이 하한인 경우(S450-Yes), 계수를 종료하고, 리니어 카운터 현재값이 하한이 아닌 경우(S450-No), 리니어 카운터 현재값을 1 감소시킨다(S460). 이때, 1 감소된 리니어 카운터 현재값은 버퍼(160)에 저장된다.
도 4는 단일 펄스에 대한 계수 과정을 도시한 것으로, 이러한 과정은 펄스가 입력될 때마다 이루어진다.
한편, 단계 S410 ~ S460에 따라 펄스열을 계수한 후 혹은 계수 도중에, 외부기기(200)로부터 현재값 요청 신호가 입력되면, PLC 고속 카운터(100)는 현재값을 외부기기(200)로 전송하는데, 현재값 전송 과정을 도 5를 참조하여 설명한다.
도 5는 본 발명의 제 1 실시 예에 따른 PLC 고속 카운터의 현재값 전송 과정을 도시한 흐름도이다.
도 5를 참조하면, 외부기기(200)로부터 현재값 요청이 입력되면(S510), PLC 고속 카운터(100)는 모드가 리니어 카운터 모드인지 링 카운터 모드인지를 판단한다(S520).
이때, 단계 S520에 따른 판단 결과, 리니어 카운터 모드인 경우, PLC 고속 카운터(100)는 버퍼(160)에 저장된 리니어 카운터 현재값을 외부기기(200)로 전송한다(S530).
한편, 단계 S520에 따른 판단 결과, 링 카운터 모드인 경우, PLC 고속 카운터(100)는 버퍼(160)에 저장된 리니어 카운터 현재값(계수값)을 수학식 1에 적용하여 계산된 결과(‘링 카운터 현재값’)를 외부기기(200)로 전송한다(S540).
Figure 112014104427377-pat00002
여기서, 계수값은 리니어 카운터 방식에 따라 계수된 값(‘리니어 카운터 현재값’)이고, RINGMAX는 링 카운트 최대값이고, RINGMIN은 링 카운트 최소값이고, FLOOR()은 FLOOR 함수를 의미한다.
하기 표 1은 본 발명의 PLC 고속 카운터를 이용한 경우의 리니어 카운터 방식에 따라 계산된 계수값(‘리니어 카운터 현재값’)을 링 카운트 현재값으로 변환한 예를 나타낸 것으로서, 링카운터 최소값(RINGMIN)이 -1000이고, 링카운터 최대값(RINGMAX)이 1000라고 가정한다.
Case ① 계수값 ② 계수값 - RINGMIN ③ RINGMAX - RINGMIN ④ FLOOR() ③×④ 링 카운터 현재값


가산 시
9000 19000 20000 0 0 9000
9999 19999 20000 0 0 9999
10000 20000 20000 1 20000 -10000
19000 29000 20000 1 20000 -1000
20000 30000 20000 1 20000 0


감산 시
-9000 1000 20000 0 0 -9000
-10000 0 20000 0 0 -10000
-10001 -1 20000 -1 -20000 9999
-20000 -10000 20000 -1 -20000 0
20000 30000 20000 -1 -20000 0
종래에는 PLC 고속 카운터의 모드에 따라 분기하여 서로 다른 처리 과정을 수행하였으나, 이와 같은 본 발명에 따르면, PLC 고속 카운터는 링 카운터 모드 시의 현재값을 리니어 카운터 모드 시의 현재값과 수학식을 통해 계산한다.
따라서, PLC 고속 카운터 모드에 상관없이 하나의 처리 과정을 수행하기 때문에, 불필요한 분기 동작을 제거함으로써 인터럽트 처리 시간을 줄일 수 있다.
또한, 종래에는 PLC 고속 카운터의 모드에 따라 매번 다른 분기 처리를 수행하기 때문에 소프트웨어의 용량이 늘어나고 처리시간이 길어지는 문제점이 있었으나, 본 발명에 따르면, 짧은 인터럽트 처리만을 수행하고, 외부로부터 현재값 요청이 있는 경우에만 연산 수식에 의해 링 카운터 현재값을 계산하면 되기 때문에 과부하로 인한 성능 저하와 PLC 스캔 프로그램 수행시간 증가를 방지할 수 있다.
도 6은 본 발명의 제 2 실시 예에 따른 PLC 고속 카운터의 카운트 처리 흐름도이다.
도 6을 참조하면, 엔코더(300)로부터 펄스가 입력되면(S610), PLC 고속 카운터(100)는 현재 상태가 가산 조건인지 감산 조건인지를 판단한다(S620).
만약, 단계 S620에 따른 판단 결과, 가산 조건인 경우, 버퍼(160)에 저장된 리니어 카운터 현재값이 설정된 리니어 카운트 범위의 상한인지를 판단한다(S630).
이때, 리니어 카운터 현재값이 상한인 경우(S630-Yes), 계수를 종료하고, 리니어 카운터 현재값이 상한이 아닌 경우(S630-No), 리니어 카운터 현재값을 1 증가시키며(S640), 1 증가된 리니어 카운터 현재값은 버퍼(160)에 저장된다.
단계 S640에 따라 버퍼(160)에 저장된 리니어 카운터 현재값을 1 증가시킨 후, 리니어 카운터 현재값(=계수값)을 수학식 1에 대입하여 링 카운터 현재값을 계산하고, 계산된 링 카운터 현재값을 버퍼(160)에 저장한다(S650).
한편, 단계 S620에 따른 판단 결과, 감산 조건인 경우인 경우, 버퍼(160)에 저장된 리니어 카운터 현재값이 설정된 리니어 카운트 범위의 하한인지를 판단한다(S660).
이때, 리니어 카운터 현재값이 하한인 경우(S660-Yes), 계수를 종료하고, 리니어 카운터 현재값이 하한이 아닌 경우(S660-No), 리니어 카운터 현재값을 1 감소시키며(S670), 1 감소된 리니어 카운터 현재값은 버퍼(160)에 저장된다.
단계 S670에 따라 버퍼(160)에 저장된 리니어 카운터 현재값을 1 감소시킨 후, 리니어 카운터 현재값(=계수값)을 수학식 1에 대입하여 링 카운터 현재값을 계산하고, 계산된 링 카운터 현재값을 버퍼(160)에 저장한다(S680).
한편, 단계 S610 ~ S680에 따라 펄스열을 계수한 후 혹은 계수 도중에, 외부기기(200)로부터 현재값 요청 신호가 입력되면, PLC 고속 카운터(100)는 현재값을 외부기기(200)로 전송하는데, 현재값 전송 과정을 도 7을 참조하여 설명한다.
도 7은 본 발명의 제 2 실시 예에 따른 PLC 고속 카운터의 현재값 전송 과정을 도시한 흐름도이다.
도 7을 참조하면, 외부기기(200)로부터 현재값 요청이 입력되면(S710), PLC 고속 카운터(100)는 모드가 리니어 카운터 모드인지 링 카운터 모드인지를 판단한다(S720).
이때, 단계 S720에 따른 판단 결과, 리니어 카운터 모드인 경우, PLC 고속 카운터(100)는 버퍼(160)에 저장된 리니어 카운터 현재값을 외부기기(200)로 전송한다(S730).
한편, 단계 S720에 따른 판단 결과, 링 카운터 모드인 경우, PLC 고속 카운터(100)는 버퍼(160)에 저장된 링 카운터 현재값을 외부기기(200)로 전송한다(S740).
한편, 본 발명에 따른 PLC 고속 카운터 및 이의 동작 방법을 실시 예에 따라 설명하였지만, 본 발명의 범위는 특정 실시 예에 한정되는 것은 아니며, 본 발명과 관련하여 통상의 지식을 가진 자에게 자명한 범위 내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.
따라서, 본 발명에 기재된 실시 예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
100 : PLC 고속 카운터
120 : 입력회로
140 : MPU(Micro Processor Unit)
160 : 버퍼
200 : 외부기기
300 : 엔코더

Claims (6)

  1. 펄스가 입력되면 리니어 카운트 방식에 따라 계수하여 계수값을 생성하는 단계;
    상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계;
    외부로부터 현재값 요청이 입력되면, PLC 고속 카운터의 모드를 판단하는 단계; 및
    상기 PLC 고속 카운터의 모드를 판단한 결과, 링 카운터 모드인 것으로 판단되면, 상기 리니어 카운터 현재값에 상응하는 링 카운터 현재값을 전송하는 단계로 이루어지는 PLC 고속 카운터의 동작 방법.
  2. 제 1 항에 있어서,
    상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계와 상기 PLC 고속 카운터의 모드를 판단하는 단계 사이에, 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계를 더 포함하는 PLC 고속 카운터의 동작 방법.
  3. 제 2 항에 있어서,
    상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계에서 저장된 링 카운터 현재값을 전송하는 것인 PLC 고속 카운터의 동작 방법.
  4. 제 1 항에 있어서,
    상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계에서 저장된 계수값을 바탕으로 링 카운터 현재값을 계산하고, 계산된 링 카운터 현재값을 전송하는 것인 PLC 고속 카운터의 동작 방법.
  5. 제 2 항 또는 제 4 항에 있어서,
    상기 계수값을 바탕으로 링 카운터 현재값을 계산하는 것은 하기의 수학식에 의해서 이루어지는 PLC 고속 카운터의 동작 방법.
    [수학식]
    Figure 112014104427377-pat00003

    여기서, RINGMAX는 링 카운트 최대값이고, RINGMIN은 링 카운트 최소값이고, FLOOR()은 FLOOR 함수를 의미한다.
  6. 제 1 항에 있어서,
    상기 PLC 고속 카운터의 모드를 판단하는 단계에서의 판단 결과, 리니어 카운터 모드이면, 상기 버퍼에 저장된 리니어 카운터 현재값을 전송하는 단계가 이루어지는 PLC 고속 카운터의 동작 방법.
KR1020140148900A 2014-10-30 2014-10-30 Plc 고속 카운터의 동작 방법 KR101571635B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140148900A KR101571635B1 (ko) 2014-10-30 2014-10-30 Plc 고속 카운터의 동작 방법
CN201510717681.8A CN105573244B (zh) 2014-10-30 2015-10-29 Plc高速计数器和其操作方法
US14/927,987 US9813066B2 (en) 2014-10-30 2015-10-30 PLC high speed counter and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140148900A KR101571635B1 (ko) 2014-10-30 2014-10-30 Plc 고속 카운터의 동작 방법

Publications (1)

Publication Number Publication Date
KR101571635B1 true KR101571635B1 (ko) 2015-11-24

Family

ID=54845244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140148900A KR101571635B1 (ko) 2014-10-30 2014-10-30 Plc 고속 카운터의 동작 방법

Country Status (3)

Country Link
US (1) US9813066B2 (ko)
KR (1) KR101571635B1 (ko)
CN (1) CN105573244B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093642A (zh) * 2021-04-09 2021-07-09 江西九二盐业有限责任公司 一种智能装车计数集中运算系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101936565B1 (ko) * 2016-11-14 2019-01-09 엘에스산전 주식회사 인버터에서 인터럽트 제어방법
CN112152608B (zh) * 2020-08-21 2024-06-14 广东韶钢松山股份有限公司 一种plc脉冲信号计数方法、装置、计算机设备及存储介质
US20230362274A1 (en) * 2020-09-16 2023-11-09 Netflix, Inc. Configurable access-based cache policy control

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014707A (ja) 2000-06-28 2002-01-18 Omron Corp I/oユニット及びプログラマブルコントローラ

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807553B2 (en) * 2001-04-23 2004-10-19 Safenet B.V. Digital true random number generator circuit
US7234159B1 (en) * 2003-01-07 2007-06-19 Altera Corporation Method and apparatus for controlling evaluation of protected intellectual property in hardware
JP4248950B2 (ja) * 2003-06-24 2009-04-02 株式会社ルネサステクノロジ 乱数発生装置
CN202455334U (zh) * 2011-12-16 2012-09-26 四川九洲电器集团有限责任公司 一种电子计数器
KR20140044574A (ko) * 2012-10-05 2014-04-15 엘에스산전 주식회사 펄스신호에 대한 차단 주파수 검출 장치
EP2899887B1 (en) * 2014-01-23 2018-11-21 Dialog Semiconductor (UK) Limited Digital counter comprising reduced transition density

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014707A (ja) 2000-06-28 2002-01-18 Omron Corp I/oユニット及びプログラマブルコントローラ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113093642A (zh) * 2021-04-09 2021-07-09 江西九二盐业有限责任公司 一种智能装车计数集中运算系统
CN113093642B (zh) * 2021-04-09 2022-08-26 江西九二盐业有限责任公司 一种智能装车计数集中运算系统

Also Published As

Publication number Publication date
CN105573244A (zh) 2016-05-11
US20160126958A1 (en) 2016-05-05
CN105573244B (zh) 2018-08-17
US9813066B2 (en) 2017-11-07

Similar Documents

Publication Publication Date Title
KR101571635B1 (ko) Plc 고속 카운터의 동작 방법
US20200333867A1 (en) Current control for a multicore processor
EP3188461B1 (en) Method and apparatus for correcting detection distance
US10564696B2 (en) Method and apparatus for supplying power to a processor
EP2950413A1 (en) Telecommunications equipment, power supply system, and power supply implementation method
US20110057881A1 (en) Kvm management system and method of providing adaptable synchronization signal
US20140195827A1 (en) Electronic device with power control function
CN105071816A (zh) 一种高效率快速按键扫描方法
JP6077614B2 (ja) インバータの制御方法
US10910849B2 (en) Charging method and charging system
CN210404843U (zh) 一种电控柜远程维护与监控系统
US20140289431A1 (en) Interface apparatus connected with electronic device
US20160301925A1 (en) Signal source for electromagnetic interference test of display devices
WO2016061959A1 (zh) 欠压保护电路的处理方法及装置、欠压保护系统
US20160148658A1 (en) Electronic device and data transmission method thereof
CN205430438U (zh) 一种智能切换器
CN103531255B (zh) 一种反应堆功率保护放大装置及方法
JP6301890B2 (ja) 通信制御装置、通信制御方法、及び、通信制御プログラム
KR20120124338A (ko) 고속 카운터
CN206878823U (zh) 一种基带单元设备光口速率自适应装置
CN109586618B (zh) 一种用于电气设备的驱动系统
JP2018196295A (ja) コントローラ、蓄電システムおよびプログラム
CN203933360U (zh) 一种igbt光纤驱动装置
JP2007241842A (ja) I/oブリッジ回路及び割り込み信号制御方法
CN207337295U (zh) 一种大数据云计算一体机

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: 20181001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 5