FAQs Técnicas

Realizar una pregunta

SoMachine - ¿Cómo se mapea un array de estructura?

Se debe tener en cuenta que un Array que contiene estructuras se tiene que direccionar con %MLx. Si direccionamos el array, al estar en modo online (bien sea en simulación o con plc real) se puede ver el direccionamiento de cada variable dentro del Array, en %MBx.
En caso de tener una estructura con diferentes tipos de datos, como en el siguiente ejemplo, INT + DINT + BOOL, al direccionar el array de tipo estructura ocurre lo siguiente:
MyArray -->%ML0
- MyArray[0]--> %MB0
- MyArray[1]--> %MB12

Para el conjunto de datos INT+ DINT+BOOL, somachine reserva 12 bytes. Esto es así, porque se asigna a cada linea el espacio que ocupa el mayor de los datos de la estructura. En este caso el dato mayor es DINT (4 bytes). Puesto que hay 3 datos en la estructura, se reserva para cada uno 4 bytes, en total 12 bytes.

De las variables %MBx que se visualizan en el ejemplo, se pueden extrapolar las %MW.
¿Ha sido útil?
¿Qué podemos hacer para mejorar la información?