본문으로 바로가기
반응형

(출처: vclock.kr/stopwatch/#)

100m 달리기와 같이 기록을 측정하는 운동 경기에서 스탑워치가 자주 사용된다. 스탑워치 자체를 모르는 사람은 없겠지만, 글의 내용 진행을 위해 굳이 이야기를 해보자면, 위 그림과 같이 시간이 표시되는 부분이 있고, 시작 버튼을 눌렀을 때 시간이 증가되기 시작하다가 리셋 버튼을 누르면 지금까지 측정된 시간이 초기화되는 그런 기능을 가지고 있다.

이전 글을 통해 알아보았듯이, IEC 61131-3에서는 TON, TOF, TP라는 세 가지 타입의 타이머를 정의하고 있다. 그리고, CODESYS에서는 Standard 라이브러리를 통해 세 가지 타입의 타이머를 제공하고 있다.

IEC의 표준 타이머 중에서 TON 타이머가 스탑 워치의 동작 특성과 가장 잘 맞는다. 하지만, 시간을 측정하는 동안 시작 버튼이 한 번 더 눌러졌을 경우, 지금까지의 측정된 시간을 유지한 상태에서 시간 측정을 멈추는 기능이 스탑 워치에는 있지만, TON 타이머는 타이머의 동작이 멈춤과 동시에 시간도 초기화가 되는 특징을 가지고 있으므로, 시간이 유지되도록 만들어주는 약간의 프로그래밍 로직이 포함되어야 한다.

스탑 워치에 적용하기 위해 위 그림과 같은 적산 타이머를 구현하였다. 순수하게 스탑 워치에 대한 기능만을 고려한다면, 타이머의 동작이나 누적된 시간을 초기화하는 입력과 적산된 시간의 출력 정보 정도면 충분하겠지만, 알람 등을 추가한 타이머를 생각한다면, 목표 시간에 대한 입력과 알람 출력 등을 추가할 수도 있다.

위에서 설명한 적산 타이머와 CODESYS의 Visualization 기능을 이용하여, 위 영상과 같은 스탑 워치를 구현하였다. 여기서는 적산 타이머의 목표 시간으로 아무런 시간을 전달하지 않았는데, 이 경우에는 제한 없이 시간을 측정하는 스탑 워치 모드로 적용할 수 있다.

그리고, 적산 타이머에 시간 정보를 입력하는 경우 위 영상을 통해 보는 것 처럼, 알람 기능을 가진 적산 타이머로도 활용할 수 있다.

이번 글의 내용과 같이 임의의 펑션 블록을 생성하는 자세한 방법은 
전자책을 통해 확인하실 수 있습니다.
아래 Link를 클릭하면 전자책 구매 사이트 (크몽)으로 연결되니,
전자책 구매에 관심 있으신 분들은 참고하시기 바랍니다.

(전자책 구매하러가기)

 

지금 읽고 계신 글이 유익했다면, 커피 한 잔 부탁드립니다.
더욱 참신한 글로 여러분의 후원에 보답하겠습니다.


donaricano-btn

반응형