Instrucción MVM o Masked Move en Studio 5000

La instrucción MVM o Masked Move en Studio 5000 es comúnmente utilizada para discriminar ciertos bits en el movimiento de datos entre dos variables.

A diferencias del AND, OR, XOR y NOT, con el MVM no comparas dos valores, sino que mueves el valor de la variable a excepción de los bits señalados en la mascara.

Parámetros de la Instrucción MVM

Instrucción MVM

La instrucción Masked Move cuenta con tres parámetros, los cuales son; Source, Mask y Dest.

Source

El parámetro Source o fuente se refiere a la tag o variable que contiene el valor del cual se requiere extraer la información.

Este parámetro puede ser de tipo SINT, INT o DINT.

Mask

El parámetro Mask o mascara tiene como función restringir los valores que se desean transferir desde la variable fuente hacia la variable destino.

Al desglosar el valor del parámetro Mask en su versión binaria, cada bit con valor de 1 representa la posición del parámetro Source que se tomará en cuenta a la hora de hacer el movimiento de valores.

Lo se, es complicado entender la funcionalidad del parámetro Mask solo con palabras así que más adelante lo explicaré con un ejemplo.

El parámetro Mask deberá ser de tipo SINT, INT o DINT.

Destination

Éste último parámetro es el que recibirá la información manipulada por la instrucción MVM.

Al igual que los dos anteriores el parámetro Destination puede ser de tipo SINT, INT o DINT.

Ejemplo de la Instrucción MVM

A continuación se muestra la instrucción MVM con sus respectivos parámetros asignados.

Ejemplo de Instrucción MVM

Como se puede observar, las variables Entrada, Mascara y Resultado son los asignados para Source, Mask y Dest respectivamente.

Cada una de estas variables fueron declaradas como INT, por lo cual los números mostrados están formados por grupos de 16 bits.

A continuación se muestran las tres variables desglosadas en sus respectivos grupos de 16 bits.

Como podrás observar la variable Mascara tiene valores en las posiciones 0, 1, 2, 3 y 5 de las cuales coincide con la variable Entrada en las posiciones 0 y 2.

Por esta razón en la variable Resultado se obtiene un 1 en las posiciones 0 y 2 lo que se traduce a un 5 en decimal.

Veamos ahora la siguiente imagen.

Aparentemente la función de la instrucción MVM es la misma que la de la instrucción AND sin embargo no es así.

¿Que sucedería si al ejemplo anterior le cambiamos el 1 de la posición 0 en la variable Mascara para así obtener un 46 en vez de un 47?

Veamos el resultado en ambas instrucciones:

Instrucciones MVM y AND

Como podrás observar, mientras que en la función AND el valor cambia, en la función MVM se mantiene el valor 5 en el Dest.

La diferencia radica en que la instrucción AND siempre busca el resultado de la comparación entre Source A y Source B.

En cambio la instrucción MVM mueve los datos que la mascara permite hacia la variable Dest, por eso cuando se cambió el último bit a 0 el valor siguió siendo 5.

Vídeo tutorial sobre la Instrucción MVM

Material exclusivo para miembros del Programa Premium, si ya eres miembro, por favor accede a tu cuenta aquí.

Conclusiones

Como podrás observar, la instrucción MVM tiene un sinfín de aplicaciones para el movimiento y discriminación de registros.

Por otro lado, si no quieres pasar por severos dolores de cabeza al utilizar este tipo de instrucciones es muy útil conocer esas características que no se ven a simple vista en los manuales.

Recuerda que si quieres aprender a programar PLC con cursos probados te recomiendo revises mi portafolio de cursos y te inscribas a mi Programa Premium para que empieces a programar PLC hoy.

Por último te agradezco hayas leído mi articulo y espero te haya sido de gran utilidad…

Por cierto, no olvides compartir y comentar, esto me ayudará a continuar trabajando en nuevo contenido.

Saludos y una vez más, gracias.


Hola, soy Germán Madrid

Inscribete a mi curso de PLC HOY, es totalmente GRATIS!!

ACERCA DE GERMAN MADRID

German Madrid

Programador e instructor de PLC. Ayudo a estudiantes, técnicos e ingenieros a alcanzar su máximo potencial para así poder aplicar como programador de PLC en la empresa que deseen.

Ofrezco capacitación online mediante prácticas basadas en sistemas y problemas reales de la Industria Automotriz. Utilizo simuladores de PLC por lo cual solo necesitarás una computadora e Internet para completar cualquiera de mis cursos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *