배열에 대한 메모리 할당
배열이 사용하는 메모리의 양은 배열을 생성하는 데 사용한 데이터 유형에 따라 달라집니다. 컨트롤러의 최소 할당은 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] |
태그 데이터 손실 없이 오프라인에서 프로그래밍하는 경우 배열 차원을 수정할 수 있습니다. 온라인에서 프로그래밍하는 경우 배열 차원을 수정할 수 없습니다.
의견을 작성 부탁드립니다.