Anda di halaman 1dari 10

Operaciones de Salto

Automatizacin Industrial

ndice
TEMA Operaciones de Salto
1. Instrucciones de Salto
1.1 Salto Incondicional
1.2 Salto Condicional
2. Distribuidor de Saltos
3. Bucles
4. Saltos Condicionados

Introduccin
Principios de Saltos
Permiten interrumpir la ejecucin lineal del programa. STEP 7 soporta varias
instrucciones de Salto a Etiquetas (ir a etiqueta)
Consta de una condicin de salto y una etiqueta de salto (direccin)
La etiqueta consta de cuatro caracteres. No debe comenzar con carcter numrico
Los saltos pueden ser hacia delante o hacia atrs. Siempre dentro de un mdulo
Salto Incondicional
Salto Condicional, basado en el RLO, BR, OV / OS, CC1 y CC0
...

Salto

Ejemplo:

Si se ejecuta el salto las


instrucciones situadas
entre el salto y la etiqueta
no se procesan

Etiqueta

L
C 10
L
50
>I
JC
GR50
Programa
........
JU
SHAR
GR50: Programa en
etiqueta de salto
SHAR:

Introducciones de Salto
Operaciones de Salto en STL
JU

Etiqueta

Salto Inconcicional

JC

Etiqueta

Salto si RLO = 1

JCN

Etiqueta

Salto si RLO = 0

JCB

Etiqueta

Salto si RLO = 1 y salva RLO

JNB

Etiqueta

Salto si RLO = 0 y salva RLO

JBI

Etiqueta

Salto si BR = 1

JNBI

Etiqueta

Salto si BR = 0

JZ

Etiqueta

Salto si resultado de operacin igual a 0

JN

Etiqueta

Salto si resultado de operacin distinto a 0

JP

Etiqueta

Salto si resultado de operacin mayor que 0

JPZ

Etiqueta

Salto si resultado de operacin mayor o igual a 0

JM

Etiqueta

Salto si resultado de operacin menor que 0

JMZ

Etiqueta

Salto si resultado de operacin menor o igual a 0

JUO

Etiqueta

Salto si resultado de operacin invlido

JO

Etiqueta

Salto si overflow

JOS

Etiqueta

Salto si overflow memorizado

JL

Etiqueta

Distribuidor de saltos

LOOP

Etiqueta

Bucle por salto

Condicion
Salto condicional
Programa si no
se cumple condicin
Programa si se
cumple la condicin

Instrucciones de Salto Incondicional


Salto Incondicional (JMP)
El Salto Incondicional se ejecuta independientemente de cualquier condicin; este salto no
lee ni se ve afectado por los bits de la palabra del estado.
AWL

FUP
Segmento 1
....

Segmento 1
CAS1
JMP

.
.
.
.
Segmento X

Segmento X

CAS1: A I 0.4
R Q 4.1

CAS1
Q 4.1
I 0.4

JU CAS1
.
.
.
.
.
.
.

Instrucciones de Salto Condicional


Salto Condicional (JMP, JMPN)
El Salto Condicional se ejecuta en funcin de una condicin reflejada en uno o varios bits de
la palabra de estado.
AWL

FUP
Segmento 1
I 0.0

CAS2
JMP

.
.
.
.

Segmento 1
A I 0.0
JC CAS2
.
.
.
.
Segmento X
CAS2: A I 0.4
R Q 4.1

Segmento X
CAS2

Segmento 1
I 0.0

CAS3
JMPN

.
.
.
.

CAS3
Q 4.1
I 0.4

Segmento 1
A I 0.0
JCN CAS3
.
.
.
.
Segmento X
CAS3: A I 0.4
R Q 4.1

Segmento X

Q 4.1
I 0.4

AWL

FUP

STL: Saltos Condicionales Basados en RLO


Salto Condicional (JC, JCN)
El bit de la palabra de estado Resultado de la Operacin Lgica (RLO) determina cuando
se ejecuta este salto condicional.
Tambin existen instrucciones que adems guardan el resultado en el RB

Salta si RLO = 1

Salta si RLO = 1 y almacnalo en RB


A I 0.0
A I 1.0
JCB NEW1

A I 0.0
A I 1.0
JC NEW1

Salta si RLO = 0 y almacnalo en RB

Salta si RLO = 0
A I 0.0
A I 1.0
JCN REC2

A I 0.0
A I 1.0
JNB REC2

STL: Saltos Condicionales Basados en BR, OV, OS


Salto Condicionales Basados en BR, OV, OS
Los bits del la palabra de estado Resultado Binario (RB) o Desbordamiento/Desbordamiento
Memorizado determinan cuando se ejecutan estos saltos condicionales. La evaluacin de los
bits RB, OV y OS proporciona un medio de verificar condiciones de error.

Salto si BR = 1 (JBI)

Salto si BR = 0 (JNBI)

Salto si OV = 1 (JO)

Salto si OS = 1 (JOS)

STL: Saltos Condicionales Basados en CC1 y CC0


Salto Condicionales Basados en CC1 y CC0

Cuando se ejecuta en el programa un clculo matemtico, los bits CC1 y CC0 se


actualizan en la palabra del estado.
Los bits CC1 y CC0 se evalan en las siguientes instrucciones de salto de la tabla

CC0

CC1

Salto ejecutado
JZ

Salto si el resultado es Cero

JMZ

Salto si cero o menor de cero

JPZ

Salto si cero o mayor de cero

JM

Salto si es menor de cero (negativo)

JMZ

Salto si cero o menor de cero (negativo)

JN

Salto si no cero

JP

Salto si es mayor de cero (positivo)

JPZ

Salto si cero o mayor de cero (positivo)

JN

Salto si no es cero

JUO

Salto si resultado no es admisible

STL: Distribuidor de Saltos


Instruccin JL
Un salto distribuidor JL permite especificar (calcular) saltos a una seccin del programa
en el mdulo condicionado a un nmero de posicin.
Trabaja conjuntamente con una lista de saltos incondicionales JU
Hay una etiqueta de salto en JL que apunta al final de la lista
Puede tener hasta 255 entradas
Utiliza el byte bajo del ACU1
L
JL
JU
JU
.
.
JU
END: JU
.....
M0:
L

Numero_de_posiciones
END
M0
M1

//Nmero para decidir el salto


//Selector de x posicines
//Si ACU1 tiene 0 salta a meta 0
//Si ACU1 tiene 1 salta a meta 1

Mx
ERR

// Si ACU1 tiene x salta a meta x


// Si ACU1 es mayor de x o menor de 0

MW 30

STL: Distribuidor de Saltos

STL: Funcin Bucle


Inicio del Contador de Bucle

Seccin de Programa
que va a ser ejecutado
varias veces

Decremento del Contador


de Bucles

Contador de
Bucle <>0 ?

No
Continuar

L +4
NEXT:T MB10
.
.
.
.
.
L MB10
LOOP NEXT

// cargar el contador de bucle


// primera instruccin del bucle
// bucle
// bucle
// bucle
// bucle
// bucle
// ltimas instrucciones del bucle
// salto a la etiqueta NEXT

En este ejemplo, el programa comprendido


entre NEXT y NEXT se ejecutar 4 veces.

STL: Funcin Bucle

Saltos Condicionados
FC100

Si

No

AN I 0.5
JC M3

JU M2
M1 -

A I 0.0
JC M1

A I 0.6
= Q 4.3

?
Si

Si

M4 AN I 2.0
= Q 4.5
A I 2.1
JC M4

A I 0.2
= Q 4.0
JU M2

M3 BE

No

?
Si

M1 A
=

I 0.3
Q 4.1

M2 A
=

I 0.4
Q 4.2

No

?
Si

No

No

AN I 0.1
JC M1

M3 A I 0.7
= Q 1.4

M2 -

Si

No

Ejemplos de Saltos:Incidencia sobre Temporizadores


FC10
A
JC

I
MET1

0.0

Salto a meta1 con entrada a 1

A
A
=

I
I
Q

0.1
0.2
4.0

Combinacin binaria

A
L
SD
A
R

I
S5T#1S
T
I
T

0.2

Temporizador

0
0.3
0

A
CU
A
CD
A
L
S
A
R

I
C
I
C
I
C#10
C
I
C

0.4
1
0.5
1
0.6

L
T

C
QW

1
6

Carga y Transferencia

L
L
==I
=

C
C#12

Comparacin

4.1

A
=

T
Q

0
4.2

T
Q

0
4.3

MET1 A
=
BE

Contador

1
0.7
1

Salida temporizador
dentro de salto

Ejemplos de Saltos: Ejecucin Prioritaria


FC13
A
JC

I
PRI1

0.0

Con I0.0 se ejecutan A y D

A
JC

I
PRI2

0.1

Con I0.1 se ejecutan B y D

A
JC

I
PRI3

0.2

Con I0.2 se ejecutan C y D

JU

FIN

PRI1 A
A
=
JU

I
I
Q
FIN

1.0
1.1
4.0

Programa A

PRI2 A
A
=
JU

I
I
Q
FIN

1.2
1.3
4.1

Programa B

PRI3 A
A
=
JU

I
I
Q
FIN

1.4
1.5
4.2

Programa C

FIN

I
I
Q
FIN

1.6
1.7
4.3

Programa D

A
A
=
JU
BE

Ejemplos de Saltos: Mezcladora


Mediante un selector de 5 posiciones, realizar el programa que permita ajustar el tiempo de funcionamiento de una
mezcladora. Los tiempos fijos asignados a cada posicin se encuentran en el DB 10

DB10
0
2
4
6
8

FC11

OB1

S5T#1S
S5T#2S
S5T#3S
S5T#4S
S5T#5S

CALL
CALL
BE

FC
FC

A
L
SE
A
=
BE

10
11

I
MW
T
T
Q

1.0
10
20
20
4.0

DB
DBW
I
META
DBW
I
META
DBW
I
META
DBW
I
META
DBW
I
META

10
0
0.0

MW

10

FC10
OPN
L
A
JC
L
A
JC
L
A
JC
L
A
JC
L
A
JC
BEU
META T
BE

Ejemplos de Saltos: Lector de Alarmas


FC14
L
T
A
S
JC
ALA1 R
.
.
.
L
T
A
S
JC
ALA2 R
.
.
.
L
T
A
S
JC
ALA3 R
.
.
.
BEU

PB
MB
M
M
ALA0
M

ALA0 L
T

IB
PB

1
1

M
ALA1
M
ALA2
M
ALA3

10.0

A
JC
A
JC
A
JC
BE

0
0
0.0
10.0

Primera consulta de alarma

10.0
Cdigo de Programa Principal

PB
MB
M
M
ALA0
M

0
0
0.0
10.1

Segunda consulta de alarma

10.1
Cdigo de Programa Principal

PB
MB
M
M
ALA0
M

0
0
0.0
10.2

Tercera consulta de alarma

10.2
Cdigo de Programa Principal

10.1
10.2

Programa de alarma

2
0.1
4
0.2
6
0.3
8
0.4

Ejemplos de Saltos: Cinta Transportadora


Reconocimiento
de pieza defectuosa

Expulsor

FC20
Nomb CINTA
A
AN
=
S
AN
R

I
M
M
M
I
M

0.0
1.0
2.0
1.0
0.0
1.0

AN
BEC

2.0

AN
JC

I
BUEN

0.1

Salto si es buena

L
SLW
L
+I
T
JU

MB
1
1

20

Si es defectuosa se desplaza
el registro de desplazamiento
y se introduce un 1

MB
FIN

20

BUEN L
SLW
T

MB
1
MB

20

FIN

MB
QB

20
4

MB 20
I 0.0

L
T
BE

20

Evaluacin de orden de
desplazar

Si es buena se desplaza el
registro de desplazamiento
Presentar el registro de
desplazamiento en QB4

Ejemplos de Saltos: Saltos Distribuidos


FC 14
L IB 0
JL OVER
JU M0
JU M1
JU M2
JU M3
OVER: L
0
T QW 4
BEU
M0:

M1:

M2:

M3:

L
-16
SSI 2
T QW
BEU
L
16
SSI 2
T
QW
BEU
L
-16
SRW 2
T
QW
BEU
L
16
SRW
2
T QW 4

//Desplazar con signo a derecha


4

Anda mungkin juga menyukai