Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARGENTINA
APUNTES DE PRCTICA DE
FUNCIONES AVANZADAS
sobre el Ambiente de Desarrollo
STEP 7-MICRO/WIN
Revisin G
Octubre 2014
INDICE
1.
INTRODUCCIN.................................................................................................................................................. 4
2.
3.
4.
5.
6.
7.
SUBRUTINAS .................................................................................................................................................... 18
7.1.
7.2.
7.3.
8.
9.
INTERRUPCIONES ............................................................................................................................................. 26
9.1.
CMO CREAR UNA ISR ......................................................................................................................................... 27
9.2.
INTERRUPCIONES SOPORTADAS POR EL S7-200 ........................................................................................................ 28
9.2.1. Interrupciones del puerto de Comunicaciones .......................................................................................... 28
9.2.2. Interrupciones de Entrada/Salida.............................................................................................................. 28
9.2.3. Interrupciones basadas en tiempo ............................................................................................................ 28
9.3.
PRIORIDAD Y PUESTA EN COLA DE LAS INTERRUPCIONES ............................................................................................. 31
9.4.
INSTRUCCIONES ASOCIADAS CON INTERRUPCIONES .................................................................................................... 32
9.5.
DATOS COMPARTIDOS ENTRE EL PROGRAMA PRINCIPAL Y UNA ISR ............................................................................... 32
9.6.
LLAMADAS A SUBRUTINAS DESDE UNA ISR ............................................................................................................... 33
Pgina 2 de 56
10.
10.1.
USO DE LOS CONTADORES RPIDOS........................................................................................................................ 35
10.2.
INSTRUCCIONES ASOCIADAS CON HSCS ................................................................................................................... 35
10.3.
CMO OPERAN LOS DIFERENTES CONTADORES RPIDOS ............................................................................................. 36
10.4.
PROGRAMACIN DE UN CONTADOR RPIDO ............................................................................................................ 37
10.4.1.
Definicin del Contador, su modo y entradas ....................................................................................... 37
10.4.2.
Configuracin del byte de control ......................................................................................................... 38
10.4.3.
Configuracin del valor actual y del valor predeterminado ................................................................. 39
10.4.4.
Asignacin de interrupciones................................................................................................................ 39
10.5.
BYTE DE ESTADO ................................................................................................................................................. 40
10.6.
RESUMEN DE MARCAS ESPECIALES DE ALGUNOS CONTADORES RPIDOS ........................................................................ 41
10.7.
USO DE UNA SALIDA DE TREN DE PULSOS PARA ENSAYAR EL HSC ................................................................................. 45
11.
11.1.
CONTROL DEL FLUJO DEL PROGRAMA USANDO SEGMENTOS SCR .................................................................................. 46
11.2.
INSTRUCCIONES ASOCIADAS CON SCRS.................................................................................................................... 47
11.3.
EJEMPLOS: APLICACIN DE SCRS EN SITUACIONES TPICAS DE GRAFCET ......................................................................... 48
11.3.1.
Marcacin Inicial .................................................................................................................................. 48
11.3.2.
Activacin y desactivacin de Etapas y salidas asociadas .................................................................... 48
11.3.3.
Divergencia en AND (concurrencia) ...................................................................................................... 49
11.3.4.
Convergencia en AND (sincronizacin) ................................................................................................. 49
11.3.5.
Divergencia en OR (seleccin de secuencia) ......................................................................................... 49
11.3.6.
Accin alternada................................................................................................................................... 50
12.
13.
BLOQUE DE DATOS........................................................................................................................................... 53
13.1.
13.2.
Pgina 3 de 56
1.
INTRODUCCIN
Los apuntes previos que conciernen a la temtica Ambiente de Desarrollo STEP 7-Micro/WIN se
concentraron en el aprendizaje del paquete de software STEP 7-Micro/WIN y sus prestaciones
para desarrollar, editar y monitorear la lgica necesaria para controlar una aplicacin. En los mismos se presentaron tambin las operaciones bsicas (funciones simples) que permiten trabajar a
nivel de bits como entradas (I), salidas (Q) o zonas de memoria (M, SM).
En esta ltima parte, continuacin de las anteriores, se analizan formas ms avanzadas de trabajar
con los datos de entradas, salidas, y memoria. La lista que sigue presenta (pero no agota) los temas que se abordarn a lo largo del documento:
manejo de bloques de bits: bytes, palabras y palabras dobles
movimiento y transferencia de datos en memoria, y entre memoria y puertos de E/S
direccionamiento de datos en memoria en forma directa, o indirecta usando punteros
uso de reas Remanentes para guardar datos ante cortes de energa
uso del Reloj de Tiempo Real, que marca la fecha y hora actuales del programa en ejecucin
uso de saltos y bucles para controlar el flujo del programa
estructuracin de un programa usando Subrutinas, con sin parmetros
manejo de entradas y salidas analgicas
manejo de eventos mediante el uso de Rutinas de Servicio de Interrupcin
uso de Contadores Rpidos
uso de Rels de Control Secuencial (SCR), que estructuran un programa manera similar a un
Grafcet
manejo de datos utilizando el Bloque del Sistema
Otras operaciones usuales (aritmticas, de comparacin, conversin y desplazamiento, ..., etc, se
dejan para su estudio y prueba por parte del alumno.
Se aconseja y exhorta al alumno a:
consultar permanentemente la Ayuda (Help) del STEP - Micro/WIN durante la ejecucin de
los ejercicios, la cual contiene mucha informacin que permite estudiar nuevas alternativas durante las pruebas
ensayar todas las operaciones que la extensin limitada de este documento no permite explicar
consultar el Manual del Sistema S7-200 de SIEMENS, que es la fuente de informacin principal
de este documento
Pgina 4 de 56
2.
Adems del manejo a nivel de bit, existen otras maneras de direccionar las distintas reas de la
memoria del PLC y realizar con ellas el tratamiento pretendido, por ejemplo: carga de un valor en
8, 16 32 bits en un acumulador, verificacin del valor de tiempo contado por un temporizador,
etc. En efecto, los bits pueden agruparse para dar origen a los siguientes formatos de datos:
Formato
byte
palabra
palabra doble
Designacin
B
W
DW
Equivalencia
1 byte = 8 bits
1 palabra = 2 bytes = 16 bits
1 palabra doble = 2 palabras = 32 bits
y se almacenan de esa forma en la memoria. De esta forma, es posible realizar operaciones lgicas, aritmticas y de movimiento de esos bits ( Bytes / Words / DWords) mediante bloques de
funciones y operaciones especiales que hacen un tratamiento integral de esa informacin y que
tendrn tambin, obviamente, una relacin directa con las entradas y salidas fsicas del PLC.
2.1. Tratamiento a nivel de byte
Se puede hacer referencia al grupo de 8 entradas I0.0 a I0.7 como el byte 0 de entrada (IB0),
al grupo de entradas I1.0 a I1.7 como el byte 1 de entradas (IB1), etc. El mismo anlisis vale
para las salidas (QB0, QB1, .. ). Tambin se puede aludir a los bytes de marcas internas MB0,
MB1,..., o a los bytes de marcas de especiales de estado SMB0, SMB1, ..., etc. Lo dicho vale
igualmente para identificar como VB a posiciones de memoria variable V (en donde puede guardarse informacin transitoriamente, para utilizarla luego), y tambin para posiciones de memoria
que acomodan su formato de acuerdo al formato del dato que en ella se guarde (los acumuladores, identificados como AC0, AC1, AC2 y AC3).
2.2. Tratamiento a nivel de palabra palabra doble
Lo dicho para el tratamiento a nivel de byte se aplica para el tratamiento a nivel de palabra de
palabra doble, utilizando, respectivamente, la letra W en lugar de la B, la letra D en lugar de la
B.
Ejemplo: haciendo referencia a la direccin 200 en la memoria V:
V200.7
VB200
VW200
VD200
En lo que sigue, todos los bloques que analizaremos utilizan este tipo de formato para el tratamiento de la informacin.
2.3. Bloques de Comparacin
Pgina 5 de 56
Este operador compara el byte N1 con el byte N2 y, si son iguales, permitir continuidad elctrica y
se activar la salida Q0.0.
Otros operadores disponibles:
I0.7
128
I0.6
64
I0.5
32
I0.4
16
I0.3
8
I0.2
4
I0.1
2
I0.0
1
Byte IB0
Posicin
Bit
0
0
0
0
1
32
0
0
1
8
0
0
0
0
1
1
El valor del byte IB0 es: IB0 = 1 x 20 + 1 x 23 + 1 x 25 = 1 + 8 + 32 = 41 (decimal). Por lo tanto podemos obtener un resultado equivalente al segmento mostrado arriba con el siguiente:
La instruccin "==B compara permanentemente el byte de entradas IB0 con el valor decimal
predeterminado 41 (correspondiente a la activacin simultnea de los tres bits I0.0, I0.3 e I0.5):
cuando son iguales se activar la salida Q0.6. La misma funcin lgica realizada bits necesita verificar el estado lgico de tres contactos en serie para activar la salida, ocupando ms espacio en
memoria. Para verificarlo, edite los dos segmentos en KOP, y luego, con el men Ver, cambie al
Editor AWL, y compare los segmentos.
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 6 de 56
Este mtodo de manejar la informacin ahorra memoria, pasos de programa y espacio en pantalla.
Ejemplo 2: Complementar el resultado anterior
En el Ejemmplo 1, si lo que se desea es activar la salida Q0.6 cuando IB0 es distinto de 41 puede
usarse un operador NOT para complementar la continuidad lgica evaluada por el operador comparar por igual del caso anterior:
Pgina 7 de 56
El preset de un temporizador se puede cargar con el contenido de una direccin de memoria, en este ejemplo con el
valor en el byte de marca especial 28 (SMB28: valor digital
correspondiente a la posicin del potencimetro analgico
0).
Las posiciones de memoria tambin pueden albergar el contenido actual de temporizadores y contadores (por ejemplo T32, C2), los cuales se guardan con formato de palabra W (16 bits). Para ello
se necesitan dos ubicaciones en el bloque de datos (en la figura anterior, ver ubicaciones VB100 y
VB101 para T32, donde VB100 aloja al byte ms significativo).
2.5. Otros bloques de operaciones
Como puede verse en el rbol de Operaciones del STEP 7-Micro/WIN, existen varios bloques adicionales, tales como:
bloques de operaciones aritmticas en coma fija y coma flotante
bloques de desplazamiento y rotacin
bloques de comunicaciones
entre los bloques de transferencia a los que ya se hizo referencia: inversin de los bytes de una
palabra, movimiento de datos en bloques, ...
etctera
Se deja para el alumno consultar la informacin en el Manual del Sistema S7-200 de SIEMENS, y
probar estas operaciones sobre el PLC.
2.6. Inicializacin de memoria
La operacin Inicializar memoria (FILL_N) escribe N palabras consecutivas, comenzando en la
direccin OUT, con el valor de palabra contenido en la direccin IN. N puede ser un valor cons-
Pgina 8 de 56
tante comprendido entre 1 y 255, o tambin puede ser una variable (direccin de memoria tipo
byte).
Esta operacin es til para setear o resetear contadores, temporizadores, marcas internas, ..., etc,
con el fin de dar un valor inicial a determinada zona de memoria.
Ejemplo:
Se desea poner a 0 (valor de inicializacin IN) 10 palabras consecutivas (N), comenzando en la palabra 200 de la memoria de
variables V (posicin inicial OUT).
La ejecucin de esta operacin llenar con ceros las posiciones de memoria direccionadas como
VW200, VW202, VW204, ..., hasta VW218 inclusive (obsrvese que las direcciones se incrementan
de a 2).
3.
Otra forma de acceder a los datos en memoria es mediante direccionamiento indirecto, utilizando
punteros.
Un puntero es una palabra doble (DW) que contiene la direccin de otra posicin de memoria,
en la cual se encuentra el dato buscado. Dicho de otra manera: el puntero direcciona (se dice
que apunta) a un dato contenido en otra direccin.
Como punteros pueden utilizarse:
las memorias tipos V y L
los registros acumuladores (de 32 bits) AC1, AC2 y AC3
El S7-200 permite el acceso indirecto va punteros a las reas de memoria I, Q, V, M, S, AI, AQ,
SM, T (slo el valor actual), y C (slo el valor actual). El direccionamiento indirecto no se puede
utilizar para acceder a un bit individual, ni para acceder a las reas de memoria HC L.
Los punteros tambin se pueden pasar como parmetros a una subrutina.
Pgina 9 de 56
Pgina 10 de 56
Obsrvese que el destino de la transferencia (OUT) debe estar en consonancia con la operacin:
Transferir
byte (B)
palabra (W)
doble-palabra (DW)
Operacin
MOV_B
MOV_W
MOV_DW
OUT
VB400
VW400
VD400
La instruccin INC_W incrementa en una unidad el contenido de la palabra (W) direccionada por
el puntero (VD300). El resultado de la operacin (OUT) se guarda en la misma ubicacin del operando (VW300):
Se deja para el alumno interiorizarse en las distintas posibilidades que brindas las familias del Arbol de Operaciones.
3.4. Operaciones aritmticas sobre punteros
El valor de un puntero puede modificarse. Los punteros son valores en 32 bits, por lo cual deben
usarse instrucciones de palabra doble para modificarlos.
Las modificaciones implican el uso de operaciones matemticas simples, tales como sumar incrementar.
para acceder a bytes en forma indirecta, el puntero debe incrementarse decrementarse por 1
para acceder a palabras, el puntero debe incrementarse decrementarse por 2
para acceder a palabras dobles, por 4.
Pgina 11 de 56
Si se incrementa una palabra doble a partir de una ubicacin que causa que la direccin final est
fuera del rango del lmite superior de la memoria V, se recibe un error en tiempo de ejecucin
cuando corre el programa.
El operando (IN) no tiene antepuesto un asterisco, por lo
que la operacin afecta directamente al contenido de la direccin indicada (VD300), incrementndolo en una unidad.
Si esta ubicacin alojaba un puntero a la direccin VB100, la
ejecucin de la operacin dejar en VD300 el valor VB101.
4.
La CPU viene provista con un condensador de alto rendimiento que conserva todos los datos de la
memoria RAM tras un corte de alimentacin. Algunos modelos de CPUs soportan un cartucho de
pila (opcional) que prolonga el tiempo durante el cual se puede respaldar la memoria RAM. El cartucho de pila se activa slo cuando se descarga el condensador. Ante un corte de energa, la informacin en RAM se conserva mientras el condensador y la pila no se hayan descargado.
El S7-200 provee diversas caractersticas para garantizar que el programa de usuario y los datos se
mantengan de forma segura:
reas remanentes: reas de la memoria de datos definidas por el usuario para que permanezcan inalteradas tras desconectar y volver a conectar la alimentacin, a condicin de que no se
hayan descargado el condensador de alto rendimiento ni el cartucho de pila (opcional).
Memoria permanente: memoria no-voltil utilizada para guardar los bloques de programa, de
datos y del sistema, as como valores forzados, la memoria M configurada para guardarse ante
un corte de alimentacin, y tambin valores seleccionados escritos bajo el control del programa
de usuario
Cartucho de memoria: memoria no-voltil extrable, utilizada para guardar los bloques de programa, de datos y del sistema, recetas, registros de datos (data logs) y valores forzados. Ver el
Manual del Sistema S7-200.
Pgina 12 de 56
El S7-200 permite definir hasta 6 reas remanentes para seleccionar las reas de memoria que
deban respaldarse cuando se interrumpa la alimentacin. Pueden definirse rangos de direcciones
en las reas de memoria V, M, C y T.
Excepciones:
En el caso de los temporizadores, slo pueden respaldarse los que tienen retardo a la conexin
con memoria (TONR).
La configuracin por omisin para los primeros 14 bytes de la memoria M es que sean noremanentes.
Para los temporizadores y contadores, slo se pueden respaldar los valores actuales: los bits de
los temporizadores y de los contadores no son remanentes (se ponen a 0 en cada arranque de
la CPU).
Por omisin, el rango comprendido entre MB0 y MB13 es no-remanente. Si se lo define como
remanente, se habilita una caracterstica especial que guarda automticamente estos 14 bytes
en la memoria no-voltil al cortarse la alimentacin.
Para definir las reas remanentes:
1) En la Barra de Navegacin, hacer click sobre Bloque del Sistema y seleccionar reas Remanentes, como se ve en la figura siguiente:
Los rangos mostrados en la figura son los valores por omisin, los que se configuran automticamente al pulsar el botn Estndar (derecha, arriba).
2) Seleccionar las reas de memoria que se desea respaldar ante un corte de alimentacin:
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 13 de 56
en la columna rea de datos elegir el tipo de memoria a respaldar (VB, VW, VD, MB, MW,
MD, T C)
en la columna Offset indicar la direccin inicial
en la columna N de elementos indicar cuantos elementos (incluido el ltimo) del tipo de
memoria elegido se van a respaldar
hacer click en Aceptar.
3) Cargar el bloque de sistema modificado en el S7-200.
4.1.2. Marca Especial SM0.2
El bit SM0.2 es una marca especial que se activa durante un ciclo de scan si se perdieron los datos
remanentes debido a un corte de energa muy prolongado (lo que descarga el capacitor de alto
rendimiento y/o la pila). Al retornar la energa el bit se pone en 1, lo cual provoca que toda la
memoria RAM de usuario se ponga en 0. El bit puede usarse como un bit de error de memoria,
como un mecanismo para invocar una secuencia de arranque especial.
4.1.3. Marca Especial SM0.3
El bit SM0.3 es una marca especial que se activa durante un ciclo de scan cuando se pasa a modo
RUN a partir de una condicin de encendido. Se lo puede usar para proveer un tiempo de calentamiento previo antes de arrancar una operacin.
4.2.
Al conectarse la alimentacin, el S7-200 comprueba la memoria RAM para verificar si el condensador de alto rendimiento y el cartucho de pila opcional respaldaron los datos almacenados en la
misma. En caso afirmativo:
las reas remanentes de la memoria de datos de usuario en RAM no se modifican
las reas correspondientes de la memoria V no-voltil (en EEPROM) se copian en las reas no
remanentes de la memoria V en la RAM de la CPU
el programa de usuario y la configuracin de la CPU tambin se restablecen desde la memoria
no-voltil
todas las dems reas no remanentes de la RAM de la CPU se ponen a 0.
Si el contenido de la RAM no se respald (p. ej. en el caso de un corte de alimentacin prolongado), el S7-200:
borra todas las reas de datos de usuario (tanto las remanentes como las no-remanentes)
activa la marca especial SM0.2 (datos remanentes perdidos) en el primer ciclo que le sigue a la
puesta en marcha
restablece la memoria V conforme con el contenido del bloque de datos en la memoria novoltil
restablece los primeros 14 bytes de la memoria M a partir de la memoria no-voltil, si estos
bytes fueron definidos previamente como remanentes.
Pgina 14 de 56
5.
Esta caracterstica, slo presente en CPUs versiones 224XP y superiores, es un reloj implementado
por hardware que sigue funcionando an ante cortes de energa (respaldo con batera o capacitor
de alto rendimiento). Este reloj permite al usuario mantenerse informado con los datos de fecha,
hora y da de la semana actuales de la CPU, los cuales pueden ser usados por el programa. Ver el
Manual del Sistema S7-200. Las operaciones disponibles pueden verse en el rbol de Operaciones
Reloj.
5.1.
La instruccin READ_RTC (Read Real-Time Clock) lee la fecha y la hora actuales del reloj por
hardware, y las copia en un buffer de 8 bytes que comienza en una direccin T (parmetro) especificada por el usuario.
Todos los valores estn codificados en formato BCD. La figura siguiente muestra el formato del
buffer de 8 bytes (T) (los valores mostrados estn expresados en hexadecimal):
Posicin:
Contenido:
T
Ao:
00 a 99
T+1
T+2
T+3
Mes:
01 a 12
Da:
01 a 31
Horas:
00 a 23
T+4
T+5
T+6
T+7
Minutos:
00 a 59
Segundos:
00 a 59
00
Da de la
Semana: 0 a 7
Una forma de utilizar la informacin obtenida es definir las variables VB10 a VB15 en la Tabla de
Estado: poniendo al PLC en modo Test Iniciar estado de tabla se podrn leer en tiempo real los
datos actuales del Reloj.
5.2.
La instruccin SET_RTC (Set Real-Time Clock) escribe en el reloj por hardware la fecha y hora
cargadas previamente en un buffer de 8 bytes que comienza en una direccin T (parmetro) especificada por el usuario. Todos los valores deben codificarse en formato BCD.
Pgina 15 de 56
6.
Las operaciones de control permiten ciertas acciones especiales en los programas (como la seleccin condicional, bucles, bifurcaciones, etc.), permitiendo variar o alterar la secuencia normal de
ejecucin de un programa.
Ejemplos:
La operacin Fin condicionado (END) finaliza el ciclo actual en funcin
de la combinacin lgica precedente.
Se la puede utilizar en el Programa Principal, pero NO en subrutinas ni en
rutinas de interrupcin.
STEP 7 Micro/WIN agrega automticamente un fin absoluto al programa principal del usuario.
La operacin Borrar temporizador de vigilancia (WDR = Watchdog Reset) re-dispara el perro guardin (temporizador de vigilancia) de la CPU
para prolongar el tiempo de ciclo sin que se indique un error de vigilancia.
Esta operacin se debe utilizar con mucha cautela: si se utilizan bucles para que no finalice el ciclo
o para prolongarlo excesivamente, es posible que algunos procesos se ejecuten incorrectamente
no se ejecuten hasta que se complete el ciclo, entre otros: comunicaciones, actualizacin de E/S,
temporizadores con resolucin de 10 ms y 100 ms, etc.
Como una regla general, debera usarse la instruccin WDR si se espera que el tiempo de scan
pueda exceder los 500 mseg, si cabe la posibilidad de una rfaga de actividad de interrupciones
que pueda impedir volver al scan principal por ms de 500 mseg.
La operacin Parar (STOP) termina la ejecucin del programa provocando una transicin de la CPU S7-200 del modo RUN al modo STOP.
Si la instruccin STOP se ejecuta dentro de una rutina de interrupcin, la misma termina inmediatamente, y todas las interrupciones pendientes se ignoran. Las acciones remanentes del ciclo de
scan se completan, incluyendo la ejecucin del programa principal, y la transicin de modo RUN a
modo STOP se efecta al final de ciclo de scan actual.
Esta instruccin se activa generalmente con marcas especiales que indican alguna situacin anmala que pueda implicar algn peligro de funcionamiento, p.ej., SM5.0 (error de E/S), SM0.2
(prdida de datos remanentes), etc.
Pgina 16 de 56
6.1.
Saltos y bucles
Estas operaciones permiten que el flujo del programa siga caminos distintos a los preestablecidos
por la secuencia principal, o repetir ciclos y ahorrar pasos de memoria.
6.1.1.
Las instrucciones FOR/NEXT pueden usarse para delimitar un bucle que se repite un nmero
especificado de veces. Cada instruccin FOR requiere su correspondiente instruccin NEXT. Los
bucles FOR/NEXT pueden anidarse (un bucle dentro de otro) hasta una profundidad de 8.
En el ejemplo siguiente, el bucle FOR/NEXT interno ejecuta 3 veces las instrucciones indicadas
como (........), lo cual se repite 100 veces, controlado por el bucle FOR/NEXT externo.
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 17 de 56
INDX, INIT y FINAL referencian variables en formato de palabra (W); INIT y FINAL (nicamente) admiten tambin valores constantes.
Al habilitarse el bucle, el valor de INIT se copia en INDX. El valor de INDX se incrementa en una
unidad despus de cada ejecucin de las instrucciones entre FOR y NEXT, y el resultado se compara con el valor FINAL: si INDX > FINAL el bucle se termina.
Si el valor INIT es mayor que FINAL, el bucle no se ejecuta.
7.
SUBRUTINAS
Las subrutinas son bloques de cdigo tiles en aquellos casos en que se debe ejecutar una funcin
repetidamente: en lugar de re-escribir la lgica en cada lugar del programa principal en donde se
quiera que ocurra la funcin, se puede escribir la lgica una sola vez en una subrutina, e invocar
(llamar) a la misma tanto veces como sea necesario en el programa principal ( en otra subrutina).
Los principales beneficios derivados del uso de subrutinas son:
se reduce el tamao global del cdigo
el programa se estructurar de forma ms ordenada, dividindose en bloques ms pequeos y
manejables. Las instrucciones usadas en el programa principal determinan qu subrutina especfica se ejecutar: cuando se invoca (se llama) su ejecucin, la subrutina lleva a cabo su
programa hasta el final, y entonces el sistema devuelve al control al programa principal en el
Network desde el cual se invoc a la subrutina.
la subdivisin es beneficiosa cuando se debe depurar a un programa de sus errores, cuando
se debe realizar algn mantenimiento (modificaciones, adecuaciones, optimizaciones, ...) al
Pgina 18 de 56
Creacin de la subrutina
(1)
Debe recordarse que en todo programa existe una Tabla de Variables Locales separada para cada Unidad de Organizacin del Programa (del ingls POU = Program Organizational Unit), en 64 bytes de la memoria L.
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 19 de 56
Notas:
si una subrutina emplea variables locales (vlidas nicamente en el mbito de la subrutina), las
mismas deben definirse como tipo TEMP en la TVL que aparece cuando se selecciona la solapa de la subrutina.
no se deben usar instrucciones END ni RET para terminar una subrutina. Las instrucciones de
terminacin incondicional de una POU (END para el programa principal, RET para subrutinas,
y RETI para rutinas de interrupcin) las insertan automticamente los Editores.
opcionalmente, se puede usar la instruccin de retorno condicional desde subrutina (RET con
condiciones), la cual termina una subrutina basada en la lgica precedente.
STEP 7-Micro/WIN crea las subrutinas con un nombre simblico por omisin: SBR_0, SBR_1,
..., etc. El usuario puede renombrarlas en el rbol de Operaciones.
7.2.
Opcionalmente, una subrutina puede contener parmetros cuyos valores se le pasan en el momento de ser llamada por otra POU. Estos parmetros se definen tambin en la TVL de la subrutina. Cada parmetro tiene asociados un nombre simblico, un tipo de variable, y un tipo de dato.
El lmite mximo de parmetros de entrada/salida para cada llamada a subrutina es 16: si se excede este lmite se devuelve un error.
el campo tipo de variable (Tipo var.) en la TVL define si el parmetro se transfiere a la subrutina (IN), a y desde la subrutina (IN_OUT), desde la misma (OUT). La tabla que sigue describe estos tipos. Para insertar el registro de un parmetro, coloque el cursor en el campo Tipo
var. sobre el tipo de variable (IN, IN_OUT u OUT) que se quiere insertar, haga click con el
botn derecho del mouse y seleccione Insertar Fila Insertar Fila debajo.
Tipo de Parmetro
Descripcin
IN
El parmetro se transfiere a la subrutina. Puede ser una constante (como 16#1234), el valor
contenido de una direccin directa (como VB10), en una direccin indirecta (como *AC1).
IN_OUT
OUT
TEMP
el campo Tipo de datos en la TVL define el tamao y formato del parmetro. Sobre este campo, haga click con el botn derecho del mouse y seleccione el tipo deseado en el men de opciones que se desplegar. La tabla que sigue describe los tipos de datos permitidos.
Pgina 20 de 56
Descripcin
Este tipo se utiliza para entradas y salidas binarias simples.
BYTE, WORD,
DWORD
Estos tipos identifican parmetros de entrada o de salida sin signo, compuestos por 1, 2 4
bytes, respectivamente.
INT, DINT
Estos tipos identifican parmetros de entrada o de salida con signo, compuestos por 2 4
bytes, respectivamente.
REAL
STRING
Circulacin de
corriente
Este tipo identifica un valor en coma flotante IEEE de precisin simple (4 bytes).
Este tipo de datos sirve de puntero (4 bytes) a una cadena.
La circulacin de corriente booleana slo se permite en las entradas binarias (BOOL). Esta
declaracin le indica a STEP 7-Micro/WIN que este tipo de parmetro de entrada es el
resultado de la circulacin de la corriente conforme a una combinacin de operaciones
lgicas con bits. Las entradas booleanas de circulacin de corriente deben aparecer en la
TVL antes de cualquier otro tipo de entrada. Slo los parmetros de entrada pueden usarse as.
La figura siguiente muestra como se aplicaron estos conceptos para crear la subrutina SBR_TEST
(nombre asignado por el usuario a la subrutina SBR_0), cuyo comportamiento, cada vez que se la
invoca, responde a las siguientes premisas:
si el parmetro de entrada Inicializar (valor binario) vale 1, el parmetro de salida Tmr_Preset
se fuerza al valor 20
si el parmetro de entrada Actualizar (byte) vale 17 (00010001 binario, 0x11 hexadecimal),
Tmr_Preset se incrementa en 10.
Pgina 21 de 56
7.3.
Despus de haber insertado una nueva subrutina, y de definir sus parmetros (si los tiene) en la
TVL de dicha subrutina, se pueden colocar llamadas a la misma en otra POU del programa. Estas
llamadas pueden hacerse desde el programa principal, desde otra subrutina, desde una rutina
de interrupcin. La recursin (una subrutina que se llama a s misma) no est prohibida, pero debe
usarse con extremo cuidado.
Un programa puede soportar hasta 64 subrutinas (128 en una CPU 226XM). Desde el programa
principal se pueden anidar subrutinas (llamar a una subrutina dentro de otra), hasta una profundidad mxima de 8 niveles. Esto no es vlido para rutinas de interrupcin: no se pueden hacer
llamadas a subrutinas dentro de una subrutina invocada por una rutina de interrupcin.
Importante !: si se inserta una llamada a subrutina y a posteriori se modifica la TVL de
la misma, la llamada se vuelve invlida. Se debe entonces borrar la llamada invlida y
reemplazarla por otra llamada actualizada que reflejar los parmetros correctos.
Nota: los acumuladores (AC0 a AC3) son comunes tanto para las subrutinas como para
la rutina que los llama. No se efecta ninguna operacin automtica de respaldo ni de
restitucin de sus contenidos debida al uso de subrutinas.
Si la subrutina emplea parmetros, la asignacin de los valores de los mismos a la memoria local
en la subrutina se efecta como sigue:
los valores de los parmetros se asignan a la memoria local en el orden especificado por la operacin llamar a subrutina, comenzando esos parmetros en L0.
de 1 a 8 valores de parmetros binarios consecutivos se asignan a un nico byte comenzando
en Lx.0 y continuando hasta Lx.7.
los valores de byte, palabra y palabra doble se asignan a la memoria local en fronteras de byte
(LBx, LWx LDx).
En la operacin de llamada a subrutina con parmetros, stos deben concordar exactamente con
las variables definidas en la TVL de la subrutina. Los parmetros deben ordenarse con los parmetros de entrada (IN) en primer lugar, seguidos por los de entrada/salida (INOUT), y finalmente
por los de salida (OUT).
Continuando el ejemplo del tem precedente, la figura siguiente muestra una parte de un programa principal que invoca a la subrutina pasndole como parmetros:
el estado de la entrada I0.0 (Recarga) como parmetro Inicializar
el estado del byte IB1 como parmetro Actualizar
y utiliza el parmetro de salida Tmr_Preset devuelto por la subrutina como valor de preseleccin
(PT) para el temporizador T37.
Cuando se desea recargar el valor de preseleccin del temporizador con el valor 20, se activa la
entrada I0.0; cuando se desea incrementar dicho valor en 10, se hace cambiar el byte IB1 desde un
valor cualquiera al valor 17.
Pgina 22 de 56
Tabla de
Smbolos Globales
La tabla que se ve en la parte superior de la figura es la Tabla de Smbolos Globales del proyecto,
que no debe confundirse con la Tabla de Variables Locales.
8.
8.1.
VARIABLES ANALGICAS
Entradas Analgicas (AI)
El S7-200 convierte un valor analgico (tal como una temperatura un voltaje) en un valor digital
de 16-bits (palabra): esta operacin se denota en ingls con la sigla ADC (Analog to Digital Conversion). A estos valores se accede con el identificador de rea (AI), tamao del dato (W), y direccin del byte inicial. Como las entradas analgicas son palabras que siempre comienzan en un byte
par (como 0, 2, 4), el acceso se hace especificando direcciones como AIW0, AIW2, AIW4. Los
valores de entradas analgicas son solamente de lectura.
8.2.
El S7-200 convierte un valor digital en 16-bits (palabra) a una corriente voltaje, proporcionales al
valor digital: esta operacin se denota en ingls con la sigla DAC (Digital to Analog Conversion).
Estos valores se escriben con el identificador de rea (AQ), tamao del dato (W), y direccin del
byte inicial. Como las salidas analgicas son palabras que siempre comienzan en un byte par (como 0, 2, 4), el acceso se hace especificando direcciones como AQW0, AQW2, AQW4. Los valores de salidas analgicas son solamente de escritura.
Pgina 23 de 56
8.3.
El manejo de variables analgicas (por ejemplo la tensin entregada por una termocupla equivalente a la temperatura sensada, o la tensin equivalente a un sensor de nivel) no se puede realizar
desde la bornera de entradas de la CPU (periferia embebida), debido a que esas seales requieren
un tratamiento previo (conversin a formato digital) antes de poder procesarlas internamente.
Esta funcin est a cargo de mdulos de expansin especiales que, adems de realizar la conversin analgica/digital, permiten adaptar niveles, rangos de trabajo y tipo de las seales (tensin o
corriente).
Como ejemplo tomaremos al mdulo EM235, que permite conectar 4 entradas analgicas y una
salida analgica, realizando las conversiones con una resolucin de 12 bits, siendo rpido y de bajo
costo: puede convertir una seal de entrada analgica a su correspondiente valor digital en 149
s. La seal de entrada se convierte cada vez que el programa accede a la entrada analgica en
cuestin. Los tiempos de conversin mencionados se deben agregar al tiempo de ejecucin bsico
de la operacin utilizada para acceder a la entrada analgica.
El EM235 proporciona un valor digital no procesado (sin linealizacin ni filtrado) que corresponde
a la corriente tensin analgicas en los bornes de entrada del mdulo. Puesto que se trata de un
mdulo de alta velocidad, puede seguir los cambios rpidos en la seal de entrada (incluyendo
ruido interno y externo). Las diferencias de un muestreo a otro, causadas por el ruido sobre una
seal de entrada analgica constante que cambie lentamente, se pueden reducir promediando
una cantidad de lecturas.
El EM235 se configura utilizando llaves DIP, las cuales permiten seleccionar el rango y resolucin
de las entradas analgicas. Todas las entradas del mdulo se configuran al mismo rango y formato.
La seleccin incluye: operacin unipolar/bipolar, ganancia y atenuacin. Todas las entradas son del
tipo diferencial.
Por ejemplo, para operacin unipolar, se pueden elegir los siguientes rangos y resoluciones:
Rango mximo
Resolucin de la CAD
0 a 50 mV
12,5 V
0 a 100 mV
25 V
0 a 500 mV
125 V
0a1V
250 V
1,25 mV
2,5 mV
0a5V
0 a 10 V
0 a 20 mA
5 A
Pgina 24 de 56
Anlogamente: la salida analgica para un nico mdulo EM235 se direccionar como AQW0, y
para un mdulo adicional, AQW2.
8.4.
Calibracin de entradas
Potencimetros Analgicos
El S7-200 provee potencimetros para efectuar ajustes analgicos. Los mismos estn ubicados
debajo de la cubierta del acceso frontal del mdulo.
Estos potencimetros se pueden usar para aumentar reducir valores almacenados en bytes de la
Memoria Especial (SMB). Estos son valores slo-de-lectura que se pueden usar en el programa
para varios propsitos, como p.ej. actualizar el valor actual de un temporizador contador, introducir cambiar valores predeterminados, configurar lmites.
Los ajustes se hacen con un pequeo destornillador: girndolo hacia la derecha se incrementar el
valor, y hacia la izquierda se lo decrementar.
El byte SMB28 contiene el valor digital que representa la posicin del Potencimetro Analgico
#0; el byte SMB29 contiene el valor digital que representa la posicin del Potencimetro Analgico #1. Ambos tienen un rango de 0 a 255, y una repetibilidad de 2 cuentas.
Pgina 25 de 56
El programa del usuario puede utilizar estos valores de solo-lectura para diversos propsitos. Por
ejemplo: actualizar el valor de preset de temporizadores o contadores, ajustando los mismos
mientras el PLC opera en modo RUN (sin necesidad de pasarlo a modo STOP y re-transferir programa con valores modificados).
Ejemplo:
En el pequeo trozo de programa que sigue, el valor digital del Potencimetro Analgico #0 se
emplea como preseleccin para el Temporizador T33. Dado que el parmetro PT del mismo slo
admite el formato de palabra (entero en 16 bits), el valor en SMB38 (byte) se convierte a entero
con la operacin B_I (convertir byte a entero) y se guarda en la palabra VW100, la que luego se
usa como valor predeterminado para el Temporizador T33:
9.
INTERRUPCIONES
Una interrupcin es una seal recibida por el procesador, indicando un evento que necesita atencin inmediata. La interrupcin alerta al procesador de que existe una condicin de alta prioridad
que requiere suepender la ejecucin del cdigo que se est ejecutando actualmente, para pasar a
ejecutar un cdigo especfico para procesar el evento. Este cdigo, generalmente pequeo, se
denomina Subrutina de Servicio de Interrupcin (ISR = Interrupt Service Routine). La interrupcin es temporaria, y cuando finaliza la ISR el procesador contina con la ejecucin del programa
interrumpido.
Las interrupciones son gobernadas por eventos (internos externos), por lo cual, antes de que se
pueda invocar una ISR, se debe establecer una asociacin entre el evento que interrumpe y el
segmento de cdigo que se desea ejecutar cuando ocurre el evento. Cada uno de los eventos reconocidos tiene asignado un nmero de evento (ver: Tabla de asignacin de Eventos de Interrupcin), y la asignacin se realiza usando la instruccin Asignar interrupcin (ATCH = ATtaCH Inte-
Pgina 26 de 56
rrupt), la que asocia el nmero de evento con una ISR (especificada por un nmero de Rutina de
Interrupcin). Al hacer la asignacin, la interrupcin queda habilitada automticamente.
Es posible asignar ms de un evento a la misma ISR, pero lo contrario no es cierto: un evento no
puede asignarse a ms de una ISR.
La operacin Inhibir todos los eventos de interrupcin (DISI = DISable Interrupts) permite inhabilitar TODAS las interrupciones. En este caso, cada vez que ocurre un evento de interrupcin el
mismo se encola hasta que las interrupciones se habiliten nuevamente, lo cual se efecta con la
operacin Habilitar todos los eventos de interrupcin (ENI = ENable Interrupts).
Es posible inhabilitar interrupciones individualmente rompiendo la asociacin entre el evento de
interrupcin y su correspondiente ISR: esto se efecta con la operacin Desasociar interrupcin
(DTCH = DeTaCH interrupt), la cual devuelve la interrupcin a un estado inactivo ignorado.
Reglas generales de uso de interrupciones
El procesamiento de interrupciones provee una reaccin rpida a eventos internos externos de
inters especial. El cdigo de estas ISR debera optimizarse para realizar una tarea especfica, y
luego devolver rpidamente el control al Programa Principal. Mantener a una ISR breve y precisa
hace que su ejecucin sea rpida, y que otros procesos no permanezcan suspendidos por perodos
de tiempo largos, lo cual, bajo condiciones inesperadas, podra causar operaciones anmalas del
equipo controlado por el Programa Principal.
Restricciones
En una ISR no se pueden usar las instrucciones DISI, ENI, HDEF, LSCR ni END.
Los eventos de interrupcin pueden ocurrir en un instante imprevisible. La ejecucin de la ISR,
puede afectar la lgica de contactos, bobinas y acumuladores, por lo cual, antes de comenzar la
ejecucin de dicho cdigo, el sistema salva (almacena) automticamente en memoria la pila lgica, los registros acumuladores, y los bits de memoria especial (SM) que indican el estado del acumulador y de las operaciones. Al completarse la ejecucin de la ISR, el sistema repone automticamente en sus orgenes la informacin salvada. Esto evita perturbaciones al Programa Principal
causadas por bifurcaciones a/desde una ISR.
9.1.
Se puede tener un mximo de 128 interrupciones en un programa. Para crear una ISR, el programador puede usar alguno de los siguientes mtodos:
a) Desde el men Edicin, elegir Insertar Interrupcin
b) Desde el rbol de operaciones, hacer click con el botn derecho sobre Bloque de programa y
seleccionar Insertar Interrupcin del men emergente
c)
Desde la ventana del Editor de Programa, hacer click con el botn derecho y seleccionar Insertar Interrupcin del men emergente
El Editor de Programa dejar de mostrar la POU previa y pasar a mostrar la nueva ISR. Una nueva solapa aparecer al pie del Editor de Programa, identificando la nueva ISR.
Pgina 27 de 56
9.2.
El puerto de comunicaciones serie del S7-200 puede ser controlado por el programa, lo cual se
denomina modo de operacin Freeport. Ver detalles en el Manual del Sistema S7-200.
9.2.2.
Interrupciones de Entrada/Salida
Pgina 28 de 56
Descripcin de la Interrupcin
Grupo de Prioridad
Soportado por:
Prioridad en
el Grupo
212
215
SI
SI
0*
SI
SI
23
Comunicaciones
0*
SI
24
(el ms alto)
25
1*
26
1*
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
12
SI
SI
13
SI
14
SI
15
10
SI
16
11
SI
17
12
SI
18
13
SI
19
14
SI
20
15
SI
10
Interrupcin temporizada 0
11
Interrupcin temporizada 1
Temporizado
SI
21
(el ms bajo)
SI
22
SI
Discreto
(medio)
SI
SI
(*)
Puesto que la comunicacin es inherentemente half-duplex, la transmisin y la recepcin tienen la misma prioridad.
(**) Si el evento 12 (HSC0 CV=PV) se asigna a una interrupcin, entonces ni el evento 0 ni el evento 1 pueden
asignarse a interrupciones. Del mismo modo, si el evento 0 el evento 1 se asignan a interrupciones, entonces el
evento 12 no se puede asignar.
Pgina 29 de 56
Descripcin de la Interrupcin
Grupo de
Prioridad
Prioridad
en el
Grupo
224
XP
221
222
224
226
226
XM
SI
SI
SI
SI
SI
SI
SI
SI
23
SI
SI
SI
SI
24
25
26
Comunicaciones
SI
(el ms alto)
SI
SI
19
SI
SI
SI
SI
20
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
12
HSC0 CV=PV
10
SI
SI
SI
SI
27
11
SI
SI
SI
SI
28
Discreto
12
SI
SI
SI
SI
13
HSC1 CV=PV
(medio)
13
SI
SI
14
14
SI
SI
15
15
SI
SI
16
HSC2 CV=PV
16
SI
SI
17
17
SI
SI
18
18
SI
SI
32
HSC3 CV=PV
19
SI
SI
SI
SI
29
HSC4 CV=PV
20
SI
SI
SI
SI
30
21
SI
SI
SI
SI
31
22
SI
SI
SI
SI
33
HSC5 CV=PV
23
SI
SI
SI
SI
Pgina 30 de 56
Grupo de
Prioridad
Descripcin de la Interrupcin
10
Interrupcin temporizada 0
11
Interrupcin temporizada 1
21
22
Prioridad
en el
Grupo
224
XP
221
222
224
226
226
XM
SI
SI
SI
SI
Temporizado
SI
SI
SI
SI
(el ms bajo)
SI
SI
SI
SI
SI
SI
SI
SI
Nota 1: las interrupciones basadas en tiempo se habilitan y arrancan cuando se les asigna una ISR. Durante la
asignacin el sistema toma los valores de SMB34 y SMB35, de modo que modificaciones subsecuentes de los
mismos no afectarn al perodo del ciclo. Para cambiar el perodo, se lo debe modificar, y luego volver a asignar la
ISR al evento.
Al hacerse la re-asignacin cualquier valor acumulado anteriormente se vuelve a cero, y la temporizacin comienza
con el nuevo valor.
Nota 2: una vez habilitadas, estas interrupciones ocurren continuamente, ejecutando la ISR asignada cada vez que
expira el perodo especificado. Si se sale del modo RUN se desasigna la ISR, la Interrupcin Temporizada se inhabilita. No obstante, si se ejecuta la instruccin DISI las Interrupiones Temporizadas continuarn ocurriendo,
ponindose en cola de espera hasta que la cola se llene hasta que se re-habiliten las interrupciones.
9.3.
El criterio de atencin de las interrupciones es la primera que llega es la primera que se atiende,
dentro de sus respectivos Grupos de Prioridad. Slo una ISR puede estar activa en cualquier momento: una vez que comienza la ejecucin de una ISR, la misma prosigue hasta su conclusin. No
puede ser interrumpida, ni siquiera por un evento de mayor prioridad. Las interrupciones que ocurran mientras se est procesando otra interrupcin se ponen en una cola de espera para su procesamiento posterior.
Cada Grupo de Prioridad tiene su propia cola de espera, cuya capacidad se indica a continuacin:
Cola
Comunicaciones
Entrada/Salida
16
16
Temporizadas
Potencialmente pueden ocurrir ms interrupciones de las que puede contener una cola. El sistema
mantiene bits de estado que informan desbordes (overflow) de colas, identificando el tipo de
evento de interrupcin que se ha perdido. Estos bits deben usarse nicamente dentro de una ISR,
dado que se ponen a cero cuando la cola se vaca y el control se devuelve al Programa Principal: su
valor es 0 cuando no ocurri un desborde, y 1 cuando la cola est llena:
Pgina 31 de 56
Descripcin
9.4.
Bit de memoria SM
Cola de Comunicaciones
SM4.0
SM4.1
SM4.2
La operacin Desasociar interrupcin (DTCH) desasocia un evento de interrupcin (EVNT) de todas las rutinas de interrupcin,
deshabilitando as el evento. La operacin DISI inhibe TODOS los
eventos de interrupcin, en tanto que la operacin DTCH inhibe
solamente ciertos eventos de interrupcin, eliminando la asociacin entre el evento y la correspondiente ISR, deolviendo la interrupcin a un estado inactivo o ignorado.
La operacin Borrar evento de interrupcin (CLR_EVNT) elimina
todos los eventos de interrupcin del tipo EVNT de la cola de interrupciones. Utilice esta operacin para eliminar de la cola de interrupciones los eventos de interrupcin indeseados.
9.5.
Se pueden compartir datos entre el Programa Principal y una ms ISRs. Como no es posible
predecir cundo se generar una interrupcin, es deseable limitar la cantidad de variables usadas
tanto por la ISR como en otro lugar del programa. Pueden surgir problemas de consistencia de
datos compartidos debido a la accin de las ISRs cuando la ejecucin de i nstrucciones en el Programa Principal es interrumpida por eventos de interrupcin. Se recomienda usar la Tabla de Variables Locales (LVT) de la ISR para asegurar que esta ltima utilice nicamente la memoria
temporaria y no sobre-escriba datos usados en algn otro segmento de programa.
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 32 de 56
El programador puede aplicar algunas tcnicas para asegurar que los datos se comparten correctamente entre el Programa Principal y las ISRs. Estas tcnicas bien restringen las formas de acceso a las posiciones de memoria compartida, impiden la interrupcin de secuencias de instrucciones que usan memoria compartida.
a) Para un programa STL (STatement List)(AWL) que comparte una nica variable (byte, palabra doble-palabra):
el acceso compartido correcto se puede asegurar almacenando los valores intermedios de
operaciones sobre datos compartidos nicamente en posiciones de memoria no-compartidas
en acumuladores.
b) Para un programa LAD (LADder)(KOP) que comparte una nica variable (byte, palabra
doble-palabra):
el acceso compartido correcto se puede asegurar estableciendo la convencin de que el acceso a posiciones de memoria compartida debe hacerse usando nicamente instrucciones de
Movimiento (MOVB, MOVW, MOVD, MOVR). Aunque muchas instrucciones LAD estn
compuestas de secuencias interrmpibles de instrucciones STL, las instrucciones de Movimiento citadas estn compuestas por una nica instruccin STL, cuya ejecucin no puede ser
afectada por eventos de interrupcin.
c)
9.6.
Desde una ISR se puede invocar un nivel de anidamiento de subrutinas. La pila lgica y los acumuladores se comparten entre la ISR y la subrutina invocada.
Ejemplo:
El pequeo trozo de programa que sigue utiliza una interrupcin temporizada para leer el valor de
una entrada analgica a intervalos regulares:
en el Network 1 del Programa Principal (inicializacin) se ajusta a 100 mseg el perodo de la Interrupcin Temporizada 0; a continuacin se asocia esta interrupcin (evento 10) con la ISR INT_0. Finalmente, se habilitan todas las interrupciones.
en el Network 1 de la ISR INT_0 se lee (cada 100 mseg) la entrada analgica AIW4.
Pgina 33 de 56
Network 1
Network 1
SM0.1
SM0.0
MOV_B
EN
ENO
100
IN
OUT
EN
SMB34
AIW4
MOV_W
ENO
IN
OUT
VW100
ATCH
EN
INT_0
10
ENO
INT
EVNT
ENI
Modo
221
222
CPU
224
Monofsico
4 a 30 KHz
4 a 30 KHz
6 a 30 KHz
Bifsico
2 a 20 KHz
2 a 20 KHz
4 a 20 KHz
224XP
4 a 30 KHz
2 a 200 KHz
3 a 20 KHz
1 a 100 KHz
226
6 a 30 KHz
4 a 20 KHz
Pgina 34 de 56
Pgina 35 de 56
Antes de poder usar un contador rpido se debe ejecutar una instruccin HDEF para seleccionar su modo de operacin. Normalmente se usa el bit de primer scan (SM0.1) para invocar a
una subrutina de inicializacin que contenga la instruccin HDEF.
Para cada contador slo se puede ejecutar una nica operacin HDEF.
La operacin Activar Contador Rpido (HSC) configura y
controla el funcionamiento del contador rpido direccionado, basndose en el estado de los bits especiales del mismo.
El parmetro N indica el nmero del contador rpido.
HSC
EN
ID (0 a 5)
ENO
Ntese que no todos los contadores soportan todos los modos. Cada uno de los tipos se puede
usar:
a) sin entradas de arranque y de puesta a cero
b) con entrada de puesta a cero pero sin entrada de arranque
c) con ambas entradas, de puesta a cero y de arranque.
Esto define 12 modos de operacin posibles para todos los contadores rpidos. Un dcimotercer
modo, soportado nicamente por los contadores HSC0 y HSC3, permite:
para HSC0: contar el nmero de pulsos que salen de Q0.0
para HSC3: contar el nmero de pulsos que salen de Q0.1
Cada contador rpido dispone de entradas que soportan funciones como relojes, control del sentido de conteo, puesta a cero y arranque. Para los contadores bifsicos, ambos relojes pueden
funcionar a mxima frecuencia. En los modos en cuadratura (contadores A/B), se puede seleccionar entre una vez (1x) o cuatro veces (4x) la mxima velocidad de conteo. Todos los contadores
funcionan a sus velocidades mximas sin interferirse mutuamente.
Puesta a Cero: cuando se activa esta entrada, el valor actual se pone a cero y se mantiene as hasta que se desactiva la entrada.
Si la entrada de Puesta a Cero se activa mientras el Arranque est inactivo, la misma se ignora y el
valor actual del contador no cambia.
Arranque: cuando se activa esta entrada el contador puede contar. Mientras la entrada se mantiene desactivada, el valor actual del contador se conservar, ignorndose los eventos de reloj.
Si la entrada de Arranque se activa mientras la entrada de Puesta a Cero est tambin activa, tiene preeminencia la segunda: el valor actual se pone a cero.
Pgina 36 de 56
MODO
HSC
ENTRADAS
HSC0
I0.0
I0.1
I0.2
HSC1
I0.6
I0.7
I1.0
I1.1
HSC2
I1.2
I1.3
I1.4
I1.5
HSC3
I0.1
HSC4
I0.3
I0.4
I0.5
HSC5
I0.4
0
1
Reloj
Contador monofsico con control
de sentido de conteo interno
2
3
4
5
6
7
8
9
10
11
Reloj
Puesta a 0
Reloj
Puesta a 0
Reloj
Sentido
Reloj
Sentido
Puesta a 0
Reloj
Sentido
Puesta a 0
Reloj asc.
Reloj desc.
Reloj asc.
Reloj desc.
Puesta a 0
Reloj asc.
Reloj desc.
Puesta a 0
Reloj A
Reloj B
Reloj A
Reloj B
Puesta a 0
Reloj A
Reloj B
Puesta a 0
Arranque
Arranque
Arranque
Arranque
Pgina 37 de 56
12
Ntese tambin que todos los modos de HSC0 usan SIEMPRE I0.0, y que todos los modos de
HSC4 usan SIEMPRE I0.3, por lo que estos puntos de entrada NUNCA estn disponibles para otros
usos cuando se emplean estos contadores.
La actividad de las entradas de Puesta a Cero y Arranque puede configurarse utilizando bits de
marcas especiales (memoria SM), como muestra la Tabla siguiente:
HSC0
HSC1
HSC2
HSC4
SM37.0
SM47.0
SM57.0
SM147.0
-----
SM47.1
SM57.1
-----
SM37.2
SM47.2
SM57.2
SM147.2
La operacin de estas entradas se aplica a todos los modos que la utilizan. Como muestra la Tabla,
cuatro de los contadores tienen tres bits de control que se usan para configurar el estado activo de
las entradas de Puesta a Cero y Arranque, y tambin (para los contadores en cuadratura solamente) para seleccionar los modos 1x 4x. Estos bits estn localizados en el byte de control para el
contador respectivo, y se usan nicamente cuando se ejecuta la instruccin HDEF: una vez que se
ha ejecutado esta instruccin, la configuracin del contador no puede cambiarse, a menos que
primero se pase el PLC al modo STOP.
10.4.2. Configuracin del byte de control
Una vez definido el contador y el modo de conteo, se pueden programar los parmetros dinmicos
del mismo. Cada contador rpido tiene un byte de control que permite las siguientes acciones:
Habilitar o inhabilitar el contador
Controlar el sentido (slo en los modos 0, 1 y 2), o bien el sentido de conteo inicial (en los dems modos)
Cargar el valor actual
Cargar el valor predeterminado
La ejecucin de la instruccin HSC invoca el examen del byte de control y los valores asociados
(actual y predeterminado). La siguiente Tabla describe cada uno de estos bits de control:
Pgina 38 de 56
HSC0
HSC1
HSC2
HSC3
HSC4
HSC5
Descripcin
SM37.3
SM47.3
SM157.3
SM137.3
SM147.3
SM157.3
SM37.4
SM47.4
SM157.4
SM137.4
SM147.4
SM157.4
SM37.5
SM47.5
SM157.5
SM137.5
SM147.5
SM157.5
SM37.6
SM47.6
SM157.6
SM137.6
SM147.6
SM157.6
SM37.7
SM47.7
SM157.7
SM137.7
SM147.7
SM157.7
Habilitar al HSC:
0: inhabilitar el HSC 1: habilitar el HSC
Cada contador rpido dispone de un valor actual y un valor predeterminado: los dos son valores
enteros con signo en 32 bits. Para cargar un nuevo valor actual predeterminado en el contador
rpido es necesario configurar el byte de control y los bytes de memoria especial que contienen
los valores actual y/o predeterminado, y tambin ejecutar la instruccin HSC para que los nuevos
valores se transfieran al contador rpido. La Tabla siguiente muestra los bytes de memoria especial usados para estos fines:
Valor a cargar
HSC0
HSC1
HSC2
HSC3
HSC4
HSC5
SMD38
SMD48
SMD58
SMD138
SMD148
SMD158
SMD42
SMD52
SMD62
SMD142
SMD152
SMD162
Adems de estos bytes, tambin se puede leer (nicamente) el valor actual de cada contador rpido, utilizando el tipo de datos HC (valor actual del contador rpido) seguido del nmero de contador (0 ... 5), como indica la Tabla siguiente:
Valor a leer
HSC0
HSC1
HSC2
HSC3
HSC4
HSC5
Valor actual
HC0
HC1
HC2
HC3
HC4
HC5
El valor actual puede accederse directamente con operaciones de lectura, pero se lo puede escribir nicamente con la instruccin HSC.
10.4.4. Asignacin de interrupciones
Todos los modos de contador soportan un evento de interrupcin cuando el valor actual del contador rpido iguala al valor predeterminado cargado. Los modos que usan una entrada de Puesta a
Cero externa soportan una interrupcin cuando se activa dicha entrada. Todos los modos de contador, con excepcin de los modos 0, 1 y 2, soportan una interrupcin cuando cambia el sentido
de conteo.
Cada una de estas condiciones de interrupcin se puede habilitar inhabilitar por separado.
Nota: puede ocurrir un error fatal si se intenta bien cargar un nuevo valor actual, inhabilitar y
entonces re-habilitar el contador rpido desde el interior de una rutina de interrupcin por Puesta
a Cero externa.
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 39 de 56
HSC1
HSC2
HSC3
HSC4
HSC5
SM36.0
SM46.0
SM56.0
SM136.0
SM146.0
SM156.0
No usado
SM36.1
SM46.1
SM56.1
SM136.1
SM146.1
SM156.1
No usado
SM36.2
SM46.2
SM56.2
SM136.2
SM146.2
SM156.2
No usado
SM36.3
SM46.3
SM56.3
SM136.3
SM146.3
SM156.3
No usado
SM36.4
SM46.4
SM56.4
SM136.4
SM146.4
SM156.4
No usado
SM36.5
SM46.5
SM56.5
SM136.5
SM146.5
SM156.5
SM36.6
SM46.6
SM56.6
SM136.6
SM146.6
SM156.6
SM36.7
SM46.7
SM56.7
SM136.7
SM146.7
SM156.7
Nota: los bits de estado son vlidos nicamente mientras se est ejecutando la rutina de interrupcin del contador rpido. El propsito demonitorear el estado del contador es habilitar interrupciones para los eventos que sean relevantes para la operacin que se est realizando.
Pgina 40 de 56
Pgina 41 de 56
Para obtener ms informacin sobre los Contadores Rpidos consulte el Manual del Sistema S7200 en los documentos en el Campus Virtual, descrguelo del enlace:
https://www.swe.siemens.com/spain/web/es/industry/automatizacion/simatic/Documents/S720
0ManualSistema.pdf
Pgina 42 de 56
Ejemplo de aplicacin
Para fijar las ideas sobre los Contadores Rpidos se plantea el siguiente ejemplo utilizando el contador HSC1, con las siguientes premisas:
tipo de contador: en cuadratura (A/B), con puesta a Cero y Arranque (Modo 11)
sentido de conteo: inicialmente ascendente
nivel de actividad de la entrada de Arranque: alto
nivel de actividad de la entrada de Puesta a Cero: alto
velocidad: cudruple
valor actual inicial: 0
valor predeterminado: 50 pulsos de entrada
detectar lo antes posible que el valor actual alcanz el valor predeterminado
bit 6
Habilitar
HSC1
Actualizar
valor actual
bit 5
Actualizar
valor predet.
bit 4
bit 3
bit 2
bit 1
bit 0
Sentido de
conteo
Frecuencia de
conteo A/B
Nivel activo
Arranque
Nivel activo
Puesta a 0
Pgina 43 de 56
ISR INT_0
PROGRAMA PRINCIPAL
Pgina 44 de 56
El Network 1 de la ISR INT_0, asignada al evento 13 (CV = PV en HSC1) ejecuta las siguientes instrucciones:
carga (escribe) un nuevo valor actual igual a cero en la palabra doble SMD48
carga el valor binario 11000000 (= 16#C0 hexadecimal) en SMB47, provocando (ver Tabla siguiente):
que se mantenga habilitado el contador HSC1 (1xxx xxxx)
que se cargue (escriba) un nuevo valor actual (x1xx xxxx), cargado en la palabra doble
SMD48
reprograma el contador rpido HSC1 con la nueva configuracin
Byte SMB47
bit 7
bit 6
Habilitar
HSC1
Actualizar
valor actual
bit 5
Actualizar
valor predet.
bit 4
bit 3
bit 2
bit 1
bit 0
Sentido de
conteo
Frecuencia de
conteo A/B
Nivel activo
Arranque
Nivel activo
Puesta a 0
16#8D
IN
EN
500
OUT
SMB67
MOV_W
ENO
IN
EN
MOV_B
ENO
OUT
SMW68
MOV_DW
ENO
IN
OUT
SMD72
PLS
EN
ENO
Q0.X
Sin extendernos en detalles (que el lector podr encontrar en el Manual del Sistema S7-200):
a) la carga del valor hexadecimal 16#8D en el byte de configuracin SMB67 configura un tren de
pulsos (PTO) sobre la salida rpida Q0.0 con las siguientes caractersticas:
1xxx xxxx: habilitar el PTO
x0xx xxxx: seleccionar modo PTO
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 45 de 56
b) con los valores configurados en SMB67, la carga del valor 500 en la palabra SMW68 determina un ciclo de 500 mseg, y ...
c)
... la carga del valor 4 en la palabra doble SMD72 provocar la generacin de 4 pulsos separados 500 mseg
d) finalmente, la ejecucin de la instruccin PLS con valor 0 en su parmetro Q0.X lee los datos
cargados en las ubicaciones SMB67, SMW68 y SMD72, y programa el generador de tren de
pulsos sobre la salida Q0.0
El ambiente de programacin SIEMENS STEP 7-Micro/WIN Versin 4.0 permite programar los
PLC de la lnea SIMATIC S7-200 utilizando los siguientes lenguajes:
Lenguaje S7-200
KOP
LD:
FUP
AWL / STL
IL:
STEP 7-Micro/WIN no soporta el lenguaje SFC ni ningn otro equivalente al modelo Grafcet. En
su lugar, dentro del conjunto de las operaciones de Control del Programa, proporciona las de manejo del denominado Rel de Control Secuencial (SCR = Sequence Control Relay), cuyo funcionamiento representa muy bien el de una etapa de un Grafcet.
El Programa Principal en un PLC S7-200 consiste en instrucciones que se ejecutan secuencialmente
una vez por cada ciclo de scan del PLC. Para muchas aplicaciones resulta apropiado dividir lgicamente el Programa Principal en una serie de pasos operacionales, que reflejan los pasos dentro de
un proceso controlado (p.ej. una serie de operaciones de mquina). Una forma de hacer esto es
usar segmentos SCR, lo cual permite dividir el programa en una corriente simple de pasos secuenciales, en mltiples corrientes que pueden estar activas simultneamente. Es posible que una
corriente simple se derive en mltiples corrientes, y que mltiples corrientes re-converjan condicionalmente en una corriente simple.
Nota: no todos los modelos de la familia S7-200 soportan la caracterstica de Rel de Control
Secuencial.
Pgina 46 de 56
Un bit S (Sx.y) no se puede usar en ms de una rutina. Por ejemplo: si se us S0.1 en el Programa Principal, no se lo debe usar en una subrutina.
No est permitido saltar dentro fuera de un segmento SCR; no obstante, se pueden usar las
instrucciones JMP y LBL para saltar en el interior de un segmento SCR, para saltear segmentos SCR.
Pgina 47 de 56
Marcacin Inicial
Activar la Etapa 10 (representada por el segmento SCR S1.0) en el primer ciclo de scan.
Activar la lmpara L, conectada a la salida Q0.0, cuando est activa la Etapa 1 (representada
por el segmento SCR S0.1). Si se activa la entrada PB_arr (I1.7), la marcacin cambia de la Etapa 1 a la Etapa 2 (segmento SCR S0.2).
S0.1
1
SCR
Lmpara L
PB_arr
SM0.0
Q0.0
I1.7
S0.2
SCRT
SCRE
Nota 1: la marca especial SM0.0 es la condicin siempre cierta (=1). Es necesaria para que el
escaln tenga definida, al menos, una condicin antes de definir la salida.
Nota 2: no es obligatorio definir las Salidas dentro del segmento SCR: pueden tambin definirse en
una seccin separada, condicionndolas a las variables Sx.y.
Pgina 48 de 56
11.3.3.
Estando activada la Etapa 1 (S0.1) , al darse una orden de Marcha (I0.1) el sistema evoluciona
activando simultneamente dos secuencias, iniciadas respectivamente por las Etapas 2 (S0.2) y
3 (S0.3).
S0.1
SCR
Marcha
I0.1
2
S0.2
SCRT
S0.3
SCRT
SCRE
11.3.4.
Cuando dos secuencias concurrentes han finalizado, representado respectivamente por la Etapa 17 (S10.5) para una de ellas y por la Etapa 25 (S20.7) para la otra, ante un permiso de Habilitacin (I1.5) el sistema evoluciona activando una nica Etapa 4 (S1.3).
11.3.5.
A partir de la Etapa 1 (S0.1) el sistema puede evolucionar hacia una de dos secuencias excluyentes: una comenzando en la Etapa 2 (S0.2) cuando se activa la entrada A (I2.4) y la otra comenzando en la Etapa 3 (S0.3) cuando se activa la entrada B (I2.6) si la entrada A est inactiva.
Pgina 49 de 56
S0.1
SCR
A
A B
I2.4
S0.2
SCRT
I2.4
I2.6
S0.3
SCRT
SCRE
11.3.6.
Accin alternada
Mientras permanezca activada una llave M, se ejecutan en forma alternada dos secuencias,
comenzando siempre por la secuencia 1. Cuando se desactiva M se termina de ejecutar la secuencia actual y el sistema vuelve a las condiciones iniciales.
Variable
M
SQ
FSQ1
FSQ2
-------
Variable
Llave de marcha
Selector de secuencia
Fin de la Secuencia 1
Fin de la Secuencia 2
Etapa 1
Etapa 2
Etapa 3
Asignacin
I0.0
M0.0
I1.0
I1.1
S0.0
S0.1
S0.2
Notas:
No se han explicitado las acciones a ejecutar en las Secuencias 1 y 2. Las mismas pueden agregarse al programa, condicionadas por la activacin de la etapa correspondiente (2 3).
se han definido acciones (conmutacin de la seleccin de secuencia) asociadas con las transiciones entre las etapas 1 y 2 y la etapa 0. Estas acciones sern fugaces, ejecutndose exclusivamente en el momento del franqueo de la transicin respectiva.
La implementacin sobre PLC S7-200 utilizando SCR se da en la pgina siguiente.
Pgina 50 de 56
Pgina 51 de 56
Las opciones de configuracin del Bloque del Sistema estn habilitadas cuando el tipo y versin de
la CPU del proyecto las soportan.
Para cargar un Bloque del Sistema a una CPU descargarlo de la misma se debe establecer previamente una comunicacin entre la PC en donde reside el STEP 7-Micro/WIN y la CPU S7-200.
Entonces:
a) se puede cargar un Bloque del Sistema modificado en la CPU para proveerla con una nueva
configuracin, ...
b) ... bien, se puede descargar de la CPU un Bloque del Sistema existente en la misma para que
la configuracin del proyecto STEP 7-Micro/WIN se equipare con la de la CPU.
Se puede transferir a la CPU solo el Bloque del Sistema, lo que provocar que no se modifique el
programa principal y s nicamente las configuraciones modificadas de dicho bloque. Esto ahorrar tiempo en la transferencia del programa, dado que solo se cambiara un bloque.
Todas las configuraciones del Bloque del Sistema se listan a continuacin:
Puertos de comunicacin
Permite definir la direccin de la CPU, la velocidad de transferencia y otros parmetros relacionados con las comunicaciones a travs de los puertos 0 y 1. Este tema se desarrollar en un
Apunte complementario.
reas remanentes
Selecciona las reas de memoria V, M, T o C que se deban respaldar cuando se interrumpa la
alimentacin.
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 52 de 56
Contrasea
Permite definir 3 niveles de privilegio para acceder a las funciones y a la memoria del S7-200.
Configurar salidas
Permite fijar las salidas digitales y analgicas en estados seguros tras un cambio de RUN a STOP,
o bien conservar los estados existentes de las mismas antes del cambio a modo STOP
Filtrar entradas
entradas digitales: permite seleccionar un filtro de entrada que define un tiempo de retardo
(comprendido entre 0,2 ms y 12,8 ms) para algunas o bien para todas las entradas digitales
integradas. Este filtro rechaza los impulsos causados por interferencias y obliga a las lneas
de entrada a estabilizarse antes de aceptar los datos.
entradas analgicas: las CPUs 22x permiten filtrar cada una de las entradas analgicas utilizando el software. El valor filtrado es el promedio de un nmero preseleccionado de muestreos de la entrada analgica. Los datos de filtracin (nmero de muestreos y banda muerta)
se aplican a todas las entradas analgicas para las que se habilite esa funcin.
Bits de captura de impulsos
Permite capturar impulsos altos o bajos de tan corta duracin que no se registraran en todos
los casos, cuando la CPU lee las entradas digitales al comienzo del ciclo.
Tiempo en segundo plano
Permite ajustar la porcin del tiempo de ciclo permitida para la comunicacin en segundo plano. Si se incrementa el porcentaje de tiempo dedicado a procesar las peticiones de comunicacin, aumentar tambin el tiempo de ciclo, por lo que el proceso de control se ejecutar ms
lentamente. El ajuste estndar es 10%.
Configurar mdulos EM
Permite visualizar las configuraciones de mdulos de ampliacin inteligentes definidos en el
proyecto, guardadas en memoria V.
Configurar el LED
CPUs 224 y 226 nicamente: configura el LED "SF/DIAG" de la CPU para que se encienda en
amarillo si se fuerza una E/S o un valor en la CPU y/o se detecta un error de E/S.
Incrementar la memoria
CPUs 224 y 226 nicamente: permite inhibir la funcin de editar en modo RUN disponible en
STEP 7-Micro/WIN, lo cual incrementa la memoria disponible en la CPU para los programas de
usuario.
Se deja al lector analizar y aprender el uso de estas opciones con auxilio de la Ayuda del STEP 7Micro/WIN.
Pgina 53 de 56
El editor de bloques de datos permite asignar valores iniciales a datos solamente en la memoria V
(memoria de variables). Se pueden efectuar asignaciones a bytes, palabras o palabras dobles de la
memoria V. Los comentarios son opcionales.
La informacin de un Bloque de Datos se puede importar de un archivo de texto ASCII exportarla
a un archivo ASCII (ver Ayuda de STEP 7-Micro/WIN).
El uso del Bloque de Datos permite definir variables y valores que se necesite cambiarse con facilidad. Si no se han efectuado modificaciones al programa, solamente se necesitar transferir dicho
bloque a la CPU y no todo el programa completo.
13.1.
Las asignaciones de la memoria V del Bloque de Datos se pueden dividir en grupos funcionales
insertando nuevas solapas de pgina del Bloque de Datos (similar a lo que se hace para agregar
subrutinas rutinas de interrupcin).
Puede haber un mximo de 128 pginas. Si se usan asistentes de instalacin (wizards), se crean
pginas automticamente para soportar las funciones del asistente: en este caso, el nmero
mximo de pginas que se pueden crear es = 128 N de pginas creadas automticamente por
STEP 7-Micro/WIN. Las pginas creadas por el usuario se pueden renombrar y proteger.
La creacin de una pgina puede hacer por cualquiera de estos tres medios:
a) haciendo click en la cono Bloque de datos de la ventana de navegacin, y entonces seleccionando el comando de men Edicin Insertar Pgina de datos
b) en el rbol de operaciones, haciendo click sobre un cono de pgina de Bloque de Datos con el
botn derecho del mouse, y eligiendo Insertar Pgina de datos del men emergente.
c)
haciendo click con el botn derecho del mouse en la ventana "Bloque de datos", y eligiendo el
comando Insertar Pgina de datos del men emergente.
Nota: En la misma ventana, pulsando la tecla F1 se obtendr una ayuda detallada acerca de
cmo definir y usar la informacin de este bloque.
13.2.
El bloque de datos permite asignar valores iniciales o caracteres ASCII slo a la memoria V. Es posible asignar valores a direcciones de bytes (V o VB), palabras (VW) o palabras dobles (VD). Los
comentarios (precedidos de dos barras inclinadas //) son opcionales.
La primera lnea del Bloque de Datos debe contener una asignacin de direccin explcita (absoluta o simblica). Las lneas subsiguientes pueden contener asignaciones de direcciones explcitas o
implcitas. El editor asignar una direccin implcita si se introducen varios valores de datos tras
asignarse una sola direccin o si se introduce una lnea que contenga nicamente valores de datos. El editor asignar una cantidad suficiente de la memoria V, en funcin de las direcciones que
se hayan asignado previamente y del tamao (byte, palabra o palabra doble) del (de los) valor(es)
de datos.
El editor de Bloques de Datos es un editor de texto de formato libre. Por tanto, no hay campos
especficos definidos para un tipo determinado de informacin. Tras introducir una lnea, pulse la
LABORATORIO DE TECNOLOGAS DIGITALES E INFORMTICA INDUSTRIAL - DSI - FCEIA U.N.R
Pgina 54 de 56
tecla INTRO. El editor de datos formatea la lnea (alinea las columnas de direcciones, los datos y
los comentarios; pone las direcciones de la memoria V en maysculas) y la visualiza de nuevo. En
el editor de bloques de datos se pueden utilizar letras maysculas y minsculas. Adems, es posible introducir comas, tabuladores y espacios que sirvan de separadores entre las direcciones y los
valores de datos. Si en lugar de INTRO se pulsa CTRL-INTRO al completar una lnea de asignacin, la direccin se incrementar automticamente a la siguiente direccin disponible.
Si el editor detecta errores de sintaxis los muestra con una cruz roja en el margen izquierdo, como
se ve en la figura siguiente:
Pgina 55 de 56
Pgina 56 de 56