tema%4 - infoplc

35
Tema 4 Principios básicos de programación. Visión Prác4ca S71200 13/10/14 TEMA 4 PRINCIPIOS BÁSICOS DE PROGRAMACIÓN. VISIÓN PRÁCTICA S71200 1

Upload: others

Post on 16-Oct-2021

14 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tema%4 - infoPLC

Tema  4  Principios  básicos  de  programación.  Visión  Prác4ca  S7-­‐1200  

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  PRÁ

CTICA  

S7-­‐1200  

1  

Page 2: Tema%4 - infoPLC

Índice  •  Introducción  a  la  programación  del  autómata    

•  Definición  del  sistema  de  control  •  Descripciones  literales  •  Funciones  algebraicas  •  Esquemas  de  relés    •  Diagramas  lógicos  •  Diagramas  de  flujo  •  Grafcet    

•  Definir  las  variables  que  intervienen  y  asignarles  direcciones  de  memoria    

•  Lenguajes  de  programación  •  Diagrama  de  contactos  •  Diagrama  de  funciones  •  Lenguajes  de  alto  nivel    

•  Visión  Prác4ca  S7-­‐1200  •  Organización  de  programas  •  Tipos  de  módulos  

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

2  

Page 3: Tema%4 - infoPLC

Introducción  a  la  programación  de  PLCs    

•  Sistemas  y  recursos  envueltos  en  la  transferencia  de  información  que  rodean  al  autómata  

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

3  PROCESO  

SISTEMA  OPERATIVO  

PROCESADOR  

INTERFACE  E/S  

MEMORIA    PROGRAMA  

MODELO  SIST  

CONTROL  

UNIDAD  DE  PROGRAMACIÓN:  -­‐Lenguaje  Progr.  -­‐Editor  de  Progr.  

Asignación  de  Direcciones  

PROGRAMA  BINARIO  

Monitor  

SEÑALES  DE  EMERGENCIA  

Análisis  

Especificaciones  

Page 4: Tema%4 - infoPLC

Introducción  a  la  programación  de  PLCs    

•  Podríamos  dividir  la  programación  del  autómata  en  varios  pasos  :    •  Definir  el  sistema  de  control  (  que  debe  hacer,  en  que  orden,  etc.):  diagrama  de  flujo,  la  descripción  literal  o  un  grafo  GRAFCET.    

•  Iden4ficar  las  señales  de  entrada  y  salida  del  autómata.    •  Representar  el  sistema  de  control  mediante  un  modelo,  indicando  todas  las  funciones  que  intervienen,  las  relaciones  entre  ellas,  y  la  secuencia  que  deben  seguir.  Algebraica  (instrucciones  literales)  o  gráfica  (símbolos  gráficos).    

•  Asignar  las  direcciones  de  entrada/salida  o  internas  del  autómata  a  las  correspondientes  del  modelo.    

•  Codificar  la  representación  del  modelo.  Lenguaje  de  programación.    •  Cargar  el  programa  en  la  memoria  del  autómata  desde  la  unidad  de  programación.    

•  Depurar  el  programa  y  obtener  una  copia  de  seguridad.      

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

4  

Page 5: Tema%4 - infoPLC

Introducción  a  la  programación  de  PLCs    

•  Esquema  del  desarrollo  de  un  proceso  controlado  por  un  autómata    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

5  

Introducción a la programación de APIs (PLCs)

•  Esquema del desarrollo de un proceso controlado por un autómata

Documentación del proceso: - Memoria de funcionamiento - Planos - Etc.

Interpretación del proceso a controlar

Determinación de E/S, temporizadores, contadores, etc., necesarios

Elección del autómata

Asignación de E/S, temporizadores, contadores, etc., necesarios

INICIO

Introducción a la programación de APIs (PLCs) •  Esquema del desarrollo de un proceso controlado por un

autómata

- Esquema de conexionado E/S al Autómata. - Montaje

FIN

- Esquema eléctrico: - de potencia - de proceso

Programación : - Diagrama - Lista de instrucciones - Etc.

- Autómata : -  puesta en funcionamiento

- Plano distribución componentes del automatismo

- Puesta en modo RUN

- Proceso a Controlar

Page 6: Tema%4 - infoPLC

De:inición  del  sistema  de  control  •  Definición  del  sistema  de  control    

•  Sistemas  sin  complejidad  ⇒  lenguaje  vulgar(descrip.  Literal)    •  Herramienta  de  representación  basadas  en  símbolos(+  complejos)    •  Clasificación  según  los  símbolos  u4lizados:    

•  Proposicional  :  descripciones  literales.    •  Algebraicas  :  funciones  booleanas  y  aritmé4cas.    •  Grafica  :  esquemas  de  contactos,  diagramas  lógicos  o  funciones  lógicas,  ordinogramas,  técnicas  GRAFCET    

•  Descripciones  literales    •  La  descripción  literal  de  un  proceso  y  de  su  control  puede  hacerse  enumerando  literalmente  las  acciones  a  desarrollar  por  el  mismo,  expuestas  secuencialmente  y  con  indicación  de  las  condiciones  de  habilitación  o  validación  en  cada  caso.    

•  Exhaus4vamente  o  no  define  bien.  Si  se  hace,  digcil  comprensión.  •  Se  complementa  con  otras  formas  de  representación    •     

 

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

6  

Page 7: Tema%4 - infoPLC

De:inición  del  sistema  de  control  •  Definición  del  sistema  de  control    

•  Funciones  algebraicas  •  Las  funciones  algebraicas  de  cada  una  de  las  salidas  se  ob4enen:    

•  bien  directamente  de  la  descripción  literal  del  proceso  a  controlar    •  o  bien  se  aplican  métodos  de  síntesis  basados  en  el  álgebra  de  Boole  (tablas  de  

verdad,  Karnaugh,  etc.).    •  Digcil  de  analizar  y  sinte4zar  sistemas  secuenciales.  Limitado  a  la  representación  de  combinaciones  de  variables  independientes  del  4empo  (condiciones  de  alarma,  operaciones  aritmé4cas  con  variables  analógicas,  etc.)    

•  Esquemas  de  relés    •  Origen:  en  la  representaciones  electromecánicas  de  sistemas  de  mando  •  representación  de  sistemas  sencillos:  señales  lógicas  binarias  todo-­‐  nada  (digitales),  o  bloques  secuenciales  predefinidos,  como  temporizadores  y  contadores.    

•  Deficiencias  en  cuanto  a  la  representación  de  funciones  secuenciales  complejas  y  sobre  todo  en  la  manipulación  de  señales  digitales  de  varios  bits  (por  ejemplo,  las  obtenidas  de  una  conversión  A/D).    

•  U4lizado  por  electricistas  o  ingenieros  con  formación  eléctrica    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

7  

Page 8: Tema%4 - infoPLC

De:inición  del  sistema  de  control  •  Esquema  de  relés  

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

8  

Page 9: Tema%4 - infoPLC

De:inición  del  sistema  de  control  •  Diagramas  lógicos    

•  Este  4po  de  representación  del  sistema  de  control  se  u4liza  en  la  documentación  de  las  especificaciones  y  representación  de  los  mismos    

•  En  muy  pocos  casos  los  usuarios  finales  de  autómatas  u4lizan  esta  representación    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

9  

Definición del sistema de control •  Diagramas lógicos

–  Este tipo de representación del sistema de control se utiliza en la documentación de las especificaciones y representación de los mismos

–  En muy pocos casos los usuarios finales de autómatas utilizan esta representación

Page 10: Tema%4 - infoPLC

De:inición  del  sistema  de  control  •  Diagramas  de  flujo    

•  Organigrama  y  flujograma,  es  un  sistema  de  representación  que  se  basa  en  una  serie  de  símbolos  que  según  un  convenio  establecido  4enen  un  determinado  significado.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

10  

TOMA  DE  DECISIONES  

SI  

NO  

ACCIONES  INICIO  FIN  

•  2  Niveles:    •  Nivel  1:  

•  secuencia  de  acciones  a  realizar  •  representar  el  funcionamiento  general  del  sistema    

•  Nivel  2:    •  especificadas  las  acciones  en  forma  de  instrucción:  instrucciones  entendibles  directamente  por  el  autómata  o  en  forma  de  funciones  lógicas.    

Page 11: Tema%4 - infoPLC

De:inición  del  sistema  de  control  •  Grafcet(Graphe    deComande  Etape  Transi4on,cuya  traducción  literal  es  Gráfico  de  Orden  Etapa  Transición)    •  “es  una  secuencia  de  etapas  que  4enen  asociadas  unas  determinadas  acciones  a  realizar  sobre  el  proceso  junto  con  las  condiciones  o  transiciones  que  provocan  que  se  produzca  el  paso  de  una  etapa  a  otra”    

•  Normalizado:Interna4onal  Electrotechnical  Commision  IEC  848    

•  Una  de  las  mejores  herramientas  para  representar  automa4smos  secuenciales    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

11  

Page 12: Tema%4 - infoPLC

De:inir  las  variables  que  intervienen  y  asignarles  direcciones  de  memoria    

•  Definir  las  variables  que  intervienen  y  asignarles  direcciones  de  memoria    •  Con  los  métodos  anteriores:  

•  descripción  funcional  del  sistema  de  control  •  fijadas  las  entradas  y  salidas  que  tendrán  nombres  simbólicos    

•  Ejemplo:    •  “Control  de  una  puerta  corredera  accionada  por  medio  de  un  motor.  El  contactor  S1  

produce  la  apertura  de  la  puerta,  el  contactor  S2  controla  el  cierre  de  la  puerta.  El  interruptor  E3  de  final  de  carrera  se  ac4va  cuando  la  puerta  esta  abierta,  y  el  interruptor  E2  de  fin  de  carrera  se  ac4va  cuando  la  puerta  esta  cerrada.  La  puerta  se  abre  al  aplicar  una  determinada  presión  sobre  un  sensor  de  paso  de  vehículos  E1  situado  enfrente  de  la  puerta.  Si  el  sensor  E1  no  se  ac4va,  la  puerta  se  cierra–después  de  transcurridos  10  segundos.  Si  se  ac4va  E1,  se  cierra  el  contactor  S2  y  se  man4ene  cerrado  hasta  que  el  interruptor  E3  de  final  de  carrera  desac4ve  el  contacator  S2.  Cuando  se  esta  abriendo  la  puerta,  o  bien  cuando  una  vez  abierta  haya  detectado  un  vehículo  con  el  sensor  E1,  el  temporizador  T1  no  se  ac4va.  Si  no  se  dan  estas  circunstancias  y  la  puerta  esta  abierta  E3  ac4vado,  se  ac4va  el  temporizador  T1,  y  transcurridos  10  segundos,  la  puerta  se  cierra  mediante  el  contactor  S1  por  el  temporizador  T1.  La  acción  de  cerrar  se  produce  hasta  que  o  bien  se  detecta  fin  de  carrera  E2  o  bien  se  detecta  otro  vehículo  mediante  la  ac4vación  de  E1  en  cuyo  caso  se  abre  la  puerta  ac4vando  para  ello  el  contactor  S2.  Las  lámparas  LED1  y  LED2  indican  cuando  se  está  cerrando  o  abriendo  la  puerta  respec4vamente.”    

 

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

12  

Page 13: Tema%4 - infoPLC

De:inir  las  variables  que  intervienen  y  asignarles  direcciones  de  memoria    

•  Tabla  de  asignación  de  variables    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

13  

Definir las variables que intervienen y asignarles direcciones de memoria

•  Tabla de asignación de variables

Page 14: Tema%4 - infoPLC

De:inir  las  variables  que  intervienen  y  asignarles  direcciones  de  memoria    

•  Posteriormente  se  asignan  las  direcciones  gsicas  a  estas  variables    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

14  

Definir las variables que intervienen y asignarles direcciones de memoria

•  Posteriormente se asignan las direcciones físicas a estas variables

•  Además de estas variables: necesitare un contador que cuente los periodos de temporización. En las tablas anteriores este contador no se ha tenido en consideración.

•  Además  de  estas  variables:  necesitare  un  contador  que  cuente  los  periodos  de  temporización.  En  las  tablas  anteriores  este  contador  no  se  ha  tenido  en  consideración.    

Page 15: Tema%4 - infoPLC

Lenguajes  de  programación  •  “Conjunto  de  instrucciones  y/o  símbolos  que  están  disponibles  para  escribir  el  programa,  se  denomina  lenguaje  de  programación”    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

15  

Lenguajes de Programación •  “Conjunto de instrucciones y/o símbolos que están

disponibles para escribir el programa, se denomina lenguaje de programación”

•  Si unidad de programación acepta directamente la representación del sist. de control, se carga en la CPU. Si no hay que traducirla al lenguaje de programación pertinente.

•  Si  unidad  de  programación  acepta  directamente  la  representación  del  sist.  de  control,  se  carga  en  la  CPU.  Si  no  hay  que  traducirla  al  lenguaje  de  programación  per4nente.    

Page 16: Tema%4 - infoPLC

Lenguajes  de  programación  

•  KOP  (esquema  de  contactos)  es  un  lenguaje  de  programación  gráfico.  Su  representación  se  basa  en  esquemas  de  circuitos.    

•  FUP  (diagrama  de  funciones)  es  un  lenguaje  de  programación  que  se  basa  en  los  símbolos  lógicos  gráficos  empleados  en  el  álgebra  booleana.    

•  SCL  (structured  control  language)  es  un  lenguaje  de  programación  de  alto  nivel  basado  en.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

16  

Page 17: Tema%4 - infoPLC

Lenguajes  de  programación  •  Diagrama  de  contactos.    

•  Es  un  lenguaje  gráfico  procedente  del  lenguaje  de  relés  que  en  base  símbolos  que  representan  contactos,  bloques  funcionales,  etc.  codifican  la  secuencia  de  control.    

•  Diagrama  de  funciones  •  Deriva  de  la  representación  lógica  u4lizada  por  los  técnicos  en  electrónica  digital    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

17  

Diagrama de contactos. Diagrama de funciones •  Es un lenguaje gráfico procedente del lenguaje de relés que

en base símbolos que representan contactos, bloques funcionales, etc. codifican la secuencia de control.

•  Diagrama de funciones: deriva de la representación lógica utilizada por los técnicos en electrónica digital

Definición del sistema de control •  Diagramas lógicos

–  Este tipo de representación del sistema de control se utiliza en la documentación de las especificaciones y representación de los mismos

–  En muy pocos casos los usuarios finales de autómatas utilizan esta representación

Page 18: Tema%4 - infoPLC

Lenguajes  de  programación  •  Lenguajes  de  alto  nivel    

•  Lista  de  instrucciones,  diagramas  de  contactos,...  Insuficientes  para  programar  aplicaciones  complejas  para  autómatas  de  gama  media  y  alta.    

•  Herramientas  de  ingeniería:  •  S7-­‐SCL:  lenguaje  de  alto  nivel  que  se  asemeja  al  Pascal  •  M7-­‐ProC/C++:  Entorno  Borland  C/C++  y  depurador  mul4tarea.    

•  Casi  todos  los  fabricantes  de  autómatas  disponen  de  este  4po  de  herramientas  que  permiten  programar  en  Basic,  C,  Pascal,  Fortran,  etc.  mediante  el  uso  de  los  interpretes  o  compiladores  respec4vos.  Estas  herramientas  permiten  resolver  tareas  de  cálculo  cienpfico  de  alta  resolución,  clasificaciones  y  tratamiento  de  datos,  estadís4cas,  etc.,  con  acceso  a  subru4nas  específicas  de  lenguajes  informá4cos.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

18  

Page 19: Tema%4 - infoPLC

Visión  Práctica  S7-­‐1200  

•  Lenguajes  de  programación-­‐  para  el  S7-­‐1200  •  KOP  (esquema  de  contactos)  es  un  lenguaje  de  programación  gráfico.  Su  representación  se  basa  en  esquemas  de  circuitos.    

•  FUP  (diagrama  de  funciones)  es  un  lenguaje  de  programación  que  se  basa  en  los  símbolos  lógicos  gráficos  empleados  en  el  álgebra  booleana.    

•  SCL  (structured  control  language)  es  un  lenguaje  de  programación  de  alto  nivel  basado  en  texto.  

•  Al  crear  un  bloque  lógico,  se  debe  seleccionar  el  lenguaje  de  programación  que  empleará  dicho  bloque.    •  El  programa  de  usuario  puede  emplear  bloques  lógicos  creados  con  cualquiera  de  los  lenguajes  de  programación.    

 

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

19  

Page 20: Tema%4 - infoPLC

Visión  Práctica  S7-­‐1200  

•  Lenguajes  de  programación-­‐  para  el  S7-­‐1200  •  KOP  (esquema  de  contactos)  es  un  lenguaje  de  programación  gráfico.  Su  representación  se  basa  en  esquemas  de  circuitos.    

•  FUP  (diagrama  de  funciones)  es  un  lenguaje  de  programación  que  se  basa  en  los  símbolos  lógicos  gráficos  empleados  en  el  álgebra  booleana.    

•  SCL  (structured  control  language)  es  un  lenguaje  de  programación  de  alto  nivel  basado  en  texto.  

•  Al  crear  un  bloque  lógico,  se  debe  seleccionar  el  lenguaje  de  programación  que  empleará  dicho  bloque.    •  El  programa  de  usuario  puede  emplear  bloques  lógicos  creados  con  cualquiera  de  los  lenguajes  de  programación.    

 

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

20  

Page 21: Tema%4 - infoPLC

Visión  Práctica  S7-­‐1200  •  KOP  (esquema  de  contactos)  

•  Los  elementos  de  un  esquema  de  circuitos,  tales  como  los  contactos  normalmente  cerrados  y  normalmente  abiertos,  asi  como  las  bobinas,  se  combinan  para  formar  segmentos.  

•   KOP  ofrece  instrucciones  con  cuadros  para  numerosas  funciones,  p.  ej.  matemá4cas,  temporizadores,  contadores  y  transferencia.    

•  Todo  segmento  KOP  debe  terminar  con  una  bobina  o  cuadro.    

 

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

21  

� 3ULQFLSLRV�E£VLFRV�GH�SURJUDPDFLµQ�� ����/HQJXDMH�GH�SURJUDPDFLµQ�

&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����

$O�FUHDU�XQ�EORTXH�OµJLFR��VH�GHEH�VHOHFFLRQDU�HO�OHQJXDMH�GH�SURJUDPDFLµQ�TXH�HPSOHDU£�GLFKR�EORTXH���

(O�SURJUDPD�GH�XVXDULR�SXHGH�HPSOHDU�EORTXHV�OµJLFRV�FUHDGRV�FRQ�FXDOTXLHUD�GH�ORV�OHQJXDMHV�GH�SURJUDPDFLµQ���

����� (VTXHPD�GH�FRQWDFWRV��.23��/RV�HOHPHQWRV�GH�XQ�HVTXHPD�GH�FLUFXLWRV��WDOHV�FRPR�ORV�FRQWDFWRV�QRUPDOPHQWH�FHUUDGRV�\�QRUPDOPHQWH�DELHUWRV��DV¯�FRPR�ODV�ERELQDV��VH�FRPELQDQ�SDUD�IRUPDU�VHJPHQWRV���

�3DUD�FUHDU�OD�OµJLFD�GH�RSHUDFLRQHV�FRPSOHMDV��HV�SRVLEOH�LQVHUWDU�UDPDV�SDUD�ORV�FLUFXLWRV�SDUDOHORV��/DV�UDPDV�SDUDOHODV�VH�DEUHQ�KDFLD�DEDMR�R�VH�FRQHFWDQ�GLUHFWDPHQWH�D�OD�EDUUD�GH�DOLPHQWDFLµQ��/DV�UDPDV�VH�WHUPLQDQ�KDFLD�DUULED��

.23�RIUHFH�LQVWUXFFLRQHV�FRQ�FXDGURV�SDUD�QXPHURVDV�IXQFLRQHV��S��HM��PDWHP£WLFDV��WHPSRUL]DGRUHV��FRQWDGRUHV�\�WUDQVIHUHQFLD���

67(3���QR�OLPLWD�HO�Q¼PHUR�GH�LQVWUXFFLRQHV��ILODV�\�FROXPQDV��GH�XQ�VHJPHQWR�.23���

� 1RWD�

7RGR�VHJPHQWR�.23�GHEH�WHUPLQDU�FRQ�XQD�ERELQD�R�FXDGUR����

7HQJD�HQ�FXHQWD�ODV�UHJODV�VLJXLHQWHV�DO�FUHDU�VHJPHQWRV�.23��

Ⴠ� 1R�VH�SHUPLWH�SURJUDPDU�UDPDV�TXH�SXHGDQ�RFDVLRQDU�XQ�IOXMR�LQYHUWLGR�GH�OD�FRUULHQWH��

�Ⴠ� 1R�VH�SHUPLWH�SURJUDPDU�UDPDV�TXH�FDXVHQ�FRUWRFLUFXLWRV��

��

� 3ULQFLSLRV�E£VLFRV�GH�SURJUDPDFLµQ�� ����/HQJXDMH�GH�SURJUDPDFLµQ�

&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����

$O�FUHDU�XQ�EORTXH�OµJLFR��VH�GHEH�VHOHFFLRQDU�HO�OHQJXDMH�GH�SURJUDPDFLµQ�TXH�HPSOHDU£�GLFKR�EORTXH���

(O�SURJUDPD�GH�XVXDULR�SXHGH�HPSOHDU�EORTXHV�OµJLFRV�FUHDGRV�FRQ�FXDOTXLHUD�GH�ORV�OHQJXDMHV�GH�SURJUDPDFLµQ���

����� (VTXHPD�GH�FRQWDFWRV��.23��/RV�HOHPHQWRV�GH�XQ�HVTXHPD�GH�FLUFXLWRV��WDOHV�FRPR�ORV�FRQWDFWRV�QRUPDOPHQWH�FHUUDGRV�\�QRUPDOPHQWH�DELHUWRV��DV¯�FRPR�ODV�ERELQDV��VH�FRPELQDQ�SDUD�IRUPDU�VHJPHQWRV���

�3DUD�FUHDU�OD�OµJLFD�GH�RSHUDFLRQHV�FRPSOHMDV��HV�SRVLEOH�LQVHUWDU�UDPDV�SDUD�ORV�FLUFXLWRV�SDUDOHORV��/DV�UDPDV�SDUDOHODV�VH�DEUHQ�KDFLD�DEDMR�R�VH�FRQHFWDQ�GLUHFWDPHQWH�D�OD�EDUUD�GH�DOLPHQWDFLµQ��/DV�UDPDV�VH�WHUPLQDQ�KDFLD�DUULED��

.23�RIUHFH�LQVWUXFFLRQHV�FRQ�FXDGURV�SDUD�QXPHURVDV�IXQFLRQHV��S��HM��PDWHP£WLFDV��WHPSRUL]DGRUHV��FRQWDGRUHV�\�WUDQVIHUHQFLD���

67(3���QR�OLPLWD�HO�Q¼PHUR�GH�LQVWUXFFLRQHV��ILODV�\�FROXPQDV��GH�XQ�VHJPHQWR�.23���

� 1RWD�

7RGR�VHJPHQWR�.23�GHEH�WHUPLQDU�FRQ�XQD�ERELQD�R�FXDGUR����

7HQJD�HQ�FXHQWD�ODV�UHJODV�VLJXLHQWHV�DO�FUHDU�VHJPHQWRV�.23��

Ⴠ� 1R�VH�SHUPLWH�SURJUDPDU�UDPDV�TXH�SXHGDQ�RFDVLRQDU�XQ�IOXMR�LQYHUWLGR�GH�OD�FRUULHQWH��

�Ⴠ� 1R�VH�SHUPLWH�SURJUDPDU�UDPDV�TXH�FDXVHQ�FRUWRFLUFXLWRV��

��

� 3ULQFLSLRV�E£VLFRV�GH�SURJUDPDFLµQ�� ����/HQJXDMH�GH�SURJUDPDFLµQ�

&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����

$O�FUHDU�XQ�EORTXH�OµJLFR��VH�GHEH�VHOHFFLRQDU�HO�OHQJXDMH�GH�SURJUDPDFLµQ�TXH�HPSOHDU£�GLFKR�EORTXH���

(O�SURJUDPD�GH�XVXDULR�SXHGH�HPSOHDU�EORTXHV�OµJLFRV�FUHDGRV�FRQ�FXDOTXLHUD�GH�ORV�OHQJXDMHV�GH�SURJUDPDFLµQ���

����� (VTXHPD�GH�FRQWDFWRV��.23��/RV�HOHPHQWRV�GH�XQ�HVTXHPD�GH�FLUFXLWRV��WDOHV�FRPR�ORV�FRQWDFWRV�QRUPDOPHQWH�FHUUDGRV�\�QRUPDOPHQWH�DELHUWRV��DV¯�FRPR�ODV�ERELQDV��VH�FRPELQDQ�SDUD�IRUPDU�VHJPHQWRV���

�3DUD�FUHDU�OD�OµJLFD�GH�RSHUDFLRQHV�FRPSOHMDV��HV�SRVLEOH�LQVHUWDU�UDPDV�SDUD�ORV�FLUFXLWRV�SDUDOHORV��/DV�UDPDV�SDUDOHODV�VH�DEUHQ�KDFLD�DEDMR�R�VH�FRQHFWDQ�GLUHFWDPHQWH�D�OD�EDUUD�GH�DOLPHQWDFLµQ��/DV�UDPDV�VH�WHUPLQDQ�KDFLD�DUULED��

.23�RIUHFH�LQVWUXFFLRQHV�FRQ�FXDGURV�SDUD�QXPHURVDV�IXQFLRQHV��S��HM��PDWHP£WLFDV��WHPSRUL]DGRUHV��FRQWDGRUHV�\�WUDQVIHUHQFLD���

67(3���QR�OLPLWD�HO�Q¼PHUR�GH�LQVWUXFFLRQHV��ILODV�\�FROXPQDV��GH�XQ�VHJPHQWR�.23���

� 1RWD�

7RGR�VHJPHQWR�.23�GHEH�WHUPLQDU�FRQ�XQD�ERELQD�R�FXDGUR����

7HQJD�HQ�FXHQWD�ODV�UHJODV�VLJXLHQWHV�DO�FUHDU�VHJPHQWRV�.23��

Ⴠ� 1R�VH�SHUPLWH�SURJUDPDU�UDPDV�TXH�SXHGDQ�RFDVLRQDU�XQ�IOXMR�LQYHUWLGR�GH�OD�FRUULHQWH��

�Ⴠ� 1R�VH�SHUPLWH�SURJUDPDU�UDPDV�TXH�FDXVHQ�FRUWRFLUFXLWRV��

��

Page 22: Tema%4 - infoPLC

Visión  Práctica  S7-­‐1200  •  FUP  (diagrama  de  funciones)    

•  Al  igual  que  KOP,  FUP  es  un  lenguaje  de  programación  gráfico.  La  representación  de  la  lógica  se  basa  en  los  símbolos  lógicos  gráficos  del  álgebra  booleana.    

•  Para  crear  la  lógica  de  operaciones  complejas,  se  inserta  ramas  paralelas  entre  los  cuadros.    

•  Las  funciones  matemá4cas  y  otras  operaciones  complejas  pueden  representarse  directamente  en  combinación  con  los  cuadros  lógicos.    

 

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

22  

3ULQFLSLRV�E£VLFRV�GH�SURJUDPDFLµQ� �����/HQJXDMH�GH�SURJUDPDFLµQ�

� &RQWURODGRU�SURJUDPDEOH�6����������� 0DQXDO�GH�VLVWHPD�����������$�(������������

����� 'LDJUDPD�GH�IXQFLRQHV��)83��$O�LJXDO�TXH�.23��)83�HV�XQ�OHQJXDMH�GH�SURJUDPDFLµQ�JU£ILFR��/D�UHSUHVHQWDFLµQ�GH�OD�OµJLFD�VH�EDVD�HQ�ORV�V¯PERORV�OµJLFRV�JU£ILFRV�GHO�£OJHEUD�ERROHDQD���

3DUD�FUHDU�OD�OµJLFD�GH�RSHUDFLRQHV�FRPSOHMDV��LQVHUWH�UDPDV�SDUDOHODV�HQWUH�ORV�FXDGURV��

/DV�IXQFLRQHV�PDWHP£WLFDV�\�RWUDV�RSHUDFLRQHV�FRPSOHMDV�SXHGHQ�UHSUHVHQWDUVH�GLUHFWDPHQWH�HQ�FRPELQDFLµQ�FRQ�ORV�FXDGURV�OµJLFRV��

67(3���QR�OLPLWD�HO�Q¼PHUR�GH�LQVWUXFFLRQHV��ILODV�\�FROXPQDV��GH�XQ�VHJPHQWR�)83��

����� 6&/�(O�OHQJXDMH�GH�FRQWURO�HVWUXFWXUDGR��6&/��6WUXFWXUHG�&RQWURO�/DQJXDJH��HV�XQ�OHQJXDMH�GH�SURJUDPDFLµQ�GH�DOWR�QLYHO�EDVDGR�HQ�3$6&$/�SDUD�ODV�&38�GH�6,0$7,&�6���6&/�VRSRUWD�OD�HVWUXFWXUD�GH�EORTXHV�GH�67(3����3£JLQD�������7DPEL«Q�HV�SRVLEOH�LQFOXLU�EORTXHV�GH�SURJUDPD�HVFULWRV�HQ�6&/�FRQ�EORTXHV�GH�SURJUDPD�HVFULWRV�HQ�.23�\�)83�����

/DV�LQVWUXFFLRQHV�GH�6&/�HPSOHDQ�RSHUDGRUHV�GH�SURJUDPDFLµQ�HVW£QGDU��S��HM��SDUD�DVLJQDFLµQ��� ��R�SDUD�IXQFLRQHV�PDWHP£WLFDV����SDUD�OD�VXPD����SDUD�OD�UHVWD�� �SDUD�OD�PXOWLSOLFDFLµQ�\���SDUD�OD�GLYLVLµQ���6&/�WDPEL«Q�XWLOL]D�RSHUDFLRQHV�GH�FRQWURO�GH�SURJUDPD�3$6&$/�HVW£QGDU��WDOHV�FRPR�,)�7+(1�(/6(��&$6(��5(3($7�817,/��*272�\�5(7851��(V�SRVLEOH�XWLOL]DU�FXDOTXLHU�UHIHUHQFLD�3$6&$/�SDUD�HOHPHQWRV�VLQW£FWLFRV�GHO�OHQJXDMH�GH�SURJUDPDFLµQ�6&/��0XFKDV�RWUDV�LQVWUXFFLRQHV�GH�6&/��FRPR�ORV�WHPSRUL]DGRUHV�\�FRQWDGRUHV��VH�FRUUHVSRQGHQ�FRQ�ODV�LQVWUXFFLRQHV�GH�.23�\�)83��3DUD�P£V�LQIRUPDFLµQ�VREUH�GHWHUPLQDGDV�LQVWUXFFLRQHV��Y«DQVH�ODV�LQVWUXFFLRQHV�HVSHF¯ILFDV�GH�ODV�VHFFLRQHV�FRUUHVSRQGLHQWHV�D�,QVWUXFFLRQHV�E£VLFDV��3£JLQD������H�,QVWUXFFLRQHV�DYDQ]DGDV��3£JLQD��������

(V�SRVLEOH�GHVLJQDU�FXDOTXLHU�WLSR�GH�EORTXH��2%��)%�R�)&��SDUD�XWLOL]DU�HO�OHQJXDMH�GH�SURJUDPDFLµQ�HQ�HO�PRPHQWR�GH�FUHDU�HO�EORTXH��67(3���FXHQWD�FRQ�XQ�HGLWRU�GH�SURJUDPDV�6&/�TXH�LQFOX\H�ORV�HOHPHQWRV�VLJXLHQWHV��

Ⴠ� 6HFFLµQ�GH�LQWHUIDFH�SDUD�GHILQLU�ORV�SDU£PHWURV�GHO�EORTXH�OµJLFR�

Ⴠ� 6HFFLµQ�GH�FµGLJR�SDUD�HO�FµGLJR�GHO�SURJUDPD�

Ⴠ� �UERO�GH�LQVWUXFFLRQHV�TXH�FRQWLHQH�ODV�LQVWUXFFLRQHV�6&/�VRSRUWDGDV�SRU�OD�&38�

(O�FµGLJR�6&/�SDUD�OD�LQVWUXFFLµQ�VH�LQWURGXFH�GLUHFWDPHQWH�HQ�OD�VHFFLµQ�GH�FµGLJR��3DUD�REWHQHU�LQVWUXFFLRQHV�P£V�FRPSOHMDV��EDVWD�FRQ�DUUDVWUDU�ODV�LQVWUXFFLRQHV�6&/�GHO�£UERO�GH�LQVWUXFFLRQHV�\�VROWDUODV�HQ�HO�SURJUDPD��7DPEL«Q�VH�SXHGH�HPSOHDU�FXDOTXLHU�HGLWRU�GH�WH[WR�SDUD�FUHDU�XQ�SURJUDPD�6&/�\��D�FRQWLQXDFLµQ��LPSRUWDU�HO�DUFKLYR�D�67(3��������

Page 23: Tema%4 - infoPLC

Visión  Práctica  S7-­‐1200  •  SCL  (structured  control  language)    

•  El  lenguaje  de  control  estructurado  (SCL,  Structured  Control  Language)  es  un  lenguaje  de  programación  de  alto  nivel  basado  en  PASCAL  

•  Las  instrucciones  de  SCL  emplean  operadores  de  programación  estándar,  p.  ej.  para  asignación  (:=)  o  para  funciones  matemá4cas  (+  para  la  suma,  -­‐  para  la  resta,  *  para  la  mul4plicación  y  /  para  la  división).    

•  SCL  también  u4liza  operaciones  de  control  de  programa  PASCAL  estándar,  tales  como  IF-­‐THEN-­‐ELSE,  CASE,  REPEAT-­‐UNTIL,  GOTO  y  RETURN.  Es  posible  u4lizar  cualquier  referencia  PASCAL  para  elementos  sintác4cos  del  lenguaje  de  programación  SCL.    

 

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

23  

� 3ULQFLSLRV�E£VLFRV�GH�SURJUDPDFLµQ�� ����/HQJXDMH�GH�SURJUDPDFLµQ�

&RQWURODGRU�SURJUDPDEOH�6�������0DQXDO�GH�VLVWHPD�����������$�(������������ ����

�(Q�OD�VHFFLµQ�GHO�EORTXH�OµJLFR�6&/�VH�SXHGHQ�GHFODUDU�ORV�WLSRV�GH�SDU£PHWURV�VLJXLHQWHV��

Ⴠ� ,QSXW��2XWSXW��,Q2XW�\�5HWB9DO��HVWRV�SDU£PHWURV�GHILQHQ�ODV�YDULDEOHV�GH�HQWUDGD��ODV�YDULDEOHV�GH�VDOLGD�\�HO�YDORU�GH�UHWRUQR�GHO�EORTXH�OµJLFR��(O�QRPEUH�GH�OD�YDULDEOH�LQWURGXFLGD�HQ�HVWH�SXQWR�VH�HPSOHD�GH�IRUPD�ORFDO�GXUDQWH�OD�HMHFXFLµQ�GHO�EORTXH�OµJLFR��1RUPDOPHQWH��QR�VH�HPSOHD�HO�QRPEUH�GH�YDULDEOHV�JOREDOHV�HQ�OD�WDEOD�GH�YDULDEOHV��

Ⴠ� (VW£WLFRV��VROR�)%V��OD�ILJXUD�GH�DUULED�FRUUHVSRQGH�D�XQ�)&���ODV�YDULDEOHV�HVW£WLFDV�VH�XWLOL]DQ�SDUD�DOPDFHQDU�UHVXOWDGRV�LQWHUPHGLRV�HVW£WLFRV�HQ�HO�EORTXH�GH�GDWRV�LQVWDQFLD��/RV�GDWRV�HVW£WLFRV�VH�UHWLHQHQ�KDVWD�TXH�VH�VREUHVFULEHQ��OR�FXDO�SXHGH�RFXUULU�GHVSX«V�GH�YDULRV�FLFORV��/RV�QRPEUHV�GH�ORV�EORTXHV��ORV�FXDOHV�VH�OODPDQ�HQ�HVWH�EORTXH�OµJLFR�FRPR�PXOWLLQVWDQFLD��WDPEL«Q�VH�DOPDFHQDQ�HQ�ORV�GDWRV�ORFDOHV�HVW£WLFRV��

Ⴠ� 7HPS��HVWRV�SDU£PHWURV�VRQ�YDULDEOHV�WHPSRUDOHV�TXH�VH�HPSOHDQ�GXUDQWH�OD�HMHFXFLµQ�GHO�EORTXH�OµJLFR��

6L�VH�OODPD�HO�EORTXH�OµJLFR�6&/�GHVGH�RWUR�EORTXH�OµJLFR��ORV�SDU£PHWURV�GHO�EORTXH�OµJLFR�6&/�DSDUHFHQ�FRPR�HQWUDGDV�R�VDOLGDV��

�(Q�HVWH�HMHPSOR��ODV�YDULDEOHV�GH��6WDUW��\��2Q���GH�OD�WDEOD�GH�YDULDEOHV�GH�SUR\HFWR��VH�FRUUHVSRQGHQ�FRQ��6WDUW6WRS6ZLWFK��\��5XQ<HV1R��HQ�OD�WDEOD�GH�GHFODUDFLµQ�GHO�SURJUDPD�6&/��

&RQVWUXLU�XQD�H[SUHVLµQ�6&/�8QD�H[SUHVLµQ�6&/�HV�XQD�IµUPXOD�SDUD�FDOFXODU�XQ�YDORU��/D�H[SUHVLµQ�FRQVLVWH�HQ�RSHUDQGRV�\�RSHUDGRUHV��S��HM�� �������R�����/RV�RSHUDQGRV�SXHGHQ�VHU�YDULDEOHV��FRQVWDQWHV�R�H[SUHVLRQHV������������

Page 24: Tema%4 - infoPLC

Organización  de  programas  •  Al  crear  el  programa  de  usuario  para  las  tareas  de  automa4zación,  las  instrucciones  del  programa  se  insertan  en  bloques  lógicos  (OB,  FB  o  FC).  De  manera  estándar  está  disponible  el  bloque  de  organización  Main  [OB1].  

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

24  

OB (bloques de organización)

FB (bloque de función) tiene un bloque de datos de instancia para almacenamiento temporal

FC (función) No tiene bloque de datos de instancia

DB (bloque de datos) para acceso global y almacenamiento permanente

Page 25: Tema%4 - infoPLC

Organización  de  programas  •  Programación  lineal  

•  Un  programa  lineal  ejecuta  todas  las  instrucciones  de  la  tarea  de  automa4zación  de  forma  secuencial,  es  decir,  una  tras  otra.  Generalmente,  el  programa  lineal  deposita  todas  las  instrucciones  del  programa  en  un  OB  de  ciclo  (como  OB  1),  encargado  de  la  ejecución  cíclica  del  programa.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

25  

Page 26: Tema%4 - infoPLC

Organización  de  programas  •  Programación  estructurada  

•  En  el  caso  de  tareas  de  control  amplias,  se  subdivide  el  programa  en  bloques  de  programa  más  pequeños,  abarcables  y  ordenados  por  funciones.  Esto  presenta  la  ventaja  de  permi4r  la  comprobación  de  las  partes  del  programa  de  forma  independiente  y  ejecutarlas  como  una  función  global  durante  el  funcionamiento.  

•  Los  bloques  de  programa  deben  ser  llamados  por  el  bloque  de  orden  superior.  Si  se  detecta  un  fin  de  bloque  (BE),  el  programa  con4nuará  ejecutándose  en  el  bloque  que  llama,  detrás  de  la  llamada.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

26  

!

Page 27: Tema%4 - infoPLC

Organización  de  programas  •  Programación  estructurada  

•  Diseñando  FBs  y  FCs  que  ejecuten  tareas  genéricas,  se  crean  bloques  lógicos  modulares.    

•  El  programa  de  usuario  se  estructura  luego,  de  manera  que  otros  bloques  lógicos  llamen  estos  bloques  modulares  reu4lizables.  El  bloque  que  efectúa  la  llamada  transfiere  los  parámetros  específicos  del  disposi4vo  al  bloque  llamado.  Cuando  un  bloque  lógico  llama  otro  bloque  lógico,  la  CPU  ejecuta  la  lógica  de  programa  contenida  en  el  bloque  llamado.  Una  vez  finalizada  la  ejecución  del  bloque  llamado,  la  CPU  reanuda  la  ejecución  del  bloque  que  ha  efectuado  la  llamada.  El  procesamiento  con4núa  con  la  ejecución  de  la  instrucción  siguiente  a  la  llamada  de  bloque.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

27  

3URJUDPDFLµQ�FDGD�YH]�P£V�VHQFLOOD� �����)£FLO�GLVH³R�GHO�SURJUDPD�GH�XVXDULR�

� (DV\�%RRN���� 0DQXDO�GH�SURGXFWR�����������$�(������������

�$� %ORTXH�TXH�OODPD��R�EORTXH�LQWHUUXPSLGR��%� )%�R�%&�OODPDGR��X�2%�TXH�LQWHUUXPSH��� (MHFXFLµQ�GHO�SURJUDPD�

� ,QVWUXFFLµQ��R�HYHQWR�TXH�LQWHUUXPSH��TXH�LQLFLD�OD�HMHFXFLµQ�GH�RWUR�EORTXH�

� (MHFXFLµQ�GHO�SURJUDPD�

� )LQ�GHO�EORTXH��UHJUHVD�DO�EORTXH�TXH�OODPD��

/DV�OODPDGDV�GH�EORTXH�SXHGHQ�DQLGDUVH�SDUD�FUHDU�XQD�HVWUXFWXUD�P£V�PRGXODU��(Q�HO�HMHPSOR�VLJXLHQWH��OD�SURIXQGLGDG�GH�DQLGDPLHQWR�HV�GH����(O�2%�F¯FOLFR�P£V���QLYHOHV�GH�OODPDGDV�GH�EORTXHV�OµJLFRV��

� ,QLFLR�GHO�FLFOR�

� 3URIXQGLGDG�GH�DQLGDPLHQWR�

� �

&UHDQGR�EORTXHV�OµJLFRV�JHQ«ULFRV�TXH�SXHGHQ�UHXWLOL]DUVH�HQ�HO�SURJUDPD�GH�XVXDULR��HV�SRVLEOH�VLPSOLILFDU�HO�GLVH³R�\�OD�LPSOHPHQWDFLµQ�GHO�SURJUDPD�GH�XVXDULR���

Ⴠ� 6H�SXHGHQ�FUHDU�EORTXHV�OµJLFRV�UHXWLOL]DEOHV�SDUD�WDUHDV�HVW£QGDU��WDOHV�FRPR�HO�FRQWURO�GH�XQD�ERPED�R�PRWRU��7DPEL«Q�HV�SRVLEOH�DOPDFHQDU�HVWRV�EORTXHV�OµJLFRV�JHQ«ULFRV�HQ�XQD�OLEUHU¯D��GH�PDQHUD�TXH�SXHGDQ�VHU�XWLOL]DGRV�SRU�GLIHUHQWHV�DSOLFDFLRQHV�R�VROXFLRQHV��

Ⴠ� (O�SURJUDPD�GH�XVXDULR�SXHGH�GLYLGLUVH�HQ�FRPSRQHQWHV�PRGXODUHV�SDUD�ODV�WDUHDV�IXQFLRQDOHV��IDFLOLWDQGR�DV¯�VX�FRPSUHQVLµQ�\�JHVWLµQ��/RV�FRPSRQHQWHV�PRGXODUHV�QR�VµOR�D\XGDQ�D�HVWDQGDUL]DU�HO�GLVH³R�GHO�SURJUDPD��VLQR�TXH�WDPEL«Q�SXHGHQ�IDFLOLWDU�\�DJLOL]DU�OD�DFWXDOL]DFLµQ�R�PRGLILFDFLµQ�GH�OD�OµJLFD�GHO�SURJUDPD��

Ⴠ� /D�FUHDFLµQ�GH�FRPSRQHQWHV�PRGXODUHV�VLPSOLILFD�OD�GHSXUDFLµQ�GHO�SURJUDPD��'LYLGLHQGR�HO�SURJUDPD�FRPSOHWR�HQ�VHJPHQWRV�GH�SURJUDPD�PRGXODUHV��HV�SRVLEOH�FRPSUREDU�ODV�IXQFLRQHV�GH�FDGD�EORTXH�OµJLFR�D�PHGLGD�TXH�VH�YD�GHVDUUROODQGR��

Ⴠ� 8WLOL]DQGR�XQ�GLVH³R�PRGXODU�EDVDGR�HQ�WDUHDV�IXQFLRQDOHV�HVSHF¯ILFDV�VH�SXHGH�UHGXFLU�HO�WLHPSR�QHFHVDULR�SDUD�OD�HMHFXFLµQ�GH�WRGD�OD�DSOLFDFLµQ��

Page 28: Tema%4 - infoPLC

Organización  de  programas  •  Programación  estructurada  

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

28  

FC Global  

Data  Block  

Global  Data  Block  

OB

FB FC

FC

FB

Instance  Data  Block    

Instance  Data  Block  

La profundidad máxima de anidamiento es de 16

Page 29: Tema%4 - infoPLC

Organización  de  programas  •  Programación  estructurada  

•  Creando  bloques  lógicos  genéricos  que  pueden  reu4lizarse  en  el  programa  de  usuario,  es  posible  simplificar  el  diseño  y  la  implementación  del  programa  de  usuario.    

•  Se  pueden  crear  bloques  lógicos  reu4lizables  para  tareas  estándar,  tales  como  el  control  de  una  bomba  o  motor.  También  es  posible  almacenar  estos  bloques  lógicos  genéricos  en  una  librería,  de  manera  que  puedan  ser  u4lizados  por  diferentes  aplicaciones  o  soluciones.    

•  El  programa  de  usuario  puede  dividirse  en  componentes  modulares  para  las  tareas  funcionales,  facilitando  así  su  comprensión  y  ges4ón.  Los  componentes  modulares  no  sólo  ayudan  a  estandarizar  el  diseño  del  programa,  sino  que  también  pueden  facilitar  y  agilizar  la  actualización  o  modificación  de  la  lógica  del  programa.    

•  La  creación  de  componentes  modulares  simplifica  la  depuración  del  programa.  Dividiendo  el  programa  completo  en  segmentos  de  programa  modulares,  es  posible  comprobar  las  funciones  de  cada  bloque  lógico  a  medida  que  se  va  desarrollando.    

•  U4lizando  un  diseño  modular  basado  en  tareas  funcionales  especificas  se  puede  reducir  el  4empo  necesario  para  la  ejecución  de  toda  la  aplicación.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

29  

Page 30: Tema%4 - infoPLC

Tipos  de  módulos  •  Bloque  de  organización  (OB)    

•  Un  bloque  de  organización  (OB)  reacciona  a  un  evento  especifico  en  la  CPU  y  puede  interrumpir  la  ejecución  del  programa  de  usuario.  El  bloque  predeterminado  para  la  ejecución  cíclica  del  programa  de  usuario  (OB  1)  ofrece  la  estructura  básica  y  es  el  único  bloque  lógico  que  se  requiere  para  el  programa  de  usuario.  Si  se  incluyen  otros  OBs  en  el  programa,  éstos  interrumpen  la  ejecución  del  OB  1.  Los  demás  OBs  ejecutan  funciones  especificas,  tales  como  tareas  de  arranque,  procesamiento  de  alarmas  y  tratamiento  de  errores,  o  ejecución  de  un  código  de  programa  especifico  en  determinados  intervalos.  

•  Los  OBs  son  controlados  por  eventos.  Un  evento,  p.  ej.  una  alarma  de  diagnós4co  o  un  intervalo,  hace  que  la  CPU  ejecute  un  OB.  Algunos  OBs  4enen  eventos  de  arranque  y  comportamiento  en  arranque  predefinidos.    

•  La  CPU  determina  el  orden  de  procesamiento  de  eventos  de  alarma  según  la  prioridad  asignada  a  cada  OB.  Todo  evento  4ene  una  prioridad  de  procesamiento  propia.  El  nivel  de  prioridad  correspondiente  dentro  de  una  clase  de  prioridad  determina  el  orden  en  que  se  ejecutan  los  OB.      

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

30  

Page 31: Tema%4 - infoPLC

Tipos  de  módulos  •  Bloque  de  organización  (OB)    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

31  

Ciclo

Arranque

Hardware

Retardo

OB1

OB 100

OB 200

FC

FB

DB  

Cola de ejecución de OBs

FB

DB  

OB 202

OB 80

FC

Alarma error tiempo

Alarma proceso

Alarma cíclica OB 201

OB 82 Alarma error diagn.

Ala

rmas

El  acoplamiento  del  evento  al  OB  se  puede  realizar  durante  la  configuración  así  como  en  runRme  

Page 32: Tema%4 - infoPLC

Tipos  de  módulos  •  Función  (FC)    

•  Una  función  (FC)  es  un  bloque  lógico  que,  por  lo  general,  realiza  una  operación  específica  en  un  conjunto  de  valores  de  entrada.  La  FC  almacena  los  resultados  de  esta  operación  en  posiciones  de  memoria.  Por  ejemplo,  las  FC  se  u4lizan  para  ejecutar  operaciones  estándar  y  reu4lizables  (como  cálculos  matemá4cos)  o  funciones  tecnológicas  (como  para  controles  individuales  que  u4lizan  lógica  de  bits).  Una  FC  también  se  puede  llamar  varias  veces  en  diferentes  puntos  de  un  programa.  Esto  facilita  la  programación  de  tareas  que  se  repiten  con  frecuencia.    

•  Una  FC  no  4ene  ningún  bloque  de  datos  instancia  asociado  (DB).  La  FC  usa  la  pila  de  datos  locales  para  los  datos  temporales  u4lizados  para  calcular  la  operación.  Los  datos  temporales  no  se  almacenan.  Para  almacenar  los  datos  de  forma  permanente  es  preciso  asignar  el  valor  de  salida  a  una  posición  de  memoria  global,  p.  ej.  el  área  de  marcas  o  un  DB  global.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

32  

Page 33: Tema%4 - infoPLC

Tipos  de  módulos  •  Bloque  de  función  (FB)    

•  Un  bloque  de  función  (FB)  es  un  bloque  lógico  que  u4liza  un  bloque  de  datos  instancia  para  sus  parámetros  y  datos  está4cos.  

•  Los  FBs  4enen  una  memoria  variable  ubicada  en  un  bloque  de  datos  (DB)  o  DB  "instancia".  El  DB  instancia  ofrece  un  bloque  de  memoria  asociado  a  esa  instancia  (o  llamada)  del  FB  y  almacena  datos  una  vez  que  haya  finalizado  el  FB.    

•  Es  posible  asociar  dis4ntos  DBs  de  instancia  a  diferentes  llamadas  del  FB.  Los  DBs  instancia  permiten  u4lizar  un  FB  genérico  para  controlar  varios  disposi4vos.  

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

33  

Page 34: Tema%4 - infoPLC

Tipos  de  módulos  •  Bloque  de  función  (FB)    

•  La  figura  siguiente  muestra  un  OB  que  llama  un  FB  tres  veces,  u4lizando  un  bloque  de  datos  diferente  para  cada  llamada.  Esta  estructura  permite  que  un  FB  genérico  controle  varios  disposi4vos  similares  (p.  ej.  motores),  asignando  un  bloque  de  datos  instancia  diferente  a  cada  llamada  de  los  dis4ntos  disposi4vos.  Cada  DB  instancia  almacena  los  datos  (p.  ej.  velocidad,  4empo  de  aceleración  y  4empo  de  operación  total)  de  un  disposi4vo  en  par4cular.    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

34  

3ULQFLSLRV�E£VLFRV�GH�SURJUDPDFLµQ� �����8WLOL]DU�EORTXHV�SDUD�HVWUXFWXUDU�HO�SURJUDPD�

� &RQWURODGRU�SURJUDPDEOH�6����������� 0DQXDO�GH�VLVWHPD�����������$�(������������

8WLOL]DU�XQ�VROR�)%�FRQ�'%V�/D�ILJXUD�VLJXLHQWH�PXHVWUD�XQ�2%�TXH�OODPD�XQ�)%�WUHV�YHFHV��XWLOL]DQGR�XQ�EORTXH�GH�GDWRV�GLIHUHQWH�SDUD�FDGD�OODPDGD��(VWD�HVWUXFWXUD�SHUPLWH�TXH�XQ�)%�JHQ«ULFR�FRQWUROH�YDULRV�GLVSRVLWLYRV�VLPLODUHV��S��HM��PRWRUHV���DVLJQDQGR�XQ�EORTXH�GH�GDWRV�LQVWDQFLD�GLIHUHQWH�D�FDGD�OODPDGD�GH�ORV�GLVWLQWRV�GLVSRVLWLYRV��&DGD�'%�LQVWDQFLD�DOPDFHQD�ORV�GDWRV��S��HM��YHORFLGDG��WLHPSR�GH�DFHOHUDFLµQ�\�WLHPSR�GH�RSHUDFLµQ�WRWDO��GH�XQ�GLVSRVLWLYR�HQ�SDUWLFXODU���

�(Q�HVWH�HMHPSOR��HO�)%����FRQWUROD�WUHV�GLVSRVLWLYRV�GLIHUHQWHV��(O�'%�����DOPDFHQD�ORV�GDWRV�RSHUDWLYRV�GHO�SULPHU�GLVSRVLWLYR��HO�'%������ORV�GHO�VHJXQGR�\��HO�'%������ORV�GHO�WHUFHUR���

����� %ORTXH�GH�GDWRV��'%��/RV�EORTXHV�GH�GDWRV��'%��VH�FUHDQ�HQ�HO�SURJUDPD�GH�XVXDULR�SDUD�DOPDFHQDU�ORV�GDWRV�GH�ORV�EORTXHV�OµJLFRV��7RGRV�ORV�EORTXHV�GHO�SURJUDPD�GH�XVXDULR�SXHGHQ�DFFHGHU�D�ORV�GDWRV�HQ�XQ�'%�JOREDO��(Q�FDPELR��XQ�'%�LQVWDQFLD�DOPDFHQD�ORV�GDWRV�GH�XQ�EORTXH�GH�IXQFLµQ��)%��HVSHF¯ILFR���

/RV�GDWRV�DOPDFHQDGRV�HQ�XQ�'%�QR�VH�ERUUDQ�FXDQGR�ILQDOL]D�OD�HMHFXFLµQ�GHO�EORTXH�OµJLFR�DVRFLDGR��+D\�GRV�WLSRV�GH�'%V��D�VDEHU��

Ⴠ� 8Q�'%�JOREDO�DOPDFHQD�ORV�GDWRV�GH�ORV�EORTXHV�OµJLFRV�HQ�HO�SURJUDPD��&XDOTXLHU�2%��)%�R�)&�SXHGH�DFFHGHU�D�ORV�GDWRV�HQ�XQ�'%�JOREDO��

Ⴠ� 8Q�'%�LQVWDQFLD�DOPDFHQD�ORV�GDWRV�GH�XQ�)%�HVSHF¯ILFR��/D�HVWUXFWXUD�GH�ORV�GDWRV�HQ�XQ�'%�LQVWDQFLD�UHIOHMD�ORV�SDU£PHWURV��,QSXW��2XWSXW�H�,Q2XW��\�ORV�GDWRV�HVW£WLFRV�GHO�)%���/D�PHPRULD�WHPSRUDO�GHO�)%�QR�VH�DOPDFHQD�HQ�HO�'%�LQVWDQFLD���

� � 1RWD�

$XQTXH�HO�'%�LQVWDQFLD�UHIOHMD�ORV�GDWRV�GH�XQ�)%�HVSHF¯ILFR��FXDOTXLHU�EORTXH�OµJLFR�SXHGH�DFFHGHU�D�ORV�GDWRV�HQ�XQ�'%�LQVWDQFLD��

En  este  ejemplo,  el  FB  22  controla  tres  disposi4vos  diferentes.  El  DB  201  almacena  los  datos  opera4vos  del  primer  disposi4vo,  el  DB  202,  los  del  segundo  y,  el  DB  203,  los  del  tercero.      

Page 35: Tema%4 - infoPLC

Tipos  de  módulos  •  Bloque  de  datos  (DB)    

•  Los  bloques  de  datos  (DB)  se  crean  en  el  programa  de  usuario  para  almacenar  los  datos  de  los  bloques  lógicos.  Todos  los  bloques  del  programa  de  usuario  pueden  acceder  a  los  datos  en  un  DB  global.  En  cambio,  un  DB  instancia  almacena  los  datos  de  un  bloque  de  función  (FB)  específico.    

•  Los  datos  almacenados  en  un  DB  no  se  borran  cuando  finaliza  la  ejecución  del  bloque  lógico  asociado.  Hay  dos  4pos  de  DBs,  a  saber:    

•  Un  DB  global  almacena  los  datos  de  los  bloques  lógicos  en  el  programa.  Cualquier  OB,  FB  o  FC  puede  acceder  a  los  datos  en  un  DB  global.    

•  Un  DB  instancia  almacena  los  datos  de  un  FB  específico.  La  estructura  de  los  datos  en  un  DB  instancia  refleja  los  parámetros  (Input,  Output  e  InOut)  y  los  datos  está4cos  del  FB.  (La  memoria  temporal  del  FB  no  se  almacena  en  el  DB  instancia.)    

13/10/14

 TEMA  4  PR

INCIPIOS  BÁ

SICO

S  DE

 PRO

GRAM

ACIÓN.  V

ISIÓN  

PRÁC

TICA

 S7-­‐1200  

35