Tiaportal
-
Upload
diego-ruiz -
Category
Documents
-
view
226 -
download
2
description
Transcript of Tiaportal
-
Automatizacin Industrial
Principios de Programacin en STEP7
TEMA Principios de Programacin en STEP7
1. Programas en la CPU
2. Edicin de Programas
2.1 IEC 1131-3
2.2 Instrucciones/Operandos/Mdulos
3. Estructura de Programas
4. Tipos de Mdulos
4.1 Mdulos de Sistema
4.2 Mdulos de Usuario
5. Tipos de Procesamiento
6. Tiempos de Ciclo y Respuesta
7. Proyectos STEP7
ndice
-
En una CPU corren dos programas
Sistema operativo: Est contenido en cada CPU y organiza todas las funciones y procesos de la CPU no relacionados con una tarea de control especfica.Entre sus funciones estn: gestionar el arranque normal y completo del PLC/API actualizar la imagen del proceso de entradas y salidas llamar al programa de usuario detectar alarmas y llamar a los programas de atencin a las mismas reconocer y tratar los errores administrar las reas de memoria comunicar con unidades de programacin y otros sistemas de supervisin
Programa de usuario: Hay que crearlo y cargarlo la CPU. Contiene todas las funcionesnecesarias para la tarea de control de una aplicacin especfica.Entre las tareas del programa de usuario estn: definir las condiciones de arranque (completo normal) de la CPU tratar datos del proceso (funciones combinatorias, valores analgicos, ....) reaccionar a alarmas tratamiento de perturbaciones en el funcionamiento normal del programa
Programas en la CPU
Parte Ttulo Contenidos
Parte 1 Informacin general Definicin de trminos y glosario del PLC/APICaractersticas funcionales del PLC/API
Parte 2 Especificaciones Prestaciones elctricas, mecnicas y funcionalesy ensayos de los Informacin a suministrar por el fabricanteequipos Ensayos y verificaciones
Parte 3 Lenguajes de Estructura del software de los PLC/APIprogramacin Lenguajes de programacin
Elementos del lenguaje
Parte 4 Gua para usuarios Especificaciones y anlisis del sistemaAplicacin y seleccin del PLC/APISeguridad y proteccin, instalacin y mantenimiento
Parte 5 Comunicaciones Modelos, bloques de comunicacin, mapeado enprotocolos ISO
La Norma IEC 1131 / EN-UNE 61131
-
Lenguaje IEC 1131-3 STEP 7Diagrama de funciones FBD FBD/FUP
Function Block Diagram Function Block Diagram
Diagrama de contactos LD LAD/KOPLadder Diagram Ladder Logic
Lista de instrucciones IL STL/AWLInstruction List Statement List
Texto estructurado ST SCLStructured Text Structured Control Language
Grfico secuencial SFC GRAPH7Sequential Function Chart
Diagrama de bloques CFCContinuous Function Chart
Diagrama de grfico HIGRAPH7de estados
Lenguajes de IEC 1131 - 3 / STEP7
El entorno de programacin permite desarrollar proyectos de controly automatizacin con las siguiente funcionalidad:
Crear la estructura de directorios necesaria para la gestin de cada proyecto Configurar el hardware del equipo Desarrollar programas off-line Cargar y descargar programas y datos en el PLC/API (on-line) Depurar el programa en fase de ejecucin sin necesidad de interrumpir la
ejecucin del programa (on-line) Realizar funciones de test o estado de variables y zonas de la memoria Realizar funciones de forzado de variables Elaborar documentos para la fase de mantenimiento posterior Analizar el estado y comportamiento de la CPU (pilas, tiempos, ...) y de los
mdulos de seal asociados
Funcionalidad del Software
-
Programas de Usuario
STEP 7 permite estructurar el programa. Esto aporta las siguientes ventajas:
los programas se pueden dividir en bloques se pueden estandarizar secciones individuales del programa se simplifica la organizacin del programa las modificaciones del programa pueden realizarse ms fcilmente se simplifica el test del programa, ya que puede ejecutarse por partes se simplifica la puesta en servicio
Bloque en el Programa de Usuario
Programa conjunto de todas las instrucciones y convenciones para el tratamiento de las seales, por medio de las cuales se acta sobre la instalacin a controlar (proceso), de acuerdo con unas rdenes de control
Estructura
Tcnica modularSegmentosComentarios
Representacin
FBD / FUP LAD / KOP STL / AWL
Edicin de un Programa
-
Instruccin
Operando
Instruccin
unidad ms pequea autnoma del programa y constituye una orden de trabajo para el procesador
OperacinOperando
002: A I 1.0ParmetroIdentificador del operando
Direccin relativa de la instruccin en elmdulo respectivo
Parte operacional
Identificacin Parmetro
Instruccin
Marcas M Para almacenar resultados binarios intermedios
Datos D Para almacenar resultados digitales intermedios
OPERANDOS NEMONICO FUNCION
Entradas I Imagen del proceso de entradas (PII)
Salidas Q Imagen del proceso de salidas (PIQ)
Tiempos T Funciones de tiempo (temporizadores)
Contadores C Funciones de cmputo (contadores)
Periferia P Para acceder directamente a la periferia
Locales L Datos locales temporales
Mdulos OB, FB, FC Para estructurar el programaSFB, SFC
Operandos
-
H1
S2
S1
A I 0.0AN I 0.1= Q 4.5
Q 4.5I 0.1
I 0.0Q 4.5I 0.1I 0.0
EsquemaElctrico
STL/AWL FBD/FUP LAD/KOP
&
=
Ejemplo de Programa
STEP 7 provee tres posibilidades para organizar un programa. Programacin
LinealProgramacin
DivididaProgramacinEstructurada
Programa Lineal:Todas la instruccionesestn contenidas en unmdulo (normalmenteen el mdulo deorganizacin, OB1)
Programa dividido en reas:Las instrucciones para funcionesindividuales estn contenidas enmdulos individuales. El OB1llama a los mdulos individualessucesivamente.
Programa Estructurado:Las funciones reutilizables soncargadas en mdulos individuales.El OB1 (u otros mdulos) llaman a estos mdulos y les pasan datosrelevantes.
OB1
Arranque
FB1 FC1
FB2FC2
FC3
OB1
Arranque
OB1
Arranque
Receta A
Receta B
Mezclador
Descarga
Estructuracin de los Programas
-
1 instruccin
2 instruccin
ltima instruccin
OB1
......
.
Estructura de Programa. Programacin Lineal
OB1: Ejemplo de de un simple mdulo lineal en FUP
Segmento 1: motor marcha/paro
Segmento 2: Seguridad y seales de aviso
OB1: ejemplo de un simplemdulo lineal en AWL
Segmento 1: motor on/off
Segmento 2: Seguridad y seales de aviso
I 0.0
Q 4.0
Q 4.0
&I 0.2
I 0.3
>=1
=
&
I 0.1
I 0.4Q 4.1
=
A(O I 0.0O Q 4.0)AN I 0.1= Q 4.0
A I 0.2AN I 0.3AN I 0.4= Q 4.1
Programacin Lineal
-
Programacin Lineal. Ejemplo
(CALL)
(CALL)
(CALL)
(CALL)
Ingrediente_A
Ingrediente_B
Mezclador
Descarga
OB1FC
FC
FC
FC
>=1
=&
>=1=
&
>=1
=&
>=1=
Programacin Dividida
-
Programa principal Mdulo subrutina
Procesamientodel programa
Procesamientodel programaInstruccin que llaman
otros mdulos
Fin de mdulo
OB FC
Ejecucin de un Programa Dividido
Programa Dividido. Control de nivel
-
Sis
tem
a O
pera
tivo
OB1 FC
FB FC
FB
SFC
SFB
OtrosOBs
Programacin Estructurada I
Motor
Descarga
OB1
>=1
=&
>=1
=&
=&
=
Programacin Estructurada II
-
Procesarmdulo 7
OB1 Mdulo 7
Lamar almdulo 32.....
Mdulo 32
Llamar almdulo X
Mdulo R
Retornar
Retornar Retornar
...
Nivel1 Nivel2 Nivel3 Niveles 4..7 Nivel 8
Retornar
Mdulo 10
Retornar
Procesarmdulo 10
Estructura del Programa
Sist
ema
oper
ativ
o
Iniciodel
cicloOB 1 FB 10
FB 20
FC 50
DB inst. 10
DB inst. 2
Tren
CALL FB 10
CALL FB 20
CINTA A
CALL FC 50
CINTA B
CALL FC 50
Acciona-miento
Divisin Tecnolgica de un Programa
-
FB
FB
FB
FC
SFC
SFB
Mdulo dedatos deinstancia
Leyenda:
OB
Mdulo deOrganizacin
Ciclo
Tiempo
Proceso
Error
Modos de operacin del sistemaBloques CPU 315 CPU 315-2DP Tamao
Md. de organizacin (OB) 13 14 8 Kby
Mdulo de funcin (FB) 128 128 (0-127) 8 Kby
Funcin (FC) 128 128 (0-127) 8 Kby
Mdulo de datos (DB) 127 127(1-127) 8 Kby
Funcin del sistema (SFC) 48 53
Md. func. sistema (SFB) 7 7
Tipos de Mdulos de Programa
Tipo de Mdulo Caractersticas
Organizacin (OB) - Interfase de usuario entre el sistema operativo y el programa- Prioridades establecidas de (1a 29)- Informacin especial de inicio en la pila de datos locales- Definen la estructura del programa de usuario
Mdulo de - Mdulos con memoria que puede programar el usuariofuncin (FB) - Parametrizable / retentiva
- No parametrizable / retentiva- No parametrizable / no retentiva
Funcin (FC) - Rutina de programa para funciones frecuentes.- Un valor de retorno es transferido.
(Los parmetros deben ser asignados por la llamada.)- No retentivo- Parametrizable
Mdulo de Datos - Estructurado, almacenamiento de datos locales (DB instan.)(DB) - Estructurado, almacenamiento de datos globales
(vlido en todo el programa)
Mdulos de Usuario
-
Tipo de Mdulo Caractersticas
Funcin del - Integrados en el sistema operativo de la CPUSistema - Un usuario puede llamar esta funcin(SFC) (sin memoria).
Mdulos deFunciones - Integrados en el sistema operativo de la CPU del Sistema - Un usuario puede llamar esta funcin (SFB) (con memoria).
Dato de Sistema - Mdulo de datos para datos de configuracin(SDB) y parmetros
Mdulos del Sistema
Bloques de Organizacin (OB): Constituyen el interfaz entre el sistema operativo y el programa de usuario. Tienen prioridad.
En las CPUs del S7 300 la prioridad de los OBs es fija Es posible asignar la misma prioridad a varios OBs Con prioridad 0 se desactiva el OB de alarmas
Son llamados por el sistema operativo. Cada OB contine una informacin de arranque de 20 bytes de
datos locales que entrega al S.O. durante el arranque Controlan:
El procesamiento cclico El procesamiento controlado por alarmas del programa El comportamiento en el arranque del sistema de automatizacin El tratamiento de errores
Mdulos de Organizacin OBs (I)
-
Tipo de Alarma Mdulo de organizacin PrioridadCiclo libre OB1 1
Alarmas horarias OB 10 a OB 17 2
Alarmas de retardo OB 20 a OB 23 de 3 a 6
Alarmas cclicas OB 30 a OB 38 de 7 a 15
Alarmas de Proceso OB 40 a OB 47 de 16 a 23
Alarma de OB 60 25multiprocesamiento
Error de redundancia OB 70 y OB 72 25 y 28
Errores asncronos OB 80 a OB 87 26
Ciclo no prioritario OB 90 29
Arranque OB 100 a OB 102 27
Errores sncronos OB 121y OB 122 la del OB del error
Mdulos de Organizacin OBs (II)
Sistema operativo
Conectar
ProgramaprincipalCiclo
Programa de usuario
Ejecucin Cclica I
-
Sistema operativo
Conectar
ProgramaprincipalCiclo
Programa de usuario
Programa de usuario
Alarma
Error
Interrup-cin
Interrup-cin
Programa de alarma
Tratamiento de errores
Ejecucin Cclica II
Sist
ema
oper
ativ
o
Iniciodel
cicloOB 1 FB 1 FC 1
FB 2 FB 1 SFC 1
FC 1 DB 1
Profundidad de anidamiento
DB inst. 1
DB inst. 2 DB inst. 1
Secuencia y Profundidad de Anidamiento
-
Llamada de un mdulo Mdulo llamado
(OB, FB, FC) (FB, FC, SFB, SFC)
Ejecucindel programa
Ejecucindel programaInstruccin que llama a
otro mdulo
Fin de mdulo
Llamadas a los Mdulos
El sistema operativo inicia el tiempo de vigilancia del ciclo
La CPU escribe los valores de la PIQen los mdulos de salida
La CPU lee el estado de las entradas en losmdulos de entrada y actualiza la PII
La CPU ejecuta el programa de usuario
Al final del ciclo, el S.O. realiza las tareas pendientes(cargar y borrar mdulos, recibir y enviar datos globales..)
Fases de la Ejecucin Cclica
-
El tiempo de ciclo es el tiempo que el S.O. necesita para: ejecutar el programa cclico partes del programa que interrumpen al cclico (ejecucin otros OBs) actividades del sistema (p.e. actualizacin de imgenes, ..)
El tiempo de ciclo se vigila El tiempo de ciclo no es igual para cada ciclo
Tiempo de Ciclo I
La figura muestra la funcin del tiempo de vigilancia del ciclo en laejecucin del programa en las CPUs
Tiempo de Ciclo II
-
Son mdulos programables. Con parmetros absolutos o fromales
Es un mdulo lgico sin memoria
Las variables temporales de FCs se memorizan en la pila de datos locales
Los datos locales se pierden tras la ejcucin de las FCs
Para memorizar los datos, pueden utilizar mdulos de datos globales.
A los datos locales de una FC no se le pueden asignar valores iniciles
Como una FC no tiene memoria, se han de indicar siempre parmetros actuales
Las FCs se pueden utilizar para: devolver un valor de funcin al mdulo invocante (p.e. Fun. Matemticas) ejecutar una funcin tecnolgica (p.e. Una combinacin binaria)
Funciones FCs
Son mdulos programables. Con parmetros absolutos o formales
Es un mdulo con memoria
Tiene asigando un mdulo de datos como memoria (DB de instancia)
Los parmetros que se transfieren al FB y las varaiables estticas, sememorizan en el DB de instancia
Las variables temporales se memorizan en la pila de datos locales
Los datos del DB de instancia no se pierden al finalizar la ejecucin del FB
Los datos memorizados en la pila de datos locales se pierden al finalizar laejecucin del FB
Un FB contiene: un programa que se ejecuta cada vez que se le llama desde otro mdulo facilitan la programacin de funciones complejas de uso frecuente
Mdulo de Funcin FBs
-
A cada llamada de un FB que transfiere parmetros est asignado un DB de instancia
Un FB puede ejecutarse con diferentes DBs de instancia, luego se ejecutacon diferentes valores para los parmetros con cada DB de instancia
Arranque: INT INRevoluciones: INT INHistorial: DT IN_OUTTiempo efec.: TIME IN_OUT
FB 20: MotorParmetros formales
Entero (16 bits): Arranque
Entero (16 bits): Revoluciones
Fecha y hora (48 bits):Puntero a direccin del historialTiempo (32 bits): Tiempo ejec.
DB 202: Motor_2Parmetros actuales (reales)
FBs y DBs de Instancia
Son mdulos de datos. No contienen instrucciones STEP 7
Contienen datos de usuario, datos variables con los que trabaja el programa
Cualquier FB, FC o OB puede leer/escribir datos en un DB global
El tamao mximo de los DBs depende de las CPUs
La estructura de los DBs de datos globales se puede definir discrecionalmente
Los datos de un DB de datos globales no se borran al cerrar el DB o concluirla ejecucin del mdulo de programa que lo utiliza
FC 10 DB global
(DB 20)FC 11
FC 12 DB de instancia(DB 112)
Acceso desde todos los bloques
Acceso slo desde FB 12
Mdulo de Datos Globales DBs
-
Son mdulos ya programados que ofrecen las CPUs S7 a los usuarios
SFBs: Es un FB integrado en la CPU Forman parte del S.O. No se cargan como parte integrante del programa Al igual que los FBs, son mdulos con memoria Hay que crear los DBs de instancia y cargarlos en la CPU como parte
intrgrante del programa. Las CPUs ofrecen SFBs:
para la comunicacin va enlaces configurados para las funciones especiales
SFCs: Es una funcin programada integrada en la CPU Las SFC se pueden llamar desde el programa de usuario Forman parte del S.O. No se cargan como parte integrante del programa Al igual que las FCs, las SFCs son mdulos sin memoria Las CPUs ofrecen SFCs para un conjunto muy amplio de aplicaciones
Mdulos del Sistema SFBs y SFCs
Byte de datos 0
Byte de datos 8191
8 Bits
El tamao mximo de un mduloen la CPU 314 es 8 Kbyte. La cantidad mxima de memoriadisponible en un mdulo de datosdepende de la CPU.
Tipos de Mdulos de Datos
-
EN ENOFB7DB45
Llamada al FB7 (a travs delmdulo de datos de instancia DB45) y asignacin de parmetros.
CALL FB7, DB45Start: = I 1.0Stop: = I 1.1Longitud := MW20Ejecutar: = M2.1
FB parmetro formal
Direccin actual de los datos(parmetro vigente)
Llamada al FB7 (a travs delmdulo de datos de instancia DB45) y asignacin de parmetros.
Direccin actualde los datos FB parmetro formal
I 1.0I 1.1MW20
StartStopLongitud
ejecutar M2.1
STL/AWL
FBD/FUP
Llamada de Mdulos Asignacin de Parmetros
Cabecera del Mdulo(36 Bytes)
Cuerpo del mdulo :
Seccin de declaraciny
Seccin de programao
Datos
InterfaseDescripcin breve
Estructura del Mdulo
-
a b
Botn de la seleccindel tanque
0 0 0 0
Ingrediente AIngrediente B
LTLT
LT
LT
LT
Ejemplo de Programacin Estructurada
Inicia el mdulo (OB 100), procesndose una vez despus de conectar la alimentacin, por ejemplo
Iniciando el tiempo de control de ciclo
Lectura del estado de las seales de los mdulosguardando los datos en la tabla de la imagen de proceso de entradas (PII)
Ejecucin del programa en el OB1 (procesamientocclico)Eventos (tiempo de interrupcin, interrupcin de proceso, etc.) Llamada a otros mdulos OBs, FBs, FCs, etc.
Escritura en la tabla de imagen de proceso desalida (PIQ) en los mdulos de salida.
Mdulo de entrada
CPU
cic
lo d
e sc
an
Mdulo de salida
A I 0.1A I 1.1= Q 4.0
.
.
.
.
Mdulo OB 1
Procesamiento Cclico del Programa
-
I2.0
Q4.3
I2.7 I0.5 I03 Q4.4
1
PII PIQByte 0Byte 1Byte 2....
Byte 0Byte 1Byte 2....
A(O I 2.0O Q 4.3)AN I 2.7AN I 0.5AN I 0.3= Q 4.4
Programade usuario
1
Imagen del Proceso
Tipo de Alarma OBs de alarma Aplicacin
Alarma horaria OB 10 a OB 17 Calcula el flujo de un proceso demezcla al final de un turno
Alarma de retardo OB 20 a OB 23 Controla un ventilador para que se pare 20 seg despus de parar un motor
Alarma cclica OB 30 a OB 38 Muestrear el valor de una seal parael control de una planta
Alarma de proceso OB 40 a OB 47 Notificar que se ha alcanzado el valor mximo de un depsito
Los OBs de alarmas permiten: ejecutar partes del programa dependientes del tiempo reaccionar eficazmente a seales externas al proceso
Mdulos de Organizacin de Alarmas
-
CON
Alarma
Alarma
Alarma
del procesoAlarma de Procesogobierno por interrupciones
Procesamiento Cclicoprocesamiento normal. OB1
Arranquecomprobacin e inicializacin de valorescondiciones de arranque
Alarma cclicaperiodos de tiempo predeterminadosimportante en lazos regulacin
Tratamiento de Erroren funcin de fallosslo en algunas gamas
cclica
Alarmahoraria Alarma horariaAlarmade retardo Alarma de retardo
por errores
Ejecucin de Programas Tipos de Procesamiento
Definicin: El tiempo de ciclo es el tiempo que transcurre durante unciclo de programa. Est constituido por:
Tiempo de ejecucin del S.O. Tiempo de transferencia de las imgenes del proceso (PII, PIQ) Tiempo de ejecucin del programa Temporizadores Funciones integradas Carga por alarmas Carga por comunicacin (Profibus-DP, MPI)
Programa de usuarioA I 1.0= Q 4.0
Tiempo de ciclo
PII S.O. PIQ PII
S.O.Programade usuario
Interrupcionespor alarmas
Tiempo de Ciclo
-
El tiempo de respuesta es el tiempo que transcurre entre el reconocimiento de una sealde entrada y el cambio de estado de la seal de la salida correspondiente. Depende de:
Tiempo de ciclo Retardo en las entradas y salidas Tiempos de rotacin adicionales en la red Profibus
Ejecucin del programaA I 1.0= Q 4.0
Tiempo de reaccinRetardo delos mdulosde entrada
10
10
I 1.0
Q 4.0tiempo
PII S.O. PIQ PII
Tiempo de Respuesta
El tiempo de respuesta ms corto se presenta cuando el estado de la entrada observada cambia justo antes de la carga de la PII. En este casohay que tener en cuenta:
Tiempo de retardo de la entradas Tiempo de actualizacin de la PII Tiempo de paso por el S.O. Tiempo del programa de usuario Tiempo de ejecucin de los temporizadores Tiempo de actualizacin de la PIQ Retardo de las salidas
Tiempo de Respuesta ms Corto y ms Largo
El tiempo de respuesta ms largo se presenta cuando el estado de la entrada observada cambia durante la carga de la PII. En este casoel tiempo de respuesta es:
tiempo de retardo de la entradas 2 x tiempo de actualizacin de la PII 2 x tiempo de paso por el S.O. 2 x tiempo del programa de usuario tiempo de ejecucin de los temporizadores 2 x tiempo de actualizacin de la PIQ tiempo de retardo de las salidas
-
Si se ha definido un tiempo de ciclo mnimo y este es mayor que el tiempo de ciclo real, al finalizar el programa cclico la CPU dispone de tiempo de ejecucin.
El tiempo disponible se utiliza para procesar el OB de tarea no prioritaria.
Mdulos de Org. de Tarea no Prioritaria
Los OBs de alarmas cclicas permiten: ejecutar partes del programa en periodos de tiempo determinados
Mdulo de Organizacin de Alarmas Cclicas
-
Programas S7/M7 (no asignados a ningn HW)
Programas de usuario con mdulos S7:OBs, FBs, FCs, DBs,....... Fuentes AWL para programas de usuario
CPU programable de un S7-400Programas S7/M7 (asignados a HW)Programas de usuario (off-line)
Estacin HW de un S7 - 400
M7-FM programable
Fuentes AWL
Estructura de un Proyecto S7
Mdulos de STEP7
-
La herramienta Programar Mdulo S7 (KOP, AWL) se puede utilizar para editar mdulos off-line (almacenados en el dispositivo de programacin) o bien on-line(mdulos que estn en la CPU). Hay que indicar la opcin deseada y seleccionar el mdulo.
Seleccionar un Mdulo para la Edicin
Tabla deDeclaracinde Variables
Seccin deCdigo
Partes de un Mdulo
-
Word Bits S7
8 7 6 5 4 3 2 1 0 BR CC0 CC1 OV OS OR STA RLO /FC
Bit /FC Firts Check Bit de Primera Consulta
Cada operacin lgica consulta el estado del bit /FC, as como el estado de seal del operando direccionado. Si el bit /FC es 0, la operacin almacenar el resultado de la consulta del estado de seal en el bit RLO de la palabra de estado (bit RLO) y el bit /FC se pone a 1. Este proceso se denomina primera consulta.
Ciertas instrucciones como =, S y R establecen el /FC bit a 0 iniciando as una nueva lgica despus de ellas: condicionesacciones (Con esos operandos, se cierra la consulta actual y se abre una nueva (adems del inicio del programa).
Otras instrucciones como AND o OR establecern el bit / FC a 1 para combinar la lgica con la siguiente instruccin.
Bit RLO Result of Logic Operation Resultado Lgico
Este bit almacena el resultado de una operacin lgica binaria (AND, NAND, OR, NOR, NOT) o de una comparacin (XOR--or exclusiva--, XNOR --nor exclusiva--). Otras instrucciones leen el RLO (=, S, R) para determinar cmo se van a ejecutar.
STA Status (bit 2) El bit estado almacena el estado de la direccin de Booleana actual (bit direccionado). Ejemplo con RLO, STA y / FC Si ests acostumbrado a la lgica de escalera (ladder) y estas luchando por entender el propsito del RLO y STA puede ayudarte el siguiente ejemplo. El STA se utiliza para realizar un seguimiento del estado de la direccion. El RLO se utiliza para mantener seguimiento del estado del rengln.
-
EL programa AWL equivalente seria el siguiente:
1. Al iniciar el primer chequeo el bit /FC es cero por lo que una instruccin Y lgica reflejar el bit de
estado (STA) hacia el Resultado de Operacin lgica (RLO) . En este caso, la direccin de E 1.0 es 1 por lo que el
STA es 1 y el resultado de la lgica (RLO) ser 1. Es decir, en la primera operacin lee el STA de la primera
instruccin y lo copia en el RLO de la primera instruccin.
2. En la segunda lnea el bit /FC es ahora 1 que indica que esta lnea tiene que usar el RLO de la anterior direccin
I1.0 con el STA de la actual direccion I1.1. Como STA = 1 en I1.1, el RLO de la linea procesada es 1 . Es decir, lee el
RLO de I1.0 (instruccin anterior) y el STA de I1.1 (instruccin actual) y realiza una AND logica, que es lo que dice
la instruccin (si fuese O haria OR logica), y el resultado lo copia al RLO de I1.1 (instruccin actual).
3. Lo mismo ocurre en la segunda lnea, pero esta vez de 1 hace que el actual RLO = 0. Es decir, AND entre RLO de
I1.1 y STA de M0.0, almacenandolo en STA de M0.0)
4. La cuarta es la instruccin de asignacin que toma el RLO y lo escribe en la direccion/es correspondientes (en
las otras instrucciones las lee - marcas, entradas --, en asignaciones, set y reset las escribe). En este caso final
RLO = 0 por lo que la salida ser OFF. (Si M0.0 fuese 1, entonces la operacin se evaluar como TRUE haciendo el
RLO = 1 activando la salida Q1.0).
-
Operaciones de Y lgica.
Esto lo vas a pillar enseguida vers. Imagina que tienes dos entradas que cuando estn las dos a true (1), tenemos que activar una salida. La logica sera as:
U E 0.0
U E 0.1
= A 1.0
Es decir, iniciamos el segmento leyendo lo que hay en el E0.0 y le hacemos un AND con el E0.1 y su resultado se lo asignamos a la salida A1.0.
O de otra forma, cargamos el E0.0 en el RLO y luego hacemos un AND de la E0.1 con el RLO y se lo asignamos a la A1.0
Operacin O lgica
En buena lgica (nunca mejor dicho), podras pensar que la forma correcta de hacer un OR sera:
U E0.0
O E0.1
= A1.0
Y eso funcionria bien. Pero la forma ms mejr sera haciendo:
O E0.0
O E0.1
= A1.0
Por qu?
Lgicamente hacen lo mismo. Pero me gusta ms hacerlo as porque de hecho, cuando traduces un OR de KOP a AWL as lo representa. Mejor que escribamos todos de la misma manera no?
Bueno, al grano. Adivinas como actuara no?
Inicialmente hara un:
-
U E0.0 // O E0.0
Como en el caso anterior leera el estado del E0.0 y lo volcara en el RLO (imaginemos un cero).
Luego un:
O E0.1
Y aqu hara un OR con el RLO. Imaginemos que el E0.1 estuviera a uno. El resultado del OR sera un bonito uno.
= A1.0
E igualamos el uno a la salida A1.0. Sencilo no? Vayamos ahora con los parntesis.
NOTA: TENEMOS TODAS LAS OPERACIONES LOGICAS CON PUERTASAND, NAND, OR, NOR, XOR, XNOR, NOT
Parntesis en AWL en Step 7
Como puedes imaginar, en cuanto queramos realizar combinaciones un poco ms elaboradas necesitaremos parntesis para poder realizar estas lgicas.
As, dispondremos de las siguientes operaciones:
U( ..) //UN(..) que valdr para realizar un (N)AND con el contenido interior al parntesis O(..) // ON(..) que valdr para realizar un (N)OR con el contenido interior del parntesis. X(..) // XN(..) que valdr para realizar una (N)XOR con el contenido interior del parntesis
En definitiva en lo que se basa es en realizar la combinatoria interior del parntesis y luego ejecutar la operacin asociada al parntesis.
Los parntesis pueden anidarse metiendo parntesis dentro de otros parntesis. As, odramos hacer algo similar a lo anteriores ejemplos:
U(
U E0.0
O E0.1
)
O(
U E0.2
U E0.3
)
= A1.0
-
En este caso primero resolvera la combinatoia interior de los parntesis por separado y luego realizara el OR entre el resultado de los parntesis.
Hay que aadir que el caso del OR es un poco especial ya que si dentro del parntesis del OR la combinatoria es de AND exclusivamente, el parntesis se podra haber obviado quedando esa parte as:
O
U E0.2
U E0.3
Y funcionara exctamente igual.
Operandos de cierre de consulta
A estas alturas de la pelcula te estars preguntando si los resultados de la combinatoria se van almacenando en el RLO, qu pasa despus de una igualacin si quiero empezar a realizar una nueva combinatoria?
Pues efectivamente despus de los operandos:
Igualacin (=) Set (S) Reset (R)
Con esos operandos, se cierra la consulta actual y se abre una nueva (adems del inicio del programa)
Da igual por tanto lo siguiente que hagas (U,O, UN) porque lo que se har es una lectura del operando en el RLO. Es decir, si la siguiente a una igualacin es
= A1.0
UN E1.0
U E1.1
= A1.2
Lo que har es leer el estado de la E1.0, le cambiar el signo y lo cargar en el RLO. No har un NAND con nadie. Simplemente realizar la carga en el RLO.
Ojo. Un cambio de segmento no es un inicio de programa. Por tanto si la ltima instruccin de un segmento es la lectura de un bit haciendo un U E0.7, este afecta al siguiente segmento. A efectos prcticos es como si lo hubieras escrito al principio del nuevo segmento
-
FUNCIONES DE RLO EN CONTADORES Y TEMPORIZADORES
Ya hemos visto la logica binaria, pero ahora vamos a emplearlo a temporizadores y contadores. Os habeis preguntado porque cuando cargamos un temporizador SE sigue contando?? La primera idea es que se siga CUMPLIENDO LA CONDICION.Pues la respuesta es que mientras el RLO no cambie sigue contando.
De ah que si solo creemos que el programa funciona CUMPLE CONDICIONEJECUTA INSTRUCCIN la respuesta esta mal, pues en cada vuelta de ciclo de programa, cuando le toque evaluar la misma instruccion deberia CARGAR DE NUEVO el temporizador, pero no lo hace. Y lo mismo ocurre con los contadores.
DE HECHO, UN PRIMER PROBLEMA DE PROGRAMACION RESIDE EN QUE DEBEMOS PROVOCAR UN CAMBIO DE RLO PARA QUE FUNCIONEN CIERTAS CONDICIONES COMO QUEREMOS, O VICEVERSA.
UN SEGUNDO PROBLEMA ES QUE LAS OPERACIONES DEBEN TENER SIEMPRE EL FORMATO CONCRETO DE DATOS PARA LA OPERACIN A REALIZAR.
Qu es un set, reset y asignacion en AWL?
Un SET no es mas que fijar a uno una variable booleana. Como la has fijado, esta variable seguir a uno aun cuando las condiciones de ponerla a uno desaparezcan.
Se diferencia de una igualacin (asignacion) en que en esta, el resultado final es dependiente en todo momento de las condiciones para estar a uno o a cero. Mientras que todas las condiciones se cumplan la variable estara a uno. Cuando una o varias de las condiciones no se cumpla, la seal cae, sera false, 0.
Aqu no. Una vez dadas las condiciones la seal estar a uno indefinidamente o hasta que se le haga un RESET. Y es que el RESET lo que hace es fijar a cero la variable. Como en el caso anterior, aunque las condiciones de reset desaparezcan, la seal seguir a cero y no recobrar su estado de uno hasta un nuevo SET.
Qu pasa si se dan ambas condiciones, SET y RESET en AWL?
Pues lo primero que habra que darte un capn por hacer un programa en el que el set y reset se de simultneamente.
Puede darse ese caso? Porsupuestsimo que s.
Es grave? No conozco a nadie que haya enfermado de ello, pero mejor evitarlo.
Qu pasa si se da? La respuesta seguro que la sabes. Depende.
De qu depende ? De segn como se ejecute todo depende .
Como bien sabes, si ambas condiciones se dan simultneamente y seguidas una de otra, la que sobrevivir del envite ser la segunda.
-
Qu pasa si mezco Set, Reset e igualaciones?
Espero que esto no se te haya pasado siquiera por la cabeza crcel directamente. Punto. Y sin galletas en el desayuno hasta nuevo aviso.
Vale, vale pero qu hay del SET y RESET en AWL?
O E0.0
O E0.1
S A 1.0
U E0.2
U E0.3
R A1.0
Chupado no?
Como bien imaginars, la seal A1.0 se pondr a uno, cuando el OR formado por la E0.0 y E0.1 de como resultado un uno poniendo el RLO a uno.
Igualmente, la A1.0 se podr a cero, cuando el AND de la E0.2 y E0.3 se ponga a uno poniendo el RLO tambin a uno haciendo por tanto el reset.
En definitiva, el Set y el Reset se ejecutarn forzando la marca o salida en una direccin u otra, cuando el RLO est a uno y pasando olmpicamente del Set o Reset cuando el RLO est a cero.
Fcil no?
Forzado del RLO SET y CLR
Unas instrucciones muy interesantes son las de forzar el RLO, es decir, cargar en el RLO un cero o un uno de forma incondicional hasta que haya una nueva operacin de combinatoria booleana:
SET: Fijaremos con ello el RLO a uno CLR: Fijaremos con ello el RLO a cero
Por ejemplo:
U E0.1
U E0.2
SET
= A1.0
-
Cunto valdr A1.0?
Pues efectivamente, la salida A1.0 estar forzada a uno ya que da igual lo que pase con la combinacin de las dos entradas ya que luego se fuerza el RLO a uno y se iguala su valor a la A1.0
Flancos en AWL
Finalmente vamos a ver los pulsos. Hay dos:
Positivo (FP) Negativo (FN)
Los pulsos como bien sabes son instrucciones que ponen el RLO a uno cuando se cumple el escalon de subida de cero a uno (el positivo) o que el RLO previo pase de uno a cero (el negativo).
Necesitan una marca auxiliar que es la que almacena la informacin de cmo estaba el RLO en el ciclo anterior.
Mejor con un ejemplo:
U E0.0
FP M1.0
= A1.0
Lo que har este mini ejemplo ser: Mientras que la marca E0.0 est a cero, la el RLO tras el pulso estar a cero. Cuando la entrada pase a uno, entonces en ese ciclo de scan el pulso pondr el RLO a 1 haciendo que la salida A1.0 se active en ese ciclo de scan. En el ciclo siguiente an estando la entrada a uno, la salida volver a cero ya que el RLO a la salida del pulso estar a cero.
Si hicieramos un ejemplo similar con el flanco negativo:
U E0.0
FN M1.0
= A1.0
El comportamiento sera igual salvo que esta vez, el RLO despus del FN se pondr a uno cuando la seal de la E0.0 pase de estar a uno a estar a cero. Anlogamente al caso anterior slo estar a uno en ese ciclo de scan, volviendo a cero en los sucesivos con independencia de que la salida siga a cero en este caso.
-
Automatizacin Industrial
Operaciones con Bits de Estado
TEMA Operaciones con Bits de Estado
1. Descripcin de los Bits de Estado
2. Modificacin de los Bits de Condicin
3. Evaluacin de Bits de la Palabra de Estado
4. Operaciones sobre el RLO
ndice
-
Estructura de la Palabra de Estado
Bits de Estado Palabra de Estado
Los Bits de Estado son bits indicadores de operacin (flags) Son utilizados por la CPU para controlar las operaciones binarias y las actualiza durante el
procesamiento digital. La palabra de estado contiene bits a los que se puede acceder con el operando de
operaciones lgicas con bits y con palabras.
Definicin
Descripcin de los Bits de Estado (I)
Cada operacin lgica consulta el estado del bit /FC, as como el estado de seal del operando direccionado. Si el bit /FC es 0, la operacin almacenar el resultado de la consulta del estado de seal en el bit RLO de la palabra de estado (bit RLO) y el bit /FC se pone a 1. Este proceso se denomina primera consulta
Bit /FC Firts Check Bit de Primera Consulta
Este bit almacena el resultado de una operacin lgica binaria o de una comparacin.
Bit RLO Result of Logic Operation Resultado Lgico
-
Descripcin de los Bits de Estado (II)
El bit de estado almacena el valor del bit direccionado.
Bit STA Status Bit de Estado
El bit OR (O) se requiere al realizar una combinacin Y antes de O con una operacin O.
Bit OR Bit de Estado OR
Indica un desbordamiento en el rango de un nmero o la utilizacin de nmeros reales no vlidos.
Bit OV Overflow Bit de Desbordamiento
Se activa junto con OV, pero permanece activo hasta llamada a bloque, fin de bloque o JOS (salto si OS = 1).
Bit OS Stored Overflow Bit de Desbordamiento Memorizado
Descripcin de los Bits de Estado (III)
Los bits CC1 y CC0 dan informacin sobre los resultados o bits siguientes:
Resultado de una operacin aritmtica Resultado de una operacin de comparacin Resultado de una operacin digital Bits que han sido desplazados por una operacin de desplazamiento o de rotacin
Bits CC1 y CC0 Condition Code Bits Bits Condicin
El bit BR corresponde a la salida de habilitacin (ENO) para el cuadro KOP.Con la operacin SAVE (en STL) o con la bobina se guarda un RLO en el bit BR.
Bit BR Binary Result Bit de Resultado Binario
-
Modificacin de los Bits de Condicin (I)
CC1 y CC0 tras operaciones aritmticas con enteros, con desbordamiento
CC1 y CC0 tras operaciones aritmticas (coma flotante) con desbordamiento
CC1 y CC0 tras operaciones aritmticas, sin desbordamiento
Modificacin de los Bits de Condicin (II)CC1 y CC0 tras operaciones de comparacin
CC1 y CC0 tras operaciones de desplazamiento y rotacin
CC1 y CC0 tras operaciones lgicas digitales
-
Evaluar los Bits de la Palabra de Estado (I)
Bit de Anomala - Registro BR Consulta el valor de seal del bit BR (resultado binario)
BR&
1BR S
I 0.0
I 0.1 Q 4.0
Bit de Anomala - Operacin no Vlida Determina si el resultado de una funcin aritmtica de nmeros en coma flotante es o
no admisible (es decir, si uno de los valores de la funcin aritmtica no es un nmero en coma flotante vlido). Para ello se evalan los cdigos de condicin de la palabra de estado (CC1 y CC0).
UO
Bit de Anomala - Desbordamiento Detecta un desbordamiento (OV) en la funcin aritmtica ejecutada en ltimo lugar. Si
tras una funcin aritmtica el resultado se encuentra fuera de rango.
OV
Bit de Anomala - Desbordamiento Memorizado Detecta un desbordamiento permanente (OS). A diferencia del bit OV (bit de
desbordamiento), el bit OS permanece activado aunque las operaciones aritmticas se ejecuten sin error.
OS
Evaluar los Bits de la Palabra de Estado (II)
Bits de Resultado Determinar la relacin entre el resultado de una
operacin aritmtica y 0
SUB_IENIN1 OUTIN2 ENO
&>=0 S
IW0IW2 Q 4.1
I 0.0MW10
-
Operaciones de Consulta de Bits de Estado en STL
Evaluar los Bits de la Palabra de Estado (III)
Resultado Binario [BR = 1]BR
Overflow Memorizado [OS = 1]OS
Overflow [OV = 1]OV
Resultado invlido (fuera de orden) [(CC0 = 1) && (CC1 = 1)]UO
Resultado igual a 0 [(CC0 = 0) && (CC1 = 0)]==0
Resultado distinto de 0 [(CC0=0) && (CC1=1) v (CC0=1) && (CC1=0)]0
Resultado menor o igual que 0 [(CC1 = 0)]0
Chequea que no cumple condicin y operacin lgica XOR-XN
Chequea que no cumple condicin y operacin lgica OR-ON
Chequea que no cumple condicin y operacin lgica AND-AN
Chequea que cumple condicin y operacin lgica XOR-X
Chequea que cumple condicin y operacin lgica OR-O
Chequea que cumple condicin y operacin lgica AND -A
Operaciones de Bits de Estado en STL
Evaluar los Bits de la Palabra de Estado (IV)
JOS1-----
JO-1----
JUO--11--
JN, JM, JMZ--01--
JN, JP, JPZ--10--
JZ, JMZ, JPZ--00--
JNBI----0-
JBI----1-
JCN, JNB-----0
JC, JCB-----1
Funciones de Salto EjecutablesOSOVCC1CC0BRRLO
-
Operaciones sobre el RLO en STL
Operaciones sobre el RLO
Niega el contenido del RLONOT
Guarda el contenido del RLO en BRSAVE
Establece el RLO a 0CLR
Establece el RLO a 1SET
Operaciones de Carga y Transferencia de la Palabra de Estado
Carga y Transferencia de la Palabra de Estado
Transfiere el valor del ACU1 a la palabra de estadoT STW
Carga la palabra de estado en el ACU1L STW
Dependiendo de la CPU, los bits /FC, STA y OR no se copian en el ACU1, se ponen a 0
-
Ejemplo 1:
Ejemplos
SET ;S M 8.0; // Pone a 1 marcaR M 8.1; // Pone a 0 marcaCLR ;S C 1; // Pone a 0 el
// flanco del set del contador
Ejemplo 2:SET ;SAVE; // Pone BR a 1...AN OV;SAVE; // Pone BR a 0 con overflow...
-
Tipos de datos en S7
www.campusabierto.es AdolfoMolina
Tipo y descripcin Tamao
en bits Opciones de formato Mrgenes y representacin
numrica Ejemplo
BOOL (bit)
1 Variable booleana Todo / Nada
TRUE/FALSE 1 / TRUE 0 / FALSE
Formatodevariablesnumricasmatematizables(conoperacionesdeclculo)
INT (nmero entero) Identificador: I
16 W
Nmero entero con signo -32768 hasta 32767
150
DINT (entero de 32 bits) Identificador: D
32 DW
Nmero entero con signo L#-2147483648 hasta L#2147483647
L#85
REAL (nmero decimal en coma flotante) Identificador: R
32 DW
IEEE Nmero en coma flotante
Lmite superior: 3.402823e+38 Lmite inferior: 1.175 495e-38
1.234567e+13 6,0 0,0
Formatosdetiempo
S5TIME (tiempo SIMATIC)
16 W
Tiempo S7 en pasos de 10 ms (valor estndar)
S5T#0H_0M_0S_10MS hasta S5T#2H_46M_30S_0MS
S5T#0H_1M_0S_0MS S5TIME#0H_1H_1M_0S_0MS
TIME (tiempo IEC)
32 DW
Tiempo IEC en intervalos de 1 ms, nmero entero con signo Equivale al formato DINT (D) con unidad de 1ms
-T#24D_20H_31M_23S_648MS hasta T#24D_20H_31M_23S_647MS
T#0D_1H_1M_0S_0MS TIME#0D_1H_1M_0S_0MS
DATE (fecha IEC)
16 W
Fecha IEC en pasos de 1 da D#1990-1-1 hasta D#2168-12-31
D#1994-3-15 DATE#1994-3-15
TIME_OF_DAY (hora)
32 DW
Hora en intervalos de 1 ms TOD#0:0:0.0 hasta TOD#23:59:59.999
TOD#1:10:3.3 TIME_OF_DAY#1:10:3.3
-
Tipos de datos en S7
www.campusabierto.es AdolfoMolina
Tipo y descripcin Tamao en bits
Opciones de formato Mrgenes y representacin numrica
Ejemplo
BYTE (byte)
8 B
Nmero hexadecimal
B#16#0 hasta B#16#FF
B#16#10
WORD (palabra)
16 W
Nmero binario Nmero hexadecimal BCD Formato carga contadores Z Nmero decimal sin signo Dos Byte
2#0 hasta 2#1111_1111_1111_1111 W#16#0 hasta W#16#FFFF C#0 hasta C#999 B#(0,0) hasta B#(255,255)
2#0001_0000_0000_0000 W#16#1000 C#12 B#(136,20)
DWORD (palabra doble)
32 DW
Nmero binario Nmero hexadecimal Nmero decimal sin signo Cuatro Byte
2#0 hasta 2#1111_1111_1111_1111_ 1111_1111_1111_1111
DW#16#0000_0000 hasta DW#16#FFFF_FFFF B#(0,0,0,0) hasta B#(255,255,255,255)
2#1000_0001_0001_1000_ 1011_1011_0111_1111 DW#16#00A2_1234 B#(1, 14, 100, 120)
Variable ASCII (carcter)
8 B
Caracteres ASCII 'A','B' etc. 'E'
-
PLCs Pgina 1 Curso 2009/10
1. STEP 7
2. PROGRAMACIN BSICA AWL Introduccin Operaciones lgicas a nivel de bit Marcas Simblicos Flancos Temporizadores Diagnosis e informacin del sistema Contadores Carga y Transferencia Operaciones con acumuladores Saltos
3. PROGRAMACIN ESTRUCTURADA
Tema 2: Programacin de PLCs
-
PLCs Pgina 2 Curso 2009/10 Curso 2009/10
Introduccin a los Tipos de Datos en STEP 7
Tipos de datos elementales (hasta 32 bits)
Tipos de datos complejos (mayores de 32 bits)
Tipos de datos definidos por el usuario (mayores de 32 bits)
Tipos de Datos de bit (BOOL, BYTE, WORD, DWORD, CHAR)
Tipos de Datos Matemticos (INT, DINT, REAL)
Tipos de Tiempo (S5TIME, TIME, DATE, TIME_OF_DAY)
Tiempo (DATE_AND_TIME)
Array (ARRAY)
Estructura (STRUCT)
Cadena de Caracteres (STRING)
Tipo de Datos UDT (User Defined Type)
-
PLCs Pgina 3 Curso 2009/10 Curso 2009/10
La memoria del Autmata est estructurada en bytes.
Estos bytes podemos agruparlos/descomponerlos, obteniendo los siguientes tamaos de datos: Bit _ _ _ .N
Byte (8 bits) _ _ _ B
Palabra/word (16 bits) _ _ _ W
Doble palabra/double word (32 bits) _ _ _ D
Se puede acceder a cualquier rea de la memoria: marcas, entrada, salida, etc. con cualquiera de los tamaos de datos:
TIPOS DE DATOS DE BIT TAMAO
-
PLCs Pgina 4 Curso 2009/10 Curso 2009/10
E Tam BBB.b
Zona de memoria:
E -> Entradas A -> Salidas T -> Temporizadores Z -> Contadores M -> Marcas DB -> Mdulos de datos P -> Acceso directo (PA, PE)
Tamao del Dato que vamos a usar (bit por omisin): B, W, D
Nmero de byte y bit (0-7), en su caso
DIRECCIONAMIENTO 1/3
-
PLCs Pgina 5 Curso 2009/10 Curso 2009/10
DIRECCIONAMIENTO 2/3
124
125
125
125
124
125
-
PLCs Pgina 6 Curso 2009/10 Curso 2009/10
Dentro de cada byte, palabra o doble palabra, los bits se numeran de derecha a izquierda, de 0 al 7. E 124.0
Dir. byte: rea de memoria + B + n de byte EB124
Dir. palabra: rea de memoria + W + n de su 1er byte
EW124 => EB124 EB125
Dir. doble palabra: rea de memoria + D + n de su 1er byte
MD0 => MB0 MB1 MB2 MB3
DIRECCIONAMIENTO 3/3
-
PLCs Pgina 7 Curso 2009/10 Curso 2009/10
Sistemas numricos soportados: Decimal (enteros y fraccionarios), binario, hexadecimal, BCD
Tipos de datos: Entero (en cualquiera de los sistemas numricos anteriores) Real (coma flotante) Carcter Tiempo: cantidad de tiempo, hora, S5T, fecha Puntero
SISTEMAS NUMRICOS
Ver ayuda Admin. Simatic Tipos de datos simples
-
PLCs Pgina 8 Curso 2009/10 Curso 2009/10
Tipos de Datos Elementales en STEP 7
BOOL 1 1 0 BYTE 8 B#16#A9 o B169 WORD 16 W#16#12AE o W4782 DWORD 32 DW#16#ADAC o DW44460 CHAR 8 ' w '
S5TIME 16 S5T#5s_200ms
INT 16 123 DINT 32 65539 REAL 32 1.2 o 34.5E-12
TIME 32 T#2D_1H_3M_45S_12MS DATE 16 D#1993-01-20 TIME_OF_DAY 32 TOD#12:23:45.12
Palabra Clave Long. (en bits) Ejemplo de una constante de este tipo
-
PLCs Pgina 9 Curso 2009/10 Curso 2009/10
Nmeros en COMA FLOTANTE (1/2)
- Signo (S) 1: negativo , 0: positivo (bit 31)
- Mantisa (M) La mantisa incluye 23 bits (bit 0.. 22).
- Exponente (E) El exponente incluye 8 bits (bit 23..30).
... 31 30 23 22 21 2 1 0 ...
Estndar IEEE754: Expresa nmeros reales en 32 bits
N decimal = (-1)signo 2exponente-127 (1+Mantisa2-23)
-
PLCs Pgina 10 Curso 2009/10 Curso 2009/10
Nmeros en COMA FLOTANTE (2/2)
Estndar IEEE754: Expresa nmeros reales en 32 bits
N decimal = (-1)signo 2exponente-127 (1+Mantisa2-23)
Ejemplo: 1#10000000#11000000000000000000000
Parte ligada al signo: (-1)1 = -1 Parte ligada al exponente: 2128-127=21 = 2 Parte ligada a la mantisa: 1+62914562-23=1+0.75 =1.75 Resultado: -1 2 1.75 = -3.5
-
PLCs Pgina 11 Curso 2009/10 Curso 2009/10
Registros auxiliares de 32 bits para intercambio de datos y operaciones de comparacin y aritmeticas.
CPU 314IFM tiene 2 acumuladores. Carga al ACCU1,
y el antiguo ACCU1 pasa al ACCU2.
Si cargamos o transferimos tamaos de datos menores a la doble palabra ( bits, bytes (B), word (W) ), se empieza a leer y escribir por la derecha (byte menos significativo)
ACUMULADORES (1/2)
ACCU-H (16 bits) ACCU-L (16 bits)
-
PLCs Pgina 12 Curso 2009/10 Curso 2009/10
Operaciones entre acumuladores:
TAK: intercambia contenido ACCU1 y ACCU2 .
PUSH: copia el contenido de ACCU1 al ACCU2, sin cambiar el 1.
POP: copia el contenido de ACCU2 al ACCU1, sin cambiar el 2.
ENT (slo S7-400): ACCU2 a ACCU3 y ACCU3 a ACCU4.
LEAVE (slo S7-400): ACCU3 a ACCU2 y ACCU4 a ACCU3.
ACUMULADORES (2/2)
-
PLCs Pgina 13 Curso 2009/10 Curso 2009/10
Permiten programar intercambio de informacin entre mdulos de E/S y reas de memoria.
L --> Instruccin de carga a ACCU-1
T --> Instruccin de transferencia desde ACCU-1
Cargan y transfieren del acumulador ACCU1, independientemente del valor RLO, y tampoco lo modifican.
A dichas instrucciones les sigue un cdigo en el que se indica el tamao, formato y el nmero/posicin a cargar o transferir.
CARGA Y TRANSFERENCIA 1/7
-
PLCs Pgina 14 Curso 2009/10 Curso 2009/10
Ejemplos: LC Z0 --> Carga el contenido del contador en el acumulador en BCD.
Si Z0=10 ACU1: 00 00 00 .......... 0001 0000 (BCD)
L Z0 --> Idem pero en Binario Si Z0=10 ACU1: 00 00 00 .......... 0000 1010 (Binario autntico)
L S5T#5S --> Herencia de versiones previas a S7: mximo nmero 9990sg,
CARGA Y TRANSFERENCIA 2/7
-
PLCs Pgina 15 Curso 2009/10 Curso 2009/10
Ejemplos:
L ED124 (Cargar en el acumulador la doble palabra 124 de la PAE)
ACU1: EB124 EB125 EB126 EB127
Obsrvese: el byte ms significativo del acumulador (parte izquierda) queda
relleno con el byte de direccin menor, y el de mayor direccin, a la dcha.
L EW8 (Cargar en el ACU1 la palabra 8 de la PAE) 00 00 EB8 EB9
L EB8 (Cargar en el ACU1 el byte 8 de la PAE) 00 00 00 EB8
CARGA Y TRANSFERENCIA 3/7
-
PLCs Pgina 16 Curso 2009/10 Curso 2009/10
Ejemplos (con los Registros de Direcciones, AR1 y AR2): LAR1 ----> Carga el reg.de direccin AR1 con el contenido de ACU1 LAR1 R2 ----> Carga el reg. de direccin AR1 con el contenido de reg AR2 TAR ----> Intercambia los contenidos de registros AR1 y AR2 TAR1 R2 ----> Transfiere el contenido de AR1 a AR2 El listado AWL siguiente:
L ED 124 LAR1 L ED 128 LAR2 TAR
Tendr como resultado:
ED124 ----> AR2
ED128 ----> AR1
CARGA Y TRANSFERENCIA 4/7
-
PLCs Pgina 17 Curso 2009/10 Curso 2009/10
Ejemplos (L y T con diferentes tamaos):
L EB124 (Cargar en el ACU1 el byte 124 de las entradas) 00 00 00 EB124
Si ahora hacemos T MW32 00 00 00 EB124
MB32 MB33
L ED124 EB124 EB125 EB126 EB127
T MB32 MB32
CARGA Y TRANSFERENCIA 5/7
-
PLCs Pgina 18 Curso 2009/10 Curso 2009/10
L +5 --> Carga entero de 16 bits
L L#523123 --> Carga un entero de 32 bits
L B#16#EF --> Carga un hexadecimal de 8 bits
L 2#0011_0110_1110_0011 --> Carga binario de 16 bits
T MB0 --> Transfiere (el ACU1) al byte de marcas 0
T AD256 --> Transfiere (el ACU1) a la doble palabra de salida 256
CARGA Y TRANSFERENCIA 6/7
NOTA:
Ver ayuda Adm. Simatic
Tipos de datos simples
-
PLCs Pgina 19 Curso 2009/10 Curso 2009/10
CARGA Y TRANSFERENCIA 7/7
-
PLCs Pgina 20 Curso 2009/10 Curso 2009/10
EJERCICIO (Entregable 4)
Tenemos una mezcladora que produce 2 tipos de productos, magdalenas y donuts, para lo cual controla la receta, modificando las proporciones de harina (A124.0) y leche (A124.1), y el tiempo que est mezclndolos (A124.2).
La produccin empezar cuando E124.0 se ponga a 1 Si E124.1=1 produce magdalenas, para lo cual A124.0 est
encendido 3 segundos, A124.1 est encendido 1 segundo y A124.2 durante 2 sg.
Si E124.1=0 produce donuts, para lo cual los tiempos son 4, 3 y 2 segundos respectivamente.
El sistema debe ser robusto de forma que si est en medio de una receta no debe interrumpirse aunque cualquiera de los dos botones de entrada se modifique
-
Automatizacin Industrial
Mdulos de Datosy
Tipos de datos
TEMA Mdulos de Datos y Tipos de Datos
1. Tipos de Mdulos de Datos
2. Edicin de Mdulos de Datos
3. Llamada a Mdulos de Datos
4. Acceso a Mdulos de Datos
5. Tipos de Datos
5.1 Tipos de Datos Elementales
5.2 Tipos de Datos Estructurados
ndice
-
Mdulo de datos a instancia
Leyenda:
FB
FB
FB
FC
SFC
SFBOB
Mdulo deorganizacin
OB = Mdulo de OrganizacinFB = Mdulo de FuncinFC = FuncinSFB = Mdulo de Funcin de SistemaSFC = Funcin de Sistema SDB = Mdulo de Datos de SistemaDB = Mdulo de Datos
DB
DB DB
DB
Introduccin
Byte datos 0
Byte datos 8191
8 bits
El mximo tamao del mdulopara la CPU 314 es 8 kBytes.La cantidad de memoria disponible para los mdulos de datos depende de la CPU.
Global (normalmente usados)
Instancia (local)
Tipos de Mdulos de Datos
-
Edicin de Mdulos de Datos (I)
STEP 7Direccin
de memorialocal Nombre
Valorinicial
Datablock c:\class\machine1\db10
Edicin de Mdulos de Datos (II)
Tipo de datos Comentario
-
:OPN DB 12:::L DB:T DB::CALL FC 16:::L DB:T DB:::BE
::::L DB:T DB::::OPN DB 13::L DB:T DB:::BE
FC 15 FC 16 DB 12
DB 13
Del OB 1
Al OB 1
Llamada a Mdulos de Datos
OPN DB 19OPN valores
L DBB 1 Cargar el byte de datos 1.L DBW 2 Cargar la palabra de datos 2 (byte 2/3).L 5 Cargar el nmero 5.T DBW 4 Transferir a la palabra 4.L 'A' Cargar el carcter ASCII A.L DBB28 Cargar el byte de datos 28.==I Comparar.
U DBX 3.1 Consultar el bit 1 del byte 3.
L DB19.DBW4 Cargar la palabra de datos 4del DB19 (incluye OPN DB 19).
L valores.N1 Acceso simblico a la variableN1. valores es el nombre simblicodel DB que contiene dicha variable
Abrir mdulo de datos Carga y Transferencia en Mdulos de Datos
Acceso a Elementos de Datos
-
STEP 7 permite tener dos DBs abiertos simultneamente Uno se referencia por DB (global) y el otro por DI (instancia) La forma de abrirlos: OPN DB 5, OPN DI 7 Para cargar o transferir al DB: L DBB 0, T DBB 1 Para cargar o transferir al DI: L DIB 0, T DIB 3 Otra forma de direccionar sin abrir el DB:
L DB5.DBB 0, T DB7.DBB 1 Para direccionamiento de bit, byte, palabra y doble palabra:
A DB5.DBX 0.7, para direccionar un bitL DB5.DBB 7, para direccionar un byteL DB5.DBW 7, para direccionar una palabraL DB5.DBD 7, para direccionar una doble palabra
Direccionamiento
Notas de Acceso a Elementos de Datos
Las variables de tipos de datos bsicos tiene una longitud mxima dedoble palabra
Son procesadas con instrucciones de carga y transferencia o con operaciones lgicas binarias
Los tipos de datos elementales pueden ocupar un bit, un byte, unapalabra o una doble palabra
Declaracin:
Varname : datatype := pre-assignment
Varname es el nombre de la variabledatatype es un tipo de dato elementalpre-assignment es el valor asignado
Una variable pude ser declarada global en la tabla de simblicos olocamente en la seccin de declaraciones
Tipos de Datos Elementales
-
Tipo de Datos Tamao(Bit)
Descripcin
BYTE 8 Byte. Rango: 0 a 255WORD 16 Palabra. Rango: 0 a 65.535DWORD 32 Doble Palabra. Rango: 0 a 2
32-1
CHAR 8 Carcter. Cada carcter imprimible (Cdigo ASCII>31)
STRING 8 X 254 Cadena de caracteres desde 2 a 254INT 16 Entero. Rango: -32.768 a 32.767DINT 32 Doble entero. Rango: -231 a 231-1REAL 32 Nmero en coma flotante. (IEEE)TIME 32 Tiempo en intervalos de 1 ms (IEC)DATE 16 Fecha en intervalos de 1 da (IEC)TOD 32 Hora y da en intervalos de 1 ms: hora (0 a 23),
minutos (0 a 59), segundos (0 a 59), ms (0 a 999)S5TIME 16 Valor de tiempo para los temporizadores.
Rango: 0H_0M_0S_0MS a 2H_46M_30_0MS
BOOL 1 Bit. Rango: true o false
Tabla de Tipos de Datos Elementales
Longitud = 1 BIT BYTE Longitud = 8 BITS
PALABRA Longitud = 16 BITS
DOBLE PALABRA Longitud = 32 BITS
01234567
01234567
01234567
01234567
01234567 01234567 01234567
BIT
Una variable tipo BOOL representa un bit (p.e. entrada I 0.0) Una variable tipo BYTE es un conjunto de 8 bits (p.e.salidas QB 5) Una variable tipo WORD es un conjunto de 16 bits (p.e. marcas MW 7) Una variable tipo DWORD es un conjunto de 32 bits
Bit, Byte, Palabra y Doble Palabra
-
Nmero BCD, 3 dcadas
8111215 0347
010110210Signo
Byte m Byte m+1
8111215 0347
410510610Signo
Byte m Byte m+1
8111215 0347
010110210
Byte m+2 Byte m+3
310
Nmero BCD, 7 dcadas
Se pueden introducir datos en BCD con tipo de dato 16# (hexa) y usar slo dgitosde 0 a 9 (p.e. L W#16#2468)
Para temporizadores est definido el tipo de datos S5TIME# (p.e. L S5TIME#30s.) Para contadores est definido el tipo de datos C# o 16# (p.e. L C#368)
Representacin en BCD
EL tipo de datos CHAR representa un carcter en cdigo ASCII. Cada variable de tipo CHAR ocupa un byte (p.e. L A)
Dato tipo CHAR
01234567
Cdigo ASCII
Byte m
Tipo de Dato CHAR
-
Una variable de tipo de dato INT representa un entero que esalmacenado en 16 bits (una palabra) en coma fija
No tiene un identificador especial Los bits 0-14 representan el valor de la variable El bit 15 representa el signo (0 -> positivo ; 1 -> negativo) Nmeros negativos son almacenados en forma de complemento a dos El rango posible desde +32.767 (7FFFhex) a -32.768 (8000hex)
INT:
S 021222.....214 .....15 14 .......0
Representacin de Nmeros (I)
Una variable de tipo de dato DINT representa un entero que esalmacenado en 32 bits (doble palabra) en coma fija
Un entero es almacenado como una variable DINT: si es mayor de 32.767 o menor de -32.768 si el identificador L # precede al nmero
Los bits 0-30 representan el valor de la variable El bit 31 representa el signo (0 -> positivo ; 1 -> negativo) Nmeros negativos son almacenados en forma de complemento a dos El rango posible desde:
+2,147,483,647 (7FFF FFFFhex) a -2,147,483,648 (8000 0000hex)
DINT:
S 021222.....230 .....31 30 .......0.......16 15.....
162.... ....215
L -100 // Se carga un nmero INT en ACU1. Palabra izquierda ACU1 (0000hex)L L#-100 //se carga un nmero DINT en ACU1. Palabra izquierda ACU1 (FFFFhex)
Representacin de Nmeros (II)
-
Una variable de tipo de dato REAL representa una fraccin que esalmacenado en 32 bits (doble palabra) en coma flotante
Un entero es almacenado como una variable REAL:- si el punto decimal es seguido por un cero (L 100.0 o L 1.0e+2)
La variable real consiste internamente en tres partes:- el signo (bit 31) ( 0 -> positivo; 1 -> negativo)- 8 bits para el exponente (en base 2) (bits 23 a 30) - 23 bits de mantisa (bits 0 a 29)
Nmeros normalizados en coma flotante:- rango desde -3.402 823 x 10 +38 a -1.175 494 x 10 -38)- +1.175 494 x 10 -38 a 3.402 823 x 10 +38
Nmeros no normalizados en coma flotante:- - 1.17 494 x 10 -38 a -1.401 298 x 10 -45- + 1.401 298 x 10 -45 a +1.175 494 x 10 -38
REAL:
S 12 232...27 .....31 30.... .......0.2322.....
02.... ....2 2
Exponente Mantisa
Representacin de Nmeros (III)
REAL:
Representacin de Nmeros (IV)
-
Una variable de tipo de dato S5TIME es usada para inicializar temporizadores en STL, LAD y FBD
Ocupa una palabra de 16 bits con 1 + 3 dcadas El tiempo se especifica en horas, minutos, segundos y milisegundos La conversin a la representacin interna la realiza el STEP 7 El nmero es representado internamente en BCD de 000 a 999 El tiempo base puede se: 10 ms (00), 100ms (01), 1s (10) y 10s (11) El tiempo es el producto del valor por la base
S5TIME:
01015 14 .......0
S5TIME#500ms (=0050hex)S5T#2h46m30s (=3999hex)
010110210Valor de tiempoBase de tiempo
Representacin de Tiempos (I)
Una variable de tipo de dato DATE es almacenada en una palabra como un nmero sin signo en coma fija
El contenido de la variable corresponde al nmero de das desdeel 01.01.1990.
La representacin contiene el ao, el mes y el ao, cada unoseparado por (-)
DATE:
DATE#1990-01-01 (=0000hex)D#2168-12-31 (=FF62hex)
021222.....214 .....15 14 .......0152
Ejemplos:
Representacin de Tiempos (II)
-
Una variable de tipo de dato TIME ocupa una doble palabra La representacin contiene especificacin de da (d), hora (h),
minutos (m), segundos (s) y milisegundos (ms) El contenido de la variable es interpretado como milisegundos (ms)
y almacenados como un nmero de 32 bits en coma fija con signo
TIME:
TIME#24d20h31m23s647ms (=7FFF_FFFFhex)TIME#0ms (=0000_0000hex)
Ejemplos:
S 021222.....230 .....31 30 .......0.......16 15.....
162.... ....215
Representacin de Tiempos (III)
Una variable de tipo de dato TIME_OF_DAY ocupa una doble palabra Contiene el nmero de milisegundos desde el comienzo del da (0:00)
como un nmero si signo en coma fija La representacin contiene la especificacin de horas, minutos,
segundos y milisegundos.
TIME_OF_DAY:
TIME_OF_DAY#00:00:00 (=0000_0000hex)TOD#23:59:59.999 (=0526_5BFFhex)
Ejemplos:
021222.....230 .....31 30 .......0.......16 15.....
162.... ....215312
Representacin de Tiempos (IV)
-
Ejemplo:
Representacin de Tiempos (V)
El tipo de dato DATE_AND_TIME representa un tiempo consistenteen fecha y momento del da
Se puede utilizar la abreviacin DT en lugar de DATE_AND_TIMEcomo un nmero si signo en coma fija
La representacin interna es de 64 bitsSe indica como Ao-Mes-Da -h:min:s.ms
DATE_AND_TIME:
DT#1995-02-02-08:30:01.999
Tipos de Datos Estructurados y Arrays
COMPONENTESGEOMTRICOS
TIPOGEO_COMPONENTES
STRUCTCIRCULO: ENTEROTRIANGULO: PALABRA
CUADRADO: REALRECTANGULO: ENTERO
END_STRUCTEND_TYPE
FUNCTION_BLOCK: EJEMPLO
VARGEOMETRY:ARRAY [1...3 ] of GEO_COMPONENTSEND_VAR
Estructura Array
-
Strings
Antes de utilizar los datos locales dinmicos del tipo STRING, el usuario los debe inicializar p.ej. mediante una secuencia AWL tal como:
LAR1 P#lokal_string_var // lokal_string_var est declarada en VAR_TEMP como STRING[200]
L 200 // longitud de STRING indicada arriba
T LB [AR1, P#0.0] // introducido en el MAX Len Byte de la cadena
L 5 // longitud real de la cadena
T LB [AR1, P#1.0] // introducir longitud real de la cadena
UDT: Tipos de Datos de Usuario
Despus de abrir un UDT se visualiza en una nueva ventana de trabajo la tabla de este tipo de datos de usuario en modo "Declaracin".
La primera y la ltima lnea contienen ya las declaraciones STRUCT y END_STRUCT, respectivamente, que indican el comienzo y el fin del tipo de datos de usuario.
Puede editar el tipo de datos de usuario comenzando a partir de la segunda lnea de la tabla de declaracin en las columnas correspondientes.
Los tipos de datos de usuario pueden estar formados por: tipos de datos simples, tipos de datos compuestos o tipos de datos de usuario ya existentes
UDTSon estructuras de datos creadas por el usuario y que, una vez definidas, pueden utilizarse en todo el programa.Los tipos de datos de usuario (UDTs) se crean en el Administrador SIMATIC o con el editor incremental.
Estructura de un UDT
-
UDT: Ejemplo en AWL
TYPE UDT 20 STRUCT arranque : BOOL; //variable del tipo BOOL terico : INT; //variable del tipo INT alor : WORD; //variable del tipo WORD END_STRUCT; END_TYPE
-
Step 7 Elementary Data Types
Type and Description
Size in Bits
Format Options
Range and Number Notation (lowest to highest values)
Example in STL
BOOL (Bit)
1 Boolean text
TRUE/FALSE TRUE
BYTE (Byte)
8 Hexadecimal number
B#16#0 to B#16#FF L B#16#10 L byte#16#10
WORD (Word)
16 Binary number
2#0 to 2#1111_1111_1111_1111
L 2#0001_0000_0000_0000
Hexadecimal number
W#16#0 to W#16#FFFF L W#16#1000 L word#16#1000
BCD C#0 to C#999 L C#998
Decimal number unsigned
B#(0,0) to B#(255,255) L B#(10,20) L byte#(10,20)
DWORD (Double word)
32 Binary number
2#0 to 2#1111_1111_1111_1111_ 1111_1111_1111_1111
L 2#1000_0001_0001_1000_ 1011_1011_0111_1111
Hexadecimal number
W#16#0000_0000 to W#16#FFFF_FFFF
L DW#16#00A2_1234 L dword#16#00A2_1234
Decimal number unsigned
B#(0,0,0,0) to B#(255,255,255,255)
L B#(1, 14, 100, 120) L byte#(1,14,100,120)
INT (Integer)
16 Decimal number signed
-32768 to 32767 L 101
DINT (Double integer)
32 Decimal number signed
L#-2147483648 to L#2147483647
L L#101
REAL (Floating-point number)
32 IEEE Floating-point number
Upper limit +/-3.402823e+38 Lower limit +/-1.175495e-38
L 1.234567e+13
-
S5TIME (SIMATIC time)
16 S7 time in steps of 10ms (default)
S5T#0H_0M_0S_10MS to S5T#2H_46M_30S_0MS and S5T#0H_0M_0S_0MS
L S5T#0H_1M_0S_0MS L S5TIME#0H_1H_1M_0S_0MS
TIME (IEC time)
32 IEC time in steps of 1 ms, integer signed
T#24D_20H_31M_23S_648MS to T#24D_20H_31M_23S_647MS
L T#0D_1H_1M_0S_0MS L TIME#0D_1H_1M_0S_0MS
DATE (IEC date)
16 IEC date in steps of 1 day
D#1990-1-1 to D#2168-12-31
L D#1996-3-15 L DATE#1996-3-15
TIME _OF_DAY (Time)
32 Time in steps of 1 ms
TOD#0:0:0.0 to TOD#23:59:59.999
L TOD#1:10:3.3 L TIME_OF_DAY#1:10:3.3
CHAR (Character)
8 ASCII characters
A', 'B' etc. L 'E'
S5TIME NOTES
Underscores in time and date are optional It is not required to specify all time units (for example: T#5h10s is valid) Maximum time value = 9,990 seconds or 2H_46M_30S
S5TIME Format
Time base Binary Code
10 ms 00
100 ms 01
-
1 s 10
10 s 11
Symbol Table Allowed Addresses and Data Types
English
Mnemonics
German
Mnemonics Description Data Type
Address
Range
I/O Signals
I E Input bit BOOL 0 to
65535.7
IB EB Input byte BYTE, CHAR 0 to 65535
IW EW Input word WORD, INT, S5TIME,
DATE 0 to 65534
ID ED Input double word DWORD, DINT, REAL,
TOD, TIME 0 to 65532
Q A Output bit BOOL 0 to
65535.7
QB AB Output byte BYTE, CHAR 0 to 65535
QW AW Output word WORD, INT, S5TIME,
DATE 0 to 65534
QD AD Output double word DWORD, DINT, REAL,
TOD, TIME 0 to 65532
Marker Memory
M M Memory bit BOOL 0 to
65535.7
MB MB Memory byte BYTE, CHAR 0 to 65535
MW MW Memory word WORD, INT, S5TIME,
DATE 0 to 65534
-
MD MD Memory double word DWORD, DINT, REAL,
TOD, TIME 0 to 65532
Peripheral I/O
PIB PEB Peripheral input byte BYTE, CHAR 0 to 65535
PIW PEW Peripheral input word WORD, INT, S5TIME,
DATE 0 to 65534
PID PED Peripheral input double
word
DWORD, DINT, REAL,
TOD, TIME 0 to 65532
PQB PAB Peripheral output byte BYTE, CHAR 0 to 65535
PQW PAW Peripheral output word WORD, INT, S5TIME,
DATE 0 to 65534
PQD PAD Peripheral output double
word
DWORD, DINT, REAL,
TOD, TIME 0 to 65532
Timers and Counters
T T Timer TIMER 0 to 65535
C Z Counter COUNTER 0 to 65535
Logic Blocks
FB FB Function block FB 0 to 65535
OB OB Organization block OB 1 to 65535
FC FC Function FC 0 to 65535
SFB SFB System function block SFB 0 to 65535
SFC SFC System function SFC 0 to 65535
Data Blocks
DB DB Data block DB, FB, SFB, UDT 1 to 65535
User-defined data types
-
UDT UDT User-defined data type UDT 0 to 65535
-
PLCs Pgina 1 Curso 2009/10
1. STEP 7
2. PROGRAMACIN BSICA AWL Introduccin Operaciones lgicas a nivel de bit Marcas Simblicos Flancos Temporizadores Diagnosis e informacin del sistema Contadores Carga y Transferencia Operaciones con acumuladores Saltos
3. PROGRAMACIN ESTRUCTURADA
Tema 2: Programacin de PLCs
-
PLCs Pgina 2 Curso 2009/10
Introduccin
Tabla de declaracin de variables
Variables locales y atributos del sistema
rea de instrucciones
Formado por uno o varios segmentos
Lenguajes posibles: AWL(ingls, aleman),
KOP, FUP
Propiedades de bloques Autor del bloque Fecha y hora de creacin..........
OBs, FBs, FCs
-
PLCs Pgina 3 Curso 2009/10
Introduccin
Toda instruccin se compone de: marca de salto (opc.), operacin, operando y comentario (opc.).
Ejemplo: M001: U E1.0 //Comentario
Cada instruccin ocupa una lnea propia.
Por cada segmento se pueden introducir unas 2000 lneas.
Al introducir operaciones o direcciones absolutas no se distingue entre maysculas y minsculas.
-
PLCs Pgina 4 Curso 2009/10
Operaciones lgicas a nivel de bit
Qu son ? Parte del conjunto de instrucciones que permiten desarrollar operaciones con operandos binarios de un bit.
Cules son ?
U, UN combinacin serie (AND)
O, ON combinacin paralelo (OR)
U(O Posibles anidamientos
O(U Posibles anidamientos
X or exclusiva
= asignacin
-
PLCs Pgina 5 Curso 2009/10
Operaciones lgicas a nivel de bit
La CPU chequea el estado de las seales de los sensores (operandos)
La primera vez, en cada operacin lgica:
Se guarda el estado de la entrada (primer operando) en el RLO Result of Logic Operation, bit del registro de estado CPU
No se ejecuta operacin lgica
Siguientes veces, dentro de operacin lgica: Se ejecuta operacin lgica entre valor de RLO y valor de estado de entrada (nuevo operando).
El resultado de operacin lgica se guarda en el RLO
-
PLCs Pgina 6 Curso 2009/10
Operaciones lgicas a nivel de bit
-
PLCs Pgina 7 Curso 2009/10
Operaciones lgicas a nivel de bit
El elemento fundamental es el RLO (Resultado de operacin lgica).
El RLO es un bit de la palabra de estado.
Refleja el resultado de la ltima operacin lgica realizada: Cuando una operacin si se ejecuta/cumple: RLO=1 Cuando una operacin no se ejecuta/cumple: RLO=0
Es entrada y salida en las operaciones combinacionales.
-
PLCs Pgina 8 Curso 2009/10 Curso 2009/10
Realiza la operacin AND de dos bits.
En diagrama de contactos equivale a una conexin serie
A 125.0 E 125.0 E 124.2
U E124.2
U E125.0
=A 125.0
AWL
Diagrama de contactos
KOP
Operaciones lgicas a nivel de bit
-
PLCs Pgina 9 Curso 2009/10 Curso 2009/10
Realiza la operacin OR de dos bits.
En diagrama de contactos equivale a una conexin paralelo.
O E124.2
O E125.0
=A 125.0
AWL
A 125.0
E 125.0 E 124.2
KOP
Operaciones lgicas a nivel de bit
-
PLCs Pgina 10 Curso 2009/10 Curso 2009/10
KOP
E 124.0
E 124.1
A 124.0 O E124.1
ON E124.0
=A 124.0
AWL
U E124.1
UN E124.0
=A 124.0
AWL
KOP
A 124.0
E 124.0
E 124.1
Operaciones lgicas a nivel de bit
-
PLCs Pgina 11 Curso 2009/10
FUP
KOP
AWL
Operaciones lgicas a nivel de bit
-
PLCs Pgina 12 Curso 2009/10
Operaciones lgicas a nivel de bit
-
PLCs Pgina 13 Curso 2009/10
U E 124.0 Primera consulta UN E 124.1 = A 124.0 U E 125.0 Primera consulta
Operaciones lgicas a nivel de bit
-
PLCs Pgina 14 Curso 2009/10 Curso 2009/10
OPERACIONES CON SLO RLO
NOT negar RLO SET activar RLO (=1) CLR desactivar RLO (=0)
SAVE SAVE almacena el RLO (resultado lgico) en el bit RB (bit de resultado binario).
-
PLCs Pgina 15 Curso 2009/10 Curso 2009/10
OPERACIONES CON MEMORIA (I/IV)
U E 124.0
S A 125.0
1) Si la entrada 124.0 est activa se enciende la salida 125.0 2) Si la entrada 124.0 se desactiva no se desactiva la salida 125.0
-
PLCs Pgina 16 Curso 2009/10 Curso 2009/10
OPERACIONES CON MEMORIA (II/IV)
-
PLCs Pgina 17 Curso 2009/10 Curso 2009/10
OPERACIONES CON MEMORIA (III/IV)
U E 124.0 S A 124.0
U E 124.1 R A 124.0
Prevalece el Reset
sobre el Set
U E 124.0 R A 124.0
U E 124.1 S A 124.0
Prevalece el Set sobre
el Reset
-
PLCs Pgina 18 Curso 2009/10 Curso 2009/10
OPERACIONES CON MEMORIA (IV/IV)
U E 124.0 S A 124.0
U E 124.1 R A 124.0
Tiempo de ciclo
-
PLCs Pgina 19 Curso 2009/10 Curso 2009/10
MARCAS
-
PLCs Pgina 20 Curso 2009/10 Curso 2009/10
El estado de disponibilidad o no de servicio lo proporciona un selector de dos posiciones: Conectado-Desconectado. La electrobomba se pondr en marcha cuando el sensor de mnimo est encendido y se apagar cuando, o bien se encienda el sensor de mximo, o bien salte el trmico o bien la desconectemos mediante el selector. Si la electrobomba est en servicio deber lucir una lmpara indicadora. Si salta el trmico se encender otra lmpara avisndolo.
EJERCICIO (Entregable 1)
-
Automatizacin Industrial
Operaciones Binarias y de Memoria
TEMA Operaciones Binarias y de Memoria
1. Palabra de Estado
2. Instrucciones de Bit
3. Operaciones Lgicas Binarias
4. Consideraciones sobre Sensores
5. Operaciones de Memoria
5.1 Detectores de Flanco
5.2 Operaciones SR/RS
6. Consideraciones sobre Primera Consulta
ndice
-
Contiene bits con informacin de estado Las operaciones interpretan o activan los bits de estado La palabra de estado tiene 16 bits
RLO/FCSTAOROSOVCC0CC1BR
021222324252627282.....215
Bit Ocupacin Significado0 /FC Bit de primera consulta
- En el comienzo de un segmento su valor es 0- Excepto cuando el seg. previo finaliza con SAVE
1 RLO Bit de resultado lgico. Se almacena resultado lgico2 STA Bit de estado3 OR Bit OR (necesario en operaciones Y antes de O)4 OS Bit de desbordamiento memorizado
Palabra de Estado (I)
Bit Ocupacin Significado5 OV Bit de desbordamiento. Error de desbordamiento en
operaciones en coma flotante6 CC0 Cdigo de condicin 07 CC1 Cdigo de condicin 1
Proporcionan informacin sobre:- Resultado de una operacin aritmtica- Resultado de una comparacin- Resultado de una operacin digital- Bits desplazados del operando por desplazamiento
o rotacin8 BR Resultado binario. Establece un enlace entre el
procesamiento de palabras y el procesamiento de bits9 a 15 No ocupado
Palabra de estado (II)
-
Las instrucciones bit trabajan con los dos nmeros binarios, 0 y 1. En el mbito de las operaciones lgicas:
- 1 significa activado- 0 significa no activado
Las instrucciones bit interpretan estados de seal de 1 y 0 y los combina segn lgica de Boole
El resultado de estas combinaciones es 1o 0. Se indican como "Resultado de Operacin Lgica" (RLO).
Instrucciones bit
NOT
#
S
SR_FFS Q
R
RS_FFR Q
S
&
=
XOR>=1
O I 0.1O I 0.2= Q 4.1A I 0.1
A I 0.2= Q 4.1
Operaciones Lgicas Binarias I
-
Operacin A Funcin Y = Funcin de asignacinAN Funcin YN # Conector intermedioA( Y - abrir parntesis FP Funcin de flanco positivoAN( NO-Y abrir parntesis FN Funcin de flanco negativoO Funcin O NOT Funcin negacinON Funcin ON S Funcin set de un biestableO Funcin O de funciones Y R Funcin reset de biestableO( O - abrir parntesis SAVE Salvar RLO en RBON( NO-O abrir parntesisX Funcin O-EXCLUSIVAXN Funcin NO-O-EXCLUSIVAX( O-EXCLUSIVA abrir parntesisXN( NO-O-EXCLUSIVA abrir parntesis) Cerrar parntesis
Operaciones Lgicas Binarias II
&I 0.1
I 0.2Q 4.0
A I 0.1A I 0.2= Q 4.0=
Operacin lgica Y
Operacin lgica O
>=1I 0.3
I 0.4Q 4.1
O I 0.3O I 0.4= Q 4.1=
Operaciones lgicas binarias III
-
&I 0.0
I 0.1
Q 4.0
A I 0.0A I 0.1OA I 0.2A I 0.3= Q 4.0
&I 0.2
I 0.3
>=1
I 0.0
I 0.1
Q 4.1I 0.2
I 0.3
>=1
>=1
&
A(O I 0.0O I 0.1)A(O I 0.2O I 0.3)= Q 4.1
=
=
Operacin lgica O de funciones Y
Operacin lgica Y de funciones O
Operacin lgica binarias IV
XORI 0.1
I 0.2Q 4.0
X I 0.1X I 0.2= Q 4.0
A I 0.1AN I 0.2OAN I 0.1A I 0.2= Q 4.0
=
Operacin Lgica O-exclusiva
-
Insertarentrada binaria
Invertir unaentrada binaria
Asignacin
Conector
Otras Funciones Binarias I
Cargar resultado lgico (RLO) en registro BR
Activar salida
Desactivar salida
&I 0.1
I 0.2 SAVE
&I 0.1
I 0.2 S
Q 4.0
&I 0.1
I 0.2 R
Q 4.0
Otras Funciones Binarias II
-
I 0.0
I 0.1
Q 4.0
I 0.3 I 0.5
I 0.2
I 0.4
Q 1.0I 0.2I 0.1I 0.0
I 0.3
I 0.5
I 0.4
.
&
&
= Q 4.0
>=1
I 0.0I 0.1
I 0.2
I 0.3
I 0.4
I 0.5
A I 0.0A I 0.1A I 0.2 OA I 0.3A I 0.4OA I 0.5= Q 4.0
Ejemplo (I)
>=1
&
&
>=1
= Q 4.0
I 0.0
I 0.1
I 0.2
I 0.3 >=1
>=1
I 0.4
I 0.6
I 0.5
A(A(O I 0.0O I 0.1)A(O I 0.2O I 0.3)O I 0.4)A(O I 0.5O I 0.6)= Q 4.0
Ejemplo (II)
-
Q 4.0
I 0.0 I 0.1
S1 S2
Q 4.0
I 0.0 I 0.1
S1 S2
Q 4.0
I 0.0 I 0.1
S1 S2
Q 4.0
I 0.0 I 0.1
S1 S2
ENUNCIADO: Accionar la salida cuando est activado S1 y no est activado S2
A I 0.0AN I 0.1= Q 4.0
AN I 0.0AN I 0.1= Q 4.0
A I 0.0A I 0.1= Q 4.0
AN I 0.0A I 0.1= Q 4.0
&&
&&
Consideraciones sobre Sensores
I 0.0
I 0.1
Q 4.1
I 0.3 I 0.5
I 0.2
I 0.4
Q 4.1I 0.2I 0.1I 0.0
I 0.3
I 0.5
I 0.4
&>=1
>=1
= Q 4.1
I 0.0I 0.3I 0.5
I 0.1
I 0.4
I 0.2
A(O I 0.0O I 0.3O I 0.5)A(O I 0.1O I 0.4)A I 0.2= Q 4.1
Ejemplo (III)
-
I 0.0I 0.1
Q 4.0
I 0.2
I 0.3
I 0.5
=
I 0.4
&
XOR
X(A(O I 0.0O I 0.1)A(O I 0.2O I 0.3)A I 0.4)X(A I 0.5A(O I 0.6O I 0.7))= Q 4.0
>=1
>=1&
I 0.6I 0.7
>=1
Ejemplo (IV)
&I 0.0I 0.1
Q 4.0
XORI 0.3
I 0.4
I 0.5
>=1
=
#
I 0.2
#
&
#
M 0.0
M 1.1
M 2.2#
DB5.DBX 3.2
A I 0.0A I 0.1A I 0.2NOT= M 0.0A M 0.0A(A(X I 0.3X I 0.4)NOT= M 1.1A M 1.1O(A I 0.5= M 2.2A M 2.2))NOT= DB5.DBX 3.2A DB5.DBX 3.2= Q 4.0
Ejemplo (V)
-
Smbolo Operando ComentarioF3F I 0.0 Sobreintensidad (NC)SOQ I 0.1 Paro (NC)S1B I 0.2 Marcha (NA)K1M Q 4.0 RelH1 Q 4.1 Lmpara sealizacin desconectadoH2 Q 4.2 Lmpara sealizacin conectado
L11-50 Hz 220v
NH1 H2
K1MS1B
SOQ
F3FF1F
K1MK1M
K1M
Circuitos de Mando
M3-%P
1 3 5
1 3 5
U1 V1 W1
2 4 6
2 4 6
F3F
K1M
F2F
L1L2L3
Circuito de Potencia
Ejemplo (VI-a)
>=1I 0.2
Q 4.0
I 0.0I 0.1
&
=Q 4.0
&Q 4.0 =
Q 4.1
&Q 4.0 =Q 4.2
A I 0.0A I 0.1A(O I 0.2O Q 4.0)= Q 4.0
AN Q 4.0= Q 4.1
A Q 4.0= Q 4.2
Ejemplo (VI-b)
-
I 0.1 Q 4.0
I 0.0
Q 4.0
Marcha
Paro
Prioridad a la Desconexin
A(O I 0.1O Q 4.0)A I 0.0= Q 4.0
Prioridad a la Conexin
I 0.1 Q 4.0
Q 4.0
Marcha
ParoI 0.0
A I 0.1OA Q 4.0A I 0.0= Q 4.0
Operaciones de Memoria
RLO1
0 Tiempo
Flanco Positivo Flanco Negativo
I 1.0
M 1.0
Q 4.0
Lista de InstruccionesDiagrama del estado de la seal
A I 1.0FP M 1.0= Q 4.0
I 1.0 Q 4.0PM 1.0
Funciones lgicas
Detector de Flanco Positivo RLO (0 --> 1)
-
RLO1
0 Tiempo
Flanco Positivo Flanco Negativo
I 1.0
M 1.0
Q 4.0
Lista de InstruccionesDiagrama del estado de la seal
A I 1.0FN M 1.0= Q 4.0
I 1.0 Q 4.0NM 1.0
Funciones lgicas
Detector de Flanco Negativo RLO (1 --> 0)
Compara el estado de la seal del con el estado de seal de la consulta precedente, que se ha almacenado en en M_BIT. Si se produce un cambio de 0 a 1, la salida Q ser 1.
POS
I 0.4
I 0.3
M 0.0 &=
Q 4.0M_BIT Q
A(A I 0.3BLD 100FP M 0.0)A I 0.4= Q 4.0
Detector de Flanco de Seal (0 --> 1)
-
Compara el estado de la seal del con el estado de seal de la consulta precedente, que se ha almacenado en en M_BIT. Si se produce un cambio de 1 a 0, la salida Q ser 1.
NEG
I 0.4
I 0.3
M 0.0 &=
Q 4.0M_BIT Q
A(A I 0.3BLD 100FN M 0.0)A I 0.4= Q 4.0
Detector Flanco de Seal (1 --> 0)
Biestable preponderante al reset (R) Esta operacin es afectada por el Master Control Relay (MCR)
SRS
QR
Q 4.1
=
&I 0.1
I 0.2
&I 0.3
I 0.4
M 1.0A I 0.1A I 0.2S M 1.0A I 0.3A I 0.4R M 1.0A M 1.0= Q 4.1
Flip-Flop SR
-
RSR
QS
A I 0.1A I 0.2R M 0.0A I 0.3A I 0.4S M 0.0A M 0.0= Q 4.0
Biestable preponderante al set (S) Esta operacin es afectada por el Master Control Relay (MCR)
Q 4.0
=
&I 0.1I 0.2
&I 0.3I 0.4
M 0.0
Flip-Flop RS
I 0.7
M 1.0
Q 5.0
A I 0.7AN M 1.0S Q 5.0A I 0.7A M 1.0R Q 5.0
AN I 0.7A Q 5.0S M 1.0AN I 0.7AN Q 5.0R M 1.0
S
R Q
I 0.7M 1.0
Q 5.0
Segmento 1
I 0.7M 1.0
&
&
Segmento 2
S
R Q
I 0.7Q 5.0
M 1.0
I 0.7Q 5.0
&
&
Divisor Binario
-
& &
R S
& &
R S
Q/Q
Q Q
I 0.1 I 0.0
I 0.7
M 10.0
M 10.1
Q 5.0
S
R Q
M 2.0
M 10.1M 10.0
Segmento 3
Segmento 2
M 2.0
M 10.1
&
&
S
R Q
M 2.0
M 10.0M 10.1
M 2.0
M 10.0
&
&
M 10.1 Q 5.0&Segmento 4
I 0.0
I 0.1
I 0.7 M2.0PM 2.1
Bscula JK
Asignacin de EntradasI 0.0 SelectorI 0.1 Rel trmicoI 0.2 Boya nivel mximoI 0.3 Boya nivel mnimoAsignacin de SalidasQ 5.0 ElectrobombaQ 5.1 Sealizacin de
estado operativo Q 5.2 Seal. rel trmicoAsignacin de MarcasM 1.0 Marca auxiliar
electrobomba
Nivel Mximo
Nivel Mnimo
Bomba
Con. Desc.
Luz deFuncionamiento
Luz disparorel trmico
Selector
A I 0.0AN I 0.2AN I 0.3S M 1.0ON I 0.1ON I 0.0O I 0.2R M 1.0
A M 1.0= Q 5.0
A I 0.0= Q 5.1
AN I 0.1= Q 5.2
Electrobomba
-
A I 1.0ANI 1.1A M 4.0= Q8.0A I 2.0 Primera consulta
RLO estado de seal
.... ....
.... ....
.... ....
.... ....
Consideraciones sobre Primera Consulta
-
1Instrucciones Bsicas:Operaciones lgicas con bitsInstrucciones Bsicas:Operaciones lgicas con bits 11DivDiv . Ingeniera de . Ingeniera de Sistemas y AutomticaSistemas y AutomticaDivDiv . Ingeniera de . Ingeniera de Sistemas y AutomticaSistemas y Automtica
Tema 4
Instrucciones Bsicas:Operaciones lgicas con bits
Instrucciones Bsicas:Operaciones lgicas con bitsInstrucciones Bsicas:Operaciones lgicas con bits 22
Bibliografa
l Ttulo: Step7 Avanzadol Autor: Jos Martnez Torresl Descargar de la pgina web
l Manual Siemens Step7-AWL para S7-300 y S7-400l Manual Siemens Step7-KOP para S7-300 y S7-400l Manual Siemens Step7-FUP para S7-300 y S7-400l Ttulo: Automating with Step7 in STL and SCLl Autor: Hans Bergerl ISBN: 3-89578-140-1
-
2Instrucciones Bsicas:Operaciones lgicas con bitsInstrucciones Bsicas:Operaciones lgicas con bits 33
ndice
l Operaciones lgicas con bitsl Operaciones bsicasl Instrucciones de terminacin de cadenas lgicasl Combinacin de operaciones bsicasl Funcin memorial Instrucciones que afectan al RLOl Operaciones que detectan cambios en el
resultado lgico
Instrucciones Bsicas:Operaciones lgicas con bitsInstrucciones Bsicas:Operaciones lgicas con bits 44
ndice
l Operaciones lgicas con bitsl Operaciones bsicasl Instrucciones de terminacin de cadenas lgicasl Combinacin de operaciones bsicasl Funcin memorial Instrucciones que afectan al RLOl Operaciones que detectan cambios en el
resultado lgico
-
3Instrucciones Bsicas:Operaciones lgicas con bitsInstrucciones Bsicas:Operaciones lgicas con bits 55
Operaciones lgicas con bits
l Las operaciones lgicas con bits operan con dos dgitos, 1 y 0.
Estos dos dgitos constituyen la base de un sistema numrico denominado sistema binario. Los dos dgitos 1 y 0 se denominan dgitos binarios o bits.
En el mbito de los contactos y bobinas, un 1 significa activado(conductor) y un 0 significa desactivado (no conductor).
l Las operaciones lgicas con bits interpretan los estados de seal 1 y 0, y los combinan de acuerdo con la lgica del lgebra de Boole. l Estas combinaciones producen un 1 un 0 como resultado
y se denominan resultado lgico (RLO). Las operaciones lgicas con bits permiten ejecutar las ms diversas funciones.
Instrucciones Bsicas:Operaciones lgicas con bitsInstrucciones Bsicas:Operaciones lgicas con bits 66
Operaciones lgicas con bits1.- Las operaciones bsicas para las operaciones lgicas con bits son:U YUN Y-NoO OON O-NoX O-exclusivaXN O-exclusiva-No
3.- Las siguientes operaciones permite