====== Retain 기능 (정전 시 데이터 보관) ======
CUBLOC2의 **Retain 기능**은 전원이 꺼져도 데이터가 유지되는 기능입니다.
**_R / _RD / _RDD / _RDF 영역에 값을 쓰기만 하면 자동으로 내장된 FRAM에 저장**되며, 전원이 다시 켜지면 해당 값이 그대로 복구됩니다.
====== 기본 개념 =====
^ Retain 변수 ^ 대상 변수형 ^ 크기 ^ 인덱스 범위 ^
| ''_R(n)'' | Byte / 8bit 정수 | 1바이트 | n = 0 ~ 2047 |
| ''_RD(n)'' | Integer / 16bit 정수 | 2바이트 | n = 0 ~ 99 |
| ''_RDD(n)'' | Long / 32bit 정수 | 4바이트 | n = 0 ~ 99 |
| ''_RDF(n)'' | Float / 실수 | 4바이트 | n = 0 ~ 99 |
===== 사용 방법 =====
Retain 변수는 일반 변수처럼 사용하면 됩니다.
Dim tempi As Byte
tempi = 10
_R(0) = tempi ' 값 저장 → 자동으로 FRAM에 기록됨
전원을 껐다가 다시 켜면:
Print Dec _R(0), Cr ' 이전에 저장된 값이 그대로 출력됨
===== 동작 예 =====
Dim count As Integer
count = _RD(0)
Wait 500
Print "Start Value:", Dec count, Cr
Do
count = count + 1
_RD(0) = count ' 자동 저장
Print "Count:", Dec count, Cr
Wait 500
Loop
전원이 꺼져도 ''_RD(0)'' 값은 유지됩니다.
===== 중요 주의 사항 =====
* **래더에서 사용 중인 Retain 영역과 겹치면 안 됩니다.**
- 래더에서도 동일한 주소를 사용하면 충돌이 발생할 수 있습니다.
- 래더와 BASIC에서 사용하는 Retain 주소를 **명확히 분리**하세요
===== Tip =====
* 설정값, 카운터, 상태 저장에 적합
* 전원 복구 후 상태 유지가 필요한 경우 사용
[[..:index|← CUBLOC2 목차로 돌아가기]]