operaciones en plcs
DESCRIPTION
Operaciones, Funciones en PLCs SiemensTRANSCRIPT
1
UNIVERSIDAD POLITECNICA SALESIANAFACULTAD DE INGENIERIASCARRERA DE ELECTRÓNICA
AUTOMATIZACIÓN I
Revisado por: Ing. Carlos Pillajo MBA
2
PLC´S
OPERACIONES
3
OPERACIONESCONTACTOS
• CONTACTOS ESTANDAR• El contacto abierto se cierra (se activa) s í el valor binario de la
dirección n = 1.• El contacto cerrado se cierra (se activa), s í el valor binario de la
dirección n = 0.• En lenguaje AWL el contacto abierto se representa con las
operaciones:• LD cargar• A AND (Y)• O OR (O)• En lenguaje AWL el contacto cerrado se representa con las
operaciones:• LDN cargar valor negado• AN AND (Y- NO)• ON OR (O- NO)
4
OPERACIONESCONTACTOS
5
OPERACIONESCONTACTOS
• CONTACTOS DIRECTOS• El contacto abierto directo se cierra (se activa) sí el valor binario
de la entrada física se direcciona n = 1.• El contacto cerrado directo se cierra (se activa), sí el valor binario
de la entrada física se direcciona n = 0.• En lenguaje AWL el contacto abierto se representa con las
operaciones:• LDI cargar• AI AND (Y)• OI OR (O)• En lenguaje AWL el contacto cerrado se representa con las
operaciones:• LDNI cargar valor negado• ANI AND (Y- NO directa)• ONI OR (O- NO directa)
6
OPERACIONESCONTACTOS
CONTACTOS DIRECTOS
7
OPERACIONESCONTACTOS
• NOT• El contacto NOT invierte el sentido de
circulación de la corriente.• La corriente se detiene al alcanzar el contacto
NOT. Si no logra alcanzar el contacto, entonceshace circular la corriente.
• En AWL, la operación invertir primer valor(NOT) invierte el primer valor de la pila de 0 a 1,o bien de 1 a 0.
8
OPERACIONESCONTACTOS
9
OPERACIONESCONTACTOS
• DETECTAR FLANCO POSITIVO Y NEGATIVO• El contacto detectar flanco positivo (P) permite
que fluya la corriente durante un ciclo cada quese produce un cambio de 0 a 1.
• En lenguaje AWL, dicho contacto se representacon la operación detectar flanco positivo (EU).Cuando se detecta un cambio de se ñal de 0 a 1en el primer valor de la pila, ésta se pone a 1.En caso contrario se pone a 0.
• El contacto detectar flanco negativo (N) y laoperación respectiva (ED), operan de formacontraria.
10
OPERACIONESCONTACTOS
11
OPERACIONESCONTACTOS
12
OPERACIONESCONTACTOS
13
OPERACIONESCONTACTOS
14
OPERACIONESCONTACTOS
15
OPERACIONESCONTACTOS
• OPERACIONES DE COMPARACIÓN• La operación de comparación se emplea para comparar dos
valores: n1 y n2.• La comparación puede ser:• - n1 es igual a n2 n1 == n2• - n1 es mayor o igual a n2 n1>= n2• - n1 es menor o igual a n2 n1<= n2• Se pueden crear operaciones contrarias a las indicadas usando la
operación NOT.• En lenguaje KOP, el contacto KOP se activa si la comparaci ón es
verdadera.• En lenguaje AWL, las operaciones cargan un “1” en el nivel superior
de la pila y combinan el valor “1” con el primer valor de la pilamediante Y u O cuando la comparación es verdadera.
16
OPERACIONESCONTACTOS
17
OPERACIONESCONTACTOS
• c puede ser:• B en la comparación byte de dos valores, n1 y n2.
– Donde: n1, n2 corresponden a: VB, IB, QB, MB, SMB, AC, constante .
• I en la comparación entero palabra de dos valores, n1 y n2.– Donde: n1, n2 corresponden a: VW, IW, QW, MW, SMW, AC, AIW, T,
C, constante.• D en la comparación entero palabra doble de dos valores, n1 y
n2.– Donde: n1, n2 corresponden a: VD, ID, QD, MD, SMD, AC, HC,
constante.• R en la comparación real de dos valores, n1 y n2.
– Donde: n1, n2 corresponden a: VD, ID, QD, MD, SMD, AC, constante .
18
OPERACIONESCONTACTOS
19
OPERACIONESSALIDAS
• Estas operaciones permiten a la CPUcomunicarse sea con la imagen del proceso odirectamente con la salida f ísica.
• Las principales operaciones de salida son:– Asignar– Asignar directamente a la salida f ísica y a la dirección
de la imagen del proceso.– Poner a cero ó a 1– Poner directamente a 0 ó a 1.– Nula.
20
OPERACIONESSALIDAS
• ASIGNAR• Al ejecutar esta operación:• En lenguaje (KOP) se activa el parámetro
indicado (n),• En AWL se copia el primer valor en el
parámetro indicado (n). El nuevo valor seescribe sólo en al imagen del proceso.
21
OPERACIONESSALIDAS
22
OPERACIONESSALIDAS
• ASIGNAR DIRECTAMENTE• Al ejecutar esta operación:• En lenguaje (KOP) se activa directamente
la salida indicada (n),• En AWL se copia el primer valor de la pila
directamente en la salida física indicada(n).
23
OPERACIONESSALIDAS
24
OPERACIONESSALIDAS
• PONER A 1, PONER A 0• Al ejecutar la operación poner a 1 se activa,
mientras que al poner a 0 se desactiva, elnúmero indicado de entradas y/o salidas (N) apartir de S_bit, respectivamente.
• El margen de entradas y/o salidas que sepueden activar o desactivar está comprendidoentre 1 y 255.
• Al emplear la operación poner a 0, si S_BIT esun bit T o un bit C se desactivará dicho bit y seborrará el valor del temporizador o contadorrespectivamente.
25
OPERACIONESSALIDAS
26
OPERACIONESSALIDAS
• PONER A 1 DIRECTAMENTE,• PONER A 0 DIRECTAMENTE• Al ejecutar la operación poner a 1
directamente se activa mientras que alponer a 0 directamente se desactiva elnúmero indicado de salidas físicas (N) apartir de S_bit, respectivamente.
27
OPERACIONESSALIDAS
28
OPERACIONESSALIDAS
• OPERACIÓN NULA• La operación nula (NOP) no tiene efecto alguno en la ejecuci ón
del programa. El operando N es un número comprendido entre 0 y255. Esta operación puede estar en el programa principal, en unasubrutina o en las rutinas de interrupción.
29
OPERACIONESSALIDAS
30
OPERACIONESTEMPORIZADORES
Tipos:• De retardo a la conexión (TON), para
temporizar un solo evento.• De retardo a la conexión memorizada
(TONR), para acumular varios intervalos.• Temporizador de retardo a la desconexión
(TOF) para ampliar el tiempo después deun cambio a “falso”.
31
OPERACIONESTEMPORIZADORES
• Los valores característicos de untemporizador son:– La resolución, que corresponde al número del
temporizador.– El valor actual que resulta del valor de contaje
multiplicado por la base del tiempo. Porejemplo, el valor de contaje de 30 en untemporizador de 100 ms corresponde a 3segundos.
32
OPERACIONESTEMPORIZADORES
33
OPERACIONESTEMPORIZADORES
• El temporizador de retardo a la conexi ón y el deretardo a la conexión memorizado cuentan el tiempoal estar activada la entrada de habilitaci ón. Si el valoractual (Txxx) es mayor o igual al valor de preselecci ón(PT), se activa el bit de temporizaci ón.
• Los temporizadores empiezan a contar hasta el valormáximo al ser habilitado.
• Cuando se inhibe la operación, el temporizador deretardo a la conexión se pone a 0, en tanto que eltemporizador de retardo a la conexi ón memorizado sedetiene.
• Ambos temporizadores se detienen al alcanzar elmáximo.
34
OPERACIONESTEMPORIZADORES
• El temporizador de retardo a la desconexiónse emplea para retardar la puesta a cero de unasalida durante un período definido tras habersedesactivado una entrada.
• Cuando la entrada en un temporizador deretardo a la desconexión se desactiva eltemporizador cuenta hasta que el tiempotranscurrido alcance el valor de preselecci ón, enese momento, el bit de temporizaci ón sedesactiva y el valor actual detiene el contaje.
• En este temporizador, la operación comienza acontar al producirse un cambio de ON a OFF.
35
OPERACIONESTEMPORIZADORES
• La operación poner a cero (R) sirve parainicializar cualquier temporizador.
• Al realizarse esta operación se tienen lossiguientes resultados:
• Bit de temporización = OFF• Valor actual = 0• El temporizador TONR sólo se puede inicializar
mediante la operación puesta a cero.• Tras inicializarse un temporizador TOF, la
entrada de habilitación debe cambiar de ON aOFF para poder rearrancar el temporizador.
36
OPERACIONESTEMPORIZADORES
37
OPERACIONESTEMPORIZADORES
38
OPERACIONESTEMPORIZADORES
39
OPERACIONESTEMPORIZADORES
40
OPERACIONESTEMPORIZADORES
41
OPERACIONESTEMPORIZADORES
42
OPERACIONESTEMPORIZADORES
43
OPERACIONESCONTADORES
• Existen tres tipos de contadores:• hacia adelante (CTU)• hacia adelante/atrás (CTUD)• hacia atrás (CTD)
44
OPERACIONESCONTADORES
• La operación contar adelante empieza acontar hasta el valor máximo cuando se produceun flanco positivo en la entrada (CU).
• Si el valor actual (Cxxx) es mayor o igual alvalor de preselección (PV), se activa el bit de laoperación de contar (Cxxx).
• El contador se inicia al activarse la entrada quelo desactiva (R) o cuando se ejecuta laoperación poner a 0. El contador para de contarcuando se alcanza el valor máximo (32.767).
45
OPERACIONESCONTADORES
• La operación contar adelante / atrás empiezaa contar adelante cuando se produce un flancopositivo en la entrada de contar adelante ( CU), yempieza a contar atrás cuando se produce unflanco positivo a la entrada de contar atr ás (CD).
• Si el valor actual (Cxxx) es mayor o igual alvalor de preselección (PV), se activa el bit(Cxxx).
• El contador se inicia al activarse la entrada quedesactiva (R), o al ejecutarse la operaci ón deponer a 0; en este caso se desactiva tanto el bitde contar como el valor actual del contador.
46
OPERACIONESCONTADORES
• Cuando se alcanza el valor máximo(32.767), el siguiente flanco positivo en laentrada de contar adelante invertirá estaoperación hasta alcanzar el valor mínimo(-32.768). De manera similar, cuando sealcanza el valor mínimo (-32.768), elsiguiente flanco positivo en la entrada decontar atrás invertirá la operación hastaalcanzar el valor máximo (32.767).
47
OPERACIONESCONTADORES
• La operación contar atrás empieza acontar desde el valor de la preseleccióncuando se produce cuando se produce unflanco positivo en la entrada de contajehacia atrás (CD). Si el valor actual es cerose activa el bit de contaje.
48
OPERACIONESCONTADORES
49
OPERACIONESCONTADORES
50
PLC´S
OPERACIONESARITMÉTICAS
51
OPERACIONESARITMÉTICAS
52
OPERACIONESARITMÉTICAS
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 operación es la siguiente:• En KOP:
IN1 + IN2 = OUTIN1 – IN2 = OUT
• En AWL:IN1 + OUT = OUTOUT – IN1 = OUT
53
OPERACIONESARITMÉTICAS
• Sumar y restar enteros de 32 bits• Las operaciones Sumar enteros de 32 bits y Restar enteros de 32 bits
suman / restan dos enteros de 32 bits, dando como resultado 32 b its(OUT).
• Los operandos pueden ser:• IN1, IN2:
VD, ID, QD, MD, SMD, AC, HC, constante, *VD, *AC, SD• OUT:
VD, ID, QD, MD, SMD, AC, *VD, *AC, SD• En KOP:
IN1 + IN2 = OUT• La secuencia de operación es la siguiente:
IN1 – IN2 = OUT• En AWL:
IN1 + OUT = OUTOUT – IN1 = OUT
54
OPERACIONESARITMÉTICAS
• Multiplicar y dividir• Multiplicar y dividir enteros de 16 bits• La operación Multiplicar enteros de 16 bits multiplica dos números
enteros de 16 bits, dando un resultado 32 bits (OUT).• La operación Dividir enteros de 16 bits divide dos números
enteros de 16 bits, dando un resultado de 32 bits (OUT) compuest ode un cociente de 16 bits (los menos significativos) y un resto de 16bits (los más significativos).
• Los operandos pueden ser:• IN1, IN2:
– VW, T, C, IW, QW, MW, SMW, AC, AIW, constante, *VD, *AC, SW• OUT:
– VD, ID, QD, MD, SMD, AC, *VD, *AC, SD
55
OPERACIONESARITMÉTICAS
• Multiplicar y dividir enteros de 16 bitsLa secuencia de operación, para loslenguajes KOP y AWL es:
• En KOP:IN1*IN2 = OUTIN1 / IN2 = OUT
• En AWL:IN1*OUT = OUTOUT / IN1 = OUT
56
OPERACIONESARITMÉTICAS
• Multiplicar y dividir reales• La operación Multiplicar reales multiplica dos números
reales de 32 bits, dando como resultado un n úmero realde 32 bit (OUT).
• La operación Dividir reales divide entre sí dos númerosreales de 32 bits, dando como resultado un cociente denúmero 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
57
OPERACIONESARITMÉTICAS
• Multiplicar y dividir reales• La secuencia de operación, para los
lenguajes KOP y AWL es:• En KOP:
IN1*IN2 = OUTIN1/ IN2 = OUT
• En AWL:IN1*OUT = OUTOUT / IN1 = OUT
58
OPERACIONESARITMÉTICAS
• Raíz cuadrada• La operación Raíz cuadrada de números
reales extrae la raíz cuadrada de un númeroreal de 32 bits (IN), dando como resultado unnúmero 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
59
OPERACIONESARITMÉTICAS
60
OPERACIONESARITMÉTICAS
61
OPERACIONESARITMÉTICAS
62
OPERACIONESARITMÉTICAS
• Incrementar byte, Decrementar byte• Las operaciones Incrementar byte /
Decrementar byte suman /restan 1 al valor delbyte de entrada.
• Operandos:• IN:
VB, IB, QB, MB, SMB, SB, AC, constante, *VD, *AC, SB• OUT:
VB, IB, QB, MB, SMB, SB, AC,*VD, *AC, SB
63
OPERACIONESARITMÉTICAS
• Incrementar byte, Decrementar byte• La secuencia de operación es:• En KOP:
IN + 1 = OUTIN – 1 = OUT
• En AWL:OUT+ 1 = OUTOUT – 1 = OUT
• Las operaciones Incrementar y Decrementarbyte no llevan signo.
64
OPERACIONESARITMÉTICAS
• Incrementar palabra, Decrementar palabra• Las operaciones Incrementar palabra /
Decrementar palabra suman/ restan 1 al valorde 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
65
OPERACIONESARITMÉTICAS
• Incrementar palabra, Decrementar palabra• La secuencia de operación es:• En KOP:
IN + 1 = OUTIN – 1 = OUT
• En AWL:OUT+ 1 = OUTOUT – 1 = OUT
• Las operaciones Incrementar y Decrementarpalabra llevan signo.
66
OPERACIONESARITMÉTICAS
• Incrementar palabra doble• Decrementar palabra doble• Suman / restan 1 al valor de la palabra doble de
entrada.• Operandos:• IN:
VD, ID, QD, MD, SMD, AC, HC, constante, *VD, *AC,SD
• OUT:VD, ID, QD, MD, SMD, AC, *VD, *AC, SD
67
OPERACIONESARITMÉTICAS
• Incrementar palabra doble• Decrementar palabra doble• La secuencia de operación es:• En KOP:
IN + 1 = OUTIN – 1 = OUT
• En AWL:OUT+ 1 = OUTOUT – 1 = OUT
• Las operaciones Incrementar y Decrementarpalabra doble llevan signo.
68
OPERACIONESARITMÉTICAS
69
PLC´S
control del programa
70
OPERACIONEScontrol del programa
• END• Esta operación no se escribe explícitamente en
versiones posteriores de STEP 7 (V3.0).• La operación condicional Finalizar programa principal
(END) finaliza el programa en funci ón de la combinaciónlógica precedente.
• La bobina absoluta Finalizar programa principal (END)se debe utilizar para finalizar el programa principal deusuario.
• En AWL, la operación absoluta Finalizar programaprincipal se representa con la operaci ón MEND.
• Esta operación no tiene operando.
71
OPERACIONEScontrol del programa
• STOP• Finaliza inmediatamente la ejecuci ón del
programa haciendo que la CPU cambie deRUN a STOP.
• Esta operación no tiene operando.• Si la operación STOP se ejecuta en una rutina
de interrupción, ésta se finalizaráinmediatamente ignorando las interrupcionespendientes. El resto del programa se sigueprocesando y el cambio de RUN a STOP seproduce al final del ciclo actual.
72
OPERACIONEScontrol del programa
END STOP
73
OPERACIONEScontrol del programa
•Saltar a meta (JMP) Definir meta (LBL)
74
OPERACIONEScontrol del programa
• Saltar a meta (JMP)• Deriva la ejecución del programa a la meta indicada (n).
Al saltar, el primer valor de la pila es siempre un “1”lógico.
• Definir meta (LBL)• Indica la meta a la que se salta.• Operandos: n: 0 a 255• Deben encontrarse en el programa principal, en una
subrutina o en una rutina de interrupci ón.• Desde el programa principal no se puede saltar a una
meta que se encuentre en una subrutina o en una rutinade interrupción.
• No es posible saltar desde una subrutina o una rutina deinterrupción a una meta que se encuentre fuera de ella.
75
OPERACIONEScontrol del programa
76
OperacionesLazos
•OPERACIONES FOR, NEXT
77
OperacionesLazos
• OPERACIONES FOR, NEXT• La operación FOR ejecuta las operaciones que se encuentren entre
FOR y NEXT.• Se debe definir el valor actual de contaje del bucle (INDEX), el valor
inicial (INITIAL) y el valor final (FINAL).• Operandos:• INDEX:• VW, T, C, IW, QW, MW, SMW, AC,*VD, *AC, SW• INITIAL:• VW, T, C, IW, QW, MW, SMW, AC,• AIW, constante, *VD, *AC, SW• FINAL:• VW, T, C, IW, QW, MW, SMW, AC, AIW, constante, *VD, *AC, SW
78
OperacionesLazos
• Ejemplo:• Si el valor de INITIAL es 2 y si el de FINAL
es 8, las operaciones que se encuentrenentre FOR y NEXT se ejecutarán 7 veces,incrementando el valor de contaje INDEX2,3,4,5,6,7,8.
79
OperacionesLazos
• Reglas para FOR Y NEXT:• Si el valor inicial es mayor que el valor final, no se
ejecuta el bucle.• Después de ejecutarse las operaciones que se
encuentran entre FOR y NEXT, se incrementa el valorde INDEX y el resultado se compara con el valor final. SiINDEX es mayor que el valor final, se finaliza el bucle.
• Las operaciones FOR/NEXT repiten un bucle delprograma un número determinado de veces.
• Cada operación FOR exige una operación NEXT.• Los bucles FOR/NEXT pueden anidarse hasta una
profundidad de ocho niveles.
80
OperacionesLazos
81
OperacionesRelés de control secuencial
•RELÉ DE CONTROL SECUENCIAL
82
OperacionesRelés de control secuencial
• Etapas :• Cargar relee de control secuencial (LSCR) para indicar
el comienzo de un segmento SCR. Si n = 1, se habilitala circulación de la corriente hacia el segmento SCR. Laoperación LSCR se debe finalizar con una operaci ónSCRE.
• Transición del relee de control secuencial (SCRT) paraidentificar el bit SCR que se debe habilitar (el siguientebit S a activar). Cuando la corriente fluye hasta labobina, el bit S indicado se activa y el bit S de laoperación LSCR (que habilitó este segmento SCR) sedesactiva.
• Fin del relee de control secuencial (SCRE) para indicarel fin de un segmento SCR.
83
OperacionesRelés de control secuencial
84
OperacionesRelés de control secuencial
85
OperacionesReloj de tiempo real
• La operación leer reloj de tiempo real leela hora y fecha actuales del reloj y cargaen un búfer de 8 bytes, que comienza enla dirección T.
• La operación ajustar reloj de tiempo realescribe en el reloj la hora y fecha actualesque están cargados en un búfer de 8bytes que comienza en la dirección T.
86
OperacionesReloj de tiempo real
•Formato de tiempo
87
OperacionesReloj de tiempo real
88
OperacionesReloj de tiempo real
• En AWG las operaciones TODR y TODW leen yescriben reloj en tiempo real.
• Condiciones de error:• En TODR ponen a ENO a cero, emplean la
marca SM4.3 por tiempo de ejecuci ón, 0006 pordireccionamiento indirecto y 000C por falta decartucho de reloj
• En TODW ponen a ENO a cero, emplean lamarca SM4.3 por tiempo de ejecuci ón, 0007 porerror de datos TOD, 000C por falta de cartuchode reloj.
89
OperacionesCONVERSIÓN
• Convertir BCD a entero y entero a BCD , se efectúamediante BCD_I, I_BCD, que convierte el valorindicado en IN y lo carga en OUT
90
OperacionesCONVERSIÓN
• Convertir de entero doble a real• La operación convertir de entero doble a real convierte un entero
de 32 bits con signo (IN) en un número real de 32 bits colocando elresultado en OUT.
91
OperacionesRedondear
• Redondear a entero doble• La operación ROUND convierte el valor real (IN) en un valor de
entero doble y lo deposita en OUT. Si la fracci ón es 0.5 osuperior se redondea al número próximo superior.
92
OperacionesTruncar
• Truncar• La operación truncar convierte un número real de 32 bits (IN) en un
entero de 32 bits con signo y carga el resultado en OUT. S ólo seconserva la parte entera, la fracción se pierde
93
PLC´S
subrutinas
94
subrutinas
95
subrutinas
• Operaciones:• Llamar subrutina (CALL) para transferir el control a la
subrutina (n).• Comenzar subrutina (SBR) para marcar el comienzo
de la subrutina (n).• Retorno condicional de subrutina para finalizar una
subrutina en función de la combinación lógicaprecedente.
• Los operandos pueden ser n: 0 a 63• Una vez ejecutada la subrutina, el control vuelve a la
operación que sigue a la llamada de la subrutina (CALL).• Se pueden anidar hasta ocho subrutinas.
96
subrutinas
• Reglas:• Situar todas las subrutinas después del final del
programa principal KOP, o en versionessuperiores a V3.0 en el sitio determinado por lapestaña correspondiente.
• En una subrutina no se pueden utilizar lasoperaciones LSCR, SCRE, SCRT y END.
• En versiones anteriores las subrutinas finalizancon la operación Retorno absoluto desdesubrutina (RET).
97
subrutinas
98
PLC´S
Rutinas de interrupción
99
Rutinas de interrupción
• Se ejecutan como respuesta a un evento interno oexterno asociado.
• Tras haberse ejecutado la última operación de la rutinade interrupción, el control retorna al programa principal.
• Para salir de la rutina se puede ejecutar una operaci ónretorno condicional desde la rutina de interrupci ón(CRETI).
• La operación asociar interrupción asocia el número deuna rutina de interrupción (INT) a un evento deinterrupción (EVNT), habilitando este último.
• La operación desasociar interrupción desasocia unevento de interrupción (EVNT) de todas las rutinas deinterrupción, desasociando así el evento.
100
Rutinas de interrupción
• Asociar interrupción ATCH• Desasociar interrupción DTCH
101
Rutinas de interrupción
• Retorno condicional desde rutina deinterrupción (RETI) finaliza una rutina enfunción de la combinación lógica precedente.
102
Rutinas de interrupción
• Habilitar todos los eventos de interrupci ón (ENI)• Inhibir todos los eventos de interrupci ón (DISI)• Estas operaciones habilitan o deshabilitan la ejecuci ón de todos los
eventos asociados.
103
Rutinas de interrupción
• Interrupciones de comunicación• El puerto serie de comunicaciones del sistema
de automatización se puede controlar medianteun programa KOP o AWL.
• La comunicación a través de este puerto sedenomina modo FREEPORT, en este modo, elprograma define la velocidad de transferencia,los bits por carácter, la paridad y el protocolo.
• Las interrupciones de transmisión y recepciónpermiten controlar la comunicación mediante elprograma.
104
Rutinas de interrupción
• Transmitir mensaje, recibir mensaje• La operación transmitir mensaje activa la transmisi ón del
búfer de datos (TBL). La primera entrada del b úferindica cuántos bytes se han de transmitir. PORT indicael puerto de programación por donde se va a transmitir.
• La operación XMT se utiliza en modo FREEPORT paratransmitir datos por el (los) puerto (s) de comunicaci ón.
• La operación RCV recibir mensaje inicia o finaliza lafunción recibir mensaje. Para el cuadro recibir mensajees necesario indicar una condición inicial y final. Losmensajes que se hayan recibido a trav és de l puertoindicado (PORT) se almacenan en el b úfer de datos(TBL). La primera enterada indica el n úmero de bytesque se han recibido.
105
Rutinas de interrupción
• Transmitir mensaje XMT• Recibir mensaje RCV
106
PLC´S
Tablas
107
OperacionesTabla
• OPERACIONES DE TABLA• Registrar valor en la tabla ,• Para registrar el valor en una tabla se emplea la
operación: AD_T_TBL (KOP o FUP).• El primer valor de la tabla indica su longitud
máxima (TL), el segundo valor (EC) indica elnúmero de registros que contiene la tabla, losnuevos datos se añaden al final de la tabla,debajo del último registro. Cada vea que seañade un registro se incrementa el n úmeroefectivo de registros, hasta 100.
108
OperacionesTabla
109
OperacionesTabla
• Buscar valor en la tabla• La operación TBL_FIND comienza con el registro
indicado por INDX y busca el valor (PTN) quecorresponda a los criterios de búsqueda definidos porCMD.
• El parámetro de comando CMD indica un valor num éricocomprendido entre 1 y 4 que corresponde a la relaci ón=, <>, <, y >. Si se cumple un criterio, INDX se ñalará elrespectivo registro.
• Para buscar el siguiente registro se nuevamente a laoperación buscar valor en la tabla.
• Si no se encuentra ningún registro que corresponda alcriterio, el valor de INDX será igual al número deregistros que contiene la tabla.
110
OperacionesTabla
111
OperacionesTabla
112
OperacionesTabla
113
OperacionesTabla
114
PLC´S
LAZOS PID
115
PID
• REGULACIÓN PID• Esta operación ejecuta el cálculo de un
lazo de regulación PID en el LOOPreferenciado en base a las informacionesde entrada y configuraciones definidas enTABLE (TBL).
116
PID
Entradas - salidas
117
PID
• Para habilitar el cálculo PID, el primervalor de la pila lógica (TOS) deberá estaren ON. Esta operación tiene dosoperandos: una dirección de TABLE queconstituye la dirección inicial de la tabladel lazo y un número LOOP (constanteentre 0 y 7).
• Este programa sólo admite 8 operacionesPID
118
PID
• La tabla de lazo almacena los siguientes nueveparámetros que sirven para controlar y supervisar suoperación:
• El valor actual• El valor previo de la variable del proceso• La consigna• La salida• La ganancia• El tiempo de muestreo• El tiempo de acción integral• El tiempo de acción derivada• La suma integral (bias)
119
PID
120
PID
• La operación PID, con el intervalo demuestreo deseado, se ejecuta dentro deuna rutina de interrupción temporizada odesde el programa principal, a intervaloscontrolados por un temporizador.
• El tiempo de muestreo es una entrada através de la tabla de lazo.
121
PID
• ALGORITMO PID• Un regulador PID varía el valor de su salida
para llevar a cero el error de regulaci ón (e). Elerror es la diferencia entre el valor de consigna(SP) (punto de trabajo deseado) y la variable deproceso (PV) (el punto de trabajo real).
• La salida M (t) de un proceso PID, que tiene unaganancia de lazo Kc, con valor inicial de salidadel lazo M inicial, se obtiene de la siguiente:
122
PID
• La salida M (t) se obtiene de la siguienteexpresión:
•
t
dtdeKcMinicialedtKcekctM0
/**)(
123
PID
• Término proporcional
• Término integral:
• Término diferencial
)(* PVnSPnKcMPn
MXPVnSPnTITCKcMIn )(*/*
)(*/* 1 nPVPVnTsTdKcMDn
124
PID
• MPn, MIn, MIn• Valor de los términos proporcional, integral y
diferencial de la salida del lazo en el muestreo.• Kc =• Ganancia del lazo• SPn =• Valor de consigna en el muestreo n -ésimo• PVn =• Valor de la variable del proceso en el
muestreo n-ésimo
125
PID
• Ts =• Tiempo de muestreo del lazo• Ti =• Tiempo de acción integral• Mx =• Suma integral (bias), valor previo del término integral
(muestreo n-ésimo)• Td =• Tiempo de acción derivativa• PVn-1 =• Valor de la variable del proceso en el muestreo (n -1) -
ésimo
126
PID
• Criterios para elegir el tipo de regulaci ón– Ajustar los valores de los parámetros constantes.– Si no se requiere acción integral, el tiempo de acción
integral se ajusta a infinito– Si no se desea acción derivada, el tiempo de acción
derivada se ajusta a cero– Si no se desea acción proporcional la ganancia se
ajusta a cero. Puesto que la ganancia interviene enlos términos integral y diferencial, al ajustar a cero laganancia resulta en un valor 1, para dichospropósitos.
127
PID
• Convertir y normalizar las entradas del lazo (1)
• La consigna y la variable del proceso,deberán convertirse a representacionesnuméricas en como flotante.
• Dichas magnitudes deben convertirse devalor de 16 bits a un valor a como flotante.
128
PID
•Convertir y normalizar las entradas del lazo
129
PID
• Convertir y normalizar las entradas del lazo (2)• Convertir el número real que representa un valor f ísico
en un valor normalizado entre 0.0 y 1.0• /R 64000.0, AC0• //Normaliza el valor del acumulador• +R 0.5, AC0• //Desplaza el valor al margen entre 0,0 y 1.0• MOVR AC0, VD100• //Almacena el valor normalizado en la tabla del lazo
130
PID
• Convertir la salida del lazo en un valor enteroescalonado
• La salida del lazo, (valor real normalizado: 0.0 y 1.0),debe convertirse en valor escalado de 16 bits, antes deque pueda usarse para excitar una salida anal ógica.
• Con este propósito se emplean las siguientessentencias:
• MOVR VD108, AC0• //Mover la salida del lazo al acumulador• -R 0.5, AC0• //Incluir esta operación sólo si el valor es bipolar• +R 64000.0, AC0• //Escalar el valor en el acumulador
131
PID
• Las sentencias para convertir en un enterode 16 bits, este valor escalado son:
• ROUND AC0, AC0• //Convertir entero de 32 bits a un número
real.• MOVW AC0, AQW0• //Escribir el entero de 16 bits en la salida
analógica