Como debes declarar correctamente las variables int y word en %MW con PLC de Siemens
A ver.
Hoy me apetece realizar una mini clase para los que nunca han tocado PLC de Siemens.
Porque esto varía de marca, por ejemplo en Schneider funciona ligeramente diferente.
¿El qué?
Las direcciones de memoria de las marcas.
Las famosas %M.
Mira.
Hay gente que para una variable tipo word, o int, utiliza %MW0, y luego para la siguiente variable usa la %MW1, y esto, es un error.
¿Por qué?
Porque una variable int o word, posee 2 bytes, y una marca %MW internamente ocupa dos bytes.
La %MW0 ocupa los bytes 0 y 1, es decir, %MB0 y %MB1.
La %MW1 ocupa los bytes 1 y 2, es decir, %MB1 y %MB2.
La %MW2 ocupa los bytes 2 y 3, es decir, %MB2 y %MB3.
La %MW3 ocupa los bytes 3 y 4, es decir, %MB3 y %MB4.
¿Se entiende?
Se entiende.
Que ocurre si, por ejemplo, creas la variable «Motor_RPM» y la asignas a la %MW0?
Que Motor_RPM ocupa los bytes 0 y 1.
Ahora imagina que creas otra variable, por ejemplo «Deposito_Nivel», y esta la direccionas a la %MW1.
Ahora Deposito_Nivel ocupa los bytes 1 y 2.
¿Qué ocurre aquí?
Ocurre que tanto una parte de la variable Motor_RPM como una parte de la variable Deposito_Nivel están atacando al mismo byte, al uno.
Y eso provoca que una variable pise parte del valor de la otra, provocando lecturas incoherentes o valores corruptos
Por eso, cuando se crean variables int o word y se les asignan marcas, se hacen de dos en dos.
%MW0 -> %MW2 -> %MW4…
Para asegurarse que ninguna variable accede a un byte ocupado por otra.
Y ahora la otra pregunta…
¿Se puede usar marcas de forma impar?
%MW1 -> %MW3 -> %MW5…
Si, se puede, y no pasaría nada.
Lo que pasa que por claridad y para evitar solapes, normalmente se usan direcciones pares como convenio (de hecho, Siemens lo recomienda).
%MW0 -> %MW2 -> %MW4 -> %MW6…
Aunque, te voy a ser franco.
Si programas PLC de Siemens con TIA Portal y utilizas marcas de este tipo, que sepas que no estás programando como deberías, desde el amor te lo digo.
Bien, hasta aquí la mini clase.
Pero no te acostumbres, que para aprender ya tienes mis formaciones.
Gran día.
Ingeniero especializado en automatización industrial,
Este artículo que has leído fue uno de los emails que envié a los suscritos a mi newsletter exclusiva. Para recibir estos emails como ya lo hacen miles de personas junto con la posibilidad de adquirir alguna de mis formaciones exclusivas en PLC, HMI y SCADA en Siemens, te debes apuntar aquí:
