Unidad Iv Virtual Tecsup

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 26

Tecsup 

Unidad IV : Operaciones 
Avanzadas
Tecsup Virtu@l  Índice 

Índice 
1.  INTRODUCCIÓN......................................................................................................1 
2.  OBJETIVOS .............................................................................................................1 
3.  CONTENIDO............................................................................................................1 
3.1.  PRELIMINARES ...............................................................................................1 
3.1.1.  REPRESENTACIÓN NUMÉRICA...............................................................1 
3.1.2.  TRABAJANDO CON ACUMULADORES......................................................2 
3.2.  OPERACIONES DE COMPARACIÓN ...................................................................3 
3.3.  OPERACIONES DE CONVERSIÓN......................................................................7 
3.4.  OPERACIONES CON BLOQUES DE DATOS.........................................................9 
3.4.1.  ABRIR BLOQUE DE DATOS ....................................................................9 
3.5.  OPERACIONES ARITMÉTICAS ........................................................................ 10 
3.5.1.  ARITMÉTICA CON ENTEROS................................................................ 10 
3.5.2.  ARITMÉTICA CON COMA FLOTANTE .................................................... 12 
3.6.  OPERACIONES DE SALTO .............................................................................. 14 
3.6.1.  SALTO ABSOLUTO O INCONDICIONAL................................................. 14 
3.6.2.  SALTO CONDICIONAL......................................................................... 15 
3.7.  OPERACIÓN DE CONTROL DE PROGRAMA...................................................... 16 
3.7.1.  LLAMAR SUBRUTINA Y RETORNO DE SUBRUTINA ................................ 16 
3.8.  OPERACIONES DE DESPLAZAMIENTO Y ROTACIÓN......................................... 17 
3.8.1.  OPERACIONES DE DESPLAZAMIENTO .................................................. 17 
3.8.2.  OPERACIONES DE ROTACIÓN ............................................................. 19 
3.9.  OPERACIONES LÓGICAS CON PALABRAS........................................................ 20 
4.  RESUMEN.............................................................................................................. 22 
5.  PREGUNTAS DE AUTOCOMPROBACIÓN................................................................... 22 
6.  RESPUESTAS A LAS PREGUNTAS DE AUTOCOMPROBACIÓN..................................... 22 
7.  GLOSARIO DE TÉRMINOS ...................................................................................... 23
Tecsup Virtu@l  Programación Avanzada de PLC 

U
U N
N II D
D A
A D II V 
“OPERACIONES AVANZADAS” 

1.  INTRODUCCIÓN 

Las operaciones avanzadas permiten extender el juego de operaciones básicas estudiadas 

Estas operaciones avanzadas nos permitirán no solamente elaborar simples programas de 
usuario con secuencias lógicas, sino también implementar funciones matemáticas (suma, 
resta,  multiplicación  y  división),  operaciones  con  señales  analógicas  (desplazamiento, 
rotación, comparación, etc.), operaciones de control de programa entre otros. 

2.  OBJETIVOS 

El  objetivo  de  esta  unidad  es  estudiar  las  operaciones  avanzadas  más  utilizadas  en  el 
tratamiento de señales digitales y analógicas de los PLCs. 

3.  CONTENIDO 

3.1.  PRELIMINARES 

¡VEAMOS  ALGUNOS  CONCEPTOS 


INICIALES!

3.1.1.  REPRESENTACIÓN NUMÉRICA 

La  tabla  a  continuación  muestra  el  margen  de  números  enteros 


representables en diversos tamaños de datos. 

Los  números  reales  (en  coma  flotante)  se  representan  como 


números  de  precisión  simple  de  32  bits,  siendo  su  formato: 
+1,175495E–38 a +3,402823E+38 (positivo) y –1,175495E–38 a – 
3,402823E+38  (negativo).  A  los  valores  de  números  reales  se 
accede  en  formato  de  palabra  doble.  Para  obtener  más 
información  sobre  los  números  reales  (o  en  coma  flotante), 
consulte la norma ANSI/IEEE 754–1985. 

­ 1 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

3.1.2.  TRABAJANDO CON ACUMULADORES 

Los  acumuladores  son  elementos  de  lectura/escritura  que  se 


utilizan  igual  que  una  memoria.  Los  acumuladores  se  pueden 
usar,  por  ejemplo,  para  transferir  parámetros  de  y  a  subrutinas, 
así  como  para  almacenar  valores  intermedios  utilizados  en 
cálculos. 

¡Son igual que las marcas 
o bits internos de un PLC!

Las CPUs de los diferentes PLCs disponen de cuatro acumuladores 
de  32  bits  (AC0,  AC1,  AC2  y  AC3).  A  los  acumuladores  se  puede 
acceder en formato de byte, palabra o palabra doble. 

Como  muestra  en  la  figura  siguiente,  cuando  se  accede  a  un 
acumulador en formato de byte o de palabra se utilizan los 8 ó 16 
bits  menos  significativos  del  valor  almacenado  en  el acumulador. 
Cuando  se  accede  a un acumulador en formato de palabra doble, 
se usan todos los 32 bits. 

Entonces la operación utilizada para el acceso al acumulador 
determina el tamaño de los datos a los que se accede. 

­ 2 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

Fig. 4.1 Formas de acceso a los acumuladores. 

3.2.  OPERACIONES DE COMPARACIÓN 

Las  operaciones  comparan  las  entradas  IN1  e  IN2  según  los  tipos  de 
comparación siguientes: 

==  IN1 es igual a IN2. 
<>  IN1 es diferente a IN2. 
>  IN1 es mayor a IN2. 
<  IN1 es menor a IN2. 
>=  IN1 es mayor o igual a IN2. 
<=  IN1 es menor o igual a IN2. 

Si  la  comparación  es  verdadera,  el  Resultado  Lógico  de  la  Operación  (RLO)  es 
"1". El RLO se combina mediante una Y lógica con el RLO del circuito completo 
siempre  que  el  elemento  de  comparación  esté  conectado  en  serie  y  mediante 
una O lógica si el cuadro está conectado en paralelo. 

Se dispone de las operaciones de comparación siguientes:

· CMP ? I  Comparar enteros (16 Bit).
· CMP ? D Comparar enteros dobles (32 Bit).
· CMP ? R Comparar números en coma flotante. 

Ejemplo 3.2.a Área de almacenamiento con contador y comparador 

La  figura  muestra  un  sistema  con  dos  cintas  transportadoras  y  un  área  de 
almacenamiento  temporal  colocada  entre  ambas.  La  cinta  transportadora  1 
transporta  paquetes  al  área  de  almacenamiento.  Una  barrera  óptica  situada  al 
final de la cinta 1 junto al área de almacenamiento determina cuántos paquetes

­ 3 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 
se  transportan  a  dicha  área.  La  cinta  transportadora  2  transporta  paquetes 
desde  el  área  de  almacenamiento  a  una  plataforma  de  carga  donde  llegan 
camiones  y  los  recogen  para  suministrarlos  a  los  clientes.  Una  barrera  óptica 
situada  al  final  de  la  cinta  transportadora  2  junto  al  área  de  almacenamiento 
determina  cuántos  paquetes  abandonan  el  área  de  almacenamiento  para  ser 
transportados  a  la  plataforma  de carga. Un panel indicador con cinco lámparas 
señala el nivel del área de almacenamiento temporal. 

¡La  solución  del  problema  se  muestra  a  continuación  en  esquema  de 
contactos!

­ 4 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

­ 5 ­
Tecsup Virtu@l  Programación Avanzada de PLC 

Programemos la misma solución en lista de instrucciones (AWL):

­ 6 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

3.3.  OPERACIONES DE CONVERSIÓN 

Las operaciones de conversión leen el contenido del parámetro de entrada IN y 
lo  convierten a  otro  tipo  de  número  o  representación  o  le  cambian  el signo. El 
resultado se puede recoger en el parámetro de salida OUT. 

Dependiendo del  tipo  de  PLC que estemos empleando en nuestro proyecto, las 


operaciones  de  conversión  pueden  variar  sustancialmente.  La  tabla  a 
continuación muestra las operaciones más comunes: 

OPERACIONES DE CONVERSIÓN 
GRUPO  1:  Conversión  de  números  decimales  codificados  en  binario  y 
enteros a otros tipos de números. 
Convertir BCD a entero. 
Convertir entero en BCD. 
Convertir número BCD a entero doble. 
Convertir entero en entero doble. 
Convertir entero doble en BCD. 
Convertir entero doble en número en coma flotante. 
GRUPO  2:  Formar  complementos  de  números  enteros  o  para  cambiar  el 
signo de un número en coma flotante 
Complemento a uno de un entero. 
Complemento a uno de un entero doble. 
Complemento a dos de un entero. 
Complemento a dos de un entero doble. 
Invertir un número en coma flotante. 
GRUPO 3: Convertir un número en coma flotante de 32 bits en un entero de 
32 bits (entero doble). Las operaciones difieren en el método de redondeo. 
Redondear un número en coma flotante a entero. 
Truncar. 
Redondear un número real al próximo entero superior. 
Redondear un número real al próximo entero inferior.

­ 7 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

Veamos a continuación algunos ejemplos: 

Ejemplo 3.3.a Convertir BCD en Entero 

Ejemplo 3.3.b Complemento a 2 de un entero. 

NEG_I  (Complemento  a  2  de  un  entero):  lee  el  contenido  del  parámetro  de 
entrada  IN  y  ejecuta  la  operación  Complemento  a  2.  La  operación  invierte  el 
signo (ejemplo: de un valor positivo a un valor negativo). 

Si la entrada E 0.0 es 1, el parámetro de salida OUT deposita el valor de MW 8 
con el signo opuesto en MW10: 

De MW8 = + 10 resulta MW10 = ­ 10. 

Ejemplo 3.3.c Truncar a entero doble. 

TRUNC (Truncar a entero doble): lee el contenido del parámetro de entrada IN 
como número real y convierte este valor en un entero (de 32 bits). El resultado 
es  la  parte  entera  del  número  real,  proporcionado  por  el  parámetro  de  salida 
OUT. 

La conversión se lleva a cabo cuando E 0.0 =1. El contenido de la palabra doble 
de  marcas  MD8  se  lee  como  número  en  coma  flotante  y  es  convertido  en  un 
número entero doble siguiendo el principio de “redondeo a cero". 

El  resultado  es  la  parte  entera  del  número  en  coma  flotante,  que  se  almacena 
en MD12. Si se produce un desbordamiento A 4.0 = 0.

­ 8 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

Ahora  las  operaciones  que  nos  permiten  manejar  valores  fijos  y 


variables (datos) 

3.4.  OPERACIONES CON BLOQUES DE DATOS 

3.4.1.  ABRIR BLOQUE DE DATOS 

Recordemos que los bloques de datos (DB) son áreas de datos en 
el  programa  de  aplicación  que  contienen  datos del  usuario.  Estos 
datos  pueden  depositar  los  resultados  intermedios  calculados  por 
las  operaciones  en  el  programa,  también  permiten  almacenar 
otros  datos  que  pertenezcan  al  proceso  o  a  la  tarea  actual.  Un 
ejemplo  típico  del  empleo  de  los  bloques  de datos utilizarlos para 
almacenar  la  información  que  será  enviada  y/o  recibida  por  una 
interfase humano­máquina o un sistema SCADA. 

El objetivo de esta operación es indicarle a la CPU la ubicación en 
la memoria de dónde sacará o enviará los datos. 

La operación Abrir bloque de datos abre un bloque de datos como 
bloque de datos global (DB), válido para todo el programa o como 
bloque  de  datos  de  instancia  (DI),  válido  solamente  para  un 
bloque de programa. 

El  número  del  bloque  de  datos  se  transfiere  al  registro  del  DB  o 
del  DI.  Los  comandos  DB  y  DI  subsiguientes  acceden  a  los 
correspondientes  bloques  en  función  del  contenido  que  tenga  el 
registro. 

Ejemplo 3.4.a Abrir bloque de datos. 

DB10 es el bloque de datos abierto actualmente. Por ello, la consulta en DBX.0 
se dirige al bit 0 del byte de datos 0 del DB10. El estado de señal de este bit se 
asigna a la salida A 4.0.

­ 9 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

3.5.  OPERACIONES ARITMÉTICAS 

3.5.1.  ARITMÉTICA CON ENTEROS 

+  ­  x  ÷

Las  operaciones  aritméticas  con  enteros  sirven  para  ejecutar  las  siguientes 
operaciones aritméticas con dos enteros (16 y 32 bits):

· ADD_I  Sumar enteros.
· SUB_I  Restar enteros.
· MUL_I  Multiplicar enteros.
· DIV_I  Dividir enteros.
· ADD_DI Sumar enteros dobles.
· SUB_DI  Restar enteros dobles.
· MUL_DI Multiplicar enteros dobles.
· DIV_DI  Dividir enteros dobles.
· MOD_DI  Obtener el resto de una división de enteros dobles. 

Cuando  se  programa  en  lista  de  instrucciones,  tener  en  cuenta  que  las 
operaciones aritméticas combinan el contenido de los acumuladores ACUs 1 y 2. 
El  resultado  se  deposita  en  el  acumulador  ACU  1.  El  contenido  del  ACU  2 
permanece inalterado. 

En las CPUs con 4 acumuladores se copia a continuación el contenido del ACU 3 
en el ACU 2, y el contenido del ACU 4 en el ACU 3. El antiguo contenido del ACU 
4 no varía. 

Ejemplo 3.5.a Sumar enteros. 

El cuadro ADD_I se activa si E 0.0 es 1. El resultado de la suma MW0 + MW2 se 
deposita en MW10. 

­ 10 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 
Ejemplo 3.5.b Restar enteros dobles. 

Ejemplo 3.5.c Multiplicar enteros. 

El cuadro MUL_I se activa cuando E 0.0 = 1. El resultado de la multiplicación de 
MW0 x MW2 se almacena en la palabra de marcas MW10. 

Ejemplo 3.5.d Obtener el resto de una división de enteros dobles. 

El  cuadro  DIV_DI  se  activa  si  E  0.0  es  1.  El  resto  de  la  división  de  MD0  entre 
MD4 se deposita en MD10. 

Ejemplo 3.5.e Resolver un problema aritmético utilizando programación en 
lista  de  instrucciones.  El  programa  de  ejemplo  siguiente  muestra  cómo 
obtener  con tres  operaciones  aritméticas  para enteros el mismo resultado 
que la ecuación: 

MD4 = ((EW0 + DBW3) x 15) / MW2

­ 11 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

Ejemplo  3.5.f  …un  problema  idéntico  al  anterior,  pero  utilizando esquema  de 
contactos. 

El  programa  del  ejemplo  siguiente muestra cómo obtener con tres operaciones 


aritméticas para enteros el mismo resultado que la ecuación: 

MW4 = ((EW0 + DBW3) x 15) / MW0 

¿Existen las mismas operaciones con otros tipos de números? 

3.5.2.  ARITMÉTICA CON COMA FLOTANTE 

OPERACIONES BÁSICAS 

Los  números  de  32  bits  IEEE  en  coma flotante pertenecen al tipo 


de  datos  denominado  “REAL”.  Las  operaciones  aritméticas  con 
números  en  coma  flotante  sirven  para  ejecutar  las  siguientes 
operaciones  aritméticas  con  dos  números  en  coma  flotante  IEEE 
de 32 bits:

· ADD_R  Sumar números en coma flotante.
· SUB_R  Restar números en coma flotante.
· MUL_R  Multiplicar números en coma flotante.
· DIV_R  Dividir números en coma flotante.

­ 12 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

OPERACIONES AMPLIADAS 

Con  las  operaciones  aritméticas  de  números  en  coma  flotante  se 
pueden ejecutar las siguientes funciones con un número en coma 
flotante (32 bit, IEEE­FP):

· ABS  Valor  absoluto  de  un  número de coma  flotante (32 


bits, IEEE­FP).
· EXP  Calcular  el  exponente  de  un  número  de  coma 
flotante (32 bits).
· LN  Calcular el logaritmo natural de un número de coma 
flotante
· SQR  Calcular  el  cuadrado  de  un  número  de  coma 
flotante (32 bits).
· SQRT  Calcular  la  raíz  cuadrada  de  un  número  de  coma 
flotante
· SIN  Calcular el seno de ángulos como números de coma 
flotante
· COS  Calcular  el  coseno  de  ángulos  como  números  de 
coma flotante
· TAN  Calcular  la  tangente  de  ángulos  como  números  de 
coma flotante
· ASIN Calcular el arcoseno de un número de coma flotante (32 
bits).
· ACOS  Calcular  el  arcocoseno  de  un  número  de  coma flotante 
(32 bits).
· ATAN Calcular la arcotangente de un número de coma flotante 
(32 bits). 

Ejemplo 3.5.g División de números reales. 

El  cuadro  DIV_R  se  activa  cuando  E  0.0  =  1.  El  resultado  de  la 
división  de  MD0  entre  MD4  se  almacena  en  la  palabra  doble  de 
marcas MD10. 

Ejemplo 3.5.h Raíz cuadrada de un número real. 

El cuadro SQRT se activa cuando E 0.0 = 1. El resultado de SQRT 
(MDO) se almacena en la palabra doble de marcas MD10.Si MD0 < 
0, o si una de las entradas o el resultado no son números en coma

­ 13 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 
flotante y  el  estado  de  señal  de  E  0.0  = 0, a la salida A 4.0 se le 
asigna la señal “0". 

Ejemplo 3.5.i Seno de un ángulo expresado en radianes. 

3.6.  OPERACIONES DE SALTO 

Las operaciones de salto sirven para controlar el desarrollo del programa. Estas 
operaciones  permiten  al  programa  interrumpir  su  desarrollo  lineal  para 
continuar el procesamiento en un punto diferente del programa. 

El  operando  de  una  operación  de  salto  es  una  meta.  Esta  meta  puede  tener 
hasta  un  máximo  de  4  caracteres,  el  primero  de  los  cuales  tiene  que  ser  una 
letra. 

Estas  operaciones  se  pueden  utilizar  en  todos  los  bloques  lógicos:  bloques  de 
organización (OBs), bloques de función (FBs) y bloques de programas (PBs). 

Se dispone de las siguientes operaciones de salto:
· Salto absoluto.
· Salto condicional. 

3.6.1.  SALTO ABSOLUTO O INCONDICIONAL 

Esta operación interrumpe la ejecución lineal del programa y salta 
a la meta que se haya indicado, independientemente de cuál sea 
el  contenido  de  la  palabra  de  estado  o  del  resultado  de  la 
operación anterior. La ejecución lineal del programa continúa en la 
meta del salto, que está señalada por una marca (flag o bandera). 
Se puede saltar tanto hacia adelante como hacia atrás. 

Los  saltos  sólo  pueden  ser  ejecutados  dentro  de  un  bloque;  esto 
implica que tanto la instrucción del salto como su meta tienen que 
encontrarse  dentro  del  mismo  bloque.  La  meta  del  salto  sólo 
puede estar representada una sola vez dentro de este bloque.

­ 14 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 
Ejemplo 3.6.a Salto incondicional (JMP) en esquema de contactos. 

El salto se ejecuta en todos los casos, omitiéndose (“pasando por 
alto“)  las  operaciones  que  se  encuentren  entre  la  operación  de 
salto y la meta CAS1. 

3.6.2.  SALTO CONDICIONAL 

Esta  operación  funciona  como  un  salto  incondicional  cuando  el 


resultado  lógico  de  la  operación  (RLO  o  VKE)  de  la  combinación 
lógica anterior es "1". Cada salto tiene que tener una meta. 

¡No  se  ejecutarán  las  operaciones  que  se  encuentren  entre  la 
operación de salto y la meta! 

Ejemplo 3.6.b Salto condicional (JMP) en esquema de contactos. 

Si  la  entrada  E  0.0  es  0  se  ejecuta  el  salto  a  la  meta  CAS1.  Al 
llevarse  a  cabo  el  salto,  en  la  salida  A  4.0  no  se  ejecuta  la 
operación “Poner salida a 0“, aunque E 0.3 sea 1. 

Ejemplo 3.6.c Salto condicional (SPB) en lista de instrucciones. 

Ejemplo  3.6.d  Salto  condicional  (SPB)  e  incondicional  (SPA)  en 


lista de instrucciones

­ 15 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

3.7.  OPERACIÓN DE CONTROL DE PROGRAMA 

3.7.1.  LLAMAR SUBRUTINA Y RETORNO DE SUBRUTINA 

La operación Llamar subrutina (CALL) transfiere el control a la 
subrutina. Esta operación se puede utilizar con o sin parámetros. 

La  operación  Retorno condicional de subrutina  se utiliza para 


finalizar  una  subrutina  en  función  de  la  combinación  lógica 
precedente. 

Una  vez  ejecutada  la  subrutina,  el  control  vuelve  a  la  operación 
que sigue a la llamada de la subrutina (CALL). 

En  el programa  principal, se  pueden  anidar  (situar  una llamada a 


subrutina  en  otra)  hasta  ocho  subrutinas  generalmente.  Las 
subrutinas no se pueden anidar en una rutina de interrupción. Una 
llamada  a  subrutina  no  se  puede  disponer  en  ninguna  otra 
subrutina  a  la  que  se  llame  desde  una  rutina  de  interrupción.  Si 
bien la recursión (la subrutina se llama a sí misma) está permitida, 
hay que utilizarla con cautela.

­ 16 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

3.8.  OPERACIONES DE DESPLAZAMIENTO Y ROTACIÓN 

3.8.1.  OPERACIONES DE DESPLAZAMIENTO 

Las  operaciones  de desplazamiento sirven para desplazar bit a bit 


el  contenido  de  la  entrada  IN,  hacia  la  izquierda  o  hacia  la 
derecha.  El  desplazamiento  hacia  la  izquierda  multiplica  el 
contenido  de  la  entrada  IN  por potencias de 2; el desplazamiento 
hacia la derecha divide el contenido de la entrada IN por potencias 
de  2.  Por  ejemplo,  desplazando  el  equivalente  binario  del  valor 
decimal  3 tres bits hacia la izquierda se obtiene en el acumulador 
el  equivalente  binario  del  valor  decimal  24.  Desplazando  el 
equivalente  binario  del  valor  decimal  16  dos bits hacia la derecha 
se  obtiene  en  el  acumulador  el  equivalente  binario  del  valor 
decimal 4. 

El número que se introduce en el parámetro de entrada N indica el 
número  de  bits  a  desplazar.  Las  posiciones  que  quedan  libres 
después  de  ejecutar  la  operación  de  desplazamiento  se  rellenan 
con  ceros  o  con  el  estado  de  señal  del  bit  de  signo  (0  significa 
positivo y 1 significa negativo). 

Se dispone de las operaciones de desplazamiento siguientes:

­ 17 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

· SHR_I  Desplazar entero a la derecha.
· SHR_DI  Desplazar entero doble a la derecha.
· SHL_W  Desplazar 16 bits a la izquierda.
· SHR_W  Desplazar 16 bits a la derecha.
· SHL_DW  Desplazar 32 bits a la izquierda.
· SHR_DW Desplazar 32 bits a la derecha. 

Ejemplo 3.8.a Desplazar un número entero a la derecha. 

El  cuadro  SHR_I  se  activa  si  E  0.0  es  "1".  MW0  se  carga  y  se 
desplaza  a  la  derecha  tantos  bits  como  indica  MW2.  El  resultado 
se escribe en MW4. La salida A 4.0 se pone a 1. 

Si MW2 = 4, se realizará la siguiente operación: 

Ejemplo 3.8.b Desplazar 16 bits a la izquierda. 

El cuadro SHL_W se activa si E 0.0 es 1. MW0 se carga en el ACU 
1  y  se  desplaza  a  la  izquierda  tantos  bits  como  indica  MW2.  La 
palabra del resultado se escribe en MW4. La salida A 4.0 se pone a 
1. 

Para MW = 6 se tendría:

­ 18 ­
Tecsup Virtu@l  Programación Avanzada de PLC 

3.8.2.  OPERACIONES DE ROTACIÓN 

Las  operaciones  de  rotación  sirven  para  rotar  bit  a  bit  todo  el 
contenido  de  la  entrada  IN,  hacia  la  izquierda o hacia la derecha. 
Las  posiciones  libres  de  los  bits  se  rellenan  con  los  estados  de 
señal  de  los  bits  que  se  desplazan  fuera  de  la  entrada  IN.  El 
número  que  se  introduce  en  el  parámetro  de  entrada  N  indica el 
número  de  bits  que  se  va  a  rotar.  Se  dispone  de  las  siguientes 
operaciones de rotación:

· ROL_DW  Rotar 32 bits a la izquierda.
· ROR_DW  Rotar 32 bits a la derecha. 

Ejemplo 3.8.2.a Rotar 32 bits a la derecha. 

El cuadro ROR_DW se activa si E 0.0 es 1. MD0 se carga y se rota 
a  la  derecha  tantos  bits  como  indica  MW4.  La  palabra  doble  del 
resultado  se  escribe  en  MD10.  La  salida  A  4.0  se  pone  a  1.Con 
MW4 = 3 tenemos:

­ 19 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

3.9.  OPERACIONES LÓGICAS CON PALABRAS 

Las  operaciones  lógicas  con  palabras comparan  bit  a  bit  pares  de  palabras (16 
bits) y palabras dobles (32 bits) según la lógica de Boole. 

Se dispone de las operaciones lógicas con palabras siguientes:

· WAND_W  Y lógica con palabras.
· WOR_W  O lógica con palabras.
· WXOR_W  O exclusiva con palabras.
· WAND_DW  Y lógica con dobles palabras.
· WOR_DW  O lógica con dobles palabras.
· WXOR_DW  O exclusiva con dobles palabras. 

Ejemplo 3.9.a Rotar 32 bits a la derecha. 

La operación se ejecuta si E 0.0 es 1: 

MD0 =  01010101 01010101 01010101 01010101 
IN2  =  00000000 00000000 00001111 11111111 
MD4 = MD0 XOR IN2 =  01010101 01010101 01011010 10101010 

A 4.0 será „1“ si se ejecuta la operación. 

Ejemplo 3.9.b Calentar una caldera. 

El  operador  de  la  caldera  conecta  la  caldera  accionando  el  pulsador  de  marcha.  El 
operador  puede  graduar  un  tiempo  de  calentamiento  utilizando  los  preselectores 
mecánicos.  El  valor  fijado  por  el  operador  indica  los  segundos  en  formato  decimal 
codificado en binario (BCD). 

Componente del sistema  Dirección absoluta 
Pulsador de marcha  E 0.7 
Preselector digital para unidades  E 1.0 a E 1.3 
Preselector digital para decenas  E 1.4 a E 1.7 
Preselector digital para centenas  E 0.0 a E 0.3 
Inicio del proceso de calentamiento  A 4.0

­ 20 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

¡¡La solución en esquema de contactos!!

­ 21 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

¡¡Ahora en lista de instrucciones!! 

4.  RESUMEN

· Los  números  reales  (en  coma  flotante)  se  representan  como  números  de  precisión 
simple de 32 bits.
· Los acumuladores son usados para transmitir parámetros de y a subrutinas así como 
para almacenar valores intermedios utilizados en cálculos.
· La operación utilizada para el acceso al acumulador determina el tamaño de los datos 
a los que se accede.
· Las operaciones de salto sirven para controlar el desarrollo del programa.
· Los saltos sólo pueden ser ejecutados dentro de un bloque, esto implica que tanto la 
instrucción del salto como su meta tienen que encontrarse dentro del mismo bloque. 
La meta del salto puede estar representada una sola vez dentro de este bloque. 

5.  PREGUNTAS DE AUTOCOMPROBACIÓN 

1.  ¿Qué son los acumuladores? 
2.  ¿Es  correcto  decir  que  las  operaciones  de  lectura  leen  el  contenido  del  parámetro  de 
entrada  IN  y  lo  convierten  a  otro  tipo  de  número  o  representación  o  le  cambian  el 
signo? 
3.  ¿De qué manera funcionan las operaciones de salto? 
4.  ¿Para qué sirven las operaciones de desplazamiento? 
5.  ¿Para qué sirven las operaciones de rotación? 

6.  RESPUESTAS A LAS PREGUNTAS DE AUTOCOMPROBACIÓN 

1.  Los  acumuladores  son  elementos  de  lectura/escritura  que  se  utilizan  igual  que  una 
memoria. 
2.  Falso. Son las operaciones de conversión. 
3.  Estas  operaciones  permiten  al  programa  interrumpir su desarrollo lineal para continuar 
el procesamiento en un punto diferente del programa. 
4.  Sirven para desplazar bit a bit el contenido de la entrada IN, hacia la izquierda o hacia la 
derecha. 
5.  Sirven para rotar bit a bit todo el contenido de la entrada IN, hacia la izquierda o hacia 
la derecha.

­ 22 ­ 
Tecsup Virtu@l  Programación Avanzada de PLC 

7.  GLOSARIO DE TÉRMINOS 

Acumulador  Los  acumuladores  son  registros  en  la  CPU  que  sirven  de 
memoria  intermedia  para  las  operaciones  de  carga, 
transferencia, comparación, cálculo y conversión. 
Acu  Acumuladores 
BCD  Binary­coded decimal. 
Bloque de datos  Los  bloques de  datos  (DB)  son áreas de datos en el programa 
de aplicación que contienen datos del usuario. Existen bloques 
de datos globales, a los que pueden acceder todos los bloques 
lógicos,  así  como  bloques  de  datos  de  instancia,  que  están 
asignados a una determinada llamada bloque de función (FB). 
Bloque de datos de  Cada  llamada  de  un  bloque  de  función  en  el  programa  de 
instancia  aplicación  STEP  7  lleva  asignada  un  bloque  de  datos,  que  es 
generado  automáticamente.  Este  bloque  de  datos  de  instancia 
contiene  los  valores  de  los  parámetros  de  entrada,  salida  y 
entrada/salida, así como los datos locales del bloque. 
Bloque de función  Según IEC 1131­3, se entiende por bloque de función (FB) a un 
bloque  lógico  con  datos  estáticos.  Un  FB  ofrece  la  posibilidad 
de  transferir  parámetros  al  programa  de  aplicación.  En 
consecuencia,  los bloques de función resultan apropiados para 
programar  operaciones  complejas  que  se  repiten 
frecuentemente,  p.ej.  regulaciones  y  selección  de  modo  de 
operación. 
Datos globales  Se  entiende  por  datos  globales  a  los  datos  activables  desde 
cualquier  bloque  lógico  (PB,  FB,  OB).  En  particular  son  éstos 
marcas M, entradas E, salidas S, temporizadores, contadores y 
bloques  de  datos  DB.  Se  tiene  acceso  a  los  datos  globales  de 
forma absoluta o simbólica. 
DW  Formato de palabra de un bloque de datos (DB). 
Imagen del proceso  La  imagen  del  proceso  es  una  parte  integrante  de la  memoria 
del  sistema  en  la  CPU.  Al  principio  de  un  programa  cíclico  se 
transfieren a la imagen del proceso de entradas los estados de 
señal  de  los  módulos  de  entrada.  Al  final  del  programa  cíclico 
se transfiere la imagen del proceso de salidas, como estado de 
las señales, a los módulos de salida. 
MD  Formato de doble palabra de marca. 
Memoria auxiliar  La  memoria  auxiliar  o  de  respaldo  permite  salvaguardar  áreas 
de  memoria  de  la  CPU  sin  pila  tampón.  Se  salvaguardan  una 
cantidad  parametrizable  de  temporizadores,  contadores, 
marcas  y  bytes  de  datos,  así  como  los  temporizadores, 
contadores, marcas y bytes de datos remanentes. 
MW  Formato de palabra de marca. 

FIN DE LA UNIDAD

­ 23 ­ 

También podría gustarte