본문 바로가기
MELSEC PLC 중급 강좌

[29] PLC 중급 강좌

by lemy 2019. 10. 31.
반응형

[29] PLC 중급 강좌

7. 고속 카운터 유니트  

 

7.1. 고속 카운터 모듈  

7.1.6. 고속 카운터 모듈의 현재값 읽기
버퍼 메모리에 저장된 현재값이나 카운트 기능 선택 실행 시의 카운트 값 내용, 읽기 방법을 설명하겠습니다.

(1) 현재값 저장용 버퍼 메모리에는 펄스 입력 시, 프리세트 시, 카운트 금지(카운트 기능 선택) 시의 카운트 값이 저장됩니다. 단 래치 카운트, 샘플링 카운트, 주기 펄스 카운트 기능 선택 실행 시의 카운트는 아래 표와 같은 어드레스의 카운트 기능 선택 카운트 값 저장용 버퍼 메모리에 저장됩니다.
(2) 현재값 및 카운트 기능 선택 카운트 값은 각각 32비트 부호 바이너리로 버퍼 메모리에 저장되어 있습니다. 또 버퍼 메모리 내용은 카운트 동작에 의해 자동으로 갱신되므로 버퍼 메모리로부터 최신의 카운트 값을 읽을 수 있습니다.
※ 현재값 및 카운트 기능 선택 카운트 값을 읽을 경우에는, DFRO 명령을 사용하여 반드시 2워드를 일괄적으로 읽으십시오. 1워드 단위로 읽을 경우 읽는 도중에 카운트 값이 갱신되면, 하위 워드와 상위 워드의 데이터 내용이 맞지 않아 잘못된 카운트 값을 읽을 수 있습니다.

7.1.7. 고속 카운터 모듈의 카운터 형식의 선택
(1) 리니어 카운터 선택
◈ 리니어 카운터의 동작
리니어 카운터 선택시에는 –2147483648(하한값)과 +2147483647(상한값) 사이에서 카운트합니다. 프리세트 기능이나 일치 출력 기능을 조합하여 사용할 수 있습니다.

◈ 오버플로 에러
(a) 카운터 형식이 리니어 카운터인 경우에는 카운터 현재값이 감산 시에 –2147483648(하한값) 또는 2147483647(상한값)을 넘으면 오버플로 에러가 발생합니다.
(b) 오버플로 에러가 발생하면 버퍼 메모리의 오버플로 검출 플래그(어드레스 CH1 : 8 H, CH2 : 28H)에 1을 저장하고 카운트를 정지합니다. 펄스를 입력 하여도 현재값은 –2147483648 또는 +2147483647에서 변하지 않습니다.
(c) 오버플로 에러는 프리세트를 실행하여야 해제됩니다. 프리세트를 실행하면 버퍼 메모리의 오버플로 검출 플래그에 0을 저장하고 카운트를 재개할 수 있습니다.
(d) 오버플로 에러 발생 시에 GPPW에서 “진단” - “시스템 모니터” 메뉴를 클릭하여 시스템 모니터를 실시하면 모듈 에러가 발생합니다.
(2) 링 카운터 선택
◈ 링 카운터의 동작
링 카운터 선택시에는 버퍼 메모리에서 임의로 설정한 링 카운터 하한값(어드레스 CH1 : 16H~17H, CH2 : 36H~37H)과 링 카운트 상한값(어드레스 CH1 : 14H~15H, CH2 : 34H~35H)사이에서 반복해서 카운트합니다. 링 카운터 선택시에는 오버플로 에러가 발생하지 않습니다. 프리세트 기능이나 일치 출력 기능을 조합하여 사용할 수 있습니다.

◈ 링 카운터의 카운트 범위
링 카운터의 카운트 범위는 카운트 허가 지령(Y04(Y0C))이 ON 되었을 때 또는 프리세트가 실행되었을 때의 버퍼 메모리 현재값(어드레스 CH1 : 2H~3H, CH2 : 22H~23H)과 링 카운터 하한값 / 상한값의 관계로 결정됩니다. 통상은 “링 카운터 하한값 ≤ 현재값 ≤ 링 카운터 상한값”의 범위에서 사용합니다.

• 가산 카운트의 경우
현재값이 링 카운터 상한값에 도달하면 자동으로 링 카운터 하한값이 현재값 으로 저장됩니다.
• 감산 카운트의 경우
현재값이 링 카운터 하한값에 도달하여도 값을 그대로 유지하고, 다음 감산 펄스에 의해 현재값으로 (링 카운터 상한값-1)이 저장됩니다. 가산 카운트와 감산 카운트의 어느쪽에서도 링 카운터 상한값은 현재값 저장용 버퍼 메모리에 저장되지 않습니다. 예를 들어 링 카운터 하한값이 0, 링 카운터 상한값이 2000, 현재값이 500인 상태에서 “카운트 허가”가 되면 “카운트 범위”와 “현재값 변화”는 아래와 같이 됩니다.
(a) “현재값 < 링 카운터 하한값” 또는 “링 카운터 상한값 < 현재값”으로 한 경우는 아래와 같이 동작합니다.

• 가산 카운트의 경우
현재값이 링 카운터 하한값에 도달하여도 값을 그대로 유지하고 다음 가산 펄스에 의해 현재값으로 (링 카운터 상한값+1)이 저장됩니다.
• 감산 카운트의 경우
현재값이 링 카운터 상한값에 도달하면 자동으로 링 카운터 하한값이 현재값으로 저장됩니다. 가산 카운트와 감산 카운트의 어느쪽에서도 링 카운트 상한값은 현재값 저장용 버퍼 메모리에 저장되지 않습니다. 예를 들어 링 카운터 하한값이 0, 링 카운터 상한값이 2000, 현재값이 3000인 상태에서 “카운트 허가”가 되면 “카운트 범위”와 “현재값 변화”는 아래와 같이 됩니다.
(b) “링 카운터 하한값 = 링 카운터 상한값”으로 한 경우에는 현재값에 관계없이 32비트 부호 바이너리로 표현할 수 있는 모든 범위(–2147483648~+2147483647)가 카운트 범위로 됩니다.

7.1.8. 고속 카운터 모듈의 일치 출력 기능
일치 출력 기능은 임의의 카운트 값을 미리 설정하여 놓고 카운터 현재값과 비교하여 일치하였을 때에 신호를 출력합니다. 일치 출력은 각 채널에 2 포인트 설정할 수 있습니다. 일치 신호의 외부 출력을 사용할 경우에는 일치 신호 허가 지령(Y02(Y0A))을 ON 합니다.
(1) 일치 출력 동작

(2) CPU 정지 에러 시의 출력 상태 설정
CPU 정지 에러가 발생하였을 때 외부 출력 신호의 출력 상태(클리어/유지)를 설정할 수 있습니다. 출력 상태 설정은 GPPW의 I/O 할당 설정에서 설정합니다.
(3) 일치 검출 인터럽트 기능
일치 검출 인터럽트 기능은 일치 검출 시에 PLC CPU에 대해 인터럽트 요구를 발생시킵니다. 이 인터럽트 요구로 인터럽트 처리 프로그램을 기동시킬 수 있습니다.

7.1.9. 고속 카운터 모듈의 프리세트 기능
프리세트 기능이란 카운터의 현재값을 임의의 수치로 바꾸는 기능입니다. 바꿀 임의의 수치를 프리세트 값이라고 합니다. 프리세트 기능은 프리세트 값부터 펄스 카운트를 시작할 경우에 사용할 수 있습니다. 프리세트 기능에는 시퀀스 프로그램에 의한 프리세트와 외부 제어 신호에 의한 프리세트가 있습니다.
(1) 시퀀스 프로그램에 의한 프리세트
시퀀스 프로그램으로 프리세트 지령(Y01(Y09))를 ON하여 프리세트 합니다.


(2) 외부 제어 신호에 의한 프리세트
외부 입력 프리세트 입력 단자에 ON 전압을 인가하여 프리세트 합니다.

※ 외부 프리세트 요구 검출 플래그{Y04(Y0B)}가 ON일 때 (③)는 프리세트 단자에 전압을 인가하거나 프리세트 지령{Y01(Y09)}을 ON 하여도 프리세트를 할 수 없습니다. 외부 프리세트 요구 검출 리세트 지령{Y05(Y0D)}을 ON (④) 하고 외부 프리세트 요구 검출 플래그를 OFF 하면 프리세트할 수 있습니다.

프로그램 예제 7.1  

7.1 Intelligent PGM.gxw
1.20MB

반응형

'MELSEC PLC 중급 강좌' 카테고리의 다른 글

[30] PLC 중급 강좌 - 완결  (0) 2019.11.06
[28] PLC 중급 강좌  (0) 2019.10.29
[27] PLC 중급 강좌  (0) 2019.10.08
[26] PLC 중급 강좌  (0) 2019.08.29
[25] PLC 중급 강좌  (0) 2019.08.19

댓글