상품

PLC 프로그램에서 날짜나 시간 정보를 이용하려면 어떻게 해야 합니까?

등록일
2025. 12. 17.

PLC 프로그램에서 날짜나 시간 정보를 이용하려면 어떻게 해야 합니까?



시계(RTC)를 탑재한 PLC에서는 래더 프로그램 등에서 날짜나 시간 정보를 이용할 수 있습니다.
아래 표에 해당 정보와 사용 방법, 그리고 주간 타이머로서의 제어 예시 ※1을 게재합니다.
기종 날짜/시간 정보 영역 이용 방법
NJ/NX
시리즈
시스템 정의 변수
_CurrentTime
GetTime 명령으로 읽거나 DT(Date And Time) 유형의 시스템 정의 변수 "_CurrentTime"을 직접 읽어서 사용할 수 있습니다.
요일을 얻으려면 GetDayOfWeek 명령을 사용합니다.
날짜로 추출하려면 DT_TO_DATE 명령을, 시간으로 추출하려면 DT_TO_TOD 명령을 사용합니다.
문자열로 변환하려면 DateToString 명령이나 TodToString 명령으로 변환할 수 있습니다.
NJ/NX 시리즈에서는 시간 정보도 미리 형이 정의된 변수로 취급합니다.
테이블 비교 명령은 TOD 등의 시간 관련 형식을 지원하지 않으므로, 다른 기종처럼 단순한 테이블 비교가 불가능합니다.
따라서 여기에서는 시간 정보 비교가 가능한 ZoneCmp 명령을 여러 개 사용하여 위클리 타이머 기능을 구현합니다.
<주간 타이머 제어 예시(1) (시간 변수 비교)> ※1
①_CurrentTime에서 DT_TO_TOD 명령으로 시간을 추출
② TruncTOD 명령어로 초 미만을 잘라내기
③ ZoneCmp 명령어로 설정된 시분초 데이터(TOD)와 비교
 (비교할 개수만큼 ZoneCmp 명령어 작성)
④ 각 ZoneCmp 명령어의 일치한 비교 결과 출력으로 제어

다른 기종과 마찬가지로 테이블 비교를 수행하는 방법도 있지만, 이 경우에는 시분 정보에 가중치를 부여하여 UINT형 정수 등으로 변환하는 등의 기술이 필요합니다.
시분 등의 부분 데이터로 추출하려면 DtToDateStruct 명령어로 일단 USINT형 시나 분 멤버를 포함한 구조체로 추출한 후, 시와 분을 하나의 UINT형으로 표현하기 위해 시를 100배합니다.
참고로, TableCmp 명령의 비교 데이터는 2차원 배열이며, 제1차원 데이터와 제2차원 데이터에 의한 범위 영역 비교, 제1차원과 제2차원의 데이터가 일치하는 경우 일치 비교가 됩니다.
<주간 타이머 제어 예시(2) (테이블 비교)> ※1
① DtToDateStruct 명령어로 시분 포함 구조체로 추출
② USINT형 시/분 멤버를 "시 x 100 + 분" UINT형으로 정렬
③ TableCmp 명령어로 미리 설정된 시분 배열과 비교
④ TableCmp 명령의 일치한 비교 결과 출력으로 제어
CS/CJ/CP
시리즈
특수 보조 릴레이
A351~354CH
A351CH 하위 바이트 ~ A354CH 하위 바이트까지, 각 BCD 2자리로 다음과 같이 저장됩니다.
A351CH 하위 바이트: 초(00-59)
A351CH 상위 바이트: 분(00-59)
A352CH 하위 바이트: 시(00-23)
A352CH 상위 바이트: 일(01-31)
A353CH 하위 바이트: 월(01-12)
A353CH 상위 바이트: 서기 연도(00-99)
A354CH 하위 바이트: 요일(00: 일요일 01: 월요일 02: 화요일 03: 수요일 04: 목요일 05: 금요일 06: 토요일)
<주간 타이머 제어 예> ※1
①XFRB 명령으로 시(A352L) 분(A351H) → 시(H) 분(L)으로 정렬
②TCMP/BCMP 명령으로 미리 설정된 시분 테이블과 비교
③ TCMP/BCMP 명령의 일치한 비교 결과 출력으로 제어
C200HX/HG/HE/
CQM1H
시리즈

※2
보조 저장 릴레이
A18~21CH
A18CH 하위 바이트 ~ A21CH 하위 바이트까지, 각 BCD 2자리로 다음과 같이 저장됩니다.
A18CH 하위 바이트: 초(00-59)
A18CH 상위 바이트: 분(00-59)
A19CH 하위 바이트: 시(00-23)
A19CH 상위 바이트: 일(01-31)
A20CH 하위 바이트: 월(01-12)
A20CH 상위 바이트: 서기 연도(00-99)
A21CH 하위 바이트: 요일(00: 일요일 01: 월요일 02: 화요일 03: 수요일 04: 목요일 05: 금요일 06: 토요일)
<주간 타이머 제어 예> ※1
①XFRB 명령으로 시(A19L) 분(A18H) → 시(H) 분(L)으로 정렬
②TCMP/BCMP 명령으로 미리 설정된 시분 테이블과 비교
③ TCMP/BCMP 명령의 일치한 비교 결과 출력으로 제어

※1
위 위클리 타이머(일월 포함) 제어 예시는 처리를 단순화하기 위해 매일 동일 시각으로 설정했습니다.
요일별로 시간을 변경하는 경우, 요일별 비교 테이블을 준비하고 별도로 요일을 비교하는 회로를 추가하여 해당 조건으로 비교 테이블을 전환함으로써 가능합니다.
NJ/NX 시리즈에서 요일 정보를 취득하려면 GetDayOfWeek 명령어를 사용합니다.

※2
C200HX/HG/HE/CQM1H 시리즈는 생산이 종료되었습니다.
■참고
PLC 시계 및 명령어에 대한 자세한 내용은 링크된 제품 정보 URL에서 관련 매뉴얼이나 카탈로그를 참조하십시오.
(매뉴얼 다운로드에는 무료 회원 가입이 필요합니다.