KR101571635B1 - Plc 고속 카운터의 동작 방법 - Google Patents
Plc 고속 카운터의 동작 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/07—Programme 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K21/00—Details of pulse counters or frequency dividers
- H03K21/02—Input circuits
- H03K21/026—Input circuits comprising logic circuits
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K21/00—Details of pulse counters or frequency dividers
- H03K21/38—Starting, stopping or resetting the counter
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15049—Timer, 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 고속 카운터에 관한 것으로, 상세하게는 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 고속 카운터의 모드를 판단하는 단계 사이에, 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계를 더 포함한다.
이때, 상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계에서 저장된 링 카운터 현재값을 전송하는 것일 수 있다.
또한, 상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계에서 저장된 계수값을 바탕으로 링 카운터 현재값을 계산하고, 계산된 링 카운터 현재값을 전송하는 것일 수 있다.
한편, 상기 계수값을 바탕으로 링 카운터 현재값을 계산하는 것은 하기의 수학식에 의해서 이루어질 수 있다.
[수학식]
여기서, 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 고속 카운터의 현재값 전송 과정을 도시한 흐름도이다.
도 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).
여기서, 계수값은 리니어 카운터 방식에 따라 계수된 값(‘리니어 카운터 현재값’)이고, 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 : 엔코더
120 : 입력회로
140 : MPU(Micro Processor Unit)
160 : 버퍼
200 : 외부기기
300 : 엔코더
Claims (6)
- 펄스가 입력되면 리니어 카운트 방식에 따라 계수하여 계수값을 생성하는 단계;
상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계;
외부로부터 현재값 요청이 입력되면, PLC 고속 카운터의 모드를 판단하는 단계; 및
상기 PLC 고속 카운터의 모드를 판단한 결과, 링 카운터 모드인 것으로 판단되면, 상기 리니어 카운터 현재값에 상응하는 링 카운터 현재값을 전송하는 단계로 이루어지는 PLC 고속 카운터의 동작 방법. - 제 1 항에 있어서,
상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계와 상기 PLC 고속 카운터의 모드를 판단하는 단계 사이에, 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계를 더 포함하는 PLC 고속 카운터의 동작 방법. - 제 2 항에 있어서,
상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 바탕으로 링 카운터 현재값을 계산하여 상기 버퍼에 저장하는 단계에서 저장된 링 카운터 현재값을 전송하는 것인 PLC 고속 카운터의 동작 방법. - 제 1 항에 있어서,
상기 링 카운터 현재값을 전송하는 단계는 상기 계수값을 리니어 카운터 현재값으로 버퍼에 저장하는 단계에서 저장된 계수값을 바탕으로 링 카운터 현재값을 계산하고, 계산된 링 카운터 현재값을 전송하는 것인 PLC 고속 카운터의 동작 방법. - 제 1 항에 있어서,
상기 PLC 고속 카운터의 모드를 판단하는 단계에서의 판단 결과, 리니어 카운터 모드이면, 상기 버퍼에 저장된 리니어 카운터 현재값을 전송하는 단계가 이루어지는 PLC 고속 카운터의 동작 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113093642A (zh) * | 2021-04-09 | 2021-07-09 | 江西九二盐业有限责任公司 | 一种智能装车计数集中运算系统 |
Families Citing this family (3)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002014707A (ja) | 2000-06-28 | 2002-01-18 | Omron Corp | I/oユニット及びプログラマブルコントローラ |
Family Cites Families (6)
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 |
-
2014
- 2014-10-30 KR KR1020140148900A patent/KR101571635B1/ko active IP Right Grant
-
2015
- 2015-10-29 CN CN201510717681.8A patent/CN105573244B/zh active Active
- 2015-10-30 US US14/927,987 patent/US9813066B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002014707A (ja) | 2000-06-28 | 2002-01-18 | Omron Corp | I/oユニット及びプログラマブルコントローラ |
Cited By (2)
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 |