Asignación de memoria para matrices
La cantidad de memoria que usa una matriz depende del tipo de datos utilizado para crear la matriz. La asignación mínima dentro del controlador es de 4 bytes, que es lo mismo que 4 SINT, 2 INT o 1 DINT.
Los siguientes ejemplos muestran la asignación de memoria para diversas matrices:
small_values como SINT[8]
Este ejemplo muestra una matriz de 8 elementos, todos con tipo de datos SINT (1 byte cada elemento).
Bit | 31 24 | 23 16 | 15 8 | 7 0 |
asignación de datos 1 | small_values[3] | small_values[2] | small_values[1] | small_values[0] |
asignación de datos 2 | small_values[7] | small_values[6] | small_values[5] | small_values[4] |
small_values como SINT[3]
Este ejemplo muestra una matriz de 3 elementos, todos con tipo de datos SINT (1 byte cada elemento). Puesto que la asignación mínima de datos es de 4 bytes, el último byte es cero.
Bit | 31 24 | 23 16 | 15 8 | 7 0 |
asignación de datos 1 | 0 | small_values[2] | small_values[1] | small_values[0] |
values como INT[4]
Este ejemplo muestra una matriz de 4 elementos, todos con tipo de datos INT (2 bytes cada elemento).
Bit | 31 16 | 15 0 |
asignación de datos 1 | valores[1] | valores[0] |
asignación de datos 2 | valores[3] | valores[2] |
big_values como DINT[2]
Este ejemplo es una matriz de 2 elementos, cada uno de ellos de tipo de datos DINT (4 bytes cada elemento).
Bit | 31 0 |
asignación de datos 1 | big_values[0] |
asignación de datos 2 | big_values[1] |
timer_list como TIMER[2]
Este ejemplo es una matriz de 2 elementos, donde cada elemento es una estructura TIMER (12 bytes cada estructura).
Bit | 31 0 |
asignación de datos 1 | bits de estado de timer_list[0] |
asignación de datos 2 | timer_list[0].pre |
asignación de datos 3 | timer_list[0].acc |
asignación de datos 4 | bits de estado de timer_list[1] |
asignación de datos 5 | timer_list[1].pre |
asignación de datos 6 | timer_list[1].acc |
small_values como SINT[2,2,2]
Este ejemplo es una matriz tridimensional de 8 elementos, cada uno de ellos de tipo de datos SINT.
Bit | 31 24 | 23 16 | 15 8 | 7 0 |
asignación de datos 1 | small_values[0,1, 1] | small_values[0,1, 0] | small_values[0,0, 1] | small_values[0,0, 0] |
asignación de datos 2 | small_values[1,1, 1] | small_values[1,1, 0] | small_values[1,0, 1] | small_values[1,0, 0] |
big_values como DINT[2,2,2]
Este ejemplo es una matriz tridimensional de 8 elementos, cada uno de ellos de tipo DINT.
Bit | 31 0 |
asignación de datos 1 | big_values[0,0,0] |
asignación de datos 2 | big_values[0,0,1] |
asignación de datos 3 | big_values[0,1,0] |
asignación de datos 4 | big_values[0,1,1] |
asignación de datos 5 | big_values[1,0,0] |
asignación de datos 6 | big_values[1,0,1] |
asignación de datos 7 | big_values[1,1,0] |
asignación de datos 8 | big_values[1,1,1] |
Puede modificar dimensiones de matriz al programar sin conexión sin perder datos de etiqueta. No puede modificar dimensiones de matriz al programar en línea.
Entregue su opinión