Operaciones en PLCs

15,226 views
14,988 views

Published on

Operaciones, Funciones en PLCs Siemens

Published in: Education, Technology, Business
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
15,226
On SlideShare
0
From Embeds
0
Number of Embeds
117
Actions
Shares
0
Downloads
530
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Operaciones en PLCs

  1. 1. UNIVERSIDAD POLITECNICA SALESIANA FACULTAD DE INGENIERIAS CARRERA DE ELECTR ÓNICA AUTOMATIZACIÓN I Revisado por: Ing. Carlos Pillajo MBA 1
  2. 2. PLC´S OPERACIONES 2
  3. 3. OPERACIONES CONTACTOS • 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) 3
  4. 4. OPERACIONES CONTACTOS 4
  5. 5. OPERACIONES CONTACTOS • 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) 5
  6. 6. OPERACIONES CONTACTOS CONTACTOS DIRECTOS 6
  7. 7. OPERACIONES CONTACTOS • 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, entonces hace 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. 7
  8. 8. OPERACIONES CONTACTOS 8
  9. 9. OPERACIONES CONTACTOS • DETECTAR FLANCO POSITIVO Y NEGATIVO • El contacto detectar flanco positivo (P) permite que fluya la corriente durante un ciclo cada que se produce un cambio de 0 a 1. • En lenguaje AWL, dicho contacto se representa con la operación detectar flanco positivo (EU). Cuando se detecta un cambio de se ñal de 0 a 1 en 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 la operación respectiva (ED), operan de forma contraria. 9
  10. 10. OPERACIONES CONTACTOS 10
  11. 11. OPERACIONES CONTACTOS 11
  12. 12. OPERACIONES CONTACTOS 12
  13. 13. OPERACIONES CONTACTOS 13
  14. 14. OPERACIONES CONTACTOS 14
  15. 15. OPERACIONES CONTACTOS • 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 pila mediante Y u O cuando la comparaci ón es verdadera. 15
  16. 16. OPERACIONES CONTACTOS 16
  17. 17. OPERACIONES CONTACTOS • 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 . 17
  18. 18. OPERACIONES CONTACTOS 18
  19. 19. OPERACIONES SALIDAS • Estas operaciones permiten a la CPU comunicarse sea con la imagen del proceso o directamente 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. 19
  20. 20. OPERACIONES SALIDAS • 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 se escribe sólo en al imagen del proceso. 20
  21. 21. OPERACIONES SALIDAS 21
  22. 22. OPERACIONES SALIDAS • 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). 22
  23. 23. OPERACIONES SALIDAS 23
  24. 24. OPERACIONES SALIDAS • PONER A 1, PONER A 0 • Al ejecutar la operación poner a 1 se activa, mientras que al poner a 0 se desactiva, el número indicado de entradas y/o salidas (N) a partir de S_bit, respectivamente. • El margen de entradas y/o salidas que se pueden activar o desactivar est á comprendido entre 1 y 255. • Al emplear la operación poner a 0, si S_BIT es un bit T o un bit C se desactivar á dicho bit y se borrará el valor del temporizador o contador respectivamente. 24
  25. 25. OPERACIONES SALIDAS 25
  26. 26. OPERACIONES SALIDAS • PONER A 1 DIRECTAMENTE, • PONER A 0 DIRECTAMENTE • Al ejecutar la operación poner a 1 directamente se activa mientras que al poner a 0 directamente se desactiva el número indicado de salidas físicas (N) a partir de S_bit, respectivamente. 26
  27. 27. OPERACIONES SALIDAS 27
  28. 28. OPERACIONES SALIDAS • 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 y 255. Esta operación puede estar en el programa principal, en una subrutina o en las rutinas de interrupci ón. 28
  29. 29. OPERACIONES SALIDAS 29
  30. 30. OPERACIONES TEMPORIZADORES 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 de un cambio a “falso”. 30
  31. 31. OPERACIONES TEMPORIZADORES • Los valores característicos de un temporizador 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. Por ejemplo, el valor de contaje de 30 en un temporizador de 100 ms corresponde a 3 segundos. 31
  32. 32. OPERACIONES TEMPORIZADORES 32
  33. 33. OPERACIONES TEMPORIZADORES • El temporizador de retardo a la conexi ón y el de retardo a la conexión memorizado cuentan el tiempo al estar activada la entrada de habilitaci ón. Si el valor actual (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 valor máximo al ser habilitado. • Cuando se inhibe la operaci ón, el temporizador de retardo a la conexión se pone a 0, en tanto que el temporizador de retardo a la conexi ón memorizado se detiene. • Ambos temporizadores se detienen al alcanzar el máximo. 33
  34. 34. OPERACIONES TEMPORIZADORES • El temporizador de retardo a la desconexión se emplea para retardar la puesta a cero de una salida durante un período definido tras haberse desactivado una entrada. • Cuando la entrada en un temporizador de retardo a la desconexión se desactiva el temporizador cuenta hasta que el tiempo transcurrido alcance el valor de preselecci ón, en ese momento, el bit de temporizaci ón se desactiva y el valor actual detiene el contaje. • En este temporizador, la operaci ón comienza a contar al producirse un cambio de ON a OFF. 34
  35. 35. OPERACIONES TEMPORIZADORES • La operación poner a cero (R) sirve para inicializar cualquier temporizador. • Al realizarse esta operaci ón se tienen los siguientes 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 a OFF para poder rearrancar el temporizador. 35
  36. 36. OPERACIONES TEMPORIZADORES 36
  37. 37. OPERACIONES TEMPORIZADORES 37
  38. 38. OPERACIONES TEMPORIZADORES 38
  39. 39. OPERACIONES TEMPORIZADORES 39
  40. 40. OPERACIONES TEMPORIZADORES 40
  41. 41. OPERACIONES TEMPORIZADORES 41
  42. 42. OPERACIONES TEMPORIZADORES 42
  43. 43. OPERACIONES CONTADORES • Existen tres tipos de contadores: • hacia adelante (CTU) • hacia adelante/atrás (CTUD) • hacia atrás (CTD) 43
  44. 44. OPERACIONES CONTADORES • La operación contar adelante empieza a contar hasta el valor máximo cuando se produce un flanco positivo en la entrada ( CU). • Si el valor actual (Cxxx) es mayor o igual al valor de preselección (PV), se activa el bit de la operación de contar (Cxxx). • El contador se inicia al activarse la entrada que lo desactiva (R) o cuando se ejecuta la operación poner a 0. El contador para de contar cuando se alcanza el valor m áximo (32.767). 44
  45. 45. OPERACIONES CONTADORES • La operación contar adelante / atr ás empieza a contar adelante cuando se produce un flanco positivo en la entrada de contar adelante ( CU), y empieza a contar atrás cuando se produce un flanco positivo a la entrada de contar atr ás (CD). • Si el valor actual (Cxxx) es mayor o igual al valor de preselección (PV), se activa el bit (Cxxx). • El contador se inicia al activarse la entrada que desactiva (R), o al ejecutarse la operaci ón de poner a 0; en este caso se desactiva tanto el bit de contar como el valor actual del contador. 45
  46. 46. OPERACIONES CONTADORES • Cuando se alcanza el valor máximo (32.767), el siguiente flanco positivo en la entrada de contar adelante invertir á esta operación hasta alcanzar el valor mínimo (-32.768). De manera similar, cuando se alcanza el valor mínimo (-32.768), el siguiente flanco positivo en la entrada de contar atrás invertirá la operación hasta alcanzar el valor máximo (32.767). 46
  47. 47. OPERACIONES CONTADORES • La operación contar atrás empieza a contar desde el valor de la preselecci ón cuando se produce cuando se produce un flanco positivo en la entrada de contaje hacia atrás (CD). Si el valor actual es cero se activa el bit de contaje. 47
  48. 48. OPERACIONES CONTADORES 48
  49. 49. OPERACIONES CONTADORES 49
  50. 50. PLC´S OPERACIONES ARITMÉTICAS 50
  51. 51. OPERACIONES ARITMÉTICAS 51
  52. 52. OPERACIONES ARITMÉ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 = OUT IN1 – IN2 = OUT • En AWL: IN1 + OUT = OUT OUT – IN1 = OUT 52
  53. 53. OPERACIONES ARITMÉ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 = OUT OUT – IN1 = OUT 53
  54. 54. OPERACIONES ARITMÉ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 o de un cociente de 16 bits (los menos significativos) y un resto de 16 bits (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 54
  55. 55. OPERACIONES ARITMÉTICAS • Multiplicar y dividir enteros de 16 bits La secuencia de operación, para los lenguajes KOP y AWL es: • En KOP: IN1*IN2 = OUT IN1 / IN2 = OUT • En AWL: IN1*OUT = OUT OUT / IN1 = OUT 55
  56. 56. OPERACIONES ARITMÉTICAS • Multiplicar y dividir reales • La operación Multiplicar reales multiplica dos números reales de 32 bits, dando como resultado un n úmero real de 32 bit (OUT). • La operación Dividir reales divide entre sí dos números reales de 32 bits, dando como resultado un cociente de nú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 56
  57. 57. OPERACIONES ARITMÉTICAS • Multiplicar y dividir reales • La secuencia de operación, para los lenguajes KOP y AWL es: • En KOP: IN1*IN2 = OUT IN1/ IN2 = OUT • En AWL: IN1*OUT = OUT OUT / IN1 = OUT 57
  58. 58. OPERACIONES ARITMÉTICAS • Raíz cuadrada • La operación Raíz cuadrada de números reales extrae la raíz cuadrada de un número real de 32 bits (IN), dando como resultado un nú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 58
  59. 59. OPERACIONES ARITMÉTICAS 59
  60. 60. OPERACIONES ARITMÉTICAS 60
  61. 61. OPERACIONES ARITMÉTICAS 61
  62. 62. OPERACIONES ARITMÉTICAS • Incrementar byte, Decrementar byte • Las operaciones Incrementar byte / Decrementar byte suman /restan 1 al valor del byte 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 62
  63. 63. OPERACIONES ARITMÉTICAS • Incrementar byte, Decrementar byte • La secuencia de operación es: • En KOP: IN + 1 = OUT IN – 1 = OUT • En AWL: OUT+ 1 = OUT OUT – 1 = OUT • Las operaciones Incrementar y Decrementar byte no llevan signo. 63
  64. 64. OPERACIONES ARITMÉTICAS • 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 64
  65. 65. OPERACIONES ARITMÉTICAS • Incrementar palabra, Decrementar palabra • La secuencia de operación 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. 65
  66. 66. OPERACIONES ARITMÉ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 66
  67. 67. OPERACIONES ARITMÉTICAS • Incrementar palabra doble • Decrementar palabra doble • La secuencia de operación es: • En KOP: IN + 1 = OUT IN – 1 = OUT • En AWL: OUT+ 1 = OUT OUT – 1 = OUT • Las operaciones Incrementar y Decrementar palabra doble llevan signo. 67
  68. 68. OPERACIONES ARITMÉTICAS 68
  69. 69. PLC´S control del programa 69
  70. 70. OPERACIONES control 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ón lógica precedente. • La bobina absoluta Finalizar programa principal (END) se debe utilizar para finalizar el programa principal de usuario. • En AWL, la operación absoluta Finalizar programa principal se representa con la operaci ón MEND. • Esta operación no tiene operando. 70
  71. 71. OPERACIONES control del programa • STOP • Finaliza inmediatamente la ejecuci ón del programa haciendo que la CPU cambie de RUN 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 interrupciones pendientes. El resto del programa se sigue procesando y el cambio de RUN a STOP se produce al final del ciclo actual. 71
  72. 72. OPERACIONES control del programa END STOP 72
  73. 73. OPERACIONES control del programa •Saltar a meta (JMP) Definir meta (LBL) 73
  74. 74. OPERACIONES control 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 rutina de interrupción. • No es posible saltar desde una subrutina o una rutina de interrupción a una meta que se encuentre fuera de ella. 74
  75. 75. OPERACIONES control del programa 75
  76. 76. Operaciones Lazos •OPERACIONES FOR, NEXT 76
  77. 77. Operaciones Lazos • 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 77
  78. 78. Operaciones Lazos • Ejemplo: • Si el valor de INITIAL es 2 y si el de FINAL es 8, las operaciones que se encuentren entre FOR y NEXT se ejecutar án 7 veces, incrementando el valor de contaje INDEX 2,3,4,5,6,7,8. 78
  79. 79. Operaciones Lazos • 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 valor de INDEX y el resultado se compara con el valor final. Si INDEX es mayor que el valor final, se finaliza el bucle. • Las operaciones FOR/NEXT repiten un bucle del programa 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. 79
  80. 80. Operaciones Lazos 80
  81. 81. Operaciones Relés de control secuencial •RELÉ DE CONTROL SECUENCIAL 81
  82. 82. Operaciones Relés de control secuencial • Etapas : • Cargar relee de control secuencial (LSCR) para indicar el comienzo de un segmento SCR. Si n = 1, se habilita la circulación de la corriente hacia el segmento SCR. La operación LSCR se debe finalizar con una operaci ón SCRE. • Transición 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 operación LSCR (que habilitó este segmento SCR) se desactiva. • Fin del relee de control secuencial (SCRE) para indicar el fin de un segmento SCR. 82
  83. 83. Operaciones Relés de control secuencial 83
  84. 84. Operaciones Relés de control secuencial 84
  85. 85. Operaciones Reloj de tiempo real • La operación leer reloj de tiempo real lee la hora y fecha actuales del reloj y carga en un búfer de 8 bytes, que comienza en la dirección T. • La operación ajustar reloj de tiempo real escribe en el reloj la hora y fecha actuales que están cargados en un búfer de 8 bytes que comienza en la direcci ón T. 85
  86. 86. Operaciones Reloj de tiempo real •Formato de tiempo 86
  87. 87. Operaciones Reloj de tiempo real 87
  88. 88. Operaciones Reloj de tiempo real • En AWG las operaciones TODR y TODW leen y escriben 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 por direccionamiento indirecto y 000C por falta de cartucho de reloj • En TODW ponen a ENO a cero, emplean la marca SM4.3 por tiempo de ejecuci ón, 0007 por error de datos TOD, 000C por falta de cartucho de reloj. 88
  89. 89. Operaciones CONVERSIÓN • Convertir BCD a entero y entero a BCD , se efectúa mediante BCD_I, I_BCD, que convierte el valor indicado en IN y lo carga en OUT 89
  90. 90. Operaciones CONVERSIÓ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 el resultado en OUT. 90
  91. 91. Operaciones Redondear • 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 o superior se redondea al número próximo superior. 91
  92. 92. Operaciones Truncar • 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 se conserva la parte entera, la fracci ón se pierde 92
  93. 93. PLC´S subrutinas 93
  94. 94. subrutinas 94
  95. 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ógica precedente. • 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. 95
  96. 96. subrutinas • Reglas: • Situar todas las subrutinas despu és del final del programa principal KOP, o en versiones superiores a V3.0 en el sitio determinado por la pestaña correspondiente. • En una subrutina no se pueden utilizar las operaciones LSCR, SCRE, SCRT y END. • En versiones anteriores las subrutinas finalizan con la operación Retorno absoluto desde subrutina (RET). 96
  97. 97. subrutinas 97
  98. 98. PLC´S Rutinas de interrupción 98
  99. 99. Rutinas de interrupción • Se ejecutan como respuesta a un evento interno o externo asociado. • Tras haberse ejecutado la última operación de la rutina de interrupción, el control retorna al programa principal. • Para salir de la rutina se puede ejecutar una operaci ón retorno condicional desde la rutina de interrupci ón (CRETI). • La operación asociar interrupción asocia el número de una rutina de interrupción (INT) a un evento de interrupción (EVNT), habilitando este último. • La operación desasociar interrupción desasocia un evento de interrupción (EVNT) de todas las rutinas de interrupción, desasociando así el evento. 99
  100. 100. Rutinas de interrupción • Asociar interrupción ATCH • Desasociar interrupción DTCH 100
  101. 101. Rutinas de interrupción • Retorno condicional desde rutina de interrupción (RETI) finaliza una rutina en función de la combinación lógica precedente. 101
  102. 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. 102
  103. 103. Rutinas de interrupción • Interrupciones de comunicaci ón • El puerto serie de comunicaciones del sistema de automatización se puede controlar mediante un programa KOP o AWL. • La comunicación a través de este puerto se denomina modo FREEPORT, en este modo, el programa define la velocidad de transferencia, los bits por carácter, la paridad y el protocolo. • Las interrupciones de transmisi ón y recepción permiten controlar la comunicaci ón mediante el programa. 103
  104. 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 úfer indica cuántos bytes se han de transmitir. PORT indica el puerto de programación por donde se va a transmitir. • La operación XMT se utiliza en modo FREEPORT para transmitir datos por el (los) puerto (s) de comunicaci ón. • La operación RCV recibir mensaje inicia o finaliza la función recibir mensaje. Para el cuadro recibir mensaje es necesario indicar una condici ón inicial y final. Los mensajes que se hayan recibido a trav és de l puerto indicado (PORT) se almacenan en el b úfer de datos (TBL). La primera enterada indica el n úmero de bytes que se han recibido. 104
  105. 105. Rutinas de interrupción • Transmitir mensaje XMT • Recibir mensaje RCV 105
  106. 106. PLC´S Tablas 106
  107. 107. Operaciones Tabla • 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 el número de registros que contiene la tabla, los nuevos datos se añaden al final de la tabla, debajo del último registro. Cada vea que se añade un registro se incrementa el n úmero efectivo de registros, hasta 100. 107
  108. 108. Operaciones Tabla 108
  109. 109. Operaciones Tabla • Buscar valor en la tabla • La operación TBL_FIND comienza con el registro indicado por INDX y busca el valor (PTN) que corresponda a los criterios de b úsqueda definidos por CMD. • El parámetro de comando CMD indica un valor num érico comprendido entre 1 y 4 que corresponde a la relaci ón =, <>, <, y >. Si se cumple un criterio, INDX se ñalará el respectivo registro. • Para buscar el siguiente registro se nuevamente a la operación buscar valor en la tabla. • Si no se encuentra ningún registro que corresponda al criterio, el valor de INDX ser á igual al número de registros que contiene la tabla. 109
  110. 110. Operaciones Tabla 110
  111. 111. Operaciones Tabla 111
  112. 112. Operaciones Tabla 112
  113. 113. Operaciones Tabla 113
  114. 114. PLC´S LAZOS PID 114
  115. 115. PID • REGULACIÓN PID • Esta operación ejecuta el cálculo de un lazo de regulación PID en el LOOP referenciado en base a las informaciones de entrada y configuraciones definidas en TABLE (TBL). 115
  116. 116. PID Entradas - salidas 116
  117. 117. PID • Para habilitar el cálculo PID, el primer valor de la pila lógica (TOS) deberá estar en ON. Esta operación tiene dos operandos: una dirección de TABLE que constituye la dirección inicial de la tabla del lazo y un número LOOP (constante entre 0 y 7). • Este programa sólo admite 8 operaciones PID 117
  118. 118. PID • La tabla de lazo almacena los siguientes nueve parámetros que sirven para controlar y supervisar su operació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) 118
  119. 119. PID 119
  120. 120. PID • La operación PID, con el intervalo de muestreo deseado, se ejecuta dentro de una rutina de interrupción temporizada o desde el programa principal, a intervalos controlados por un temporizador. • El tiempo de muestreo es una entrada a través de la tabla de lazo. 120
  121. 121. PID • ALGORITMO PID • Un regulador PID varía el valor de su salida para llevar a cero el error de regulaci ón (e). El error es la diferencia entre el valor de consigna (SP) (punto de trabajo deseado) y la variable de proceso (PV) (el punto de trabajo real). • La salida M (t) de un proceso PID, que tiene una ganancia de lazo Kc, con valor inicial de salida del lazo M inicial, se obtiene de la siguiente: 121
  122. 122. PID • La salida M (t) se obtiene de la siguiente expresión: • t M (t ) kc * e Kc edt Minicial Kc * de / dt 0 122
  123. 123. PID • Término proporcional MPn Kc * ( SPn PVn ) • Término integral: MIn Kc * TC / TI * ( SPn PVn ) MX • Término diferencial MDn Kc * Td / Ts * ( PVn PV n 1 ) 123
  124. 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 124
  125. 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 125
  126. 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 en los términos integral y diferencial, al ajustar a cero la ganancia resulta en un valor 1, para dichos propósitos. 126
  127. 127. PID • Convertir y normalizar las entradas del lazo (1) • La consigna y la variable del proceso, deberán convertirse a representaciones numéricas en como flotante. • Dichas magnitudes deben convertirse de valor de 16 bits a un valor a como flotante. 127
  128. 128. PID •Convertir y normalizar las entradas del lazo 128
  129. 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 129
  130. 130. PID • Convertir la salida del lazo en un valor entero escalonado • La salida del lazo, (valor real normalizado: 0.0 y 1.0), debe convertirse en valor escalado de 16 bits, antes de que pueda usarse para excitar una salida anal ógica. • Con este propósito se emplean las siguientes sentencias: • 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 130
  131. 131. PID • Las sentencias para convertir en un entero de 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 131

×