PLC에서 스톱워치를 구현하거나 시간을 측정하거나 하는 일은 공정을 구현하면서 필요가 아니라 필수가 되어버린지 오래입니다.
간단하게 스톱워치를 구현하는 두가지 샘플을 올려드리니 참조해보세요.
#1. 티칭타이머 TTMR 펑션을 활용하는 방법
티칭타이머 TTMR은 파라미터에 의해 타이머의 단위를 손쉽게 변경하고, 타이머의 초기화에 대하여 큰 고민없이 쉽게 구현할수 있는 명령어입니다.
D0 데이터디바이스에 타이머를 실행할 경우 [TTMR D0 상수] 형식으로 써주게 되는데
상수자리에 파라미터에 0을 쓰면 초단위 타이머, 1을 쓰면 0.1초 타이머, 2를 쓰면 0.01초 타이머가 됩니다.
그리고 TTMR펑션을 실행할때마다 자동으로 D0은 0부터 초기화되어 시간을 측정하게됩니다.
많은 로직들이 단 한줄로 처리가 되니 아주 편리하다고 할수있습니다.
이 티칭타이머를 이용하여 시간을 측정하여 분단위로 나누기 연산을 하거나 가감연산을 통하여 원하는 단위의 시간으로 변경할수 있을것입니다.
#2. PLC의 스캔타임 활용하는 방법
미츠비시 PLC Q시리즈는 SD520과 SD521 특수데이터레지스터에 현재 스캔타임이 저장됩니다.
SD520에는 ms단위의 스캔타임이 저장되며, SD521에는 us단위의 스캔타임이 저장됩니다.
이 값들은 매스캔마다 변화하며 매우 정확하게 프로그램의 실행 시간을 알수있게됩니다.
이를 활용하여 매 스캔마다 스캔타임을 가산 연산하여 단위를 올려서 계산한다면 동일하게 시간을 카운트 할수 있을뿐만 아니라, 스캔타임이 느린 구형모델이든 스캔타임이 빠른 신형모델이든 구애받지 않고 정확한 시간을 카운트 할수 있게 됩니다.
1000 us 는 1ms 이고, 1000ms 는 1sec 이니 스캔타임을 매스캔 가산하여 비교하여 단위를 올려주면 되는것이죠.
정확합니다.
'PLC 전기제어 기술자료 > 샘플 프로그램 & TIP' 카테고리의 다른 글
[MELSEC] (미립자팁) CC-LINK IE CONTROL 통신으로 인해 스캔타임이 느릴때 조치할만한 방법 (고정주기스캔설정) (0) | 2022.05.14 |
---|---|
[MELSEC] (미립자팁) CPU 용량이 부족할 때 급하게 응급조치할 만 한 방법 (4) | 2022.02.25 |
[MELSEC] (미립자팁) 랜덤값을 음수를 포함하여 얻는 방법 (-32768 ~ 32767) (0) | 2022.02.19 |
[MELSEC] 콤마(,)로 나열된 문자열데이터를 분리하는 방법 (INSTR, MIDR명령어) (3) | 2022.01.22 |
[Gx Works2] 스테이트먼트 (Statement) 를 활용하자 (0) | 2022.01.22 |