Você está na página 1de 113

s

ST-PROG2
PROGRAMACIN DE PLCs CON SIMATIC STEP7
NIVEL AVANZADO

Contenido del curso


1

INTRODUCCIN AL LENGUAJE DE PROGRAMACIN STEP7


1.1 FORMAS DE REPRESENTAR UN PROGRAMA EN STEP7
1.2 OPERANDOS
1.3 ESTRUCTURA DEL PROGRAMA
1.4 FORMAS DE PROGRAMACIN

PROCESAMIENTO DE VALORES ANALGICOS


2.1 TARJETA DE ENTRADA ANALGICA
2.2 CONFIGURACIN CON EL ADMINISTRADOR SIMATIC
2.3 TARJETA DE SALIDA ANALGICA
2.4 PROGRAMACIN DE MDULOS ANALGICOS

OPERACIONES LGICAS CON PALABRAS


3.1 DESCRIPCIN
3.2 Y - LGICAS CON PALABRAS
3.3 O - LGICA CON PALABRAS
3.4 O-EXCLUSIVA CON PALABRAS
3.5 Y LGICA CON DOBLES PALABRAS
3.6 O LGICA CON DOBLES PALABRAS
3.7 O-EXCLUSIVA CON DOBLES PALABRAS

OPERACIONES ARITMTICAS CON ENTEROS

OPERACIONES ARITMTICAS EN COMA FLOTANTE

OPERACIONES DE DESPLAZAMIENTO Y ROTACIN

OPERACIONES DE SALTO

BLOQUES DE ORGANIZACIN
8.1 RELACIN GENERAL DE BLOQUES
ST PROG2 Nro #

s
8.2 PRINCIPALES OBs
9

COMUNICACIN MEDIANTE DATOS GLOBALES


9.1 SINOPSIS
9.2 DETERMINAR LA CAPACIDAD DE COMUNICACIN
9.3 CONDICIONES DE EMISOR Y RECEPTOR
9.4 CONFIGURAR Y GUARDAR LA COMUNICACIN

ST PROG2 Nro #

ii

s
INTRODUCCIN AL LENGUAJE DE PROGRAMACIN
STEP 7

El STEP 7 es un lenguaje de programacin con el que se generan las


funciones de automatizacin que sern ejecutadas por los PLCs SIMATIC S7.
Estas funciones as generadas constituyen el programa de usuario, en el se
encuentran las instrucciones precisas Cmo el PLC debe mandar o regular
una instalacin. STEP 7 es el software para configurar y programar los
sistemas de automatizacin SIMATIC S7-300/400 y SIMATIC M7 300/400, as
como los equipos completos SIMATIC C7. Por lo que respecta a la
programacin y a la configuracin, un C7 es similar a un SIMATIC S7-300.
1.1 FORMAS DE REPRESENTAR UN PROGRAMA EN STEP 7
El lenguaje de programacin STEP 7 utiliza tres mtodos para la
representacin de un programa:
Lista de instrucciones (AWL)
Representa el programa de usuario como una sucesin de abreviaturas
de instrucciones. Es un lenguaje de programacin textual orientado
a la mquina. En un programa creado en AWL, las diversas
instrucciones equivalen en gran medida a los pasos en los que la
CPU ejecuta el programa. Una instruccin representa en AWL tiene
la siguiente estructura.
Operacin
Qu es lo que se desea
realizar?

Operando
Con quien realizamos la
operacin?

002: U

0.1
Parmetro
Diferencia operandos con el
mismo identificador

Identificador
Qu tipo de operando es?
Direccin
Indica la posicin relativa de una
instruccin dentro de un mdulo

ST PROG2 Nro #

s
Esquema de funciones (FUP)
Es un lenguaje de programacin grfico que utiliza los cuadros de
lgebra booleana para representar la lgica. En FUP se utilizan
smbolos normalizados para representar las operaciones. El smbolo
dentro del rectngulo indica la operacin realizada.
Esquema de contactos (KOP)
Este tipo de representacin tambin es conocida como Diagrama
Escalera o Ladder, las instrucciones son representadas con
smbolos elctricos. KOP permite observar fcilmente el sentido de
la circulacin de la corriente a travs de contactos, elementos
complejos y bobinas.
La Fig 1-1 muestra un ejemplo de estas dos ltimas representaciones.
Opcionalmente para programar los sistemas de automatizacin
SIMATIC S7-300/400 se dispone de los siguientes lenguajes suministrables
opcionalmente:
SCL para S7
Es un lenguaje textual de alto nivel conforme a la norma DIN EN 611313. Contiene estructuras similares a las de los lenguajes de
programacin Pascal y C. Por lo tanto, S7 SCL, es adecuado sobre
todo para los usuarios ya acostumbrados a trabajar con lenguajes
de alto nivel. S7 SCL se puede emplear para programar funciones
frecuentes o muy complejas.
GRAPH para S7
Es un lenguaje de programacin que permite describir controles
secuenciales (programacin de cadenas secuenciales) A tal efecto,
el proceso se divide en etapas. Estas ltimas contienen sobre todo
acciones para controlar las salidas. El paso de una etapa a otra se
controla mediante condiciones de transicin.
HI GRAPH para S7
Es un lenguaje de programacin que permite describir cmodamente los
procesos asincrnicos y no secuenciales en forma de grafos de
estado. A tal efecto, la instalacin se divide en unidades funcionales
que pueden adoptar diversos estados. Las unidades funcionales se
pueden sincronizar mediante el intercambio de mensajes.
CFC para S7 y M7
Es un lenguaje de programacin para interconectar grficamente las
funciones existentes. Estas ltimas abarcan una amplia gama que
incluye desde combinaciones lgicas sencillas hasta regulaciones y
controles complejos. Se dispone de un gran nmero de funciones en
forma de bloques contenidos en una librera. La programacin se
ST PROG2 Nro #

s
lleva a cabo copiando lo bloques en un plano y contactndose entre
s mediante lneas
FUP
Esquema de Funciones

KOP
Esquema de Contactos

E 1.0
E 1.1

E 1.0

E 1.1

E 1.3

E 1.4

E 1.2

A 4.0

&

E 1.2
E 1.3

&
E 1.4

1
A4.0

Fig. 1-1 Representaciones FUP y KOP


Cada forma de representacin tiene sus propias caractersticas. Por
esta razn, un mdulo de programa escrito en AWL, no puede convertirse a
KOP o FUP en todos los casos. De la misma manera, las formas de
representacin grfica tampoco son compatibles entre s. Sin embargo, todo
programa escrito en KOP o FUP tiene su equivalente en AWL. La Fig. 1-2
resume lo anteriormente expuesto.

AWL
AWL

FUP

KOP

Fig. 1-2 Compatibilidad entre las formas de representacin

ST PROG2 Nro #

s
1.2 OPERANDOS
La tabla 1-1 muestra los operandos disponibles en STEP 7:
OPERANDO

TIPO

FUNCIN
Interfases del proceso al PLC
Interfases del PLC al proceso
Memoria para resultados binarios
intermedios
Memoria para resultado digitales
intermedios
Memorias para la realizacin de
temporizaciones
Memorias para la realizacin de
contadores
Interfase del proceso al PLC
Valor numrico fijo
Valor numrico fijo
Valor numrico fijo
Valor numrico fijo

E
A
M

Entradas
Salidas
Marcas

Datos

Temporizadores

Contadores

P
B#
D#
L#
P#

Periferia
Constante, 2 4 bytes
Constante de fecha IEC
Constante entera (32 bits)
Constante puntero

S5T#

Constante de tiempo S5 (16 bits) Valor numrico fijo

T#
TOD#
C#

Constante de tiempo (16/32 bits) Valor numrico fijo


Constante de hora IEC (32 bits) Valor numrico fijo
Constante de contador (16/32 Valor numrico fijo
bits)

2#
16#

Constante binaria (16/32 bits)


Valor numrico fijo
Constante hexadecimal (16/32 Valor numrico fijo
bits)
Mdulos de programa
Auxiliares para estructurar
programa

OB,FC, FB, DB

Tabla 1-1 Zonas de operandos disponibles en STEP 7


1.3 ESTRUCTURA DEL PROGRAMA
El programa de la CPU consta de dos programas: el del sistema y el de
usuario.
El programa del sistema es la suma de todas las instrucciones y
declaraciones involucradas en la ejecucin de las funciones internas; como el
respaldo de datos en caso de falla de tensin, la organizacin de diversas
funciones anidadas en cada bloque y otros. El programa del sistema se
encuentra almacenado en una PROM no voltil y en una EPROM. El usuario
no tiene acceso a este programa.
ST PROG2 Nro #

el

s
El programa de usuario es la suma de todas las instrucciones y
declaraciones para procesar las seales que controlarn la mquina o proceso.
Este programa es estructurado y est subdividido en varias secciones llamadas
bloques.
Los Bloques de organizacin forman la interfase entre el programa de
usuario y el programa del sistema. Este llama a estos bloques cuando ocurre
cierto evento. Tambin estn disponibles bloques de funciones estndar
para aplicaciones generales. A pesar de que estos bloques son parte del
programa del sistema, pueden ser llamados por el programa de usuario.
La Fig. 1-3 resume lo explicado anteriormente

Integrado en la CPU
Funciones
especiales
integradas

Bloque de
Funciones
estndar

Programa
Del
Sistema

Programa
De
Usuario

Bloques de
organizacin
En mdulo de memoria usuario

Fig. 1.-3 Programas en la CPU


1.4 FORMAS DE PROGRAMACIN
Al momento de realizar el programa que gobernar determinada mquina
o secuencia podemos escoger entre dos formas para estructurar un programa
STEP 7:

Programacin lineal.
Programacin estructurada.

ST PROG2 Nro #

s
1.4.1

Programacin lineal

Este tipo de estructura es usado cuando se tienen tareas simples de


automatizacin, consiste en programar todas las instrucciones en una sola
seccin o mdulo.
Para los PLCs SIEMENS (Series S5 y S7) esta seccin es el Mdulo de
Organizacin 1, ms conocido como OB1. Este mdulo se procesa
cclicamente, es decir, tras la ltima instruccin se vuelve a ejecutar la primera.
1.4.2

Programacin estructurada

Es la forma de programacin utilizada para resolver tareas complejas y


consiste en dividir el programa global en secciones (mdulos) que realizan
tareas especficas.
Las ventajas que se obtienen con la programacin estructurada son:

Programacin ms simple y clara.


Posibilidad de normalizar partes del programa.
Facilidad para efectuar modificaciones
Prueba del programa ms sencilla de realizar.
Facilidad para la puesta en marcha del sistema automatizado.

STEP 7 pone a disposicin del programador los siguientes mdulos:

BLOQUES DE
PROCESAMIIENTO

FB
FC
OB

FB BLOQUE DE FUNCIONES
FC FUNCIONES
OB BLOQUE DE ORGANIZACIN

PROGRAMA
DE
APLICACIN
DB

DB BLOQUE DE DATOS

BLOQUES DE
ALMACENAMIENTO

ST PROG2 Nro #

s
Mdulos de Organizacin (OB)
Encargados de gestionar el programa de mando.
Funciones (FC)
Son mdulos de programa sin memoria. Incluyen el programa de
usuario dividido segn aspectos funcionales o tecnolgicos.
Mdulos de Funcin (FB)
Son mdulos de programa con memoria. En ellos se programan partes
del programa; como por ejemplo: valores de consigna, constantes,
temporizaciones, textos, ......
Usando llamadas es posible abandonar un mdulo y saltar a otro. Esto
permite anidar hasta 32 niveles en mdulos de programa, funcionales y de
paso. Si el anidado supera los 32 niveles el PLC pasa a STOP generando el
siguiente mensaje de error: "Desbordamiento en pila de mdulos STUEB".
1.4.3

Estructura de un mdulo
Cada mdulo se compone de:
Encabezamiento con los datos relativos a tipo, nmero y longitud del
mdulo.
Cuerpo, incluye el programa STEP 7 o los datos.

1.4.4

Mdulos de Organizacin (OB)

Como se mencion anteriormente, estos mdulos constituyen la


interfase entre el sistema operativo (programa del sistema) y el programa de
mando (programa de usuario). Cada uno de los distintos bloques de
organizacin se hace cargo de una determinada tarea parcial. Cada bloque de
organizacin puede crear un programa estructurado, creando funciones (FC) y
bloques de funcin (FB) y llamndolas en el rea de instrucciones. Al llamar a
un bloque tiene que asignar datos a los parmetros declarados.
En el caso ms sencillo de programacin usted necesitar bloques de
organizacin para lo siguiente:

Mdulo de organizacin que lo llama cclicamente el sistema


operativo (OB1)
Mdulos de organizacin para arranque (OB100, OB101)
Mdulos de organizacin para tratamiento de errores (OB80 a OB87,
OB121 a OB122), si es que su CPU no debe pasar a STOP en caso
de producirse un error.
Otros ofrecen funciones operativas (del mismo modo que los mdulos
funcionales integrados), llamados desde el programa de mando:
modificar las alarmas de la CPU y del proceso

ST PROG2 Nro #

s
La Fig. 1-4 muestra la forma de construir un programa de mando
estructurado. Adems pone de relieve la importancia de los mdulos de
organizacin.
1.4.5

Funciones (FC)

Una funcin (FC) es un bloque lgico sin memoria. Tras la ejecucin de


la FC, los parmetros de salida contienen los valores de la funcin que se han
calculado. En este caso, es el usuario quien decide cmo y dnde se utilizarn
y guardarn los parmetros actuales despus de llamar una FC.
La FC contiene un programa, que se ejecuta siempre cuando la FC es
llamada por otro bloque lgico. Las funciones se pueden utilizar para:
Devolver un valor de funcin al bloque invocante (ej.: funciones
matemticas)
Ejecutar una funcin tecnolgica (ej.: control individual con
combinacin binaria)
OB100/101

OB1

FC1

FC11

FB2

Programa del sistema

FC200

Programa de mando

Fig. 1-4 Ejemplo del uso de mdulos de organizacin

ST PROG2 Nro #

s
FC ELECCION DE FORMA DE OPERACION

FC 45 TAREA
PRINCIPAL

FC 10 OPERACION
MANUAL

FC OPERACION AUTOMATICA

FC 250 PARO ESCALONADO


FC 37
SUPERVICION

Fig. 1-5 Funcionamiento de los mdulos de programa


Los mdulos de programa se activan con las llamadas CALL y CC.
Estas operaciones pueden programarse en todos los tipos de mdulos,
excepto en los de datos.
1.4.6 Mdulos de Funcin (FB)
Los bloques de funcin son bloques programables. Un FB es un bloque
"con memoria". Dispone de un bloque de datos asignado como memoria
(bloque de datos de instancia). Los parmetros que se transfieren al FB, as
como las variables estticas, se memorizan en el DB de instancia. Las
variables temporales se memorizan en la pila de datos locales.
Los datos memorizados en el DB de instancia, no se pierden al concluir
el tratamiento del FB. Los datos memorizados en la pila de datos locales se
pierden al concluir el tratamiento del FB.

ST PROG2 Nro #

s
FB1

FC 3 "MULTIPLICAR"

FB4

FC 80 "REGULACION"

FB3

FB11

Fig. 1-6 Funcionamiento de los mdulos funcionales


Entre sus principales particularidades tenemos:

1.4.7

Son parametrizables; es decir al llamar al mdulo podemos


transferirles parmetros actuales.
Disponen de funciones complementarias que no pueden ser
programadas en otros mdulos.
Solamente pueden ser representados en AWL.
Mdulos de datos (DB)

Aqu se guardan los datos que sern procesados durante la ejecucin


del programa. Los bloques de datos guardan los datos del programa de
usuario. Se distinguen entre bloques de datos globales y bloques de datos de
instancia.
Bloque de datos de instancia define la llamada de un bloque de
funcin, que transfiere parmetros, est asignado un bloque de datos
de instancia. En el DB de instancia estn depositados los parmetros
actuales y los datos estticos del FB. Las variables declaradas en el
FB determinan la estructura del bloque de datos de instancia. La
instancia define la llamada de un bloque de funcin, Si por ejemplo,
en un programa de usuario S7 se llama 5 veces un bloque de funcin,
entonces existen 5 instancias de dicho bloque

ST PROG2 Nro # 10

Bloque de datos globales: Al contrario de los bloques de datos no


contienen instrucciones STEP7. Sirven para depositar datos de
usuario, es decir, dichos bloques contienen datos variables con los
cuales puede trabajar el programa de usuario. Los bloques de datos
globales contienen datos de usuario utilizables desde otros bloques.
El tamao de los DBs puede variar.

OB1

FC1
DB255
DB4
DB0

DW0
DW1
DW2
DW3
DW4

FC17

TDW255

DW255

Fig 1-7 Funcionamiento de los mdulos de datos


Se admiten los siguientes tipos de datos:
Configuraciones
binarias
(representacin
de
estados
de
instalaciones),
Nmeros en hexadecimal, binario o decimal (temporizaciones,
resultado de clculos,.)
Caracteres alfanumricos (mensajes).
1.4.7.1

Programacin de mdulos de datos

El primer paso consiste en asignar un nmero al mdulo que deber


estar comprendido entre 2 y 255. Los datos se almacenan palabra por palabra.
Si la informacin es inferior a 16 bits, los bits ms significativos se rellenan con
ceros. Un mdulo de datos permite almacenar hasta 2042 palabras de datos.
Estos mdulos tambin pueden crearse o borrarse desde el programa
de mando.
1.4.7.2

Ejecucin de un programa con mdulos de datos

ST PROG2 Nro # 11

Un DB debe llamarse en el programa con la instruccin AUF (or OPN)


db N (n = 0255)
Dentro de un mdulo, un DB mantiene su validez hasta que se llame
a otro mdulo de datos.
Al retornar al mdulo primario, es nuevamente vlido el DB que tena
dicha propiedad antes de la llamada.
En todos los OBs los DBs utilizados por el programa de usuario
deben abrirse con la instruccin AUF (or OPN) DB n.

FC 20
DB
Vlido

DB
vlido

FC7
DB 10

AUF DB 10
DB10
CALL FC 20

AUF DB 11

DB10

DB 11

Fig. 1-8 Mrgenes de validez de mdulos de datos

ST PROG2 Nro # 12

s
PROCESAMIENTO DE VALORES ANALGICOS

2.1 TARJETAS DE ENTRADA ANALGICA


Las tarjetas de entrada analgica digitalizan las seales analgicas del
proceso para que puedan ser procesadas por el CPU. El valor medido ya
digitalizado se almacena en una memoria contenida en la tarjeta. De all se
transfiere a la CPU, donde prosigue su procesamiento.
2.1.1 Componentes de una tarjeta de entrada analgica
Mdulo SM331 (en nuestro ejemplo 6ES7331-7KF02-0AB0)
Conector frontal de 20 polos. El conector frontal est disponible en 2
versiones:
Con bornes de resorte (referencia 6ES7392-1BJ00-0AA0)
Con bornes de tornillo (referencia 6ES7392-1AJ00-0AA0)

Fig 2-1 Componentes del SM 331


2.1.2 Adaptadores de margen de medida
El mdulo SM331 tiene 4 adaptadores de margen de medida (uno por
cada grupo de canales). Un adaptador de margen de medida puede
enchufarse en 4 posiciones diferentes (A, B, C o D). La posicin define qu
transductor se conecta al grupo de canales respectivo.

ST PROG2 Nro # 13

Fig 2-2 Adaptadores de medida con ajuste de fbrica (B: tensin)

Tabla 2-1 Posiciones de los adaptadores de margen de medida


2.1.3 Conexin de transductores de corriente
Dependiendo del transductor de intensidad que utilice es necesario
adaptar el cableado de la fuente de alimentacin. Se distingue entre el
cableado de un transductor a 2 hilos y el de un transductor a 4 hilos.
Transductor de 2 hilos (pasivo)
Este tipo de transductor es alimentado por el propio mdulo de entrada
analgica.

ST PROG2 Nro # 14

Fig 2-3 Conexin de transductor de dos (02) hilos


Transductor de 4 hilos (activo)
A diferencia de la variante a 2 hilos este tipo de transductor dispone de
alimentacin propia.

Fig 2-4 Conexin de transductor de cuatro (04) hilos


2.1.4 Conexin de transductores de voltaje
Para seales analgicas conviene usar cables apantallados y trenzados
por pares de hilos. Esto aumenta la inmunidad a perturbaciones. La pantalla de
los cables analgicos debe ponerse a tierra en ambos extremos.
Si hay diferencia de potencial entre los extremos del cable, entonces
puede circular corriente por la pantalla que perturbe las seales analgicas. En
tal caso la pantalla slo deber ponerse a tierra en un extremo o se tender un
cable equipotencial adecuadamente dimensionado.

ST PROG2 Nro # 15

Fig 2-5 Conexin de transductor de voltaje


Si el SM331 se aplica en entornos con fuertes perturbaciones
electromagnticas, entonces conviene unir M- con Mana. De esta forma la
diferencia de potencial entre las entradas y el potencial de referencia Mana no
supera el valor permitido.
2.1.5 Conexin de termorresistencias (pt100)
Existen tres posibilidades para cablear una termorresistencia:
conexin a 4 hilos
conexin a 3 hilos
conexin a 2 hilos
En caso de conexin a 4 y 3 hilos el mdulo entrega una corriente
constante a travs de los bornes Ic+ e Ic- que compensa la cada de tensin
en los cables de medida.
Es importante que los cables de corriente constante se conecten
directamente en la termorresistencia.
Nota
Las medidas con conexin a 4 3 hilos dan un resultado de mayor precisin
que con 2 hilos debido a la compensacin.
Termorresistencia de 4 hilos
La tensin que aparece en los terminales de la termorresistencia se
mide a travs de las conexiones M+ y M-. Al conectar atender a la polaridad de
los cables Ic+ / M+ y Ic- / M- y a que se conecten directamente en la
termorresistencia.

ST PROG2 Nro # 16

Fig 2-6 Conexin de termorresistencia de cuatro (04) hilos


Termorresistencia de 3 hilos
En la conexin a 3 hilos de una termorresistencia es necesario colocar
por regla general un puente entre M- e Ic-. Al conectar atender a que los cables
Ic+ y M+ se conecten directamente en la termorresistencia.

Fig 2-7 Conexin de termorresistencia de tres (03) hilos


Termorresistencia de 2 hilos
En caso de conexin a 2 hilos es necesario poner un puente entre los
bornes M+ e Ic+ del conector frontal del mdulo y otro puente entre los bornes
M- e Ic-.

ST PROG2 Nro # 17

Fig 2-8 Conexin de termorresistencia de dos (02) hilos


2.1.6 Conexin de termopares
Para seales analgicas conviene usar cables apantallados y trenzados
por pares de hilos. Esto aumenta la inmunidad a perturbaciones. La pantalla de
los cables analgicos debe ponerse a tierra en ambos extremos.
Si hay diferencia de potencial entre los extremos del cable, entonces
puede circular corriente por la pantalla que perturbe las seales analgicas. En
tal caso la pantalla slo deber ponerse a tierra en un extremo o se tender un
cable equipotencial adecuadamente dimensionado.

Tabla 2-2 Aplicacin de una unin fra externa e interna

ST PROG2 Nro # 18

s
Termopares con unin fra interna
El esquema muestra el mdulo analgico SM331 con conexin de
termopares a travs de cable de compensacin y unin fra interna.

Fig 2-9 Aplicacin de la unin fra interna


El cable de conexin debe ser siempre del mismo material (aleacin)
que el propio termopar. A un grupo de canales slo pueden conectarse
termopares del mismo tipo.
Termopares con unin fra externa
El esquema muestra el mdulo analgico SM331 al que se conectan
termopares a travs de un punto de conexin para cable de
compensacin
una unin fra externa

ST PROG2 Nro # 19

Fig 2-10 Termopar con unin fra externa


En caso de compensacin externa la temperatura en la unin fra se
mide mediante una caja de compensacin. La caja de compensacin incluye
un circuito en puente equilibrado para una determinada temperatura en la
unin fra (temperatura de compensacin). Las conexiones de los cables de
compensacin de los termopares deben estar en las proximidades de la caja
de compensacin. Slo as puede asegurarse que el punto de conexin de los
termopares y la caja de compensacin tengan la misma temperatura ambiente.
2.1.7 Representacin de valores analgicos
2.1.7.1

Conversin de valores analgicos

La CPU slo puede procesar los valores analgicos en forma binaria.


Los mdulos de entradas analgicas convierten una seal del proceso
analgica en una seal digital. Los mdulos de salidas analgicas convierten
un valor de salida digital en una seal analgica.
2.1.7.2

Representacin de valores analgicos con resolucin de 16 bits

Un valor analgico digitalizado de un mismo margen nominal es idntico


tanto si se trata de un valor de entrada como de salida. Los valores analgicos
ST PROG2 Nro # 20

s
se representan como cifra de coma fija en forma de complemento de 2. De ello
resulta la correspondencia siguiente:

El signo de un valor analgico se codifica siempre con el bit nmero 15:


0 +
1 2.1.7.3

Resolucin inferior a 16 bits

Si un mdulo analgico tiene una resolucin inferior a 16 bits, los


valores analgicos se registran en el mdulo comenzando por la izquierda. Los
dgitos insignificantes no ocupados se rellenan con 0.

En el ejemplo anterior se muestra cmo estn rellenadas con 0 las


posiciones libres en caso de una resolucin inferior.
2.1.8 Representacin binaria de los mrgenes de entrada
En las siguientes tablas se definen los mrgenes de entrada
representados mediante complementos de 2:

ST PROG2 Nro # 21

Tabla 2-3 Mrgenes de entrada bipolares

Tabla 2-4 Mrgenes de entrada unipolares


2.1.9 Ejemplos de representacin de valores analgicos

ST PROG2 Nro # 22

Tabla 2-5 Mrgenes de medicin de tensin 10V a 1V

Tabla 2-6 Mrgenes de medicin de tensin 1 a 5V y 0 a 10V

ST PROG2 Nro # 23

Tabla 2-7 Mrgenes de medicin de Intensidad 0 a 20mA y 4 a 20mA

Tabla 2-8 Representacin de valores para Termorresistencias

ST PROG2 Nro # 24

Tabla 2-9 Representacin de valores para Termoelemento tipo J

Tabla 2-10 Representacin de valores para Termoelemento tipo K


2.2 CONFIGURACIN CON EL ADMINISTRADOR SIMATIC
El asistente STEP7 cre un proyecto S7 base. Para generar los datos
de sistema para la CPU se requiere todava una configuracin completa del
hardware.
2.2.1 Crear configuracin del hardware
La configuracin del hardware del sistema del ejemplo se crea con
ayuda del Administrador SIMATIC. Para ello, haga click en la ventana izquierda

ST PROG2 Nro # 25

s
sobre la carpeta .Equipo SIMATIC 300. y inicie en la derecha la configuracin
del hardware haciendo doble click en la carpeta Hardware.

2.2.2 Aadir mdulo analgico


Existen numerosos mdulos analgicos SM331. Para este proyecto
necesitamos el SM331, AI8x12Bit que tiene la referencia 6ES7 331-7KF020AB0. La referencia se muestra en la parte inferior del catlogo del hardware
(ver flecha azul).

ST PROG2 Nro # 26

Mueva el mdulo al primer campo libre del slot 4 de su bastidor (ver


flecha roja). Con ello ha aadido todos los mdulos a la configuracin del
hardware. El siguiente paso es parametrizar el mdulo.
2.2.3 Parametrizacin del mdulo de entrada analgica
El Administrador SIMATIC inserta el mdulo analgico con los ajustes
pre-determinados o por defecto. Ahora puede modificar la parametrizacin
para configurar los tipos de sensores, y las funciones de diagnstico y alarma.
Funcionalidades del sistema del ejemplo
La tabla siguiente muestra qu parmetros hay que ajustar para nuestro
ejemplo.

ST PROG2 Nro # 27

Tabla 2-11 Funcionalidades del sistema del ejemplo


Llamada de la parametrizacin
Parametrizar lo siguiente:
Alarma de diagnstico CON
Alarma de proceso CON
Entrada 0-1:
o Tipo de medida: TM2H
o Diagnstico colectivo CON
o Rotura de hilo CON
Entrada 2-3:
o Tipo de medida: TM2H
o Diagnstico colectivo CON
o Rotura de hilo CON
Entradas 4-5 y 6-7
o Tipo de medicin: desactivado (---)
Frecuencia perturbadora
o Ajuste la frecuencia de su red (50 Hz 60 Hz)
Disparador de alarma de proceso
o Lmite superior 18 mA
o Lmite inferior 6 mA

ST PROG2 Nro # 28

Tipo de medicin
TM2H y TM4H representan transductores de intensidad a 2 y 4 hilos
respectivamente
--- significa que los canales estn desactivados. Si desactiva canales el
resto se procesa de forma ms rpida.
Adaptadores de margen de medida
Se muestra la posicin necesaria de los adaptadores de margen de
medida.
Frecuencia perturbadora
La frecuencia de la red alterna de alimentacin puede tener efecto
negativo sobre los valores medidos, particularmente en caso de mrgenes de
tensin pequeos y si se usan termopares. Con este parmetro se define la
frecuencia de red existente en su sistema.
Este parmetro tiene tambin efecto sobre la resolucin, el tiempo de
integracin y el tiempo base de ejecucin del grupo de canales.
Resolucin (precisin)
El valor analgico se memoriza en una palabra de 16 bits.
ST PROG2 Nro # 29

s
Tiempo de integracin
El mdulo requiere un cierto tiempo para medir la seal analgica. Este
tiempo se denomina tiempo de integracin. Cuanto mayor sea la precisin
requerida ms tardar el mdulo en medir la seal.
Tiempo de ejecucin base
Adems del tiempo de integracin, el mdulo requiere un determinado
tiempo para su digitalizacin.

Alarma de proceso
Slo los canales 0 y 2 estn en condiciones de activar alarma de
proceso. Las alarmas de proceso pueden utilizarse para activar una alarma
cuando la seal analgica supera por exceso o por defecto determinados
lmites ajustados.
2.3 TARJETAS DE SALIDA ANALGICA
Las tarjetas de salida analgica se encargan de transformar en
tensiones o corrientes los valores digitales procesados en la CPU. Existen
diversas tarjetas con separacin galvnica que cubren determinados mrgenes
de tensiones e intensidades.
2.3.1 Tipos de tarjetas de salida
En los mdulos de salidas analgicas con separacin galvnica, el punto
de referencia del circuito de medicin MANA no est unido galvnicamente al
borne M de la CPU.
Los mdulos de entradas analgicas con separacin galvnica slo se
utilizarn cuando pueda aparecer una diferencia de potencial UISO entre el
punto de referencia del circuito de medicin MANA y el borne M de la CPU.
Conectando un cable equipotencial entre el borne MANA y el borne M de la
CPU, se garantiza que UISO no rebase el valor admisible.
En el caso de mdulos de salidas analgicas sin separacin galvnica
es preciso crear un enlace entre el punto de referencia del circuito analgico
MANA y el borne M de la CPU.
ST PROG2 Nro # 30

s
Para ello, unir el borne MANA al borne M de la CPU. Una diferencia de
potencial entre MANA y el borne M de la CPU puede ser el origen de una
falsificacin de la seal analgica.
2.3.2 Conexin de cargas a una salida de tensin
La conexin de cargas a una salida de tensin es en principio realizable
en conexin a 4 hilos y a 2 hilos. Sin embargo, estos dos tipos de conexin no
son posibles en cada mdulo de salidas analgicas.
Conexin a 4 hilos de cargas en un mdulo con separacin
galvnica
Este tipo de conexin permite obtener una alta precisin en la carga. A
tal efecto, los conductores de sensor S y S+ deben conectarse directamente a
la carga. Esto permite medir y regular la tensin directamente en la carga.
Las perturbaciones o cadas de tensin pueden provocar diferencias de
potencial entre el conductor de sensor S y el circuito de referencia analgica
MANA. Dicha diferencia de potencial no deber rebasar un valor admisible, ya
que ello repercutira en la precisin de la seal analgica.

Fig 2-11 Conexin a 4 hilos con separacin galvnica


Conexin a 2 hilos de cargas en un mdulo sin separacin
galvnica
En la conexin a 2 hilos pueden dejarse abiertos los bornes S+ y S. La
precisin obtenida con este tipo de conexin es inferior a la lograda con una
conexin a 4 hilos. Aqu se conecta la carga a los bornes QV y al punto de
referencia del circuito de medicin MANA.

ST PROG2 Nro # 31

Fig 2-12 Conexin a 2 hilos sin separacin galvnica


2.3.3 Conexin de cargas a una salida de intensidad
Aqu deben conectarse las cargas al borne QI y al punto de referencia
del circuito analgico MANA de una salida de intensidad.

Fig 2-13 Conexin a salida de intensidad con separacin galvnica

ST PROG2 Nro # 32

Fig 2-14 Conexin a salida de intensidad sin separacin galvnica


2.3.4 Representacin binaria de los mrgenes de salida
En las siguientes tablas se definen
representados mediante complementos de 2:

los mrgenes

de salida

Tabla 2-12 Mrgenes de salida bipolares

ST PROG2 Nro # 33

Tabla 2-13 Mrgenes de salida unipolares


2.3.5 Ejemplos de representacin de valores analgicos

Tabla 2-14 Mrgenes de salida 0 a 10V y 1 a 5V

ST PROG2 Nro # 34

Tabla 2-15 Mrgenes de salida 0 a 20mA y 4 a 20mA


2.3.6 Parametrizacin del mdulo de salida analgica
Los mdulos de salidas analgicas utilizan, segn sus funciones, un
subconjunto de los parmetros y mrgenes especificados en la tabla siguiente.
Estos ajustes por defecto son vlidos si Ud. no efecta la parametrizacin
mediante STEP 7.

Tabla 2-16 Parmetros de los mdulos de salidas analgicas


ST PROG2 Nro # 35

s
2.4 PROGRAMACIN DE MDULOS ANALGICOS
Se prevn los bloques FC 105 SCALE (graduar valores) y FC 106
UNSCALE (degraduar valores) para introducir y editar valores analgicos en
STEP 7. Estos bloques FC aparecen en la biblioteca estndar de STEP 7, en
el subdirectorio TI-S7-Converting Blocks (descrito en la ayuda online STEP 7
para los FC).
Estos mdulos funcionales ejecutan conversiones entre el margen
nominal de una tarjeta analgica y un margen normalizado, que el usuario
puede especificar. El margen nominal es el valor estandarizado, es decir si
hablamos de corriente: 0 ... 20mA 4 ... 20mA; voltaje: 0 ... +10V 10 ...
+10V; termopar: 0 ... +50mV 50 ... +50mV; termoresistencias: 0 ... 266C.
El margen normalizado es el valor escalado y dado por usuario.
2.4.1 Leer y normalizar un valor analgico FC 105
2.4.1.1

Descripcin del FC 105

Este mdulo funcional lee un valor analgico en una tarjeta de entrada


analgica. La funcin "Escalar valores" (SCALE) toma un valor entero en la
entrada IN y lo convierte en un valor real, convirtindolo a escala en un rango
comprendido entre un lmite inferior y un lmite superior (LO_LIM y HI_LIM). El
resultado se escribe en la salida OUT. La funcin SCALE aplica la frmula
siguiente:
OUT = [ ((FLOAT (IN) K1)/(K2K1)) * (HI_LIMLO_LIM)] + LO_LIM
Las constantes K1 y K2 se aplican de forma diferente, dependiendo de
si el valor de entrada es BIPOLAR o UNIPOLAR.
BIPOLAR: Se supone que el valor entero de entrada debe estar
entre-27648 y 27648, por lo tanto,
K1 = -27648.0 y K2 = +27648.0
UNIPOLAR: Se supone que el valor entero de entrada debe estar
entre 0 y 27648, por lo tanto,
K1 = 0.0 y K2 = +27648.0
Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a
HI_LIM y se indica un error. Si el valor entero de entrada es menor que K1, la
salida se une a LO_LIM y se indica un error.
Se puede efectuar la conversin escalar inversa programando los lmites
de tal forma que el lmite inferior sea mayor que el lmite superior (LO_LIM >
HI_LIM). En la conversin escalar inversa el valor de la salida disminuye
cuando aumenta el valor de la entrada.
ST PROG2 Nro # 36

s
2.4.1.2

Parmetros de la funcin FC 105

Parmetro Declaracin Tipo de Area


de Descripcin
datos
memoria
EN
Entrada
BOOL
E, A, M, D, L
La
entrada
de
habilitacin con estado
de seal 1 activa el
cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitacin
tiene el estado de seal
1 si la funcin se
ejecuta sin errores.
IN
Entrada
INT
E, A, M, D, L, Valor de entrada a
P, o constante convertir a escala en
valor REAL.
HI_LIM
Entrada
REAL
E, A, M, D, L, Lmite
superior
del
P, o constante rango escalar.
LO_LIM
Entrada
REAL
E, A, M, D, L, Lmite inferior del rango
P, o constante escalar.
BIPOLAR Entrada
BOOL
E, A, M, D, L
El estado de seal 1
indica que el valor de
entrada es bipolar; con
el estado de seal 0
indica que es unipolar.
OUT
Salida
REAL
E, A, M, D, L, P Resultado
de
la
conversin a escala.
RET_VAL Salida
WORD
E, A, M, D, L, P Da el valor W#16#0000
cuando la funcin se
ejecuta sin errores; si
los valores son distintos
de W#16#0000, vase
la informacin sobre
errores.
Tabla 2-17 Parmetros de la funcin FC 105
2.4.1.3

Informacin sobre errores

Si el valor entero de entrada es mayor que K2, la salida (OUT) se une a


HI_LIM y se indica un error. Si el valor entero de entrada es menor que K1, la
salida se une a LO_LIM y se indica un error. El estado de seal de la salida de
habilitacin (ENO) se pone a 1 y el valor de respuesta (RET_VAL) toma el
valor W#16#0008.
2.4.1.4

Ejemplo

La figura muestra cmo opera la funcin "Escalar valores" (SCALE). La


funcin se ejecuta cuando el estado de seal de la entrada E 0.0 es 1
ST PROG2 Nro # 37

s
(activada). En este ejemplo, el valor entero 22 se convierte en un valor REAL
escalar entre 0.0 y 100.0, y ste se escribe en la salida OUT. El valor de
entrada es BIPOLAR, tal como lo indica el estado de seal de la entrada E2.0.
Si la funcin se ejecuta sin errores, los estados de seal de la salida de
habilitacin (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de
respuesta toma el valor W#16#0000.

2.4.2 Sacar un valor analgico FC 106


2.4.2.1

Descripcin del FC 105

Este mdulo funcional permite sacar valores analgicos en tarjetas de


salida analgica. La funcin "Desescalar valores" (UNSCALE) toma en la
entrada IN un valor real que est ajustado a escala en un rango comprendido
entre un lmite inferior y un lmite superior (LO_LIM y HI_LIM), y lo convierte en
un valor entero. El resultado se escribe en la salida OUT. La funcin
UNSCALE aplica la frmula siguiente:
OUT = [ ((INLO_LIM)/(HI_LIMLO_LIM)) * (K2K1) ] + K1
Las constantes K1 y K2 se aplican de forma diferente, dependiendo de
si el valor de entrada es BIPOLAR o UNIPOLAR.
ST PROG2 Nro # 38

s
BIPOLAR: Se supone que el valor entero de salida debe estar entre
-27648 y 27648, por lo tanto,
K1 = -27648.0 y K2 = +27648.0
UNIPOLAR: Se supone que el valor entero de salida debe estar entre
0 y 27648, por lo tanto,
K1 = 0.0 y K2 = +27648.0
Si el valor real de entrada queda fuera del rango comprendido entre los
lmites inferior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT)
se fija al valor lmite ms cercano (a LO_LIM o a HI_LIM), y se devuelve un
error.
2.4.2.2

Parmetros de la funcin FC 106

Parmetro Declaracin Tipo de Area


de Descripcin
datos
memoria
EN
Entrada
BOOL
E, A, M, D, L
La
entrada
de
habilitacin con estado
de seal 1 activa el
cuadro.
ENO
Salida
BOOL
E, A, M, D, L
La salida de habilitacin
tiene el estado de seal
1 si la funcin se
ejecuta sin errores.
IN
Entrada
REAL
E, A, M, D, L, Valor de entrada a
P, o constante desescalar
convirtindolo en un
valor entero.
HI_LIM
Entrada
REAL
E, A, M, D, L, Lmite
superior
del
P, o constante rango escalar.
LO_LIM
Entrada
REAL
E, A, M, D, L, Lmite inferior del rango
P, o constante escalar.
BIPOLAR Entrada
BOOL
E, A, M, D, L
El estado de seal 1
indica que el valor de
entrada es bipolar; con
el estado de seal 0
indica que es unipolar.
OUT
Salida
INT
E, A, M, D, L, P Resultado
del
desescalado.
RET_VAL Salida
WORD
E, A, M, D, L, P Da el valor W#16#0000
cuando la funcin se
ejecuta sin errores; si
los valores son distintos
de W#16#0000, vase
la informacin sobre
errores.
ST PROG2 Nro # 39

s
2.4.2.3

Informacin sobre errores

Si el valor real de entrada queda fuera del rango comprendido entre los
lmites inferior y superior de su tipo (BIPOLAR o UNIPOLAR), la salida (OUT)
se une al valor lmite ms cercano (a LO_LIM o a HI_LIM), y se devuelve un
error. El estado de seal de la salida de habilitacin (ENO) se pone a 0, y el
valor de respuesta (RET_VAL) toma el valor W#16#0008.
2.4.2.4

Ejemplo

La figura muestra cmo opera la funcin "Desescalar valores"


(UNSCALE). La funcin se ejecuta cuando el estado de seal de la entrada E
0.0 es 1 (activada). En este ejemplo, el valor REAL 50.03978588, escalado
entre 0.0 y 100.0 se convierte en un valor INTEGER, y ste se escribe en la
salida OUT. El valor de entrada es BIPOLAR, tal como lo indica el estado de
seal de la entrada E2.0.
Si la funcin se ejecuta sin errores, los estados de seal de la salida de
habilitacin (ENO) y de la salida A 4.0 se ponen a 1 (activadas), y el valor de
respuesta (RET_VAL) toma el valor W#16#0000.

ST PROG2 Nro # 40

ST PROG2 Nro # 41

s
OPERACIONES LGICAS CON PALABRAS

3.1 DESCRIPCIN
Las operaciones lgicas con palabras comparan bit a bit pares de
palabras (16 bits) y palabras dobles (32 bits) segn la lgica de boole. Las
operaciones lgicas con bits permiten ejecutar las ms diversas funciones.
Si el resultado en la salida OUT es diferente de 0, el bit A1 de la palabra
de estado se pone a "1".
Si el resultado en la salida OUT es igual a 0, el bit A1 de la palabra de
estado se pone a "0".
Se dispone de las siguientes operaciones lgicas con palabras:

Palabra de estado
Es un registro de la memoria de la CPU que contiene 16 bits que
pueden direccionarse en el operando de las operaciones lgicas con bits y con
palabras. Solo nos sern de utilidad los 9 primeros bits, estando reservados el
uso de los 7 ltimos. A continuacin pasaremos a describir cada bit:

BIT 0 (ER): 0 indica que la siguiente lnea se ejecuta como nueva


consulta (inhibida). En este estado la consulta se almacena
directamente en RLO.
BIT 1 (RLO): resultado lgico. Aqu se realizan las operaciones a nivel
de bit (como AND, OR, etc.).
BIT 2 (STA): bit de estado. Solo sirve en el test de programa.
BIT 3 (OR): se requiere para el proceso Y delante de O. Este bit
indica que una operacin Y ha dado valor 1, en las restantes
operaciones es 0.
ST PROG2 Nro # 42

BIT 4 (OV): bit de desbordamiento. Se activa (1) por una operacin


aritmtica o de comparacin de coma flotante tras producirse un error
(desbordamiento, operacin no admisible, o relacin incorrecta).
BIT 5 (OS): bit de desbordamiento memorizado. Se activa junto con
OV e indica que previamente se ha producido un error. Solo puede
cambiar a cero con la instruccin de salto, una operacin de llamada
a mdulo, o porque se ha alcanzado el fin del mdulo.
BITS 6 (A0) y 7 (A1): cdigos de condicin. Dan informacin sobre los
resultados o bits siguientes:
resultado de una operacin aritmtica.
resultado de una comparacin.
resultado de una operacin digital.
bits desplazados por una instruccin de desplazamiento o
rotacin.
BIT 8 (RB): resultado binario. Permite interpretar el resultado de una
operacin de palabras como resultado binario e integrarlo en la
cadena de combinaciones lgicas binarias.

3.2 WAND_W

Y LGICA CON PALABRAS

3.2.1 Smbolo

3.2.2 Descripcin
WAND_W (Y lgica con palabras) se activa cuando la entrada de
habilitacin (EN) tiene el estado de seal "1". Esta operacin combina
entonces los dos valores de palabra de IN1 y IN2 bit a bit realizando una Y
lgica. Los valores se interpretan como puras configuraciones binarias. El
resultado queda depositado en la salida OUT. La salida de habilitacin ENO
tiene el mismo estado de seal que EN.
ST PROG2 Nro # 43

s
3.2.3 Palabra de estado

3.2.4 Ejemplo

La operacin se ejecuta si E 0.0 es 1. Slo son relevantes los bits de 0 a 3 de


MW0; los dems bits son enmascarados por la configuracin binaria de la
palabra en IN2:

A 4.0 ser "1" si se ejecuta la operacin.


3.3 WOR_W

O LGICA CON PALABRAS

3.3.1 Smbolo

ST PROG2 Nro # 44

s
3.3.2 Descripcin
WOR_W (O lgica con palabras) se activa cuando la entrada de
habilitacin (EN) tiene el estado de seal "1". Esta operacin combina los dos
valores de las palabras IN1 y IN2 bit a bit realizando una O lgica. Los valores
se interpretan como puras configuraciones binarias. El resultado queda
depositado en la salida OUT. La salida de habiliatacin ENO tiene el mismo
estado de seal que EN.
3.3.3 Palabra de estado

3.3.4 Ejemplo

La operacin se ejecuta si E 0.0 es 1. Los bits 0 a 3 se ponen a "1", los dems


bits de MW0 no varan.

A 4.0 ser "1" si se ejecuta la operacin.


3.4 WXOR_W

O-EXCLUSIVA CON PALABRAS

3.4.1 Smbolo

ST PROG2 Nro # 45

3.4.2 Descripcin
WXOR_W (O exclusiva con palabras) se activa cuando la entrada de
habilitacin (EN) tiene el estado de seal "1". Esta operacin lgica combina
los dos valores de las palabra IN1 y IN2 bit a bit realizando una O exclusiva.
Los valores se interpretan como puras configuraciones binarias. El resultado
queda depositado en la salida OUT. La salida de habiliatacin ENO tiene el
mismo estado de seal que EN.
3.4.3 Ejemplo

La operacin se ejecuta si E 0.0 es 1:

A 4.0 ser "1" si se ejecuta la operacin.


3.5 WAND_DW

Y LGICA CON DOBLES PALABRAS

3.5.1 Smbolo

ST PROG2 Nro # 46

3.5.2 Descripcin
WAND_DW (Y lgica con dobles palabras) se activa cuando la entrada
de habilitacin (EN) tiene el estado de seal "1". Esta operacin combina los
dos valores de las dobles palabras IN1 y IN2 bit a bit realizando una Y lgica.
Los valores se interpretan como puras configuraciones binarias. El resultado
queda depositado en la salida OUT. La salida de habilitacin ENO tiene el
mismo estado de seal que EN.
3.5.3 Palabra de estado

3.5.4 Ejemplo

La operacin se ejecuta si E 0.0 es 1. Slo son relevantes los bits 0 y 11 de


MD0, los dems bits son enmascarados por la configuracin binaria de IN2:

A 4.0 ser "1" si se ejecuta la operacin.


3.6 WORD_DW

O LGICA CON DOBLES PALABRAS

ST PROG2 Nro # 47

s
3.6.1 Smbolo

3.6.2 Descripcin
WOR_DW (O lgica con dobles palabras) se activa cuando la entrada
de habilitacin (EN) tiene el estado de seal "1". Esta operacin combina los
dos valores de las dobles palabras IN1 y IN2 bit a bit realizando una O lgica.
Los valores se interpretan como puras configuraciones binarias. El resultado
queda depositado en la salida OUT. La salida de habiliatacin ENO tiene el
mismo estado de seal que EN.
3.6.3 Palabra de estado

3.6.4 Ejemplo

La operacin se ejecuta si E 0.0 es 1. Los bits de 0 a 11 se ponen a "1". Los


dems bits de MWZ no cambian:

ST PROG2 Nro # 48

A 4.0 ser "1" si se ejecuta la operacin.


3.7 WXOR_DW

O-EXCLUSIVA CON DOBLES PALABRAS

3.7.1 Smbolo

3.7.2 Descripcin
WXOR_DW (O exclusiva con dobles palabras) se activa cuando la
entrada de habilitacin (EN) tiene el estado de seal "1". Esta operacin lgica
combina los dos valores de las dobles palabras IN1 y IN2 bit a bit realizando
una O exclusiva. Los valores se interpretan como puras configuraciones
binarias. El resultado queda depositado en la salida OUT. La salida de
habilitacin ENO tiene el mismo estado de seal que EN.
3.7.3 Palabra de estado

ST PROG2 Nro # 49

s
3.7.4 Ejemplo

La operacin se ejecuta si E 0.0 es 1:

A 4.0 ser "1" si se ejecuta la operacin.

ST PROG2 Nro # 50

s
OPERACIONES ARITMTICAS CON ENTEROS

4.1 DESCRIPCIN
Las operaciones aritmticas con enteros sirven para ejecutar las
siguientes operaciones aritmticas con dos enteros (16 y 32 bits):

4.2 EVALUAR BITs DE LA PALABRA DE ESTADO


4.2.1 Descripcin
Las operaciones aritmticas bsicas influyen sobre los siguientes bits de
la palabra de datos:

A1 y A0
OV
OS

Las tablas siguientes muestran el estado de seal de los bits de la


palabra de estado para los resultados de las operaciones con nmeros en
coma fija (16 bit, 32 bit).

ST PROG2 Nro # 51

* El bit OS no se ve influido por el resultado de la operacin.

4.3 ADD_I

SUMAR ENTEROS

4.3.1 Smbolo

ST PROG2 Nro # 52

4.3.2 Descripcin
ADD_I (Sumar enteros) suma las entradas IN1 y IN2 si el estado de
seal en la entrada de habilitacin (EN) es "1". La salida OUT proporciona el
resultado. Si el resultado es un valor fuera del margen vlido para enteros (de
16 bits), los bits OV y OS son 1 y ENO es 0, de forma que otras operaciones
que siguen a esta operacin aritmtica, combinadas a travs de ENO
(ejecucin en cascada), no se ejecutan.
4.3.3 Palabra de estado

4.3.4 Ejemplo

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


se deposita en MW10. Si el resultado es un valor fuera del margen vlido para
enteros o si el estado de seal de E 0.0 es 0, la salida A 4.0 se pone a 1.

ST PROG2 Nro # 53

s
4.4 SUB_I

RESTAR ENTEROS

4.4.1 Smbolo

4.4.2 Descripcin
SUB_I (Restar enteros) resta el valor de IN2 del valor de IN1 si el estado
de seal en la entrada de habilitacin (EN) es "1". La salida OUT proporciona
el resultado. Si el resultado es un valor fuera del margen vlido para enteros
(de 16 bits), los bits OV y OS son "0" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.4.3 Palabra de estado

4.4.4 Ejemplo

El cuadro SUB_I se activa si E 0.0 es 1. El resultado de la sustraccin MW0 MW2 se deposita en MW10. Si el resultado es un valor fuera del margen vlido
para enteros (de 16 bits) o si el estado de seal de E 0.0 es 0, la salida A 4.0
se pone a 1.

ST PROG2 Nro # 54

s
4.5 MUL_I

MULTIPLICAR ENTEROS

4.5.1 Smbolo

4.5.2 Descripcin
MUL_I (Multiplicar enteros) multiplica los valores de las entradas IN1 y
IN2 si el estado de seal en la entrada de habilitacin (EN) es "1". La salida
OUT proporciona el resultado. Si el resultado es un valor fuera del margen
vlido para enteros (de 16 bits), los bits OV y OS son "1" y ENO es "0", de
forma que otras operaciones que siguen a esta operacin aritmtica,
combinadas a travs de ENO (ejecucin en cascada), no se ejecutan.
4.5.3 Palabra de estado

4.5.4 Ejemplo

El cuadro MUL_I se activa si E 0.0 es 1. El resultado de la multiplicacin MW0


x MW2 se deposita en MW10. Si el resultado es un valor fuera del margen
vlido para enteros, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se
pone a 1.
ST PROG2 Nro # 55

s
4.6 DIV_I

DIVIDIR ENTEROS

4.6.1 Smbolo

4.6.2 Descripcin
DIV_I (Dividir enteros) divide el valor de IN1 entre el valor de IN2 si el
estado de seal en la entrada de habilitacin (EN) es "1". La salida OUT
proporciona el resultado. Si el resultado es un valor fuera del margen vlido
para enteros, los bits OV y OS son "1" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.6.3 Palabra de estado

4.6.4 Ejemplo

El cuadro DIV_I se activa si E 0.0 es 1. El resultado de la divisin de MW0


entre MW2 se deposita en MW10. Si el resultado es un valor fuera del margen
vlido para enteros, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se
pone a 1.
ST PROG2 Nro # 56

s
4.7 ADD_DI

SUMAR ENTEROS DOBLES

4.7.1 Smbolo

4.7.2 Descripcin
ADD_DI (Sumar enteros dobles) suma las entradas IN1 y IN2 si el
estado de seal en la salida de habilitacin es "1". La salida OUT proporciona
el resultado. Si el resultado es un valor fuera del margen vlido para enteros
dobles, los bits OV y OS son 1 y ENO es 0, de forma que otras operaciones
que siguen a esta operacin aritmtica, combinadas a travs de ENO
(ejecucin en cascada), no se ejecutan.
4.7.3 Palabra de estado

4.7.4 Ejemplo

El cuadro ADD_DI se activa si E 0.0 es 1. El resultado de la suma MD0 + MD4


se deposita en MD10. Si el resultado es un valor fuera del margen vlido para

ST PROG2 Nro # 57

s
enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se pone a
1.
4.8 SUB_DI

RESTAR ENTEROS DOBLES

4.8.1 Smbolo

4.8.2 Descripcin
SUB_DI (Restar enteros dobles) resta el valor IN2 del valor de IN1 si el
estado de seal en la entrada de habilitacin (EN) es "1". La salida OUT
proporciona el resultado. Si el resultado es un valor fuera del margen vlido
para enteros dobles, los bits OV y OS son "1" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.8.3 Palabra de estado

4.8.4 Ejemplo

El cuadro SUB_DI se activa si E 0.0 es 1. El resultado de la sustraccin MD0 MD4 se deposita en MD10. Si el resultado es un valor fuera del margen vlido
ST PROG2 Nro # 58

s
para enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se
pone a 1.
4.9 MUL_DI

MULTIPLICAR ENTEROS DOBLES

4.9.1 Smbolo

4.9.2 Descripcin
MUL_DI (Multiplicar enteros dobles) multiplica los valores de las
entradas IN1 y IN2 si el estado de seal en la entrada de habilitacin es "1". La
salida OUT proporciona el resultado. Si el resultado es un valor fuera del
margen vlido para enteros dobles, los bits OV y OS son "1" y ENO es "0", de
forma que otras operaciones que siguen a esta operacin aritmtica,
combinadas a travs de ENO (ejecucin en cascada), no se ejecutan.
4.9.3 Palabra de estado

4.9.4 Ejemplo

El cuadro MUL_DI se activa si E 0.0 es 1. El resultado de la multiplicacin MD0


x MD4 se deposita en MD10. Si el resultado es un valor fuera del margen
ST PROG2 Nro # 59

s
vlido para enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0
se pone a 1.
4.10DIV_DI

DIVIDIR ENTEROS DOBLES

4.10.1 Smbolo

4.10.2 Descripcin
DIV_DI (Dividir enteros dobles) divide el valor de IN1 entre el valor de
IN2 si el estado de seal en la entrada de habilitacin (EN) es "1". La salida
OUT proporciona el resultado (parte entera). El elemento Dividir enteros dobles
no genera ningn resto de divisin. Si el resultado es un valor fuera del margen
vlido para enteros dobles, los bits OV y OS son "1" y ENO es "0", de forma
que otras operaciones que siguen a esta operacin aritmtica, combinadas a
travs de ENO (ejecucin en cascada), no se ejecutan.
4.10.3 Palabra de estado

4.10.4 Ejemplo

ST PROG2 Nro # 60

s
El cuadro DIV_DI se activa si E 0.0 es 1. El resultado de la divisin de MD0 por
MD4 se deposita en MD10. Si el resultado es un valor fuera del margen vlido
para enteros dobles, o si el estado de seal de E 0.0 es 0, la salida A 4.0 se
pone a 1.
4.11MOD_DI
OBTENER EL RESULTADO DE UNA DIVISN DE
ENTEROS DOBLES
4.11.1 Smbolo

4.11.2 Descripcin
MOD_DI (Obtener el resto de una divisin de enteros dobles) divide el
valor de IN1 entre el valor de IN2 si el estado de seal en la entrada de
habilitacin (EN) es "1". La salida OUT proporciona el resultado, esto es, el
resto de la divisin. Si el resultado es un valor fuera del margen vlido para
enteros dobles, los bits OV y OS son "1" y ENO es "0", de forma que otras
operaciones que siguen a esta operacin aritmtica, combinadas a travs de
ENO (ejecucin en cascada), no se ejecutan.
4.11.3 Palabra de estado

4.11.4 Ejemplo

ST PROG2 Nro # 61

El cuadro DIV_DI se activa si E 0.0 es 1. El resto de la divisin de MD0 entre


MD4 se deposita en MD10. Si el resto de la divisin es un valor fuera del
margen vlido para enteros dobles, o si el estado de seal de E 0.0 es 0, la
salida A 4.0 se pone a 1.

ST PROG2 Nro # 62

s
OPERACIONES ARITMTICAS EN COMA FLOTANTE

5.1 LISTA DE OPERACIONES


5.1.1 Descripcin
Los nmeros de 32 bits IEEE en coma flotante pertenecen al tipo de
datos denominado "REAL. Las operaciones aritmticas con nmeros en coma
flotante sirven para ejecutar las siguientes operaciones aritmticas con dos
nmeros en coma flotante IEEE de 32 bits:

Con las operaciones aritmticas de nmeros en coma flotante se


pueden ejecutar las siguientes funciones con un nmero en coma flotante (32
bit, IEEE-FP):

5.2 EVALUAR LOS BITs DE LA PALABRA DE ESTADO


5.2.1 Descripcin
Las operaciones aritmticas bsicas afectan a los siguientes bits de la
palabra de estado:
A1 y A0
OV
OS

ST PROG2 Nro # 63

s
Las tablas siguientes muestran el estado de seal de los bits de la
palabra de estado para los resultados de operaciones con nmeros en coma
flotante (32 bits).

5.3 ADD_R

SUMAR NMEROS EN COMA FLOTANTE

5.3.1 Smbolo

5.3.2 Palabra de estado

ST PROG2 Nro # 64

s
5.3.3 Descripcin
ADD_R (Sumar nmeros en coma flotante) suma los valores de las
entradas IN1 y IN2 cuando la entrada de habilitacin (EN) tiene el estado de
seal "1". El resultado se deposita en la salida OUT. Si el resultado se
encuentra fuera del margen vlido para nmeros en coma flotante
(desbordamiento positivo o negativo), el bit OV y el bit OS son 1 y ENO es 0,
de forma que las dems operaciones que siguen a esta operacin aritmtica,
combinadas a travs de ENO (ejecucin en cascada), no se ejecutan.
5.3.4 Ejemplo

El cuadro ADD_R se activa si E 0.0 es 1. El resultado de la suma MD0 + MD4


se deposita en MD10. Si el resultado se encuentra fuera del margen vlido
para nmeros en coma flotante, o si no se ejecuta esta instruccin (E 0.0 = 0),
se activa la salida A 4.0.
5.4 SUB_R

RESTAR NMEROS EN COMA FLOTANTE

5.4.1 Smbolo

5.4.2 Palabra de estado

ST PROG2 Nro # 65

s
5.4.3 Descripcin
SUB_R (Restar nmeros en coma flotante) resta los valores IN2 de IN1
cuando la entrada de habilitacin (EN) tiene el estado de seal "1". El resultado
de la sustraccin se deposita en la salida OUT. Si el resultado se encuentra
fuera del margen vlido para nmeros en coma flotante (desbordamiento
positivo o negativo), los bits OV y OS son 1 y ENO es 0, de forma que las
dems operaciones que siguen a esta operacin aritmtica, combinadas a
travs de ENO (ejecucin en cascada), no se ejecutan.
5.4.4 Ejemplo

El cuadro SUB_R se activa cuando E 0.0 es 1. El resultado de la sustraccin


MD0 - MD4 se deposita en MD10. Si el resultado se encuentra fuera del
margen vlido para nmeros en coma flotante, o si no se ejecuta esta
instruccin (E 0.0 = 0), se activar la salida A 4.0.
5.5 MUL_R

MULTIPLICAR NMEROS EN COMA FLOTANTE

5.5.1 Smbolo

5.5.2 Palabra de estado

ST PROG2 Nro # 66

s
5.5.3 Descripcin
MUL_R (Multiplicar nmeros en coma flotante) multiplica el valor de IN1
por el valor de IN2 cuando la entrada de habilitacin (EN) tiene el estado de
seal "1". El resultado se deposita en la salida OUT. Si el resultado se
encuentra fuera del margen vlido para nmeros en coma flotante
(desbordamiento positivo o negativo), el bit OV y el bit OS son 1 y ENO es 0,
de forma que las dems operaciones operaciones que siguen a esta operacin
aritmtica, combinadas a travs de ENO (ejecucin en cascada), no se
ejecutan.
5.5.4 Ejemplo

El cuadro MUL_R se activa cuando E 0.0 es 1. El resultado de la multiplicacin


MD0 x MD4 se deposita en MD0. Si el resultado se encuentra fuera del margen
vlido para nmeros en coma flotante, o si no se ejecuta esta instruccin (E 0.0
= 0), se activar la salida A 4.0.
5.6 DIV_R

DIVIDIR NMEROS EN COMA FLOTANTE

5.6.1 Smbolo

ST PROG2 Nro # 67

s
5.6.2 Palabra de estado

5.6.3 Descripcin
DIV_R (Dividir nmeros en coma flotante) divide el valor de IN1 entre el
valor de IN2 cuando la entrada de habilitacin (EN) tiene el estado de seal
"1". El resultado se deposita en la salida OUT. Si el resultado se encuentra
fuera del margen vlido para nmeros en coma flotante (desbordamiento
positivo o negativo), el bit OV y el bit OS son 1 y ENO es 0, de forma que las
dems operaciones que siguen a esta operacin aritmtica, combinadas a
travs de ENO (ejecucin en cascada), no se ejecutan.
5.6.4 Ejemplo

El cuadro DIV_R se activa cuando E 0.0 es 1. El resultado de la divisin de


MD0 entre MD4 se deposita en MD10. Si el resultado se encuentra fuera del
margen vlido para nmeros en coma flotante, o si no se ejecuta esta
instruccin (E 0.0 = 0), se activar la salida A 4.0.
5.7 ABS

CALCULAR EL VALOR ABSOLUTO

5.7.1 Smbolo

ST PROG2 Nro # 68

s
5.7.2 Palabra de estado

5.7.3 Descripcin
ABS (Calcular el valor absoluto de un nmero en coma flotante) calcula
el valor absoluto de un nmero en coma flotante.
5.7.4 Ejemplo

Si E 0.0 = 1 se calcula el valor absoluto de MD8 y el resultado se escribe en


MD12. De MD8 = + 6,234 resulta MD12 = 6,234. La salida A 4.0 ser "1" si no
se lleva a cabo la conversin (ENO = EN = 0).
5.8 SQR

CALCULAR EL CUADRADO

5.8.1 Smbolo

5.8.2 Palabra de estado

ST PROG2 Nro # 69

s
5.8.3 Descripcin
SQR (Calcular el cuadrado de un nmero en coma flotante) calcula el
cuadrado de un nmero flotante.
5.9 SQRT

CALCULAR LA RAZ CUADRADA

5.9.1 Smbolo

5.9.2 Palabra de estado

5.9.3 Descripcin
SQRT (Calcular la raz cuadrada de un nmero en coma flotante) calcula
la raz cuadrada de un nmero en coma flotante. Esta operacin arroja un
resultado positivo si el operando es mayor que "0". nica excepcin: la raz
cuadrada de -0 es -0.
5.10EXP

CALCULAR EL EXPONENTE

5.10.1 Smbolo

ST PROG2 Nro # 70

5.10.2 Palabra de estado

5.10.3 Descripcin
EXP (Calcular el exponente de un nmero en coma flotante) calcula el
exponente de un nmero en coma flotante con la base e (=2,71828...).
5.11LN

CALCULAR EL LOGARITMO NATURAL

5.11.1 Smbolo

5.11.2 Palabra de estado

ST PROG2 Nro # 71

s
5.11.3 Descripcin
LN (Calcular el logaritmo natural de un nmero en coma flotante) calcula
el logaritmo natural de un nmero en coma flotante.
5.12SIN

CALCULAR EL SENO

5.12.1 Smbolo

5.12.2 Palabra de estado

5.12.3 Descripcin
SIN (Calcular el seno de un nmero en coma flotante) calcula el seno de
un nmero en coma flotante. El nmero en coma flotante representa aqu un
ngulo en radianes.
5.13COS

CALCULAR EL COSENO

5.13.1 Smbolo

ST PROG2 Nro # 72

5.13.2 Palabra de estado

5.13.3 Descripcin
COS (Calcular el coseno de un nmero en coma flotante) calcula el
coseno de un nmero en coma flotante, siendo ste el valor de un ngulo
expresado en radianes.
5.14TAN

CALCULAR LA TANGENTE

5.14.1 Smbolo

5.14.2 Palabra de estado

ST PROG2 Nro # 73

s
5.14.3 Descripcin
TAN (Calcular la tangente de un nmero en coma flotante) calcula la
tangente de un nmero en coma flotante, siendo ste el valor de un ngulo
expresado en radianes.
5.15ASIN

CALCULAR EL ARCOSENO

5.15.1 Smbolo

5.15.2 Palabra de estado

5.15.3 Descripcin
ASIN (Calcular el arcoseno de un nmero en coma flotante) calcula el
arcoseno de un nmero en coma flotante, cuyo margen de definicin es -1 <=
Valor de entrada <= 1. El resultado representa aqu un ngulo en radianes en
el margen de valores
-/2 Valor de salida +/2
siendo = 3,1415....
5.16ACOS

CALCULAR EL ARCOCOSENO

5.16.1 Smbolo

ST PROG2 Nro # 74

5.16.2 Palabra de estado

5.16.3 Descripcin
ACOS (Calcular el arcocoseno de un nmero en coma flotante) calcula
el arcocoseno de un nmero en coma flotante, cuyo margen de definicin es -1
<= Valor de entrada <= 1. El resultado es el valor de un ngulo expresado en
radianes, valor que queda dentro del margen de valores
0 valor de salida +
siendo = 3,1415....
5.17ATAN

CALCULAR LA ARCOTANGENTE

5.17.1 Smbolo

ST PROG2 Nro # 75

s
5.17.2 Palabra de estado

5.17.3 Descripcin
ATAN (Calcular la arcotangente de un nmero en coma flotante) calcula
la arcotangente de un nmero en coma flotante. El resultado es un ngulo
expresado en radianes que queda dentro del margen
-/2 valor de salida /2
siendo = 3,1415....

ST PROG2 Nro # 76

s
OPERACIONES DE DESPLAZAMIENTO Y ROTACIN

OPERACIONES DE DESPLAZAMIENTO
6.1 DESCRIPCIN
Las operaciones de desplazamiento sirven para desplazar bit a bit el
contenido de la entrada IN, hacia la izquierda o hacia la derecha (v. Registros
de la CPU). 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 nmero que se introduce en el parmetro de entrada N indica el
nmero de bits a desplazar. Las posiciones que quedan libres despus de
ejecutar la operacin de desplazamiento se rellenan con ceros o con el estado
de seal del bit de signo (0 significa positivo y 1 significa negativo). El estado
de seal del ltimo bit desplazado se carga en el bit A1 de la palabra de
estado. Los bits A0 y OV de la palabra de estado se ponen a 0. Para
interpretar el bit A1 pueden utilizarse las operaciones de salto.
Se dispone de las operaciones de desplazamiento siguientes:

ST PROG2 Nro # 77

s
6.2 SHR_I

DESPLAZAR ENTERO A LA DERECHA

6.2.1 Smbolo

6.2.2 Descripcin de la operacin


SHR_I (Desplazar entero a la derecha) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". Con la operacin SHR_I se
desplazan los bits 0 a 15 de la entrada IN bit a bit a la derecha. A los bits 16 a
31 no les afecta esta operacin de desplazamiento. La entrada N indica el
nmero de posiciones de bit en que se va a efectuar un desplazamiento.
Si N es mayor que 16, la instruccin trabaja como si N fuera igual a 16.
Las posiciones de bit que se arrastran de la izquierda para ocupar las
posiciones libres reciben el estado de seal del bit 15 (este es el bit de signo
del entero). Esto significa que estas posiciones de bit se ocupan con el valor
"0" si se trata de un entero positivo, y que se ocupan con el valor "1" si se trata
de un entero negativo. El resultado de la operacin de desplazamiento queda
depositado en la salida OUT. La operacin SHR_I pone los bits A0 y OV a "0"
si N es diferente de 0.
El estado de seal de ENO es igual al de EN.

ST PROG2 Nro # 78

6.2.3 Palabra de estado

6.2.4 Ejemplo

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.
6.3 SHR_DI

DESPLAZAR ENTERO DOBLE A LA DERECHA

6.3.1 Smbolo

ST PROG2 Nro # 79

6.3.2 Descripcin de la operacin


SHR_DI (Desplazar entero de 32 bits a la derecha) se activa si la
entrada de habilitacin (EN) tiene el estado de seal "1". Con la operacin
SHR_DI se desplazan los bits 0 a 31 de la entrada IN bit a bit a la derecha. La
entrada N indica el nmero de posiciones de bit en que se va a efectuar un
desplazamiento. Si N es mayor que 32, la instruccin trabaja como si N fuera
igual a 32. Las posiciones de bit que se arrastran de la izquierda para ocupar
las posiciones libres reciben el estado de seal del bit 31 (este es el bit de
signo del entero).
Esto significa que estas posiciones de bit se ocupan con el valor "0" si
se trata de un entero positivo, y que se ocupan con el valor "1" si se trata de un
entero negativo. El resultado de la operacin de desplazamiento queda
depositado en la salida OUT. La operacin SHR_DI pone los bits A0 y OV a "0"
si N es diferente de 0.
El estado de seal de ENO es igual al de EN.
6.3.3 Palabra de estado

6.3.4 Ejemplo

ST PROG2 Nro # 80

s
El cuadro SHR_DI se activa si E 0.0 es 1. MD0 se carga y se desplaza a
la derecha tantos bits como indica MW4. El resultado se escribe en MD10. La
salida A 4.0 se pone a 1.
6.4 SHL_W

DESPLAZAR 16 BITs A LA IZQUIERDA

6.4.1 Smbolo

6.4.2 Descripcin de la operacin


SHL_W (Desplazar 16 bits a la izquierda) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". Con la operacin SHL_W se
desplazan los bits 0 a 15 de la entrada IN bit a bit a la izquierda. A los bits 16 a
31 no les afecta la operacin de desplazamiento. La entrada N indica el
nmero de posiciones de bit en que se va a efectuar un desplazamiento.
Si N es mayor que 16, la instruccin en la salida OUT escribe un "0" y
pone los bits A0 y OV de la palabra de estado a "0". Desde la derecha se
desplaza el mismo nmero (N) de ceros para ocupar las posiciones que
quedaron libres. El resultado de la operacin de desplazamiento queda
depositado en la salida OUT. La operacin SHL_W pone a "0" al bit A0 y al bit
OV si N es diferente de 0.
El estado de seal de ENO es igual al de de EN.

ST PROG2 Nro # 81

6.4.3 Palabra de estado

6.4.4 Ejemplo

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.
6.5 SHR_W

DESPLAZAR 16 BITs A LA DERECHA

6.5.1 Smbolo

ST PROG2 Nro # 82

6.5.2 Descripcin de la operacin


SHR_W (Desplazar 16 bits a la derecha) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". Con la operacin SHR_W se
desplazan los bits 0 a 15 de la entrada IN bit a bit a la derecha. A los bits 16 a
31 no les afecta esta operacin de desplazamiento. La entrada N indica el
nmero de posiciones de bit en las que se va a efectuar un desplazamiento. Si
N es mayor que 16, la instruccin escribe un "0" en la salida OUT y pone a "0"
los bits A0 y OV de la palabra de estado. Desde la izquierda se desplaza el
mismo nmero (N) de ceros para ocupar las posiciones libres. El resultado de
la operacin de desplazamiento queda depositado en la salida OUT. La
operacin SHR_W pone los bits A0 y OV a "0" si N es diferente de 0.
El estado de seal de ENO es igual al de de EN.
6.5.3 Palabra de estado

6.5.4 Ejemplo

El cuadro SHR_W se activa si E 0.0 es 1. MW0 se carga y se desplaza


a la derecha tantos bits como indica MW2. La palabra del resultado se escribe
en MW4. La salida A 4.0 se pone a 1.

ST PROG2 Nro # 83

s
6.6 SHL_DW

DESPLAZAR 32 BITs A LA IZQUIERDA

6.6.1 Smbolo

6.6.2 Descripcin de la operacin


SHL_DW (Desplazar 32 bits a la izquierda) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". Con la operacin SHL_DW se
desplazan los bits 0 a 31 de la entrada IN bit a bit a la izquierda. La entrada N
indica el nmero de posiciones de bit en que se va a efectuar un
desplazamiento. Si N es mayor que 32, la instruccin escribe un "0" en la
salida OUT y pone los bits A0 y OV a "0". Desde la derecha se desplaza el
mismo nmero (N) de ceros para ocupar las posiciones libres. La palabra doble
del resultado de la operacin de desplazamiento queda depositada en la salida
OUT. La operacin SHL_DW pone los bits A0 y OV a "0" si N es diferente de 0.
El estado de seal de ENO es igual al de de EN.
6.6.3 Palabra de estado

6.6.4 Ejemplo

ST PROG2 Nro # 84

s
El cuadro SHL_DW se activa si E 0.0 tiene el estado de seal "1". MD0
se carga y se desplaza a la izquierda tantos bits como indica MW4. La palabra
doble del resultado se escribe en MD10. La salida A 4.0 se pone a 1.
6.7 SHR_DW

DESPLAZAR 32 BITs A LA DERECHA

6.7.1 Smbolo

6.7.2 Descripcin de la operacin


SHR_DW (Desplazar 32 bits a la derecha) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". Con la operacin SHR_DW se
desplazan los bits 0 a 31 de la entrada EN bit a bit a la derecha. La entrada N
indica el nmero de posiciones de bit en que se va a efectuar un
desplazamiento. Si N es mayor que 32, la instruccin escribe un "0" en la
salida OUT y pone los bits A0 y OV a "0". Desde la izquierda se desplaza el
mismo nmero (N) de ceros para ocupar las posiciones libres. La palabra doble
del resultado de la operacin de desplazamiento queda depositada en la salida
OUT. La operacin SHR_DW pone los bits A0 y OV a "0" si N es diferente de
0.
El estado de seal de ENO es igual al de de EN.

ST PROG2 Nro # 85

6.7.3 Palabra de estado

6.7.4 Ejemplo

El cuadro SHR_DW se activa si E 0.0 tiene el estado de seal "1". MD0


se carga y se desplaza 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.
OPERACIONES DE ROTACIN
6.8 DESCRIPCIN
Las operaciones de rotacin sirven para rotar bit a bit todo el contenido
de la entrada IN, hacia la izquierda o hacia la derecha (v. Registros de la CPU).
Las posiciones libres de los bits se rellenan con los estados de seal de los
bits que se desplazan fuera de la entrada IN. El nmero que se introduce en el
parmetro de entrada N indica el nmero de bits que se va a rotar.
Dependiendo de la operacin, la rotacin tiene lugar va el bit A1 de la
palabra de estado. El bit A0 de la palabra de estado se pone a 0. Se dispone
de las siguientes operaciones de rotacin:

ST PROG2 Nro # 86

6.9 ROL_DW

ROTAR 32 BITs A LA IZQUIERDA

6.9.1 Smbolo

6.9.2 Descripcin de la operacin


ROL_DW (Rotar 32 bits a la izquierda) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". La operacin ROL_DW hace
rotar el contenido completo de la entrada IN bit a bit a la izquierda. La entrada
N indica el nmero de posiciones de bit en que se va a efectuar la rotacin. Si
N es mayore que 32 la palabra doble IN es rotada en ((N-1) modulo 32)+1
posiciones. Las posiciones de bit que se arrastran de la derecha se ocupan
con el estado de seal de los bits que fueron rotados a la izquierda (rotacin a
la izquierda).
La palabra doble del resultado de la operacin de rotacin queda
depositada en la salida OUT. La operacin ROL_DW pone los bits A0 y OV a
"0" si N es diferente de 0.
El estado de seal de ENO es igual al de de EN.

ST PROG2 Nro # 87

6.9.3 Palabra de estado

6.9.4 Ejemplo

El cuadro ROL_DW se activa si E 0.0 es 1. MD0 se carga y se rota a la


izquierda tantos bits como indica MW4. La palabra doble del resultado se
escribe en MD10. La salida A 4.0 se pone a 1.
6.10ROR_DW

ROTAR 32 BITs A LA DERECHA

6.10.1 Smbolo

ST PROG2 Nro # 88

s
6.10.2 Descripcin de la operacin
ROR_DW (Rotar 32 bits a la derecha) se activa si la entrada de
habilitacin (EN) tiene el estado de seal "1". La operacin ROR_DW hace
rotar el contenido completo de la entrada IN bit a bit a la derecha. La entrada N
indica el nmero de posiciones de bit en que se va a efectuar la rotacin. Si N
es mayor que 32 la palabra doble IN es rotada en ((N-1) modulo 32)+1
posiciones. Las posiciones de bit que se arrastran de la izquierda se ocupan
con el estado de seal de los bits que fueron rotados a la derecha (rotacin a
la derecha).
La palabra doble del resultado de la operacin de rotacin queda
depositada en la salida OUT. La operacin ROR_DW pone los bits A0 y OV a
"0" si N es diferente de 0.
El estado de seal de ENO es igual al de de EN.

6.10.3 Palabra de estado

6.10.4 Ejemplo

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.
ST PROG2 Nro # 89

s
OPERACIONES DE SALTO

7.1 LISTA DE OPERACIONES


7.1.1 Descripcin
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.
Estas operaciones se pueden utilizar en todos los bloques lgicos:
bloques de organizacin (OBs), bloques de funcin (FBs) y funciones (FCs).
Se dispone de las operaciones de salto siguientes:
---(JMP)--Salto absoluto
---(JMP)--Salto condicional
---( JMPN )
Saltar si la seal es 0
7.1.2 Meta como operando
El operando de una operacin de salto es una meta. La meta indica el
destino a donde se desea saltar en el programa. La meta se introduce encima
de la bobina de salto, Una meta se compone de cuatro caracteres como
mximo. El primer carcter ha de ser una letra del alfabeto; los restantes
caracteres pueden ser letras o nmeros (p.ej. SEG3).
7.1.3 Meta como destino
La meta de destino ha de
encontrarse siempre al principio de
un segmento. Para introducirla hay
que seleccionar LABEL en el
cuadro KOP. En seguida aparece
un cuadro vaco. Introducir en el
cuadro el nombre de la meta.

ST PROG2 Nro # 90

s
7.2 ---(JMP)---

SALTO ABSOLUTO

7.2.1 Smbolo

7.2.2 Descripcin de la operacin


---( JMP ) (Saltar si la seal es 1) funciona como un salto absoluto
cuando no hay otro elemento KOP entre el conductor izquierdo y la operacin
(v. ejemplo).
Cada salto ---( JMP ) tiene que tener una meta (LABEL).
No se ejecutarn las operaciones que se encuentren entre la operacin
de salto y la meta!
7.2.3 Palabra de estado

7.2.4 Ejemplo

El salto se ejecuta en todos los casos, omitindose ("pasando por alto")


las operaciones que se encuentren entre la operacin de salto y la meta.

ST PROG2 Nro # 91

s
7.3 ---(JMP)---

SALTO CONDICIONAL

7.3.1 Smbolo

7.3.2 Descripcin de la operacin


---( JMP ) (Saltar en el bloque si es 1) funciona como un salto
condicional cuando el RLO de la combinacin lgica anterior es "1".
Cada salto ---( JMP ) tiene que tener una meta (LABEL).
No se ejecutarn las operaciones que se encuentren entre la operacin
de salto y la meta! Si un salto condicional no se ejecuta, el RLO cambia a "1"
despus de la operacin de salto.
7.3.3 Palabra de estado

7.3.4 Ejemplo

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 operacin "Poner salida a 0",
aunque E 0.3 sea 1.
ST PROG2 Nro # 92

s
7.4 ---(JMPN)---

SALTAR SI LA SEAL ES 0

7.4.1 Smbolo

7.4.2 Descripcin de la operacin


---( JMPN ) (Saltar si la seal es 0) funciona como un salto condicional
cuando el RLO de la combinacin lgica anterior es "0".
Cada salto ---( JMPN ) tiene que tener una meta (LABEL).
No se ejecutarn las operaciones que se encuentran entre la operacin
de salto y la meta!
Si un salto condicional no se lleva a cabo, el RLO cambia a "1" despus
de la operacin de salto.
7.4.3 Palabra de estado

7.4.4 Ejemplo

ST PROG2 Nro # 93

s
Si la entrada E 0.0 es 0, se ejecuta el salto a la meta CAS1. Al
ejecutarse el salto, en la salida A 4.0 no se lleva a cabo la operacin "Poner
salida a 0", aunque la entrada E 0.3 sea 1.
7.5 LABEL

META DEL SALTO

7.5.1 Smbolo

7.5.2 Descripcin de la operacin


LABEL marca la meta de una operacin de salto. Esta meta puede
tener hasta un mximo 4 caracteres. Primer carcter: letra; dems caracteres:
letras o alfanumricos, p.ej. CAS1.
Cada salto ---( JMP ) o ---( JMPN ) tiene que tener una meta del salto
(LABEL).
7.5.3 Ejemplo

Si E 0.0 = 1 se ejecuta el salto a la meta CAS1. Al llevarse a cabo el


salto, en la salida A 4.0 no se ejecuta la operacin "Poner salida a 0", aunque
E 0.3 sea 1.

ST PROG2 Nro # 94

s
BLOQUES DE ORGANIZACIN

8.1 RELACIN GENERAL DE OBs


8.1.1 Bloques de organizacin
Los bloques de organizacin constituyen la interfase entre el sistema
operativo de la CPU y el programa de usuario. Con la ayuda de los OBs es
posible seleccionar la ejecucin de partes de programas:

al arrancar la CPU
en ejecucin cclica o tambin intermitente temporal
a determinadas horas o en determinados das
despus de transcurrir un tiempo preestablecido
al producirse errores
al dispararse alarmas de proceso.

Los bloques de organizacin se procesan en correspondencia con la


prioridad que tienen asignada.
La tabla siguiente muestra el evento de arranque y la prioridad
preajustada que corresponde a cada OB.

ST PROG2 Nro # 95

Tabla 8-1 Lista de bloques de organizacin (OB)

ST PROG2 Nro # 96

Tabla 8-2 Lista de bloques de organizacin (OB)


1) Las prioridades 27 y 28 son vlidas en el modelo de prioridades del
arranque.
2) La prioridad 29 corresponde a la prioridad 0.29. Es decir, el ciclo de la
tarea no prioritaria tiene menor prioridad que el ciclo libre.
8.2 PRINCIPALES OBs
8.2.1 Programa cclico (OB1)
8.2.1.1

Descripcin

El sistema operativo de la CPU del S7 ejecuta el OB 1 de forma cclica:


Una vez finalizada la ejecucin del OB 1, el sistema operativo comienza a
ejecutarlo de nuevo.
La ejecucin cclica del OB 1 comienza una vez que el arranque ha
finalizado. En el OB 1 es posible realizar la llamada a bloques de funcin (FBs,
SFBs) o a funciones (FCs, SFCs).

ST PROG2 Nro # 97

s
8.2.1.2

Modo de funcionamiento del OB1

El OB 1 presenta la prioridad ms baja de todos los OBs sometidos a


vigilancia en lo que respecta a su tiempo de ejecucin. Con excepcin del OB
90, todos los dems Obs pueden interrumpir la ejecucin del OB 1. Los
eventos siguientes dan lugar a que el sistema operativo llame al OB 1:
Final de la ejecucin del arranque
Final de la ejecucin del OB 1 (durante el ciclo anterior).
Una vez finalizada la ejecucin del OB 1, el sistema operativo enva
datos globales. Antes de arrancar de nuevo el OB 1, el sistema operativo
escribe la imagen de proceso de las salidas en los mdulos de salidas,
actualiza la imagen de proceso de las entradas y recibe datos globales para la
CPU.
S7 ofrece una supervisin del tiempo de ciclo mximo garantizando el
tiempo de reaccin mximo. El valor del tiempo de ciclo mximo est
preajustado a 150 ms. Puede modificar la parametrizacin de este valor o, con
SFC 43 "RE_TRIGR", activar de nuevo la supervisin temporal en cualquier
punto del programa. Si el programa sobrepasa el tiempo de ciclo mximo para
el OB 1, el sistema operativo llama al OB 80 (OB de error de tiempo). Si no
est programado el OB 80, la CPU pasa al estado operativo STOP.
Adems de la supervisin del tiempo de ciclo mximo, puede
garantizarse el cumplimiento de un tiempo de ciclo mnimo. El sistema
operativo retarda el comienzo de un nuevo ciclo (escritura de la imagen de
proceso de las salidas en los mdulos de salidas) hasta que se haya
alcanzado el tiempo de ciclo mnimo.
8.2.2 OBs de alarma horaria (OB10 hasta OB17)
8.2.2.1

Descripcin

El sistema operativo de la CPU del S7 ejecuta el OB 1 de forma cclica:


Una vez finalizada la ejecucin del OB 1, el sistema operativo comienza a
ejecutarlo de nuevo.

una vez
cada minuto
cada hora
cada da
cada semana
cada mes
cada ao
a final de mes

ST PROG2 Nro # 98

s
Nota
Si un OB de alarma horaria se procesa mensualmente, para la fecha inicial
slo pueden indicarse los das 1, 2, ... 28.
8.2.2.2

Modo de funcionamiento

Para arrancar una alarma horaria es necesario ajustar primero la alarma


y activarla seguidamente. Puede elegir una de las tres alternativas siguientes:
Arranque automtico de la alarma horaria. Se produce al ajustar y
activar la alarma horaria con STEP 7. La tabla siguiente muestra las
posibilidades que existen para la activacin de una alarma horaria con
STEP 7.
Ajustando la alarma horaria con STEP 7 y activndola por la llamada
a SFC 30 "ACT_TINT", desde el programa.
Ajustando la alarma horaria mediante la llamada a SFC 28
"SET_TINT" y activndola mediante la llamada a SFC 30
"ACT_TINT".

Con ayuda de las SFCs 39 a 42 pueden bloquearse o retardarse y


habilitarse de nuevo las alarmas horarias.

8.2.3 OB de fallo de alimentacin (OB 81)


8.2.3.1

Descripcin

ST PROG2 Nro # 99

s
El sistema operativo de la CPU del S7 ejecuta el OB 1 de forma cclica:
Una vez finalizada la ejecucin del OB 1, el sistema operativo comienza a
ejecutarlo de nuevo.
El sistema operativo de la CPU llama al OB 81 cuando se presenta un
evento activado por un fallo en la alimentacin normal (slo en el S7400) o de
respaldo en tampn (tanto en caso de un evento entrante como de uno
saliente).
Si se produce un fallo de la pila en el S7-400, slo se llama al OB 81 al
estar activada la comprobacin de la pila mediante el interruptor BATT.INDIC.
La CPU no pasa al estado operativo STOP si no est programado el OB 81.
Con ayuda de las SFCs 39 hasta 42 puede bloquearse, retardarse o
habilitarse de nuevo el OB de fallo de alimentacin.
8.2.4 OB de avera de CPU (OB 84)
8.2.4.1

Descripcin

El sistema operativo de la CPU llama al OB 84 en los siguientes casos:


tras la deteccin y eliminacin de errores de memoria
en S7-400H: en caso de potencia reducida del acoplamiento de redundancia
entre ambas CPUs
Puede bloquear o retardar el OB de error de hardware de la CPU con
ayuda de las SFCs 39 hasta 42 y volver a habilitarlo.
8.2.5 OBs de arranque (OB 100, OB 101 y OB 102)
8.2.5.1

Modos de arranque

Se distinguen los siguientes modos de arranque:


Rearranque (no en los S7 300 ni S7 400 H)
Arranque en caliente
Arranque en fro
La tabla siguiente muestra el OB al que el sistema operativo llama
durante el arranque.

8.2.5.2

Descripcin

La CPU efecta un arranque


ST PROG2 Nro # 100

s
despus de ALIMENTACION ON;
si se cambia de STOP a RUN-P el selector de modo de operacin;
tras la solicitud por una funcin de comunicacin (por comando de men
desde la unidad PG o por llamada de los bloques de funcin para
comunicaciones 19 "START", o 21 "RESUME" en otra CPU);
sincronizacin en el modo multiprocesador;
en un sistema H, tras acoplar (slo en la CPU de reserva).
En funcin del evento de arranque, de la CPU existente y de sus
parmetros ajustados, se activa el OB de rearranque asignado (OB 100, OB
101 y OB 102). Mediante la programacin correspondiente es posible realizar
ajustes previos para el programa cclico (excepcin: en un sistema H, tras el
acoplamiento se ejecuta un arranque en la CPU de reserva, pero sin llamar al
OB de arranque).
8.2.6 OB de error de programacin (OB 121)
8.2.6.1

Descripcin

El sistema operativo de la CPU llama al OB 121 cuando aparece un


evento activado por un error durante la ejecucin del programa. As por
ejemplo, si dentro del programa se llama a un bloque que no fue cargado en la
CPU, el OB 121 ser invocado.
8.2.6.2

Modo de funcionamiento del OB de error de programacin

El OB 121 funciona en la misma prioridad que el bloque que ha sido


interrumpido. Si no est programado el OB 121, la CPU pasar de RUN a
STOP.
S7 dispone de las SFCs siguientes que permiten enmascarar y
desenmascarar eventos de arranque del OB 121, mientras se ejecuta el
programa:
La SFC 36 "MSK_FLT" enmascara determinados cdigos de error.
La SFC 37 "DMSK_FLT" desenmascara los cdigos de error
enmascarados por la SFC 36.
La SFC 38 "READ_ERR" lee el registro de estado de eventos.

ST PROG2 Nro # 101

s
COMUNICACIN MEDIANTE DATOS GLOBALES

9.1 SINOPSIS
9.1.1 Introduccin
La comunicacin de datos globales (comunicacin GD) es una variante
de comunicacin sencilla integrada en el sistema operativo de las CPUs S7300/S7-400.
La comunicacin GD permite intercambiar datos cclicamente entre
CPUs a travs del interface MPI. El intercambio cclico de datos se lleva a cabo
con la imagen normal del proceso. La comunicacin de datos globales se
configura con STEP 7; la transferencia de los datos globales es cosa del
sistema, por lo que no se tiene que programar.
Los apartados siguientes describen cmo calcular, con ayuda de los
datos tcnicos indicados para cada CPU (nmero de crculos GD, tamao y
nmero de paquetes GD, etc.), la cantidad de datos que pueden intercambiar
las CPUs mediante el procedimiento "Comunicacin GD". Adems, figuran:
condiciones de emisin y recepcin a tener en cuenta
una frmula para calcular aproximadamente el tiempo de respuesta
9.1.2 Datos globales
Los datos globales que se utilizan en la comunicacin mediante datos
globales (comunicacin GD) son las siguientes reas de operandos de la
CPU:
entradas, salidas (de la imagen del proceso)
marcas
reas de bloques de datos
temporizadores, contadores (no recomendables, porque los valores del
emisor ya no son actuales; configurables slo como reas de
operandos)
Las reas de la periferia (PE y PA) y los datos locales no se pueden
utilizar para la comunicacin mediante datos globales.
9.1.3 Transferencia de datos
La comunicacin mediante datos globales funciona segn el
procedimiento broadcast, es decir, no se acusa recibo de los datos globales. El
emisor no recibe informacin alguna acerca de si hay un receptor que ha
recibido los datos globales enviados y, en caso de haberlo, cul es. Si el
ST PROG2 Nro # 102

s
proceso requiere una transferencia de datos segura, utilice otro servicio, como
por ejemplo, las funciones S7.
9.1.4 Subredes para la comunicacin de datos globales

La comunicacin GD es posible
o bien va una subred MPI (entre distintos equipos)
o bien va el bus posterior (p.ej., entre CPUs S7 en un bastidor en modo
multiprocesador)

9.1.5 Cmo se convierte


emisora/receptora

un

rea

de

operandos

en

un

rea

Las reas de operandos que participan en la comunicacin de datos


globales se configuran con STEP 7 en una tabla de datos globales (tabla GD):
cada columna est asignada a una CPU, es decir, las columnas
representan las CPUs que intercambian datos (mximo 15 CPUs)
cada lnea (a decir verdad: cada campo editable de una lnea)
representa el rea de operandos a travs de la cual una CPU enva los
datos o bien una o varias CPUs los reciben
Despus de rellenar la tabla, de compilarla y de cargarla en las CPUs
que participan en la comunicacin, estas CPUs envan y reciben datos
cclicamente a travs de estas reas de operandos en el punto de control del
ciclo (es decir, en el punto en el que se realiza la actualizacin de la imagen del
proceso).
Particularidad: En los S7-400 los datos globales configurados tambin se
pueden enviar, controlados por eventos, a travs de la SFC 60 (GD_SND) o se
pueden recibir a travs de la SFC 61 (GD_RCV).
9.2 DETERMINAR LA CAPACIDAD DE COMUNICACIN
9.2.1 Subredes para la comunicacin de datos globales
La capacidad que tiene una CPU S7 en cuanto a la comunicacin de
datos globales, se determina en base a los datos tcnicos ("recursos GD")
siguientes:
Nmero de crculos GD (en los que puede intervenir la CPU)
Nmero mximo de datos netos por paquete de datos globales
Nmero mximo de paquetes de recepcin por crculo de GD
Longitud de los datos coherentes por paquete
Los restantes recursos GD documentados son idnticos para todas las
CPUs S7 y por lo tanto no son importantes para elegir la CPU.

ST PROG2 Nro # 103

s
En base a los datos tcnicos arriba mencionados se puede determinar la
cantidad de datos que pueden intercambiar cclicamente las CPUs que estn
interconectadas a travs de una subred MPI o a travs del bus posterior del
S7-400. A continuacin explicaremos como se crean los paquetes GD a partir
de los datos de emisin y cuntos crculos GD se requieren en cada caso.
9.2.2 Cantidad necesaria de paquetes GD
Un paquete GD es un telegrama que enva una sola CPU de una
pasada a una o varias CPUs. Un paquete GD contiene como mximo la
siguiente cantidad de datos netos (v. Tambin Datos tcnicos de las CPUs):
mx. 22 bytes en el caso del S7-300
mx. 54 bytes en el caso del S7-400
Ejemplo 1
Queremos utilizar el rea de emisin ms grande de una CPU S7-300
para poder enviar desde un bloque de datos. En la CPU receptora se ha de
utilizar el rea de marcas. Introduza el rea de emisin de la CPU S7-300 en la
tabla de datos globales:
DB8.DBB0:22 (es decir, 22 bytes de datos del DB8 a partir del byte de
datos 0)
Introduzca el rea de recepcin de otra CPU (tiene que ser igual de
grande que el rea de emisin) en la tabla de datos globales:
MW100:11 (es decir, 11 palabras de marcas a partir de MW 100)
Reglas

Si no slo desea enviar datos del rea de operandos, tiene que restar
dos bytes por cada rea de datos adicional del nmero mximo de datos
netos.
Un operando constituido por un bit (p. ej. M 4.1) consume" un byte de
datos netos del paquete GD.

Ejemplo 2
Queremos enviar desde el bloque de datos y desde la imagen del
proceso de las salidas. En este caso, el tamao del paquete GD no debe
superar los 20 bytes.
Introduza las reas de emisin de la CPU S7-300 en la tabla de datos
globales:
DB8.DBB0:10 (es decir, 10 bytes de datos del DB8 a partir del byte de
datos 0)
AW0:10 (es decir, 10 palabras de salida a partir de AW0)

ST PROG2 Nro # 104

s
Introduzca las reas de recepcin de las otras CPUs igual que en el
primer ejemplo; el ancho de los datos tiene que corresponderse con el rea
de emisin.
9.2.3 Cantidad necesaria de crculos GD
Qu es un crculo GD?
Todas las CPUs que intervienen en el intercambio de un paquete de
datos comn en calidad de emisoras o receptoras, "consumen" un crculo GD.

Aspecto de la tabla GD (tras compilar):

Leyenda de la tabla GD:


> significa "emisor"
Estructura de la identificacin GD:

Cundo se consume otro crculo GD? (caso 1)

ST PROG2 Nro # 105

Aspecto de la tabla GD (tras compilar):

Cundo se consume otro crculo GD? (caso 2)

Aspecto de la tabla GD (tras compilar):

ST PROG2 Nro # 106

s
Consejo
En ocasiones puede resultar conveniente definir a una CPU como la
receptora de un paquete GD, aunque esta CPU no necesite el paquete (como
la CPU 4 del ejemplo). Si las CPUs emisora y receptora son una misma CPU
se puede reducir el nmero de crculos GD p. ej. de la CPU emisora. En este
caso, las CPUs 1,2 y 3 del ejemplo consumiran solamente un crculo GD, ya
que ambos paquetes GD se agruparan en uno solo.
Nmero mximo de circuitos GD
El nmero de circuitos GD est limitado a 16. Las CPUs afectadas por
ms de 16 circuitos GD no pueden cargarse con la configuracin de datos
locales. No obstante, STEP 7 no impide guardar y compilar tablas GD con un
nmero superior de circuitos GD.
9.3 CONDICIONES DE EMISIN Y RECEPCIN
9.3.1 Condiciones de emisin y recepcin
El factor de ciclo permite definir para cada CPU que interviene en el
intercambio del paquete GD lo siguiente:
cada cuntos ciclos se enva el paquete GD (slo para la CPU que est
marcada como emisor).
cada cuntos ciclos se recibe el paquete GD
Excepcin: factor de ciclo 0 significa que el paquete GD se transfiere
por control de eventos(y no cclicamente), (slo en el S7-400 con la SFC
60/SFC 61).
Ejemplo
Un factor de ciclo de 20 para un paquete GD en la CPU emisora
significa que la CPU enviar el paquete GD desde el punto de control del ciclo
cada 20 ciclos.
Un factor de ciclo de 8 para un paquete GD en la CPU receptora
significa que la CPU enviar el paquete GD desde el punto de control del ciclo
cada 8 ciclos, es decir, que recibir el paquete GD en el rea de operandos).
Factor de ciclo del emisor:
En cualquier caso, debe ceirse a las condiciones siguientes para no
sobrecargar la comunicacin de la CPU:
CPUs S7-300: Factor de ciclo Tiempo de ciclo >= 60 ms
CPUs S7-400: Factor de ciclo Tiempo de ciclo >= 10 ms
ST PROG2 Nro # 107

s
Factor de ciclo del receptor:
Para evitar la prdida de paquetes GD hay que recibir ms paquetes GD
de los que se envan.
Para ello se ha de cumplir lo siguiente:
factor de ciclo (receptor) tiempo de ciclo (receptor) < factor de ciclo
(emisor) tiempo de ciclo (emisor).
9.3.2 Relacin entre factor de ciclo y tiempo de ciclo
Factores de ciclo permitidos
Los factores de ciclo permitidos tanto para el emisor como para el
receptor son 0 y valores entre 1 y 255. No obstante, tenga en cuenta que los
factores de ciclo muy bajos sobrecargan excesivamente a la CPU.
Recomendacin: mantenga el factor de ciclo predeterminado y vigile
que el producto del ciclo de tiempo x factor de ciclo sea superior a 0,5s. Si
quiere una comunicacin ms eficaz utilice otros mecanismos, p. ej. el
acoplamiento va PROFIBUS-DP.
El factor de ciclo 0 es caracterstico de una transferencia de datos
controlada por eventos va las SFCs en el programa de usuario (no todas las
CPUs lo permiten). Si no introduce ningn factor de ciclo, se utilizar el ajuste
predeterminado.
Ejemplo de factores de ciclo
El producto del tiempo de ciclo x factor de ciclo determina el intervalo en
el que se sucede el intercambio de datos globales. Supongamos que el
programa de usuario de una CPU 412 tiene un tiempo de ciclo de
aproximadamente 50ms. El factor de ciclo predeterminado es de22.
50 ms x 22 = 1100ms , ello significa que aprox. Cada 1,1s se envan o
reciben datos globales en esta CPU.
Si el programa de usuario hace aumentar el tiempo de ciclo a p. ej.
80ms, cada 80ms x 22 = 1760s se enviarn o recibirn datos globales. Para
volver a alcanzar el valor de 1100s, hay que volver a calcular el factor de ciclo:
Factor de ciclo (nuevo) = 1100ms/80ms = 13,75 , es decir,
prolongando el ciclo hay que ajustar el factor de ciclo a 14 para mantener el
mismo intervalo.

ST PROG2 Nro # 108

s
9.4 CONFIGURAR Y GUARDAR LA COMUNICACIN GD
9.4.1 Procedimiento para configurar y guardar la comunicacin GD
Se tiene que haber configurado una subred MPI con todos los equipos
necesarios.

ST PROG2 Nro # 109

s
Ejemplo
1. Abrir la tabla GD

2. Rellenar la tabla GD

ST PROG2 Nro # 110

s
3. 1era compilacin de la tabla GD

4. Ver factores de compilacin (opcional)

5. 2da compilacin de la tabla GD (opcional)


6. Cargar la tabla al PLC.

ST PROG2 Nro # 111

Você também pode gostar