본문으로 바로가기

Timer와 Counter

category Programming/PLC 2024. 5. 16. 12:22
반응형

프로그램을 작성하는 과정에서 개발환경이 제공하는 특수 기능 중에서 가장 많이 사용하는 기능을 꼽으라고 하면,
단언컨대 1위가 타이머이고, 2위가 카운터가 아닐까 생각합니다. 
그래서, 접근하는 방식이나 사용하는 방법은 조금씩 달라지더라도,
타이머와 카운터 기능은 모든 개발 환경에서 빼먹지 않고 지워하는 기능이라 말씀드릴 수 있는데요. 
이런 타이머와 카운터에 대해 IEC에서도 각각 3가지 타입의 타이머와 카운터를 지원하고 있습니다.

우선, IEC에서는 TON (On-delay Timer), TOF (Off-delay Timer), TP (Pulse Timer)라는
3가지 타입의 타이머를 표준으로 정의하고 있습니다. 
요즘 개발된 개발 환경들은 대체로 IEC 표준을 따라가는 추세이기 때문에
이 3가지 타입의 타이머를 대부분 모두 지원하지만,
이전부터 지속적으로 사용되고 있는 일부 개발 환경에서는 TON 타입의 타이머만 지원하는 경우도 더러 있습니다. 
그래서, PLC 프로그램 개발자들에게는 TON 타이머가 많이 친숙하지요.

IEC 표준에서 정의하고 있는 타이머들은
위 그림에서 보시는 것과 같이 모두 같은 이름의 입력과 같은 이름의 출력을 가지고 있습니다.
별도의 오브젝트 방식으로 제공하든, 라이브러리 형태로 제공하든 관계없이
IEC에서 표준으로 정의하고 있는 타이머를 제공한다면
모두 같은 이름의 입력과 같은 이름의 출력을 가지고 있구요.
다시 말해, 모두 같은 의미로 사용하는 입/출력이라는 의미입니다.
타이머의 IN 입력은 타이머의 동작을 제어하는 입력으로,
BOOL 타입의 데이터를 전달받을 수 있고요. 
개발자들에게 가장 친숙한 TON 타이머를 기준으로 보자면,
IN 입력으로 TRUE가 전달되는 동안에만 타이머가 동작합니다.
타이머의 동작에 대한 결과는 Q 출력을 통해 확인할 수 있습니다. 
IN 입력과 마찬가지로 BOOL 타입의 데이터를 전달하고요. 
타이머의 종류에 따라 Q 출력에 대한 동작 특성이 조금씩 달라집니다. 
Preset Time을 의미하는 PT 입력은 타이머의 동작과 관련된 시간 정보를 전달하는 입력입니다. 
그래서 TIME 타입의 데이터를 전달받고요. 
TON 타이머를 기준으로 설명드리자면, Q 출력의 활성화까지 소요되는 딜레이 시간을 의미합니다. 
IN 입력과 Q 출력 사이에 소요되는 시간은 ET (Elapsed Time을 의미) 출력을 통해 확인하실 수 있습니다. 
ET 출력 또한 TIME 타입의 데이터를 반환하고요. 
타이머의 동작이 시작되는 시점부터 소요된 시간을 확인할 수 있습니다.

 

프로그램이 실행되는 과정에서 특정 조건이 발현된 횟수를 카운팅 하는 용도로 카운터를 사용하는데요. 
IEC에서는 CTU (Up-counter), CTD (Down-counter), CTUD (Up/Down counter)라는
3가지 타입의 카운터를 표준으로 정의하고 있습니다. 
3가지 타입을 표준으로 정의했다고 해서, 타이머처럼 타입에 따라 세부적인 동작 특성을 가지고 있는 것은 아니구요. 
단순히 횟수를 센다는 개념으로만 사용하기 때문에, 값을 늘려가면서 카운팅 (CTU)을 하는지,
값을 줄여가면서 카운팅 (CTD)을 하는지, 양방향 모두 카운팅 (CTUD)이 가능한지 정도로 구분이 됩니다. 
요즘 개발된 개발 환경들은 대체로 IEC 표준을 따라가는 추세이기 때문에
이 3가지 타입의 카운터를 대부분 모두 지원하지만,
이전부터 지속적으로 사용되고 있는 일부 개발 환경에서는 CTU 타입의 카운터만 지원하는 경우도 더러 있고요. 
여기서 말씀드리는 카운터는 소프트웨어적으로 접근하는 카운터이므로,
물리적인 펄스 신호를 카운팅 하는 경우에는 다른 방식으로 접근해야 된다는 점 참고하시기 바랍니다.

 

이번 글의 주제에 관한 더욱 자세한 내용은 전자책을 통해 확인하실 수 있습니다.
아래 Link를 클릭하면 전자책에 대한 소개글로 이동하오니,
전자책 구매에 관심 있으신 분들은 참고하시기 바랍니다.

[EBook] - EPUB3] ESME - 기본편

반응형

'Programming > PLC' 카테고리의 다른 글

Function과 Function Block  (0) 2024.05.15
사용자 정의형 데이터 타입  (0) 2024.05.14
Sequential Function Chart  (0) 2024.05.14
Structured Text  (2) 2024.05.14
FBD와 CFC  (0) 2024.05.14