목차

BASIC에서 LD 영역 접근

BASIC 프로그램에서는 LD(래더)에서 사용하는 모든 메모리 영역에 직접 접근할 수 있습니다. 각 영역은 언더바(_) 접두어를 사용하여 변수 형태로 읽기/쓰기가 가능합니다.

즉, LD에서 사용하는 메모리를 BASIC에서도 동일하게 공유하며 사용할 수 있습니다.

기본 사용 방법

LD 영역은 다음과 같이 사용합니다.

_D(0) = 123        ' LD의 D0에 값 쓰기
Debug Dec _D(0),Cr ' LD의 D0 값 읽기

사용 예

Dim value As Integer

value = 100
_D(0) = value        ' LD 데이터 메모리에 기록

value = _D(0)        ' LD에서 사용 중인 값 읽기

Debug Dec value,Cr

LD 메모리 영역

BASIC에서는 아래 모든 LD 메모리에 접근할 수 있습니다.

레지스터 이름 BASIC 접근 방식 범위 단위 설명
I 입력 이미지 _I(n) I0 ~ I15 1 bit 입력 상태
Q 출력 이미지 _Q(n) Q16 ~ Q31 1 bit 출력 상태
X 확장 입력 _X(n) X0 ~ X127 1 bit 확장 입력
Y 확장 출력 _Y(n) Y0 ~ Y127 1 bit 확장 출력
M 내부 릴레이 _M(n) M0 ~ M2047 1 bit 내부 메모리
S 시스템 릴레이 _S(n) S0 ~ S127 1 bit 시스템 상태
D 데이터 메모리 _D(n) D0 ~ D7999 16 bit 일반 데이터
DD 더블워드 _DD(n) DD0 ~ DD7999 32 bit 32비트 데이터
DF 실수 데이터 _DF(n) DF0 ~ DF7999 Float 실수 데이터
T 타이머 값 _T(n) T0 ~ T999 32 bit 타이머 현재값
C 카운터 값 _C(n) C0 ~ C999 32 bit 카운터 현재값
SD 시스템 데이터 _SD(n) SD0 ~ SD99 16 bit 시스템 데이터

Retain 메모리 (정전 유지)

다음 영역은 전원이 꺼져도 값이 유지됩니다.

레지스터 이름 BASIC 접근 방식 범위 단위 설명
R 유지 비트 _R(n) R0 ~ R2047 1 bit 유지 비트
RD 유지 워드 _RD(n) RD0 ~ RD99 16 bit 유지 데이터
RDD 유지 더블워드 _RDD(n) RDD0 ~ RDD99 32 bit 유지 데이터
RDF 유지 실수 _RDF(n) RDF0 ~ RDF99 Float 유지 실수

중요 주의 사항

BASIC과 LD는 동일한 메모리를 공유하므로, 읽기와 쓰기 사용 방식에 주의해야 합니다.

읽기(Read)는 자유롭게 가능

value = _D(0)    ' BASIC에서 읽기

쓰기(Write)는 충돌 가능

' LD에서 D0 = 100
' BASIC에서 _D(0) = 200

즉, 실행 순서에 따라 결과가 달라집니다.

동시 쓰기 문제

권장 사용 방법 (중요)

코딩 시 메모리 영역을 역할별로 분리하는 것이 좋습니다.

' BASIC → LD 전달
_D(1000) = value

' LD에서 읽기만 수행

주의

← CUBLOC2 목차로 돌아가기