Está en la página 1de 114

ESCUELA POLITECNICA NACIONAL

OPERACIN DE SUBESTACIONES

PLC
Ejercicios de Programacin

PLCs
Reloj de tiempo real

Reloj de tiempo real


La operacin leer reloj de tiempo real lee
la hora y fecha actuales del reloj y carga
en un bfer de 8 bytes, que comienza en
la direccin T.
La operacin ajustar reloj de tiempo real
escribe en el reloj la hora y fecha actuales
que estn cargados en un bfer de 8
bytes que comienza en la direccin T.
3

Reloj de tiempo real


Se emplean los dos dgitos menos significativos
para representar el ao.
La fecha y hora se codifican en BCD.
Por ejemplo:2007-IV-1 17:30, ser:
VB400 ao 07
VB401 mes 04
VB402 da 01
VB403 Hora 16#17
VB404 Minuto 16#30
4

Reloj de tiempo real

Reloj de tiempo real

Reloj de tiempo real

Reloj de tiempo real

Reloj de tiempo real

Reloj de tiempo real

10

PLCs
Entradas Analgicas

11

Agregar entradas analgicas

12

Programa con entradas analgicas

La entrada
analgica
oscila entre 0 y
32767 para
formato de
palabra

13

Salidas Analgicas

14

Garaje

15

Garaje

16

Garaje

17

Entradas analgicas Ejercicio 1/1

18

Entradas analgicas Ejercicio 1/2


Al presionar el pulsador PM, el sistema se pone
en marcha:
Se activa el motor M1que abre la vlvula.
El lquido ingresa al tanque, hasta que el nivel
alcance su lmite mximo (30000).
Se detiene el motor y se cierra la vlvula de entrada.
El tanque se vaca mediante la vlvula de salida.

Se puede detener el sistema con el pulsador de


paro PG o cuando opera el pulsador del trmico
Rt.
19

Entradas analgicas Ejercicio 1/3

20

Entradas analgicas Ejercicio 1/4

21

Entradas analgicas Ejercicio 1/5

22

PLCs
Operaciones aritmticas

23

Transferir

24

Transferir

25

Transferir
Transferir byte
La operacin Transferir byte transfiere el byte de entrada (IN) al
byte de salida (OUT). El byte de entrada permanece inalterado.
Los operandos pueden ser:
IN: VB, IB, QB, MB, SMB, AC, constante, *VD, *AC, SB
OUT: VB, IB, QB, MB, SMB, AC, *VD, *AC, SB
Transferir palabra
La operacin Transferir palabra transfiere la palabra de entrada
(IN) ala palabra de salida (OUT).
La palabra de entrada permanece inalterada.
Los operandos pueden ser:
IN: VW, T, C, IW, QW, MW, SMW, AC, AIW, constante, *VD, *AC,
SW
OUT: VW, T, C, IW, QW, MW, SMW, AC, AQW, *VD, *AC, SW

26

Transferir

27

Operaciones aritmticas

28

Operaciones aritmticas

Sumar y restar
Sumar y restar enteros de 16 bits
Las operaciones Sumar enteros de 16 bits y Restar enteros de 16 bits
suman / restan dos enteros de 16 bits, dando como resultado 16 bits
(OUT).
Los operandos pueden ser:
IN1, IN2:
VW, T, C, IW, QW, MW, SMW, AC, AIW, constante, *VD, *AC, SW

OUT:
VW, T, C, IW, QW, MW, SMW, AC,*VD, *AC, SW

La secuencia de operacin es la siguiente:


En KOP:
IN1 + IN2 = OUT
IN1 IN2 = OUT

En AWL:
IN1 + OUT = OUT
OUT IN1 = OUT
29

Operaciones aritmticas
Multiplicar y dividir reales
La operacin Multiplicar reales multiplica dos nmeros
reales de 32 bits, dando como resultado un nmero real
de 32 bit (OUT).
La operacin Dividir reales divide entre s dos nmeros
reales de 32 bits, dando como resultado un cociente de
nmero real de 32 bits.
Operandos :
IN1, IN2:
VD, ID, QD, MD, SMD, AC, constante, *VD, *AC, SD

OUT:
VD, ID, QD, MD, SMD, AC, *VD, *AC, SD

30

Operaciones aritmticas
Multiplicar y dividir reales
La secuencia de operacin, para los lenguajes
KOP y AWL es:
En KOP:
IN1*IN2 = OUT
IN1/ IN2 = OUT

En AWL:
IN1*OUT = OUT
OUT / IN1 = OUT
31

Operaciones aritmticas
Raz cuadrada
La operacin Raz cuadrada de nmeros
reales extrae la raz cuadrada de un nmero
real de 32 bits (IN), dando como resultado un
nmero real de 32 bits (OUT)
Los operandos pueden ser:
IN:
VD, ID, QD, MD, SMD, AC, constante,*VD, *AC, SD

OUT:
VD, ID, QD, MD, SMD AC, *VD, *AC, SD
32

Operaciones aritmticas

33

Operaciones aritmticas

34

PLCs
Operaciones aritmticas
Ejercicios

35

Ejercicio 1
Realizar la siguiente operacin

x 4 x3
x3
x 2 x1
x1 200
x 2 500
x3 200
x 4 1000
36

Ejercicio 1

37

Ejercicio 1

38

Ejercicio 1

39

Ejercicio 1

40

Ejercicio 1

41

PLCs
Ejercicios de operacin
2

42

Ejercicio de suma 1/1

43

Ejercicio de suma 1/2

44

Ejercicio de suma 1/3

45

Incrementar - Decrementar

46

Incrementar - Decrementar
Incrementar palabra, Decrementar palabra
Las operaciones Incrementar palabra /
Decrementar palabra suman/ restan 1 al valor
de la palabra de entrada.
Operandos :
IN:
VW, T, C, IW, QW, MW, SMW, AC,AIW, constante,
*VD, *AC, SW

OUT:
VW, T, C, IW, QW, MW, SMW, AC,*VD, *AC, SW
47

Incrementar - Decrementar
Incrementar palabra, Decrementar palabra
La secuencia de operacin es:
En KOP:
IN + 1 = OUT
IN 1 = OUT

En AWL:
OUT+ 1 = OUT
OUT 1 = OUT

Las operaciones Incrementar y Decrementar


palabra llevan signo.
48

Incrementar - Decrementar

49

PLCs
Subrutinas

50

Subrutinas
OB1
SBR_0
CALL SBR_0
RET
SBR_1
CALL SBR_1

RET

OB1
SBR_0

CALL SBR_0

CALL SBR_1

SBR_1
RET

RET

51

Subrutinas

52

Subrutinas
Operaciones:
Llamar subrutina (CALL) para transferir el
control a la subrutina (n).
Comenzar subrutina (SBR) para marcar el
comienzo de la subrutina (n).
Los operandos pueden ser n: 0 a 63
Una vez ejecutada la subrutina, el control vuelve
a la operacin que sigue a la llamada de la
subrutina (CALL).
Se pueden anidar hasta ocho subrutinas.
53

Subrutinas
Reglas:
Situar todas las subrutinas despus del final del
programa principal KOP, o en versiones
superiores a V3.0 en el sitio determinado por la
pestaa correspondiente.
En una subrutina no se pueden utilizar las
operaciones LSCR, SCRE, SCRT y END.
En versiones anteriores las subrutinas finalizan
con la operacin Retorno absoluto desde
subrutina (RET).
54

Programa principal

55

Subrutina 0

56

Subrutina 1

57

Plcs
Rels de control secuencial

58

Rels de control secuencial

59

Rels de control secuencial


Etapas :
Cargar relee de control secuencial (LSCR) para indicar
el comienzo de un segmento SCR. Si n = 1, se habilita
la circulacin de la corriente hacia el segmento SCR. La
operacin LSCR se debe finalizar con una operacin
SCRE.
Transicin del relee de control secuencial (SCRT) para
identificar el bit SCR que se debe habilitar (el siguiente
bit S a activar). Cuando la corriente fluye hasta la
bobina, el bit S indicado se activa y el bit S de la
operacin LSCR (que habilit este segmento SCR) se
desactiva.
Fin del relee de control secuencial (SCRE) para indicar
el fin de un segmento SCR.
60

Rels de control secuencial 1/1

61

Rels de control secuencial 1/2

62

Rels de control secuencial 1/3

63

PLCS
Rutinas de Interrupcin

64

Rutinas de Interrupcin
Se ejecutan como respuesta a un evento interno o
externo asociado.
Tras haberse ejecutado la ltima operacin de la rutina
de interrupcin, el control retorna al programa principal.
Para salir de la rutina se puede ejecutar una operacin
retorno condicional desde la rutina de interrupcin
(CRETI).
La operacin asociar interrupcin asocia el nmero de
una rutina de interrupcin (INT) a un evento de
interrupcin (EVNT), habilitando este ltimo.
La operacin desasociar interrupcin desasocia un
evento de interrupcin (EVNT) de todas las rutinas de
interrupcin, desasociando as el evento.
65

Rutinas de Interrupcin
Asociar interrupcin ATCH
Desasociar interrupcin DTCH

66

Rutinas de Interrupcin
Ejemplos de Eventos
EVENTO
0/1
2/3
4/5
6/7
8/9
10
11
12
13
14
15
16
17
18

DESCRIPCIN DE LA INTERRUPCIN
Flanco positivo/Negativo de I0.0
Flanco positivo/Negativo de I0.1
Flanco positivo/Negativo de I0.2
Flanco positivo/Negativo de I0.3
Puerto 0: Recibir carcter / Transmisin finalizada
Interrupcin temporizada 0: SMB34
Interrupcin temporizada 1: SMB35
HSC0 CV=PV
HSC1 CV=PV
HSC1 cambio de sentido
HSC1 puesta a 0 externamente
HSC2 CV=PV
HSC2 cambio de sentido
HSC2 puesta a 0 externamente
67

Rutinas de Interrupcin
Retorno condicional desde rutina de
interrupcin (RETI) finaliza una rutina en
funcin de la combinacin lgica
precedente.

68

Rutinas de Interrupcin
Habilitar todos los eventos de interrupcin (ENI)
Inhibir todos los eventos de interrupcin (DISI)
Estas operaciones habilitan o deshabilitan la ejecucin
de todos los eventos asociados.

69

PLCs
Ejemplos de Rutinas de
Interrupcin

70

Rutinas de Interrupcin
Programa Principal

71

Rutina de Interrupcin 0

72

Rutina de Interrupcin
Leer el valor de una entrada analgica
mediante una rutina de interrupcin.
Se emplear la marca espacial SMB34
para indicar el intervalo de la interrupcin
temporizada 0.
La interrupcin temporizada corresponde
al evento 10.

73

Programa principal

74

Subrutina 0

75

Rutina de interrupcin cero

76

PLCs
Contadores Rpidos

77

Contadores Rpidos
Cuentan eventos que se ejecutan ms rpido de
lo que es posible controlarlos en los ciclos de la
CPU.
Los contadores disponen de entradas que
soportan funciones de:

Relojes
Control de sentido
Puesta a cero y arranque
Los contadores A/B tienen velocidades para contaje
simple o cudruplo.
78

Contadores Rpidos
Se emplean como accionamientos para temporizadores
que funcionan impulsados por un rbol que gira a
rgimen constante y provisto de un encoder incremental.
El encoder provee un nmero determinado de valores
de contaje por giro, as como un impulso de puesta a
cero por giro.
El reloj o relojes y el impulso de puesta a cero del
encoder suministran las entradas al contador rpido.
El contador se ajusta para que una interrupcin se active
cuando el contaje actual sea igual al predeterminado o
cuando el contador se ponga a cero.
Cuando el valor actual es igual al predeterminado y se
presenta un evento de interrupcin, se carga un nuevo
valor predeterminado y se activa el siguiente estado de
seal para las salidas.
79

Contadores Rpidos

Entradas para los contadores rpidos.


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

80

Modos para HSC0


Modo

Descripcin

0
1

Contador adelante atrs, control interno


SM37.3 =0 Contaje atrs
SM37.3 =1 Contaje adelante
Contador adelante atrs, control externo
I0.1 = 0, Contaje atrs
I0.1 = 1, Contaje adelante
Contador de dos fases con entradas de reloj para
contaje adelante atrs
Contador A/B

3
4
6
7
9
10

81

Modos para HSC1


Modo

Descripcin

0
1
2
3
4

Contador adelante atrs, control interno


SM47.3 =0 Contaje atrs
SM47.3 =1 Contaje adelante
Contador adelante atrs, control externo
I0.7 = 0, Contaje atrs
I0.7 = 1, Contaje adelante
Contador de dos fases con entradas de reloj para
contaje adelante atrs

6
7
8
9
10
11

Contador A/B

82

Direccionamiento
HC 2
Nmero
Identificador de Area
Valor actual : Slo lectura en formato de
palabra doble
32

MSB

BYTE 3

Lsb
BYTE 2

BYTE 1

BYTE 0
83

Descripcin

Activando la puesta a 0 se borra el valor actual.


Al activarse la entrada de arranque se habilita.
Si sta se desactiva se mantiene el valor actual.
Si se activa la entrada de puesta a 0, mientras
est desactiva la entrada de arranque, no se
modifica el valor actual.
Si se activa la entrada de arranque mientras
est activada la entrada de puesta a 0, se borra
el valor actual.
84

Nivel de actividad y modo de contaje


HSC0

HSC1

SM37.0

SM47.0

SM47.1

SM37.2

SM47.2

Descripcin HDEF
Bit de control, nivel de actividad de entrada de
puesta a cero: 0 = actividad alta, 1= actividad baja
Bit de control, nivel de actividad de entrada de
arranque: 0 = actividad alta, 1= actividad baja
Velocidad de contaje de los contadores A/B:
0= Velocidad cudruplo ; 1 = Velocidad simple

85

Byte de control
HSC0

HSC1

SM37.3

SM47.3

SM37.4

SM47.4

SM37.5

SM47.5

SM37.6

SM47.6

SM37.7

SM47.7

Descripcin
Bit de control, sentido de contaje:
0 = contaje atrs, 1= contaje adelante
Escribir el sentido de contaje:
0 = no actualizar, 1= actualizar
Escribir el nuevo valor predeterminado
0 = No actualizar; 1 = actualizar
Escribir el nuevo valor:
0 = No actualizar; 1 = actualizar
Habilitar el contador:
0= Inhibir contador; 1 = Habilitar

86

Ajustar Valores Actuales y


Predeterminados

Valor a cargar

HSC0

HSC1

HCS2

Nuevo actual
Nuevo valor predeterminado

SMD38
SMD42

SMD48
SMD52

SMD58
SMD62

87

Byte de Estado

Descripcin

HSC0

HSC1

HCS2

Bit de estado sentido de contaje


0 = Contaje atrs; 1 = Contaje adelante
Valor actual es igual al bit de estado predet.
0= diferente; 1 = igual
Valor actual mayor que el bit predeterminado
0= menor o igual; 1 = mayor que

SM36.5

SM46.5

SM56.5

SM36.6

SM46.6

SM56.6

SM36.7

SM46.7

SM56.7

88

Modos de Inicializacin 0, 1 2
Para inicializar HSC1 como contador
adelante/atrs de fase simple con control
interno (modos: 0,1 2):
1. Con marca SM0.1, llamar a Subrutina de
inicializacin.
2. Cargar la marca SMB47 segn operacin de
control. Ej: 16#F8 = Habilitar contador, escribir
nuevo valor, etc.
3. Ejecutar HDEF con:
1. HCS1 puesta a 1 y
2. Mode: 0 puesta a 0 o arranque no
externos; 1 puesta a 0 externa y sin
arranque, 2-puesta a 0 y arranque externo.
4. Cargar el valor actual en SMD48.
89

Modos de Inicializacin 0, 1 2
5. Cargar valor deseado en SMD52.
6. Averiguar si CV = PV (evento 13), en
rutina de interrupcin.
7. Detectar puesta a 0 externa, con rutina
de interrupcin asociada a evento 15.
8. Habilitar todos los eventos de
interrupcin (ENI).
9. Ejecutar HSC para operar HSC1
10. Finalizar subrutina.
90

Cambio de sentido en los modos 0, 1 2


Cargar SMB47:
SMB47 = 16#90 Habilitar contador, sentido de
contaje atrs.
SMB47 = 16#98 Habilitar contador, sentido de
contaje adelante.

Ejecutar HSC para programar HSC1

91

Cargar nuevo valor actual


Para modificar valor actual del contador
HSC1:
Cargar SMB47 para escribir valor actual:
SMB47 = 16#C0 habilita el contador. Escribe
nuevo valor actual.

Cargar el valor actual en SMD48 (0 borra la


marca).
Ejecutar HSC para programar HSC1

92

PLCs
Ejemplo de Contadores Rpidos

93

PLCs
Ejemplo de Contadores Rpidos
1

94

Ejemplo de Contadores Rpidos 1


Programa Principal

95

Ejemplo de Contadores Rpidos 1


Subrutina 0

96

Ejemplo de Contadores Rpidos 1


Subrutina 0

97

Ejemplo de Contadores Rpidos 1


Subrutina 0

98

Ejemplo de Contadores Rpidos 1


Rutina de interrupcin 0

99

PLCs
Ejemplo de Contadores Rpidos
2

100

Ejemplo de Contadores Rpidos 2


Requisitos especiales de hardware:
Puesto que en este ejemplo se utiliza una salida
de impulsos, se requiere una CPU con
alimentacin DC, entradas DC y salidas DC
(DC/DC/DC).
Este ejemplo utiliza una salida de impulsos para
generar seales rpidas que el HSC debe
contar. Es posible generar trenes de impulsos
junto con modulaciones del ancho de impulsos
para controlar, por ejemplo, un servomotor.
101

Ejemplo de Contadores Rpidos 2

102

Ejemplo de Contadores Rpidos 2

103

Programa Principal

104

Programa Principal

105

Subrutina 0

106

Subrutina 0

107

Subrutina 1

108

Rutina de interrupcin 0

109

Rutina de interrupcin 0

110

Rutina de interrupcin 1

111

Rutina de interrupcin 1

112

Rutina de interrupcin 2

113

Rutina de interrupcin 2

114

También podría gustarte