사용자 도구

사이트 도구

English

codesysmanual:directadr

6. 직접 주소 (Direct Addressing)

IEC61131-3 에서는 변수 시스템을 도입했지만, 여전히 ​​직접 주소 지정, 즉 특정 메모리 영역에 대한 참조및 사용을 허용하고 있습니다. 직접 주소를 사용하는 두 가지 방법이 있습니다.

  • 프로그램에서 직접 주소를 사용
  • 변수 선언시 직접주소를 함께 기재

6.1 어드레싱 구조

모든 직접 주소는 퍼센트 기호 (%)로 시작하고 그 뒤에 위치 접두어 (문자)가옵니다.

% 첫번째 자리 두번째 자리 실제위치 설명
I 입력(Input)
Q 출력(Output)
M 내부 메모리(Memory)
없거나 X 비트 (1 Bit)
B 바이트 (8 Bit)
W 워드 (16 Bit)
D 더블 워드 (32 Bit)
L LONG 워드 (64 Bit)
u,v,w,x,y 실제 배치된 위치 : u ‐ 랙, v – 모듈, w – 채널, x – 워드, y – 비트

접두사%뒤에 메모리 영역이 입력 (I), 출력 (Q) 또는 내부 메모리 (M)가 오고, 다음은 주소가 저장 위치의 길이를 나타내는 크기 접두사를 따릅니다. 이는 각각 1, 8, 16, 32 또는 64 비트에 대해 X, B, W, D 또는 L로 표시됩니다. 이 접두사는 크기 만 표시하는 것이고, 변수형과는 직접 관련이 없습니다. 다음은 사용예입니다.

직접 주소 설명
%MX0.0 내부 메모리 주소 0 위치한 Bit 0 (LSB)
%M0.0
%MB8 내부 메모리 주소 8에 위치한 바이트 (8비트)
%MW12 내부 메모리 주소 12에 위치한 워드 (16비트)
%MD45 내부 메모리 주소 45에 위치한 더블워드 (32비트)
%ML14 내부 메모리 주소 145에 위치한 롱워드 (64비트)

직접 메모리 주소를 사용하는 것은 약간 위험 할 수 있습니다. 코드의 가독성도 떨어지고, 훨씬 더 나빠지면 서로 겹치는 메모리 위치를 참조 할 위험이 있습니다. 조심해서 사용할 필요가 있습니다.

직접 주소는 I/O의 위치를 표현할때 주로 사용합니다. 주로 계층구조로 이루어져있는데, 가장 왼쪽에있는 숫자가 대분류 그 다음이 중분류, 그다음이 더 작은 분류를 뜻합니다. 다음은 사용예입니다.

%IX1.5 Digital input. 모듈1의 채널5
%Q2.4.12 Digital output, 랙2의 모듈4의 채널12
%IW12 Input 12번 word 예) 아날로그 입력
%IW3.2 Analog input, 예) 모듈3의 채널2 아날로그 입력
%QW5.2.4.7 Output word. 네트워크 주소5, 랙 2, 모듈 4, 채널 7

주소 겹침 사용(오버랩핑)에 대해서는 다음 그림을 참조하세요.

6.2 변수와 I/O 주소

직접 주소 표현을 프로그램 작성시에도 사용할 수 있지만, 이것 보다는 변수를 선언하고 여기에 직접 주소를 연결한뒤, 해당 변수명을 프로그램에서 사용하는 것을 권장합니다.

VAR
 Dig_in AT %IX2.4 : BOOL := TRUE;
 Dig_out AT %QX3.5 : BOOL;
 A_in AT %IW3.2 : WORD;
 A_out AT %QW4.1 : WORD;
END_VAR

CODESYS

codesysmanual/directadr.txt · 마지막으로 수정됨: 2020/12/09 03:08 저자 Comfile Technology