배열에 대한 메모리 할당

배열이 사용하는 메모리의 양은 배열을 생성하는 데 사용한 데이터 유형에 따라 달라집니다. 컨트롤러의 최소 할당은 4바이트이며, 이는 4 SINT, 2 INT 또는 1 DINT와 같습니다.
다음 예제는 여러 배열에 대한 메모리 할당을 보여 줍니다.
SINT[8]로 표시된 small_values
이 예제는 요소가 8개인 배열이며, 각 요소의 데이터 유형은 SINT입니다(요소당 1바이트).
비트
31 24
23 16
15 8
7 0
데이터 할당 1
small_values[3]
small_values[2]
small_values[1]
small_values[0]
데이터 할당 2
small_values[7]
small_values[6]
small_values[5]
small_values[4]
SINT[3]으로 표시된 mall_values
이 예제는 요소가 3개인 배열이며, 각 요소의 데이터 유형은 SINT입니다(요소당 1바이트). 최소 데이터 할당이 4바이트이므로 마지막 바이트는 0입니다.
비트
31 24
23 16
15 8
7 0
데이터 할당 1
0
small_values[2]
small_values[1]
small_values[0]
INT[4]로 표시된 값
이 예제는 요소가 4개인 배열이며, 각 요소의 데이터 유형은 INT입니다(요소당 2바이트).
비트
31 16
15 0
데이터 할당 1
values[1]
values[0]
데이터 할당 2
values[3]
values[2]
DINT[2]로 표시된 big_values
이 예제는 요소가 2개인 배열이며, 각 요소의 데이터 유형은 DINT입니다(요소당 4바이트).
비트
31 0
데이터 할당 1
big_values[0]
데이터 할당 2
big_values[1]
TIMER[2]로 표시된 timer_list
이 예제는 요소가 2개인 배열이며, 각 요소는 TIMER 구조입니다(구조체당 12바이트).
비트
31 0
데이터 할당 1
timer_list[0] 상태 비트
데이터 할당 2
timer_list[0].pre
데이터 할당 3
timer_list[0].acc
데이터 할당 4
timer_list[1] 상태 비트
데이터 할당 5
timer_list[1].pre
데이터 할당 6
timer_list[1].acc
SINT[2,2,2]로 표시된 small_values
이 예제는 각각 데이터 유형 SINT인 요소 8개로 구성된 3차원 배열입니다.
비트
31 24
23 16
15 8
7 0
데이터 할당 1
small_values[0,1, 1]
small_values[0,1, 0]
small_values[0,0, 1]
small_values[0,0, 0]
데이터 할당 2
small_values[1,1, 1]
small_values[1,1, 0]
small_values[1,0, 1]
small_values[1,0, 0]
DINT[2,2,2]로 표시된 big_values
이 예제는 각각 유형 DINT인 요소 8개로 구성된 3차원 배열입니다.
비트
31 0
데이터 할당 1
big_values[0,0,0]
데이터 할당 2
big_values[0,0,1]
데이터 할당 3
big_values[0,1,0]
데이터 할당 4
big_values[0,1,1]
데이터 할당 5
big_values[1,0,0]
데이터 할당 6
big_values[1,0,1]
데이터 할당 7
big_values[1,1,0]
데이터 할당 8
big_values[1,1,1]
태그 데이터 손실 없이 오프라인에서 프로그래밍하는 경우 배열 차원을 수정할 수 있습니다. 온라인에서 프로그래밍하는 경우 배열 차원을 수정할 수 없습니다.
의견을 작성 부탁드립니다.
이 자료에 대한 문의사항이나 요청사항이 있습니까? 여기에 요청사항을 작성 부탁드립니다.
Normal