PROYECTO FIN DE CARRERA. Controlador modular programable, basado en procesador de 32 bits y CAN bus

PROYECTO FIN DE CARRERA Título Controlador modular programable, basado en procesador de 32 bits y CAN bus Autor/es Alberto Martínez Inchusta Direct

0 downloads 97 Views 6MB Size

Story Transcript

PROYECTO FIN DE CARRERA

Título

Controlador modular programable, basado en procesador de 32 bits y CAN bus Autor/es

Alberto Martínez Inchusta Director/es

Javier Esteban Vicuña Martínez Facultad

Escuela Técnica Superior de Ingeniería Industrial Titulación

Proyecto Fin de Carrera Departamento

Ingeniería Eléctrica Curso Académico

2012-2013

Controlador modular programable, basado en procesador de 32 bits y CAN bus, proyecto fin de carrera de Alberto Martínez Inchusta, dirigido por Javier Esteban Vicuña Martínez (publicado por la Universidad de La Rioja), se difunde bajo una Licencia Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0 Unported. Permisos que vayan más allá de lo cubierto por esta licencia pueden solicitarse a los titulares del copyright.

© ©

El autor Universidad de La Rioja, Servicio de Publicaciones, 2013 publicaciones.unirioja.es E-mail: [email protected]

CONTROLADOR MODULAR PROGRAMABLE BASADO EN PROCESADOR DE 32 BITS Y CAN BUS.

TITULACIÓN: Ingeniería Industrial Superior. AUTOR: Alberto Martínez Inchusta. DIRECTOR DEL PROYECTO: Javier Esteban Vicuña Martínez. DEPARTAMENTO: Departamento de Ingeniería Eléctrica. CURSO ACADÉMICO: 2012/2013

Índice General

Índice de la memoria. 1.

Introducción. .............................................................................................1

2.

Objeto ........................................................................................................2

3.

Alcance.......................................................................................................3

4.

Antecedentes..............................................................................................4

5.

Normas y referencias ..................................................................................6

6.

Definiciones y abreviaturas.........................................................................8

7.

Análisis de soluciones................................................................................10

8.

Resultados finales......................................................................................24

9.

Posibles vías de ampliación. ....................................................................134

Índice de Anexos. 1.

Anexo 1. Características técnicas de los componentes electrónicos usados en el hardware de las placas...............................................................................1

2.

Anexo 2. Hardware y software del CAN bus..................................................14

3.

Anexo 3. Código de la aplicación SCADA........................................................73

4.

Anexo 4. Contenido del cd adjunto. ..............................................................74

Índice de Planos. 1.

Plano 1. Entradas digitales............................................................................1

2.

Plano 2. Salidas digitales...............................................................................2

3.

Plano 3. Entradas analógicas.........................................................................3

4.

Plano 4. Estructura hardware del autómata..................................................4

5.

Plano 5. Placa principal.................................................................................5

6.

Plano 6. Esquema electrónico de las salidas digitales rápidas........................6

7.

Plano 7. Esquema electrónico de las salidas digitales a triac..........................7

8.

Plano 8. Esquema electrónico de las entradas analógicas. .............................8

9.

Plano 9. Esquema electrónico de las entradas digitales..................................9

Índice del pliego de condiciones. 1.

Disposiciones Generales...............................................................................1

2.

Disposiciones legales y normativa aplicable..................................................4

3.

Condiciones facultativas................................................................................6

4.

Condiciones de ejecución y montaje..............................................................8

5.

Condiciones de materiales y equipos...........................................................28

6.

Manual de usuario.......................................................................................34

7.

Disposición final...........................................................................................48

Índice de Presupuesto. 1.

Introducción.................................................................................................1

2.

Mediciones...................................................................................................2

3.

Cuadros de precios unitarios.........................................................................4

4.

Presupuesto parcial.......................................................................................6

5.

Presupuesto total........................................................................................10

 

     

   

Memoria      

                             

 

 

 

Índice  de  la  memoria.   1.   Introducción.  .............................................................................................................  1   2.   Objeto  ...........................................................................................................................  2   3.   Alcance  .........................................................................................................................  3   4.   Antecedentes.  ............................................................................................................  4   5.   Normas  y  referencias  ..............................................................................................  6   5.1   5.2   5.3  

Disposiciones  legales  y  normas  aplicadas.  ........................................................  6   Bibliografía.  ..................................................................................................................  6   Programas.  ....................................................................................................................  7  

6.   Definiciones  y  abreviaturas.  .................................................................................  8   7.   Análisis  de  soluciones.  .........................................................................................  10   7.1   Comparativa  de  soluciones  para  la  placa  interfaz.  .......................................  10   7.1.1   Análisis  de  la  plataforma  Atmel  AVR  ..........................................................................  10   7.1.2   Análisis  de  la  plataforma  Microchip  PIC.  ...................................................................  11   7.2   Análisis  de  soluciones  para  la  estructura  del  autómata  alternativo.  .....  12   7.3   Análisis  del  protocolo  de  comunicaciones  CAN.  ............................................  15   7.3.1   Elementos  que  componen  el  sistema  CAN  Bus.  ......................................................  16   7.3.2   Proceso  de  transmisión  de  datos.  .................................................................................  17   7.3.3   Mensajes  y  tipos  de  tramas.  ............................................................................................  18   7.3.4   Formato  de  tramas.  .............................................................................................................  19   7.3.5   Errores  en  la  comunicación.  ...........................................................................................  22  

8.   Resultados  finales.  ................................................................................................  24   8.1   Descripción  del  hardware.  ...................................................................................  24   8.1.1   Placa  principal  (CPU).  ........................................................................................................  24   8.1.2   Módulos  de  entrada/salida.  ............................................................................................  27   8.2   Descripción  del  software.  .....................................................................................  39   8.2.1   Programación  formulario  Zonas.  ..................................................................................  39   8.2.2   Programación  del  formulario  Paso1.  ..........................................................................  41   8.2.3   Programación  del  formulario  Controles.  ...................................................................  49   8.2.4   Manual  de  usuario  del  panel  SCADA.  ..........................................................................  86   8.3   Descripción  de  las  comunicaciones.  ..................................................................  98  

9.  Posibles  vías  de  ampliación.  ...............................................................................  135  

 

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

1. Introducción.     • TITULO:  “Controlador  modular  programable  basado  en  procesador  de  32   bits  y  CAN  bus”   • EMPLAZAMIENTO:  Escuela  de  Enseñanzas  Científicas  y  Técnicas  de  la   Universidad  de  La  Rioja.   • PETICIONARIO:  Universidad  de  La  Rioja.   • AUTOR  DEL  PROYECTO.  

   

Alberto  Martínez  Inchusta.     Razón  Social:  Logroño  (La  Rioja)   Director  del  Proyecto:  Javier  Esteban  Vicuña  Martínez,  profesor  del   departamento  de  Ingeniería  Eléctrica  de  la  Universidad  de  La  Rioja.   E-­‐mail:  [email protected]  

                   

 

Memoria.                                                                                                                                                                                                                            

1

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

2. Objeto                   El  objeto  de  este  proyecto  consiste  en  el  diseño  hardware  de  un  controlador   lógico   programable   (PLC),   basado   en   microcontrolador   de   32   bits,   escalable   modularmente  por  medio   de   CAN   bus   y   compatible  con   plataforma  ARDUINO,  que   cuente   con   prestaciones   técnicas   equiparables   a   las   de   los   PLC´s   industriales   básicos,   y   también   el   desarrollo   de   una   aplicación   software   de   código   abierto,   para   el   desarrollo   de   aplicaciones   de   control   y   monitorización   industrial,   como   alternativa  abierta  de  bajo  coste.       Partiendo   de   que   una   de   las   principales   premisas   es   obtener   una   solución   económica,  dicho  software  de  supervisión,  no  requiere  de  la  compra  de  ninguna   licencia  para  el  usuario,  más  adelante  se  explicará  de  manera  detenida  como  se   ha  llevado  a  cabo  y  se  entenderá  el  porqué  de  esta  cualidad  tan  ventajosa.   Así   mismo,   como   la   placa   del   microcontrolador   elegida   no   trabaja   con   los   niveles   requeridos   en   el   ámbito   industrial,   se   deberá   confeccionar   una   placa   de   potencia  que  nos  permita  adaptar  estos  niveles  a  cualquier  planta  industrial.     Otro   de   los   objetos   del   presente   proyecto   es   dotar   al   equipo   de   control   alternativo   de   la   mayor   modularidad,   para   ello   se   empleará   el   CAN   bus   que   permitirá  ir  añadiendo  al  autómata  nuevos  módulos  (placas  microcontroladoras).     Como  se  desprende  de  las  líneas  anteriores,  con  este  proyecto  se  va  a   conseguir  una  alternativa  fiable  a  los  autómatas  programables,  tanto  a  nivel   económico  como  técnico,  ya  que  el  microcontrolador  de  32  bits  elegido  junto  con   la  placa  de  potencia  que  le  acompaña,  están  a  la  altura  de  cualquiera  de  los  PLC´s   actuales  tanto  en  coste  como  prestaciones  técnicas.       Así   mismo,   el   software   de   supervisión   SCADA   desarrollado   que   se   facilita   al   usuario,  le  permitirá  realizar  todas  las  labores  de  control  y  supervisión  necesarias   para   tener   el   dominio   absoluto   sobre   la   planta   y   todo   ello   a   coste   cero,   sin   la   necesidad  de  adquirir  licencias  propietarias  del  fabricante  del  autómata.    

Memoria.                                                                                                                                                                                                                            

2

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

3. Alcance     Se   trata   de   un   proyecto   de   diseño   industrial   de   un   sistema   prototipo   y   comprende   las   etapas   de   diseño   electrónico,   diseño   de   tarjetas   PCB,   comunicaciones   y   software   de   programación   de   tarjetas   chipKIT,   junto   con   el   diseño  de  software  de  supervisión  a  través  de  lenguaje  de  programació  visual,  así   como  su  posterior  puesta  en  marcha  e  integración  en  las  comunicaciones  creadas  y   diseñadas  (Puerto  USB  y  CAN  Bus).     Dada   la   extensión   del   proyecto,   y   los   medios   disponibles   en   el   departamento,   quedan   fuera   del   alcance   del   mismo   la   realización   física   de   las   tarjetas   electrónicas   diseñadas   para   el   prototipo,   que   se   encargarían   a   una   empresa  especializada.   La  solución  integral  de  control  y  supervisión  a  implementar,  es  un  sistema   innovador  en  la  medida  que  se  está  trabajando  con  los  componentes  electrónicos   más   novedosos,   lo   que   permite   al   usuario   obtener   un   producto   de   tamaño   reducido  con  unos  tiempos  de  procesamiento  de  datos  muy  altos.   Dicha   solución   permite   disponer   en   todo   momento   de   información   referente   al   funcionamiento   y   rendimiento   de   las   instalaciones,   así   como   de   las   posibles  anomalías  que  puedan  producirse.  

Memoria.                                                                                                                                                                                                                            

3

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

4. Antecedentes.     PLC   son   las   iniciales   de   Programmable   Logic   Controller,   que   traducido   resulta   Controlador   Lógico   programable.   También   puede   ser   usado   el   término   Autómata   programable   para   referirse   a   este   tipo   de   dispositivos.   A   lo   largo   de   este   documento  se  usará  indistintamente  cada  uno  de  estos  términos.     Hace   algunos   años   las   soluciones   de   automatización   que   se   podían   encontrar   en   el   mercado   pasaban   indefectiblemente   por   el   uso   de   tecnologías   cableadas  incluyendo  relés  electromecánicos  o  módulos  lógicos  neumáticos  entre   otros.  El  uso  de  esta  tecnología  resultaba  muy  caro  y  voluminoso.   A   finales   de   la   década   de   los   años   60,   consciente   de   estos   problemas,   la   General   Motors   encarga   el   diseño   de   equipos   que   cumplieran   las   siguientes   especificaciones:     • Flexibles:  Debían  adaptarse  a  una  gran  variedad  de  situaciones.   • Estado   sólido:   Los   nuevos   equipos   debían   estar   realizados   usando   componentes  electrónicos.   • Ambiente:  Debían  poder  soportar  los  ambientes  industriales.   • Sencillos:   Debían   poder   ser   programados   por   personas   sin   conocimientos  informáticos.   • Lógicos.   La  aparición  de  los  PLC´s  o  autómatas  programables,  supuso  una  revolución   en   este   mundo,   permitiendo   la   posibilidad   de   almacenar   una   secuencia   de   órdenes   en   su   interior   y   ejecutarlo   de   forma   cíclica   con   el   fin   de   realizar   una   tarea.   El   impulso  inicial  es  pensar  que  se  trata  de  un  PC,  pero  existen  múltiples  diferencias   entre  ambos,  ya  que  el  PLC  está  diseñado  para  trabajar  en  ambientes  industriales  y   ejecutar  su  programa  de  forma  indefinida  siendo  menos  propenso  a  fallos  que  un   ordenador   convencional.   Además,   su   programación   está   más   orientada   al   ámbito   electromecánico,   incluso   existen   lenguajes   que   simulan   el   comportamiento   de   un   sistema  de  relés  y  temporizadores.   La   generalización   del   uso   de   estos   PLC   ha   conllevado   la   diversificación   de   los   modelos   existentes   en   el   mercado.   Hoy   en   día   los   equipos   son   capaces   de   realizar   complicadas   operaciones,   incluso   en   coma   flotante,   privilegio   disponible   hasta   hace   poco   sólo   en   equipos   muy   costosos.   Además,   cada   vez   es   más   usual   que   los  autómatas  de  gama  baja  sean  capaces  de  gestionar  un  gran  número  de  entradas   y  salidas,  analógicas  o  digitales,  así  como  controlar  varios  encoders  por  poner  un   ejemplo.   Esta  diversificación  en  los  autómatas  hace  que  cada  vez  se  vea  más  abierto   los  campos  de  aplicación  de  estos,  así  como  las  tecnologías  de  las  que  se  nutre  para   llevar  a  cabo  su  propósito.    

Memoria.                                                                                                                                                                                                                            

4

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

En   el   punto   en   que   se   encuentra   el   mundo   de   la   automatización,   lleva   a   definir   el   presente   proyecto,   como   un   proyecto   de   fusión   de   conocimientos   que   permitan   dar   luz   verde   a   un   sistema   de   control   de   bajo   coste,   con   las   mismas   prestaciones  que  los  actuales  autómatas  programables.  Demostrando  que  existen   alternativas   al   PLC   convencional   a   la   hora   de   realizar   el   control   sobre   distintos   procesos  industriales.      

Memoria.                                                                                                                                                                                                                            

5

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

5. Normas  y  referencias    

5.1 Disposiciones  legales  y  normas  aplicadas.   5.2 Bibliografía.  

Para  la  realización  del  presente  proyecto,  se  ha  necesitado  acudir  a  diversas   fuentes   en   busca   de   información   acerca   de   las   diferentes   áreas   que   engloba   este   proyecto.   A  continuación,  se  enumerarán  las  distintas  fuentes  consultadas:   Páginas  Web.   • • • • • • • • • • • • •

http://msdn.microsoft.com/en-­‐us/library/ms950417.aspx   http://www.elguille.info/vb/Libros.   http://www.digilentinc.com/   http://www.arduino.cc/   http://es.farnell.com/   http://www.analog.com/en/index.html   http://www.fairchildsemi.com   http://www.ti.com/ww/en/analog/overview/index.shtml   http://www.national.com   http://www.onsemi.com   http://www.avagotech.com/pages/home/   http://www.comchiptech.com   http://www.can-­‐cia.org/  

Apuntes.   • •

Apuntes  de  la  asignatura  “Automatización  Industrial  Avanzada”.   Apuntes  de  “Electrónica  analógica”.  

Libros.   •

Microcontroladores  PIC:  sistema  integrado  para  el  autoaprendizaje.  

Memoria.                                                                                                                                                                                                                            

6

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

5.3 Programas.     • • • • • • • • • • • •

Visual  basic  studio  6.0   Compilador  de  chipKIT.   Microsoft  Office.   kiCAD   Top  Solid   Photoshop   Autocad   Fritzing     VMware  Fusion   Wings3D  1.4.1   MWSnap   Proteus  7.2  Portable  

Memoria.                                                                                                                                                                                                                            

7

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

6. Definiciones  y  abreviaturas.     Definiciones.   • •

• • •

• • • •

• • •

Bus   CAN:   protocolo   de   comunicaciones   desarrollado   por   la   firma   alemana   Robert   Bosch   GmbH,   basado   en   una   topología   bus   para   la   transmisión  de  mensajes  en  entornos  distribuidos.   Código   abierto:   es   el   término   con   el   que   se   conoce   al   software   distribuido  y  desarrollado  libremente.  El  código  abierto  tiene  un  punto   de   vista   más   orientado   a   los   beneficios   prácticos   de   poder   acceder   al   código,   que   a   las   cuestiones   éticas   y   morales   las   cuales   se   destacan   en   el   software  libre.   Archivo  .dll:  Bibliotecas  de  vínculos  dinámicos.   Microcontrolador:   es   un   circuito   integrado   programable,   capaz   de   ejecutar   órdenes   grabadas   en   su   memoria.   Está   formado   por   la   unidad   central  de  procesamiento,  memoria  y  periféricos  de  entrada  y  salida.   Framework:  Es  un  conjunto  estandarizado  de  conceptos,  prácticas  y   criterios  para  enfocar  un  tipo  de  problemática  particular,  que  sirve   como  referencia  para  enfrentar  y  resolver  nuevos  problemas  de  índole   similar.   Bit:  Es  la  unidad  mínima  de  información  empleada  en  informática,  capaz   de  representar  dos  estados,  verdadero  o  falso,  activado  o  desactivado.   Byte:  Unidad  de  información  formada  por  8  bits.   Core:   Parte   principal   de   los   microcontroladores   y   microprocesadores   que  se  encarga  de  todo  el  procesamiento.  Está  formado  por  los  registros,   la  unidad  de  control,  la  unidad  aritmético  lógica  y  los  buses.   Compilador:  Programa  informático  que  traduce  el  código  fuente  escrito   en   un   lenguaje   de   programación   a   otro   lenguaje   de   programación   de   menor   nivel,   generando   un   programa   equivalente   que   la   máquina   sea   capaz   de   interpretar.   Normalmente   al   lenguaje   al   que   se   compila   suele   ser  a  lenguaje  máquina.   DIP:  Empaquetado  en  el  que  se  pueden  fabricar  los  chips,  consistente  en   dos   filas   paralelas   de   pines   distribuidas   a   lo   largo   del   empaquetado   y   con  una  separación  de  0,1  pulgadas  entre  ellos.   Shield:  En  el  mundo  relacionado  con  Arduino,  se  refiere  a  la  placa  que   se   conecta   encima   de   éste   para   ampliar   sus   capacidades   tanto   de   procesamiento,  como  de  control  o  interfaz.   Bootloader:   Porción   de   código   almacenado   en   una   zona   especial   de   la   flashdel   microcontrolador   que   le   permite   ejecutarse   en   cada   inicio.   Normalmente  es  utilizado  para  poder  programar  el  microcontrolador  a   través  del  puerto  serie  en  vez  de  con  un  programador  especializado.  

    Memoria.                                                                                                                                                                                                                            

8

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

Abreviaturas.   • • • • • • • •

CAN  :  Controller  área  Network.   PIC:  Peripheral  interface  Controller.     H:  High   L:  Low   ACK:  Acknowledgement.   USB:  Universal  Serial  Bus.     SCADA:  Supervisory  Control  And  Data  Acquisition   PLC:  Programmable  Logic  Controller

Memoria.                                                                                                                                                                                                                            

9

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

7.

 

Análisis  de  soluciones.  

7.1 Comparativa  de  soluciones  para  la  placa  interfaz.     La   interacción   con   el   mundo   físico   se   realizará   a   través   de   un   microcontrolador  con  una  cantidad  aceptable  de  pines  disponibles  para  el  uso  del   cliente,   salidas   PWM,   entradas   digitales   y   analógicas,   temporizadores,   etc.   que   ofrezcan  un  gran  abanico  de  posibilidades.   Dichas   placas   electrónicas   deberán   reunir   una   serie   de   posibilidades,   tales   como:   • • • •

Alta  disponibilidad  por  parte  de  los  distribuidores  a  nivel  mundial.   Así   mismo,   es   interesante   que   dichos   componentes   electrónicos   no   se   encuentren   en   proceso   de   descatalogación   o   que   sean   susceptibles   en   un  corto  plazo  de  ser  descatalogados.   Precio   reducido,   incluso   en   bajas   cantidades,   con   una   relación   funcionalidad/precio  alta.   Baja  cantidad  de  electrónica  adicional  necesaria  para  el  funcionamiento   del  microcontrolador.  

7.1.1 Análisis  de  la  plataforma  Atmel  AVR  

La   arquitectura   AVR,   perteneciente   a   Atmel,   es   de   8   bits   y   fue   diseñada   desde  el  comienzo  para  una  eficiente  ejecución  de  código  C  compilado.   ARDUINO.   Dicha   arquitectura   ha   sufrido   un   incremento   en   popularidad   como   consecuencia  del  lanzamiento  de  la  plataforma  Arduino,  lo  que  garantiza  una  gran   cantidad   de   documentación,   ejemplos   de   código   y   una   comunidad   de   usuarios   densamente  poblada.     Arduino   puede   entenderse   como   un   conjunto   de   librerías   que   facilitan   en   gran   medida   el   desarrollo   en   la   plataforma   AVR,   las   cuales   presentan   una   gran   facilidad  de  uso.     Así  mismo,  Arduino  también  es  una  sencilla  placa  de  desarrollo,  que  puede   encontrarse  en  cualquier  distribuidor  de  electrónica  del  mundo  debido  a  su   gran   popularidad.  Su  precio  alterna  entre  los  18  o  26  euros  según  modelo  y  distribuidor.     Una  de  las  ventajas  más  destacadas  y  la  razón  por  la  que  Arduino  eligió  la   plataforma  AVR,  es  la  existencia  del  compilador  libre  basado  en  GCC  denominado   avr-­‐gcc.         Memoria.                                                                                                                                                                                                                            

10

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  Ventajas   • Compilador  libre  y  gratuito.   • Gran  comunidad  de  usuarios  y  cantidad  de  información  gratuita.   Desventajas   • Precio.    

7.1.2 Análisis  de  la  plataforma  Microchip  PIC.    

Microchip  con  su  familia  de  microcontroladores  PIC,  ha  estado  liderando  el   mercado   del   desarrollo   de   proyectos   personales   a   través   del   programa   de   muestras  de  Microchip.  Sus  compiladores  junto  con  las  librerías,  son  gratuitos  o  en   algunos  casos  poseen  un  límite  de  compilación,  sin  embargo,  poseen  licencias  con   cláusulas  que  dificultan  la  distribución  del  código  fuente  en  según  qué  casos.     PINGÜINO.   Pingüino  nace  como  consecuencia  de  la  idea  de  una  serie  de  desarrolladores   de   portar   las   librerías   Arduino   a   la   arquitectura   PIC.   Aunque   funcionales,   estas   librerías   no   presentan   el   mismo   nivel   de   desarrollo   ni   de   fiabilidad   que   las   de   Arduino.   Sin   embargo,   continuando   con   el   programa   de   muestras   Microchip,   consiguió  formar  una  sólida  base  de  usuarios.   chipKIT.   De   una   colaboración   entre   Digilent   y   la   propia   Microchip   nace   chipKIT,   la   alternativa   real   a   Arduino,   consiguiendo   portar   con   fiabilidad   las   liberías   de   Arduino  e  intentando  mantenerlas  a  la  par  con  respecto  a  estas.     Una  de  los  problemas  que  se  planteaban,  estaba  en  la  línea  del  compilador,   ya   que   aunque   el   entorno   de   desarrollo   era   el   mismo   que   el   de   Arduino,   su   compilador   poseía   el   inconveniente   de   no   ser   libre   al   seguir   usando   los   propietarios   ya   existentes.   Más   tarde,   como   solución   a   este   problema,   se   liberó   parte  del  compilador  para  su  uso  con  las  placas  chipKIT.   Sin  embargo,  como  gran  ventaja,  chipKIT  posee  un  microcontrolador  de  32   bits,  lo  que  posibilita  realizar  aquellos  trabajos  que  requieren  una  gran  cantidad  de   procesamiento  con  respecto  al  micro  de  8  bits  de  Arduino.   Ventajas   • Microcontrolador  de  32  bits.   • API  exactamente  igual  que  la  de  Arduino.   • Provee  de  dos  controladores  CAN   Desventajas   • Compilador  no  libre  del  todo.   • Pequeña  comunidad  de  usuarios.    

Memoria.                                                                                                                                                                                                                            

11

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

7.2 Análisis  de  soluciones  para  la  estructura  del   autómata  alternativo.     La  estructura  interna  de  los  autómatas  programables  puede  ser  descrita  en   cinco  bloques:   El  bloque  de  entradas,  es  el  encargado  de  recibir  las  señales  procedentes   de   los   sensores.   Además,   estas   señales   deberán   de   ser   adaptadas   para   su   comprensión   por   parte   de   la   CPU.   También   tiene   como   misión   proteger   los   circuitos  internos  del  PLC.   Por   su   parte,   el   bloque   de   salidas   es   un   concepto   inverso   al   anterior,   de   manera   que   su   misión   es   interpretar   las   órdenes   de   la   CPU,   descodificarlas,   amplificarlas  y  enviarlas  a  los  actuadores.   La  CPU,  puede  definirse  como  la  unidad  en  la  que  reside  la  inteligencia  del   sistema,   de   forma   que   en   base   a   las   instrucciones   programadas   y   el   valor   de   las   entradas,  activa  las  salidas.   Así   mismo,   cualquier   PLC   requiere   de   una   fuente   de   alimentación   que   sea   capaz   de   adaptar   las   tensiones   a   los   valores   necesarios   para   los   dispositivos   electrónicos  internos.   Por  último,  nombrar  a  los  interfaces,  que  son  los  canales  de  comunicación   con  el  exterior.  

  Figura  1)

Estructura  de  los  autómatas  convencionales.  

Partiendo   de   la   estructura   interna   que   presentan   los   autómatas   programables  convencionales,  se  plantean  tres  soluciones  posibles  para  el  equipo   de  control  alternativo  del  presente  proyecto.  En  primer  lugar  se  enumerarán  cada   una  de  ellas  y  posteriormente  se  pasará  a  realizar  un  análisis  más  profundo.   La   primera   propuesta   y   la   más   sencilla   de   implementar,   estaría   basada   en   una   placa   de   desarrollo   chipKIT   MAX32,   en   la   que   se   delimitarían   el   número   de   entradas   y   salidas   tanto   digitales   como   analógicas,   emulando   así   a   los   autómatas   compactos.  

Memoria.                                                                                                                                                                                                                            

12

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  En   segundo   lugar,   de   nuevo   se   partiría   de   una   única   placa   de   desarrollo   chipKIT   MAX32,   sin   embargo,   en   este   caso   la   placa   de   potencia   se   diseñaría   bajo   una   idea   de   autómata   modular   (aunque   no   en   el   sentido   amplio   de   la   palabra),     dando   al   usuario   la   posibilidad   de   decidir   el   número   de   entradas   analógicas   o   digitales  que  desee,  así  como  el  tipo  de  cada  una  de  ellas.     En  la  tercera  solución,  es  cuando  se  plantea  un  diseño  plenamente  modular,   en  la  que  se  utilizarían  tantas  placas  de  desarrollo  chipKIT  MAX32  como  el  usuario   desee  o  necesite  para  llevar  a  buen  puerto  su  instalación  industrial.     Como   se   ha   citado   al   principio,   en   esta   primera   parte   del   análisis   únicamente   se   está   realizando   una   enumeración   y   será   en   la   parte   posterior   cuando  el  lector  comprenda  mejor  cada  una  de  las  propuestas.   PRIMERA  PROPUESTA.   Esta  primera  solución,  es  una  idea  muy  primitiva  pero  eficaz,  basada  en  una   placa   chipKIT   32MAX,   la   cual   aporta   una   gran   cantidad   de   pines,   en   concreto,   16   entradas  analógicas,  5  salidas  digitales  y  57  entradas/salidas  digitales.   De  manera  que  el  diseñador  delimitaría  el  número  de  entradas  y  salidas  que   poseería   el   equipo   de   control,   obteniendo   como   resultado   un   elemento   estanco,   cuyo   inconveniente   principal   aparecería   en   el   supuesto   caso   de   que   el   usuario   necesitaría   simplemente   una   entrada   digital   más   que   las   dispuestas,   lo   que   haría   desechar  la  opción  de  uso  de  este  tipo  de  dispositivos  de  control.   Por  lo  tanto,  en  caso  de  tomar  la  decisión  de  diseñar  bajo  estas  premisas,  se   estaría   limitando   el   campo   de   aplicación   de   estos   dispositivos   de   control,   a   aquellas   instalaciones   que   no   superarían   el   número   de   entradas   y   salidas   ofertadas.     De  hecho,  este  es  el  único  inconveniente  a  esta  solución,  ya  que  si  se  analiza   la   capacidad   del   microprocesador,   se   observa   que   con   esos   tiempos   de   procesamiento   se   puede   dar   respuesta   a   cualquier   tipo   de   proceso   a   controlar.   Además,   con   el   mero   hecho   de   seleccionar   los   componentes   electrónicos   oportunos  (de  la  placa  de  potencia)  para  igualar  los  tiempos  de  conmutación  de  los   PLC  convencionales,    estaríamos  ante  una  gran  solución  al  problema  del  presente   proyecto.   Además,  con  esta  disposición  se  tienen  los  cinco  bloques  principales  de  los   autómatas   programables   en   una   placa   de   un   tamaño   mucho   más   reducido   que   el   de  los  autómatas  programables  estándar.   SEGUNDA  PROPUESTA.   La   segunda   opción   también   requiere   de   una   única   placa   de   desarrollo   chipKIT   32MAX,   a   la   que   como   se   dijo   en   la   primera   parte   de   este   análisis   se   le   pretende   conferir   el   mayor   grado   (dentro   de   las   posibilidades   que   ofrece   esta   disposición)  de  adaptabilidad  para  el  usuario.    

Memoria.                                                                                                                                                                                                                            

13

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Para  ello,  la  placa  de  potencia  se  debería  diseñar  de  tal  manera,  que  exista   una   placa   principal,   la   cual   posea   una   serie   de   zócalos   en   los   que   se   insertarían   los   diferentes  módulos  de  entradas  y  salidas.     Estos   módulos   de   entradas   y   salidas,   serían   placas   secundarias   que   poseerían  una  cantidad  concreta  de  entradas  o  salidas,  emulando  a  los  módulos  de   entradas  y  salidas  que  se  pueden  adquirir  a  cualquier  fabricante  de  autómatas.   De   esta   manera,   se   tendría   la   placa   principal   unida   a   la   chipKIT   32MAX   y   posteriormente   se   le   irían   incluyendo   placas   secundarias   en   función   de   las   necesidades  del  usuario.   Con   esto   se   obtiene   una   solución   mucho   más   modulable   que   la   anterior,   sin   embargo,  el  problema  principal  que  se  presentaba  en  la  primera  propuesta  sigue   sin  subsanarse.   TERCERA  PROPUESTA.   Es  con  esta  tercera  propuesta  con  la  que  se  elimina  el  problema  que  aparece   a   lo   largo   de   este   análisis.   Esto   se   consigue   dotando   a   esta   tercera   solución   de   la   cualidad  de  modulable  en  el  sentido  amplio  de  la  palabra.   Para   ello   se   requiere   de   varias   placas   de   desarrollo   chipKIT   32MAX,   en   concreto   como   mínimo   serán   necesarias   dos   chipKIT.   La   primera   de   ellas   realizará   las  labores  de  la  CPU,  y  la  otra  emulará  a  los  bloques  de  entradas  y  salidas  de  los   autómatas  convencionales.   Es  decir,  la  primera  placa  (CPU),  albergará  el  programa  de  control,  así  como   las   instrucciones   necesarias   para   controlar   las   distintas   comunicaciones   y   las   posteriores   placas,   serán   idénticas   a   las   descritas   en   la   segunda   propuesta,   pudiendo  añadir  tantas  placas  como  se  quiera  (en  función  de  las  necesidades  del   cliente),  por  lo  que  obviamente  con  esta  nueva  disposición  se  evita  el  problema  del   límite  de  entradas/salidas.  

  Figura  2)

Estructura  del  autómata  alternativo.  

Memoria.                                                                                                                                                                                                                            

14

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Esta   solución   parece   la   más   correcta   y   así   lo   es,   sin   embargo   complica   mucho  más  la  labor  del  diseñador,  ya  que  requiere  de  un  enlace  de  comunicación   entre  las  diferentes  placas,  que  se  pasará  a  analizar  en  el  siguiente  punto.  

7.3 Análisis  del  protocolo  de  comunicaciones  CAN.     El   protocolo   de   comunicaron   CAN   (Controller   Area   Network)   fue   desarrollado   en   los   años   80   para   resolver   problemas   de   comunicación   entre   los   diferentes  sistemas  de  control  de  los  coches.  Debido  a  su  robustez,  la  idea  no  tardó   en  pasar  al  sector  de  la  automatización  y  control.     El   CAN   bus   es   un   protocolo   serie   asíncrono   del   tipo   CSMA/CD.   Al   ser   CSMA,   cada   nodo   de   la   red   debe   monitorizar   el   bus   y   si   detecta   que   no   existe   actividad,   puede   enviar   un   mensaje.   Así   mismo,   al   ser   CD,   si   dos   nodos   de   la   red   comienzan   a   transmitir   a   la   vez   un   mensaje,   ambos   detectan   la   colisión,   dicho   problema   se   resuelve  mediante  el  uso  de  las  prioridades  que  más  tarde  se  explicarán.   El   medio   físico   que   permite   la   circulación   de   la   información   entre   los   distintos  nodos,  es  un  par  de  cables  trenzados.  La  impedancia  característica  de  la   línea   es   del   orden   de   120   ohmios,   por   lo   que   se   emplean   resistencias   de   este   valor   en  ambos  extremos  del  bus  para  evitar  ondas  reflejadas  y  que  el  bus  se  convierta   en   una   antena.   Este   bus   tiene   una   longitud   máxima   de   1000   metros   a   40   Kbps,   con   una  velocidad  máxima  de  1Mbps  a  40  metros.   Entre   los   distintos   nodos   circulan   paquetes   de   ceros   y   unos   con   una   longitud   limitada   y   con   una   estructura   definida   en   campos   que   conforman   el   mensaje.  Uno  de  estos  campos  identifica  el  tipo  de  dato  que  transporta,  así  como  la   unidad  que  lo  transmite  y  la  prioridad  para  transmitirlo  con  respecto  a  otros.  En   realidad,  el  mensaje  no  va  direccionado  a  ninguna  unidad  de  mando  en  concreto,   sino  que  cada  una  de  ellas  deberá  ser  capaz  de  reconocer  mediante  el  identificador   si  el  mensaje  le  interesa  o  no.   Todas   las   unidades   de   la   red   pueden   ser   transmisoras   y   receptoras,   y   el   número   de   módulos   conectados   es   variable,   en   función   de   las   necesidades   de   la   instalación.   Como   ya   se   ha   dicho   anteriormente,   si   no   se   cumple   la   condición   de   que   el   bus   este   libre,   el   módulo   no   podrá   introducir   un   mensaje   en   el   bus.   En   el   supuesto   caso,   de   que   dos   módulos   intenten   transmitir,   el   conflicto   se   resolverá   mediante  las  prioridades,  que  están  marcadas  por  el  identificador.  De  tal  manera,   que   aquel   nodo   con   el   identificador   más   bajo,   será   el   que   mayor   prioridad   tenga   para  transmitir.   Obviamente,   el   sistema   está   dotado   de   una   serie   de   mecanismos   que   aseguran  que  el  mensaje  es  transmitido  y  recibido  correctamente.  En  el  momento   que   un   mensaje   presenta   un   error,   es   anulado   y   vuelto   a   transmitir   de   manera   automática.  Así  mismo,  en  caso  de  que  un  nodo  presente  problemas,  lo  comunica  al   resto   de   integrantes   de   la   red,   si   la   situación   no   se   soluciona,   este   nodo   se   verá   excluido  de  la  comunicación,  pero  esto  no  significa  que  la  red  no  siga  funcionando.  

Memoria.                                                                                                                                                                                                                            

15

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

Este  protocolo  se  encuentra  estructurado  de  acuerdo  con  el  modelo  OSI  en   una  arquitectura  de  dos  capas,  la  capa  física  y  la  capa  de  enlace  de  datos.  El  resto   de   capas   del   modelo   OSI   (red,   transporte,   sesión,   presentación   y   aplicación)   no   están   especificadas   pero   hay   que   diseñarlas.   Sobre   todo   es   de   vital   importancia   especificar  un  protocolo  de  alto  nivel  (HLP).     Entre  las  características  principales  del  bus  CAN,  aparecen  algunas  como:   • • • • • • • •

Priorización  del  mensaje.   Comunicación  basada  en  mensajes  y  no  en  comunicaciones.   Garantía  de  los  tiempos  de  retardo.   Flexibilidad  de  la  configuración.   Recepción  múltiple  con  tiempos  de  sincronización.   Robustez  en  sistemas  de  amplios  datos.   Sistema  multimaestro.   El  límite  de  nodos,  lo  marca  el  hardware.  

7.3.1 Elementos  que  componen  el  sistema  CAN  Bus.     Cables.   La   información   circula   a   través   de   dos   cables   trenzados   que   unen   los   diferentes   nodos   que   conforman   el   sistema.   Esta   información   es   transmitida   por   diferencia   de   tensión   entre   ambos   cables,   de   tal   manera   que   un   valor   alto   de   tensión   representa   un   uno   y   un   valor   bajo   de   tensión   representa   un   cero.   La   combinación  de  unos  ceros,  forman  las  tramas  que  circulan  a  lo  largo  de  la  red.    En   un   cable   los   valores   de   tensión   oscilan   entre   0   y   2,25   voltios,   por   ello   es   denominado   como   cable   L   (Low).   En   el   otro   cable,   los   valores   de   tensión   son   superiores   (entre   2,75   y   5   voltios),   por   lo   que   se   denomina   H,   del   acrónimo   de   High.   En   el   supuesto   caso   de   que   se   interrumpa   la   línea   H   o   se   derive   a   masa,   el   sistema  trabajara  con  la  señal  L  con  respecto  a  masa,  en  el  caso  de  interrumpirse  la   línea  L,  sucedería  lo  contrario.    

  Figura  3)

Par  trenzado.  

Elementos  de  cierre  o  terminador.   Físicamente   estos   elementos   son   unas   resistencias,   que   se   colocan   en   los   extremos   de   los   cables   H   y   L.   Sus   valores   son   habitualmente   de   120   ohmios   y   se   colocan   con   el   objetivo   de   adecuar   el   funcionamiento   del   sistema   a   diferentes   longitudes   de   cables   y   número   de   módulos   conectados,   ya   que   impiden   posibles   efectos  parásitos  que  pueden  corromper  el  mensaje.       Memoria.                                                                                                                                                                                                                            

16

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

  Figura  4)

Cierre  o  terminador.  

Controlador.   Es   el   elemento   encargado   de   la   transmisión   entre   el   microprocesador   del   módulo  y  el  transmisor-­‐receptor.  Trabaja  acondicionando  la  información  que  entra   y  sale  entre  ambos  componentes.   Existirá   un   controlador   por   nodo,   y   entre   sus   labores   principales   se   encuentra   la   determinación   de   la   velocidad   de   los   mensajes,   así   como   la   sincronización   entre   los   diferentes   módulos   para   la   correcta   emisión   y   recepción   de  los  mensajes.  

  Figura  5)

Controlador.  

Transmisor/Receptor.   El   transmisor-­‐receptor   es   el   elemento   que   tiene   como   misión   recibir   y   transmitir   los   datos,   además   de   acondicionar   y   preparar   la   información   para   que   pueda  ser  utilizada  por  los  controladores.  Esta  preparación  consiste  en  situar  los   niveles  de  tensión  de  forma  adecuada,  amplificando  la  señal  cuando  la  información   se  vuelca  en  la  línea  y  reduciéndola  cuando  es  recogida  de  la  misma  y  suministrada   al  controlador.  

7.3.2 Proceso  de  transmisión  de  datos.      

Como   ya   se   ha   descrito   más   arriba,   el   CAN   bus   está   orientado   hacia   el   mensaje   y   no   al   destinatario.   La   información   que   circula   por   el   par   trenzado   es   transmitida  en  forma  de  mensajes  estructurados,  de  tal  manera  que  una  parte  del   mismo  es  un  identificador  que  establece  la  clase  de  dato  que  contiene.  Por  su  parte,   cada   uno   de   los   módulos   reciben   el   mensaje,   lo   filtran   y   únicamente   lo   emplean   aquellos  que  necesitan  dicho  dato.   Obviamente,   cada   uno   de   estos   módulos   es   capaz   de   introducir   como   de   recoger   mensajes.   Así   mismo   y   sin   ánimo   de   ser   repetitivo,   destacar   que   en   el   caso   de   que   el   bus   este   libre,   cualquier   módulo   puede   comenzar   a   transmitir.   Este   proceso   de   transmisión   de   datos  requiere  del  desarrollo  de  varios  pasos  que  serán   explicados  a  continuación.   Memoria.                                                                                                                                                                                                                            

17

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Suministro  de  datos.    Un   módulo   recibe   información   de   los   sensores   que   tiene   asociados   y   posteriormente   su   microprocesador   pasa   la   información   al   controlador   donde   es   gestionada  y  preparada  para  ser  pasada  al  transmisor-­‐receptor  donde  se  traducirá   en  señales  eléctricas.   Transmisión  de  datos.       El  controlador  de  los  módulos  transfiere  los  datos,  el  identificador  y  la   petición  de  inicio  de  transmisión,  con  el  objetivo  de  transmitir  de  manera  correcta   el  mensaje  a  lo  largo  de  la  red.     Para   conseguir   el   citado   objetivo,   el   bus   debe   de   encontrarse   libre   y   en   el   hipotético   caso,   de   encontrarse   en   conflicto   con   otro   módulo,   ha   de   tener   mayor   prioridad.   Una   vez   logrado   el   objetivo,   el   resto   de   nodos   se   convierten   en   receptores   a   la  espera  del  mensaje,  siempre  y  cuando  este  les  sea  de  interés.   Recepción  del  mensaje.   Cuando  todos  los  módulos  se  posicionan  en  estado  de  escucha,  reciben  el   mensaje  y  a  continuación  verifican  el  identificador  con  el  objetivo  de  determinar  si   el  mensaje  va  a  ser  utilizado  por  ellos.  De  esta  manera,  aquellos  que  necesitan  el   mensaje  lo  procesan  y  aquellos  que  no  lo  necesitan  simplemente  lo  ignoran.   El   protocolo   CAN   dispone   de   mecanismos   para   detectar   errores   en   la   transmisión   de   mensajes,   de   forma   que   todos   los   receptores   realizan   un   chequeo  del  mensaje  analizando  una  parte  del  mismo,  llamado  campo  CRC.  

7.3.3 Mensajes  y  tipos  de  tramas.     Al  igual  que  todas  las  comunicaciones  de  este  tipo,  el  mensaje  es  una  sucesión  de   ceros  y  unos,  que  se  representan  por  distintos  niveles  de  tensión  en  los  cables  del   CAN.  CAN  utiliza  mensajes  con  una  estructura  predefinida,  que  en  una  jerga  más   coloquial  se  conocen  como  tramas.    Se  distinguen  dos  variantes  de  tramas  CAN,  las  definidas  en  CAN  estándar  y   las   definidas   en   el   CAN   extendido.   La   diferencia   sustancial   entre   ambas   tramas   viene   impuesta   por   el   número   de   bits   que   emplea   para   el   identificador,   requiriendo  la  primera  11  bits  y  la  segunda  29  bits.   Las   tramas   CAN   son   de   longitud   reducida,   la   más   larga   es   de   130   bits   en   CAN  estándar  y  154  bits  en  CAN  extendida.  En  un  bus  Can  existe  la  posibilidad  de   enviar   las   tramas   de   una   manera   automática,   ya   sea   ante   la   aparición   de   un   suceso   o  por  un  proceso  realizado  durante  una  cierta  frecuencia.  

Memoria.                                                                                                                                                                                                                            

18

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

La   trama   de   interrogación   remota   es   empleada   únicamente   para   detectar   la   presencia   de   módulos   o   para   configuración   de   información   en   un   módulo   recién   incorporado  a  la  red.     Las  tramas  principales  que  son  manejadas  en  el  CAN  bus  son:   Trama  de  datos   La   que   un   módulo   utiliza   normalmente   para   poner   información   en   el   bus.   Puede  incluir  entre  0  y  8  bytes  de  información  útil.   Trama  de  interrogación  remota.   Puede   ser   utilizada   por   un   módulo   para   solicitar   la   transmisión   de   una   trama   de   datos   con   la   información   implicada   a   un   identificador   dado.   El   módulo   que  disponga  de  la  información  definida  por  el  identificador  la  transmitirá  en  una   trama  de  datos.    Trama  de  error.   Se   usan   para   señalar   al   resto   de   módulos   la   detección   de   cualquier   error,   impidiendo  normalmente  el  mensaje  erróneo  

7.3.4 Formato  de  tramas.     El  mensaje  se  descompone  en  varios  campos  de  diferentes  tamaños,  gracias   a   los   cuales   es   posible   llevar   a   cabo   el   intercambio   de   información   entre   los   distintos  nodos.   Trama  de  datos.  

  Figura  6)

Trama  de  Bus  CAN.  

Campo  de  inicio  del  mensaje.  El  mensaje  se  inicia  con  bit  dominante,  cuyo   flanco  descendente  es  utilizado  por  los  módulos  para  sincronizarse  entre  si.   Campo   de   árbitro.   Los   11   bits   de   este   campo   se   usan   como   identificador   que   permite   reconocer   a   los   módulos   su   prioridad.   De   esta   manera,   cuanto   más   bajo  sea  el  valor  del  identificador  más  alta  es  la  prioridad,  y  por  lo  tanto,  determina   el  orden  en  que  van  a  ser  introducidos  los  mensajes  en  la  línea.  El  bit  RTR  indica  si   el   mensaje   contiene   datos   (RTR   =   0)   o   si   se   trata   de   una   trama   remota   sin   datos   (RTR  =  1).     Campo   de   control.   Este   campo   informa   sobre   las   características   del   campo   de   datos.   El   bit   IDE   indica   cuando   es   un   “0”   que   se   trata   de   una   trama   estándar   (BasicCAN,  11bits)  y  cuando  es  un  “1”  que  es  una  trama  extendida.  El  segundo  bit   (RB0)  es  siempre  recesivo.  Los  cuatro  bits  que  componen  el  campo  DLC  indican  el   número  de  bytes  contenido  en  el  campo  de  datos  (0  a  8).   Memoria.                                                                                                                                                                                                                            

19

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

    Figura  7)

Campo  de  control.  

 Campo   de   datos.   En   este   campo   aparece   la   información   del   mensaje   con   los   datos   que   el   módulo   correspondiente   introduce   en   la   línea   CAN.   Puede   contener  entre  0  y  8  bytes.     Figura  8)

 Campo  de  datos.  

Campo   de   aseguramiento.   Este   campo   tiene   una   longitud   de   16   bits   y   se   utiliza  para  detectar  errores  por  los  15  primeros,  mientras  que  el  último  siempre   será  un  bit  recesivo  para  delimitar  el  campo  CRC.  

  Figura  9)

 Campo  de  aseguramiento.  

Campo  de  confirmación  (ACK).  El  campo  ACK  se  compone  de  dos  bits  que   son   siempre   transmitidos   como   recesivos.   Todos   los   módulos   que   reciben   el   mismo  CRC  modifican  el  primer  bit  del  campo  ACK  por  uno  dominante,  de  forma   que  le  módulo  que  esta  todavía  transmitiendo  reconoce  que  al  menos  un  módulo   ha  recibido  un  mensaje  que  se  ha  escrito  correctamente.  De  no  ser  así,  el  módulo   transmisor  interpreta  que  su  mensaje  tiene  un  error.  

  Figura  10) Campo  de  confirmación  ACK.  

Campo   de   final   del   mensaje.   Este   campo   indica   el   final   del   mensaje   con   una  cadena  de  7  bits  recesivos.  

  Figura  11) Campo  de  final  del  mansaje.  

Espaciado  entre  tramas  (IFS).  Consta  mínimo  de  tres  bits.         Memoria.                                                                                                                                                                                                                            

20

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

       

Trama  remota.   El  formato  es  idéntico  al  de  la  trama  de  datos,  salvo  por  la  diferencia  de  que   el   bit   RTR   es   recesivo.   Así   mismo   volver   a   destacar   que   una   trama   remota   no   incluye  datos  y  que  el  identificador  es  el  del  mensaje  que  se  solicita.  

  Figura  12) Trama  remota.  

Trama  de  error.    Las   tramas   de   error   son   generadas   por   cualquier   módulo   que   detecta   un   error.  Consiste  en  dos  campos:  Indicador  de  error  ("Error  Flag")  y  Delimitador  de   error.  El  delimitador  de  error  consta  de  8  bits  recesivos  consecutivos  y  permite  a   los   módulos   reiniciar   la   comunicación   de   nuevo   tras   el   error.   El   indicador   de   error   varía  según  el  estado  de  error:   •



Si   un   módulo   en   estado   de   error   "Activo"   detecta   un   error   en   el   bus   interrumpe   la   comunicación   del   mensaje   en   proceso   generando   un   "Indicador   de   error   activo"   que   consiste   en   una   secuencia   de   6   bits   dominantes  sucesivos.  Esta  secuencia  rompe  la  regla  de  relleno  de  bits  y   provocará   la   generación   de   tramas   de   error   en   otros   módulos.   Por   tanto   el   Indicador   de   error   puede   extenderse   entre   6   y   12   bits   dominantes   sucesivos.  Finalmente  se  espera  el  campo  que  delimita  el  error  formado   por   los   8   bits   recesivos.   Entonces   la   comunicación   se   reinicia   y   el   módulo   que   había   sido   interrumpido   reintenta   la   transmisión   del   mensaje.   Si   un   módulo   en   estado   de   error   "Pasivo"   detecta   un   error,   el   módulo   transmite   un   "Indicador   de   error   pasivo"   seguido,   de   nuevo,   por   el   campo   delimitador   de   error.   El   indicador   de   error   de   tipo   pasivo   consiste   en   6   bits   recesivos   seguidos   y,   por   lo   tanto,   la   trama   de   error   para   un   módulo   pasivo   es   una   secuencia   de   14   bits   recesivos.   De   aquí   se   deduce   que   la   transmisión   de   la   trama   de   error   de   tipo   pasivo   no   afectará  a  ningún  módulo  en  la  red,  excepto  cuando  el  error  es  detectado   por   el   propio   módulo   que   está   transmitiendo.   En   ese   caso   los   demás   módulos  detectaran  una  violación  de  las  reglas  de  relleno  y  transmitirán   a  su  vez  tramas  de  error.  

Tras   señalar   un   error   por   medio   de   la   trama   de   error   apropiada   cada   módulo   transmite   bits   recesivos   hasta   que   recibe   un   bit   también   recesivo,   luego   transmite  7  bits  recesivos  antes  de  finalizar  el  tratamiento  de  error.   Arbitraje.   Memoria.                                                                                                                                                                                                                            

21

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Un   módulo   transmisor   monitoriza   constantemente   el   estado   del   bus.   Durante   la   transmisión   del   campo   Arbitraje   la   detección   de   un   bit   dominante,   cuando   el   bit   transmitido   ha   sido   recesivo,   hace   que   el   módulo   detenga   la   transmisión   y   pase   a   recepción   de   trama.   Así,   no   se   pierde   información   y   no   se   destruye  por  colisión  ninguna  trama  de  datos  o  remota.   En   un   bus   único   un   identificador   de   mensaje  ha   de   ser   asignado   a   un   solo   módulo   concreto,   es   decir,   se   ha   de   evitar   que   dos   módulos   puedan   iniciar   la   transmisión  simultánea  de  mensajes  con  el  mismo  identificador  y  datos  diferentes.   La   filosofía   CAN   se   basa   en   que   un   mensaje   es   único   en   el   sistema.   Las   tramas   remotas   con   identificador   concreto   que   puedan   ser   generadas   por   cualquier   módulo   han   de   coincidir   en   cuanto   al   campo   longitud   +   longitud   del   campo   de   datos  +  contenido  de  estos  datos,  el  mensaje  ha  de  ser  único  en  el  sistema  y  estar   asignado  a  un  módulo  concreto.  

  Figura  13) Acceso  al  bus  CAN.  

7.3.5 Errores  en  la  comunicación.    

         Aunque  como  ya  se  ha  citado  anteriormente,  los  sistemas  de  seguridad  que   incorpora   CAN   bus   lo   convierten   en   uno   de   los   protocolos   de   comunicación   más   robustos.   Puede   darse   el   caso,   de   que   exista   algún   mal   funcionamiento,   que   requiere  un  proceso  de  gestión.            No  se  utilizan  mensajes  de  ACK,  los  errores  se  señalizan  cuando  ocurren.  A   nivel   de   trama   hay   tres   mecanismos   posibles:   usar   CRC,   chequeo   de   formato   de   trama,   y   los   receptores   señalizando   las   tramas   recibidas   forzando   el   bit   ACK   a   dominante,  y  en  caso  de  que  esto  no  ocurriese,  significaría  un  error  en    ACK.    A   nivel   de   bit   se   implementan  dos  mecanismos,  la  monitorización,  donde   el   transmisor   puede   monitorizar   el   bus   para   observar   si   lo   que   envía   es   lo   que   aparece   en   el   bus.   Esto   detecta   errores   globales   y   locales   al   transmisor,   y   el   bit   stuffing.   Si   se   detecta   algún   error,   al   menos   la   estación   aborta   la   transmisión   mediante  el  envío  de  una  trama  de  error.  Tras  esta  trama,  el  transmisor  reintenta   el  envío.   Una   estación   defectuosa   podría   abortar   mensajes   correctos,   lo   que   podría   bloquear   el   bus.   El   protocolo   CAN   aporta   un   mecanismo   para   diferenciar   errores   esporádicos   y   permanentes:   un   análisis   estadístico   de   las   situaciones   de   error.   Si   una   estación   detecta   un   estado   permanente   de   error,   entra   en   un   estado   de   Memoria.                                                                                                                                                                                                                            

22

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  operación   que   el   resto   de   la   red   CAN   puede   seguir   funcionando,   debiendo   poder   auto  desconectarse  para  que  este  mecanismo  funcione.  

Memoria.                                                                                                                                                                                                                            

23

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

8. Resultados  finales.    

8.1 Descripción  del  hardware.  

En   el   apartado   7.2   del   presente   proyecto   se   planteaban   tres   posibles   soluciones   con   las   que   implementar   el   equipo   de   control   alternativo.   Como   se   deduce  de  dicho  análisis,  la  tercera  solución  es  la  más  modulable  y  por  lo  tanto  la   solución   a   adoptar.   Dicha   solución   esta   compuesta   por   varios   elementos   que   se   enumerarán  y  describirán  a  continuación:   • •

Placa  principal  (CPU),  chipKIT  MAX32.   Placas   secudarias   (módulos   de   entrada/salida)   chipKIT   32MAX   junto   a   sus  respectivas  placas  de  potencia.    

  Figura  14) Estructura  hardware  del  autómata.  

 

8.1.1

Placa  principal  (CPU).  

  Dicha  placa  principal,  tendrá  como  misión  coordinadar  las  comunicaciones   y   ejecutar   ciclicamente   el   programa   de   control,   de   manera   que   en   función   de   los   valores   de   las   entradas   y   de   las   variables   internas,   ordenara   activarse   las   salidas   que   correspondan.   Debido   a   que   no   debe   leer   ni   escribir   nada   por   sus   pines   no   requerirá  de  una  placa  que  adapte  sus  niveles.   La   placa   de   desarrollo   elegida   para   esta   misión   es   el   chipKIT   MAX32   que   presenta   en   su   interior   un   PIC   de   32   bits   altamente   capacitado   para   esta   labor.   Además,   su   integración   en   ambas   redes   de   comunicaciones   no   requiere   de   hardware   adicional   (a   excepción   del   transceiver   MCP2551,   cuyo   coste   es   despreciable)  ya  que  posee  dos  controladores  de  CAN  y  un  puerto  USB  2.0.   Memoria.                                                                                                                                                                                                                            

24

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

  Figura  15) Descripción  de  todas  las  patillas  del  chip  (PIC32MX795F512L).  

 

  Figura  16) Descripción  de  las  patillas  del  chipKIT  MAX32  

1. Conector  USB,  para  convertir  de  USB  serie.   2. Conector  de  herramientas  de  depuración  de  microchip.   3. Conector  de  alimentación  externa.   4. Fuente  de  alimentación  (regulador  de  3,3  V).   5. Puente  de  selección  de  alimentación.   6. Fuente  de  alimentación  (regulador  de  5  V).   7. J2  Conector  shield.   8. Microcontrolador  principal  de  la  placa  PIC32.   9. J5,  J7  conectores  de  señal  analógica.   10. J6,  J8,  J9  y  J15  señal  digital  y  alimentación.   11. LED  de  usuario.   12. JP3/JP4  Selección  de  puente  maestro/esclavo  SPI.   13. J13  conector  de  señal  SPI.   14. J3,  J4,  J14  conector  de  señal  digital.   Memoria.                                                                                                                                                                                                                            

25

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

15. Estado  comunicaciones  LED.   16. Botón  RESET.   Algunas  de  las  características  más  destacables  son:   Reloj:   Ofrece   varias   opciones   de   configuración   de   la   frecuencia   de   oscilación,  permitiendo  al  usuario  escoger  según  se  adapte  a  sus  necesidades:   • • • • • • • •

Utilizando   un   cristal   o   un   resonador   cerámico   y   conectándolos   a   los   pines   OSC1  y  OSC2  del  PIC.   El  sistema  de  oscilador  tiene  las  siguientes  características:   Como   fuente   oscilador   de   reloj   tiene   cuatro   opciones   internas   y   externas.   En   el   chip   tiene   un   interruptor   que   manipula   el   usuario   de   divisor   y   multiplicador  de  entrada  y  también  un  divisor  de  salida  para  aumentar   la  frecuencia  de  operación  al  seleccionar  las  fuentes  internas  y  externas.   Fuente  de  reloj  se  puede  controlar  por  software.   A  prueba  de  fallos,  detecta  los  fallos  de  reloj  y  permite  la  recuperación   de  aplicaciones  de  seguridad.   El   modulo   del   oscilador   se   compone   de   unos   registros   de   funciones   especiales:  

 

 

-­‐  OSCCON:  registro  de  control  del  oscilador.  

 

 

-­‐  OSCTUN:  registro  de  ajuste  de  FRC  

 

 

-­‐  REFOCON:  registro  de  control  de  la  referencia  del  oscilador.   -­‐  REFOTRIM:  registro  de  trim  de  la  frecuencia  del  oscilador.   • También  tenemos  los  registros  de  configuración  del  dispositivo  

 

 

-­‐  DEVCFG1:  Palabra  de  configuración  de  dispositivo  1.  

 

 

-­‐  DEVGFG2:  Palabra  de  configuración  de  dispositivo  2.  

  Memoria  de  datos:  Tiene  128  Kbytes  de  memoria  RAM.   Memoria  de  programa:  Tiene  512  kbytes  de  memoria  Flash.   Periféricos:   El   Max32   ofrece   83   pines   I/O   que   soportan   un   número   de   funciones   periféricas,   como   UART,   SPI   y   puertos   I2C   y   salidas   de   ancho   de   pulso   modulado.  Dieciséis  de  los  pines    I/O  se  pueden  utilizar  como  entradas  analógicas   o  como  entradas  y  salidas  digitales.   El   microcontrolador   PIC32   en   el   Max32   también   proporciona   un   10/100   Ethernet   MAC,   USB   2.0   completo,     un   regulador   de   velocidad   OTG,   y   dos   controladores   CAN.   El   uso   de   estos   periféricos   avanzados   requiere   una   tarjeta   Memoria.                                                                                                                                                                                                                            

26

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  adicional   (por   ejemplo,   el   Digilent   Red   Shield)   para   proporcionar   el   hardware   adicional  que  se  requiere.   El   Max32   puede   ser   alimentado   a   través   de   USB   y   externamente   con   un   adaptador  de  corriente  AC-­‐DC  o  baterías.  

8.1.2  

Módulos  de  entrada/salida.  

Las   placas   secundarias   son   los   módulos   que   aparecen   en   cada   uno   de   los   nodos   de   la   red   CAN.   Estas   placas   serán   las   encargadas   de   dar   órdenes   a   los   actuadores   y   de   obtener   a   través   de   sus   pines   la   información   que   les   transmita   los   sensores.  Como  consecuencia  de  su  labor,  requieren  de  una  placa  de  potencia  que   adapte  los  niveles  al  ámbito  industrial.     La   citada   placa   de   potencia   presenta   dos   partes,   por   un   lado   una   placa   principal,   la   cual   posee   una   serie   de   zócalos   en   los   que   se   insertarán   los   diferentes   módulos   de   entradas   y   salidas.   Estos   módulos   serán   placas   secundarias   que   poseerán   una   cantidad   concreta   de   pines,   emulando   a   los   módulos   de   entradas   y   salidas  que  se  puede  adquirir  a  cualquier  fabricante  de  autómatas.   De   esta   manera,   se   tendrá   la   placa   principal   unida   a   la   chipKIT   32MAX   y   posteriormente   se   le   irán   incluyendo   placas   secundarias   en   función   de   las   necesidades  del  cliente.   Placa  principal.   El  aspecto  de  la  placa  principal  es  el  de  la  imagen  inferior,  en  ella  se  pueden   observar  los  distintos  zócalos  que  albergarán  los  módulos  de  entradas/salidas,  así   como  los  diferentes  componentes  electrónicos  que  forman:   • • •

La  fuente  de  alimentación  de  los  módulos.   El  hardware  de  las  cinco  salidas  analógicas.     Los  switch  para  indicar  el  número  de  módulo  en  la  red  CAN  

Memoria.                                                                                                                                                                                                                            

27

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  Figura  17) Simulación  en  3D  de  la  placa  principal  que  albergará  los  módulos  de  entrada/salida  junto  al  chipKIT.  

El  chipKIT  será  acoplado  a  la  placa  principal  a  través  de  los  pin  head,  que  se   encuentran   dispuestos   de   tal   manera   que   la   placa   de   desarrollo   encaje   perfectamente.   El  esquema  electrónico  de  la  fuente  de  alimentación  es  el  siguiente:  

  Figura  18) Circuito  electrónico  de  la  fuente  de  alimentación.  

Dicho   circuito   electrónico   esta   compuesto   principalmente   por   dos   reguladores,  un  LM7815  y  un  MC7915,  que  convierten  los  +/-­‐  24  voltios  a  +/-­‐    15   voltios.  El  coste  de  dicha  fuente  de  alimentación  ronda  un  euro.   El  hardware  de  las  salidas  analógicas  amplifica  a  24  voltios  las  señales  de   3.3   voltios   que   saca   el   chipKIT.   Para   ello   se   empleará   el   driver   FOD8321   dispuesto   de   la   siguiente   manera.   El   coste   de   las   cinco   salidas   analógicas   ronda   los   cinco   euros.  

Memoria.                                                                                                                                                                                                                            

28

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

  Figura  19) Circuito  electrónico  de  una  salida  analógica.  

Placas  secundarias.     Existe  varios  modelos  de  este  tipo  de  placas,  entre  las  que  se  encuentran:   • • • •

Módulos  de  cuatro  entradas  analógicas.   Módulos  de  siete  entradas  digitales  tipo  PNP   Módulos    de  seis  salidas  digitales  de  alta  velocidad.   Módulos  de  salidas  de  alterna.  

Los   módulos   de   cuatro   entradas   analógicas   constan   de   varios   bloques   que   permiten  adaptar  los  niveles  procedentes  de  los  sensores  analógicos  a  los  valores   con   los   que   trabaja   chipKIT.   Su   precio   es   el   más   caro   de   todos   los   módulos,   rondando  los  50  euros.  Sin  embargo,  los  componentes  con  los  que  ha  sido  diseñado   le  permite  competir  de  manera  directa  en  el  mercado  actual.     A   continuación   se   muestra   una   visión   general   del   módulo   junto   con   su   modelo  en  3D.  

  Figura  20) Simulación  en  3D  de  los  módulos  de  entradas  analógicas.  

Memoria.                                                                                                                                                                                                                            

29

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  Figura  21) Bloques  que  componen  los  módulos  de  entradas  analógicas.  

Los   micro-­‐switches   que   se   observan   en   el   modelo   en   3D,   permiten   al   usuario  seleccionar  si  el  sensor  analógico  con  el  que  se  esta  trabajando,  aporta  una   señal  de  4-­‐20  mA  (intensidad)  o  por  el  contrario  aporta  voltajes.  Estos  pulsadores   conmutan  el  analog-­‐switch  (ADG  5413),  de  tal  manera  que  direccionan  la  señal  del   sensor   hacia   el   bloque   de   adaptación   de   intensidad-­‐voltaje   o   hacia   el   bloque   de   reducción  de  voltajes.   El  primero  de  los  bloques  convierte  los  mA  en  voltios,  de  tal  manera  que  si   aparece  en  los  borneros  4mA  el  micro  recibirá  cero  voltios  y  si  aparece  20  mA  el   micro  recibirá  3.3  voltios.  Este  circuito  electrónico  esta  basado  en  el  RCV420KP  y   presenta  la  siguiente  estructura:  

  Figura  22) Circuito  electrónico  que  convierte  intensidad  a  tensión.  

Por   su   parte,   el   segundo   de   los   bloques,   convierte   los   48   voltios   en   3.3   a   través  de  un  amplificador  inversor.  Como  en  realidad  lo  que  hace  este  amplificador   es  pasar  de  48  voltios  a  -­‐3.3  voltios,  es  necesario  invertir  de  nuevo  la  señal  y  esto   se  realiza  mediante  un  transistor.    

Memoria.                                                                                                                                                                                                                            

30

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  Figura  23) Circuito  electrónico  que  disminuye  la  tensión  hasta  3.3  voltios.  

El  siguiente  analog-­‐switch  (AD7512  DIKN)  comandado  por  los  microswitch   a   los   que   se   ha   hecho   referencia   más   arriba,   recogerá   la   señal   o   bien   del   primer   bloque   o   bien   del   segundo   en   función   de   los   indicado   por   el   usuario   a   través   de   estos   elementos.   Esta   señal   adaptada   ya   a   sus   niveles   de   trabajo   será   la   que   recibirá  el  chipKIT.   ENTRADAS  ANALÓGICAS     Número  de  Entradas   4   Rango  de  voltajes  de  entrada(V)   9÷40  v   Retraso  de  señal  a  ON     202  ns   Retraso  de  señal  a  OFF     140  ns   Voltaje  a  salida  máximo  de  estado  OFF   0.8  v   Voltaje  a  salida  mínimo  de  estado  ON   3.3  v   Intensidad  máxima  de  entrada   30  mA   Rango  de  temperaturas   -­‐25÷85  ºC   Precio   50  euros   Figura  24) Especificaciones  técnicas  de  los  módulos  de  entradas  analógicas.  

La   electrónica   bajo   la   que   se   ha   diseñado   los   módulos   de   entradas   digitales,   reduce   el   voltaje   que   llega   de   los   sensores   (aportando   un   0   si   aparece   menos   5.1   voltios   y   3.3   voltios   cuando   es   superior   a   la   cifra   anterior)   y   además,   aisla   al   chipKIT   de   picos   de   tensión   que   podrían   destruir   la   placa   de   desarrollo.   Su   precio  ronda  los  siete  euros.  El  circuito  electrónico  queda  de  la  siguiente  manera.  

  Figura  25) Circuito  electrónico  que  aisla  y  adapta  niveles.  

Memoria.                                                                                                                                                                                                                            

31

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Como  se  observa,  el  optoacoplador  4N25  es  el  encargado  de  aislar  la  placa   chipKIT   del   medio   exterior.   El   circuito   que   se   encuentra   a   su   izquierda   esta   formado   por   dos   resistencias,   un   diodo   led   y   un   zener.   La   misión   del   zener   es   regular   la   tensión   entre   sus   extremos,   de   tal   manera   que   entre   esos   dos   puntos   siempre   aparezca   5.1   voltios.   Como   el   optoacoplador   únicamente   requiere   1.5   voltios  para  conducir,  reparto  los  3.8  voltios  entre  el  diodo  led  y  la  resistencia.      

5.1  =  2.2  +  1.5  +  R2  *  10mA  à  R2  =  140  ohmios   48  =  60mA  *  R1  +  2.2+  140  *  10mA  +  1.5  à  R1  =  715  ohmios   Vout  =  5  *  R3  /  (R5  +  R3)  à  R5  =  5,1  K  

A  la  derecha  del  optoacoplador  la  estructura  más  destacable  es  una  red  RC   para  el  filtrado  de  la  señal.     El   circuito   en   su   conjunto   fue   probado   en   una   protoboard   y   funciona   de   manera   correcta.   Se   presentan   a   continuación   una   serie   de   imágenes   en   las   que   aparece  el  montaje  y  las  medidas  que  se  realizarón  con  el  osciloscopio.  

  Figura  26) Comprobando  el  diseño.  

Memoria.                                                                                                                                                                                                                            

32

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  Figura  27) Vin=24v  Vout  =4.8  [etiqueta2(azul)=Vin    etiqueta  1(verde)=Vout]  

 

  Figura  28) Vin=5.6v    Vout  =2.67v    [etiqueta6(amarilla)=Vout    etiqueta  7(azul)=Vin]  

 

Memoria.                                                                                                                                                                                                                            

33

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  Figura  29) Vin=4.4v  Vout  =1.18v      [etiqueta8(amarilla)=Vout    etiqueta  9(azul)=Vin]  

   

  Figura  30) Vin=28v  (máximo  de  la  fuente  del  laboratorio)    Vout  =4.8    [etiqueta10(amarilla)=Vout  etiqueta   11(azul)=Vin]  

El  aspecto  en  3D  de  los  módulos  de  entradas  digitales  es  el  siguiente.  

Memoria.                                                                                                                                                                                                                            

34

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

 

  Figura  31) Simulación  en  3D  de  los  módulos  de  entradas  digitales  

Memoria.                                                                                                                                                                                                                            

35

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

ENTRADAS  DIGITALES     Número  de  Entradas   7   Rango  de  voltajes  de  entrada(V)   5.1÷48  v   Retraso  de  señal  a  ON     2us   Retraso  de  señal  a  OFF     2us   Voltaje  a  salida  máximo  de  estado  OFF   1.2  v   Voltaje  a  salida  mínimo  de  estado  ON   5v   Intensidad  máxima  de  entrada   60  mA   Rango  de  temperaturas   -­‐65÷125  ºC   Precio   9  euros   Figura  32) Especificaciones  técnicas  de  los  módulos  de  entradas  digitales.  

Por   su   parte,   la   electrónica   de   los  módulos   de   salidas   digitales   rápidas   es   muy  sencilla,  basándose  únicamente  en  un  convertidor  de  intensidad  a  voltaje,  en   concreto  el  FOD  8321.  El  funcionamiento  de  este  componente  es  muy  simple,  de  tal   manera   que   si   le   llega   por   la   patilla   uno   entre   10   y   16   mA,   sacará   por     la   patilla   cinco  la  tensión  que  se  le  coloque  en  la  patilla  seis.      

  Figura  33) Circuito  electrónico  de  las  salidas  digitales  rápidas.  

    El  precio  de  estos  módulos  ronda  los  siete  euros  y  su  aspecto  simulado  es  el   que  se  expone  a  continuación.   SALIDAS  DIGITALES  RAPIDAS   Número  de  Entradas   Rango  de  voltajes  de  salida(V)   Retraso  de  señal  a  ON     Retraso  de  señal  a  OFF     Voltaje  de  entrada  máximo   Intensidad  máxima  de  entrada   Rango  de  temperaturas   Precio  

  6   0÷35  v   500  ns   500  ns   5  v   25  mA   -­‐40÷100  ºC   7  euros  

Figura  34) Especificaciones  técnicas  de  los  módulos  de  salidas  digitales  rápidas.  

Memoria.                                                                                                                                                                                                                            

36

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

  Figura  35) Simulación  en  3D  de  los  módulos  de  salidas  digitales  rápidas.  

Las  interfaces  de  salidas  digital  con  triac,  están  basadas  en  un  diodo   luminiscente  y  un  triac  sensible  a  la  luz  (optotriac)  que  controla  a  un  triac  de   mayor  potencia.  

  Figura  36) Circuito  electrónico  de  las  salidas  digitales  a  triac.    

  Figura  37) Simulación  en  3D  de  los  módulos  de  salidas  digitales  a  TRIAC.  

Memoria.                                                                                                                                                                                                                            

37

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

    SALIDAS  DIGITALES  a  triac   Número  de  Entradas   Rango  de  voltajes  de  salida(V)  

 

6   115÷230   Vac   Rango  de  1  lógico  hasta     1A   Intensidad  media  a  la  entrada     25mA   Voltaje  de  salida  máximo  para  1  lógico   3Vp   Voltaje  de  salida  máximo  para  1  lógico   1.8Vp   Rango  de  temperaturas   -­‐40÷150  ºC   Precio   19  euros   Figura  38) Especificaciones  técnicas  de  las  salidas  digitales  a  triac.

Memoria.                                                                                                                                                                                                                            

38

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

 

8.2 Descripción  del  software.     En   las   siguientes   líneas   se   procederá   a   explicar   la   programación   que   hace   posible   la   ejecución   del   panel   SCADA,   creado   para   controlar   y   monitorizar   las   diferentes  variables  que  se  extienden  a  lo  largo  de  cada  uno  de  los  módulos  de  la   red   CAN.   Así   mismo,   se   aportara   a   la   descripción   un   manual   de   usuario   de   la   aplicación.     En  primer  lugar  destacar  que  la  aplicación  esta  llevada  a  cabo  mediante  el   software  Visual  Basic  6,  sin  embargo,  al  usuario/cliente  únicamente  se  le  entregará   un   archivo   ejecutable   que   no   requiere   instalación   alguna,   hecho   que   permite   reducir  aún  más  los  costes  de  este  autómata  alternativo,  ya  que  de  esta  manera  el   cliente  no  tiene  que  adquirir  ningún  tipo  de  licencia  para  ejecutarla.     La   aplicación   como   se   verá   más   adelante   consta   de   cuatro   pantallas   o   formularios,  una  pantalla  inicial  a  modo  de  presentación,  que  apenas  requiere  de   programación  y  que  por  ello  será  obviada  en  esta  primera  parte  de  la  descripción.   Una  segunda  pantalla  (en  VB6  denominada  “Zonas”),  que  será  utilizada  para   cargar  la  imagen  de  fondo  que  el  usuario  desee  y  que  servirá  de  plantilla  a  la  hora   de  crear  los  controles.    

8.2.1 Programación  formulario  Zonas.  

  El   objetivo   que   se   perseguía   en   este   formulario,   era   conseguir   emular   un   cuadro   de   selección   con   el   que   designar   la   zona   en   la   que   se   quiere   colocar   la   imagen  de  fondo  y  posteriormente  posicionar  a  esta.       Para  ello  se  hace  uso  de  una  API  de  Windows  que  devuelve  el  valor  en  pixels   de  la  posición  en  la  que  se  encuentra  el  puntero.     A   partir   de   estos   datos,   cuando   se   producen   los   eventos   de   MouseDown   y   MouseUP   sobre   el   formulario,   se   guarda   la   posición   de   la   esquina   superior   e   inferior   del   cuadro   de   selección.   Con   estos   datos   y   unas   sencillas   operaciones   de   cálculo,  se  determina  el  tamaño  y  posición  de  la  imagen  de  fondo.     Posteriormente   se   dimensiona   el   elemento   Image   (en   base   a   las   medidas   anteriores),   que   será   el   contenedor   de   la   imagen   de   fondo.   Para   designar   dicha   imagen   de   fondo   aparecerá   una   ventana   emergente   solicitando   la   ruta   (esta   operación   se   realiza   a   través   del   elemento   CommonDialog).   Una   vez   marcado   el   directorio,  se  cargara  la  imagen  sobre  el  control  Image.     Private Sub Form_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single) Dim cursorpos As POINTAPI GetCursorPos cursorpos listo = True Xsuperior = cursorpos.x

Memoria.                                                                                                                                                                                                                            

39

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

Ysuperior = cursorpos.Y - 26 End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single) listo = False Dim cursorpos As POINTAPI GetCursorPos cursorpos Xinferior = cursorpos.x Yinferior = cursorpos.Y - 26 Ancho = Xinferior - Xsuperior Alto = Yinferior - Ysuperior 'Paso1.Show 1 Image1.Move Xsuperior, Ysuperior, Ancho, Alto Fondo(0) = Ancho Fondo(1) = Alto Fondo(2) = Xsuperior Fondo(3) = Ysuperior Call menudesp1.activar("Cargue la imagen de fondo.", 3, 2, True, "Cargar") End Sub

  A   través   del   evento   MouseMove   y   con   el   apoyo   de   la   Api   de   Windows   se   podrá  ir  dibujando  un  cuadrado,  que  irá  actualizando  su  tamaño  a  medida  que  se   desplaza   el   ratón   consiguiendo   el   efecto   de   un   cuadro   de   selección   típico   de   Windows.     Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single) Dim cursorpos As POINTAPI GetCursorPos cursorpos If listo = True Then Zonas.Cls Line (Xsuperior, Ysuperior)-(cursorpos.x, cursorpos.Y - 26), vbWhite, BF End If End Sub

                             

Memoria.                                                                                                                                                                                                                            

40

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

     

8.2.2

Programación  del  formulario  Paso1.  

La   tercera   pantalla,   denominada   en   visual   basic   como   “Paso1”,   es   un   formulario   que   permite   crear   los   diferentes   elementos   a   través   de   los   cuales   el   usuario  podrá  interactuar  con  el  proceso.      

  Figura  39) Formulario  de  la  aplicación  SCADA.  

Como   se   puede   observar   en   la   imagen   superior,   el   formulario   (al   que   más   adelante  se  verá  cómo  se  accede)  presenta  dos  botones,  un  botón  de  agregar  y  otro   de  aceptar.  El  primero  incluye  el  elemento  de  control  en  su  tabla  correspondiente   (existe   una   tabla   para   los   indicadores   digitales,   otra   diferente   para   los   controles   digitales,  etc).  El  segundo  botón  cuando  es  pulsado  dibuja  el  elemento  de  control   sobre  el  cuarto  formulario,  para  ello  se  ayuda  de  la  función  LoadPicture,  cuya  labor   es  crear  un  objeto  indexado  al  ya  existente.       A   continuación   se   analizará   la   creación   de   cada   uno   de   los   elementos   desde   el  punto  de  vista  del  botón  de  Agregar.     Creación  de  controles  digitales  (Button).   Para  crear  un  control  digital  se  tiene  que  rellenar  el  formulario  como  dicta   el   manual   de   usuario,   una   vez   rellenado   de   forma   correcta,   la   aplicación   ya   sabe   el   elemento  a  generar.   La   tabla   de   los   controles   digitales   presenta   los   siguientes   campos,   que   posteriormente   serán   utilizados   (tras   pulsar   el   botón   Aceptar)   para   crear   el   control  digital  sobre  el  formulario  cuatro.     Indice   Valor     Ruta   Ruta   Color   Color   PIN   Estado   Color(1)   Modulo   Memoria.                                                                                                                                                                                                                            

41

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

por   Imagen   Imagen   ON   defecto   ON   OFF  

OFF  

Actual   Imagen(0)  

  El   campo   “Valor   defecto”   es   usado   por   el   botón   Aceptar,   para   poner   el   aspecto   inicial,   así   mismo,   los   cuatro   campos   siguientes   son   utilizados   en   el   evento   click  para  cambiar  el  aspecto  en  función  de  lo  solicitado  por  el  usuario.  Las  celdas   siete  y  ocho,  son  los  datos  que  requiere  el  chipKIT  para  poder  actualizar  las  salidas,   por   lo   tanto   son   datos   a   enviar   junto   con   la   celda   diez,   que   indica   el   modulo   al   que   pertenece  el  PIN.  Por  último,  la  celda  nueve  es  una  celda  de  apoyo,  para  saber  si  se   ha  pulsado  la  opción  de  botón  con  color  o  botón  animado.     Botón  Agregar  (correspondiente  a  la  parte  de  controles  booleanos).     If (Option2(1) And Option1(2)) = True Then booleanos cantidadBotones = cantidadBotones + 1

'Esto para controles

Tabla_Control_Dig(cantidadBotones, 1) = cantidadBotones If Option3(0) = True Then Tabla_Control_Dig(cantidadBotones, 2) = 0 Else Tabla_Control_Dig(cantidadBotones, 2) = 1 End If If Option5(0) = True Then Tabla_Control_Dig(cantidadBotones, 9) = 1 Tabla_Control_Dig(cantidadBotones,5) = DialogoColorOn.color Tabla_Control_Dig(cantidadBotones,6)= DialogoColorOFF.color Else Tabla_Control_Dig(cantidadBotones, 9) = 0 Tabla_Control_Dig(cantidadBotones, 3) = BotON.FileName Tabla_Control_Dig(cantidadBotones, 4) = BotonOFF.FileName End If Tabla_Control_Dig(cantidadBotones, 7) = Text5.Text Tabla_Control_Dig(cantidadBotones, 10) = Text10.Text Tabla_Control_Dig(cantidadBotones,8)= Tabla_Control_Dig(cantidadBotones, 3) datos(Controles.cantidad, 6) = 0 End If ' Label19.Caption = Tabla_Indicador_Dig(cantidadindica, 1) If ((Option1(0) Or Option1(1)) And Option2(0)) 'Indicadores analógicos cantidadindicanalog = cantidadindicanalog + 1 Tabla_Indicador_Analog(cantidadindicanalog, cantidadindicanalog Tabla_Indicador_Analog(cantidadindicanalog, 2) = Tabla_Indicador_Analog(cantidadindicanalog, 3) = Tabla_Indicador_Analog(cantidadindicanalog, 4) = Tabla_Indicador_Analog(cantidadindicanalog, 5) = Tabla_Indicador_Analog(cantidadindicanalog, colorfondo.color Tabla_Indicador_Analog(cantidadindicanalog, colorprogreso.color

=

True

Then

1)

=

Text6.Text Text7.Text 0 Text5.Text 6)

Memoria.                                                                                                                                                                                                                            

=

7)

=

42

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

Tabla_Indicador_Analog(cantidadindicanalog, 9) = Text8.Text Tabla_Indicador_Analog(cantidadindicanalog, 10) = Text10.Text datos(Controles.cantidad, 6) = 1 End If

 

Boton  Aceptar  (Correspondiente  a  la  parte  de  controles  booleanos).     If (Option2(1) And Option1(2)) = True Then booleanos

'Esto para controles

If Tabla_Control_Dig(cantidadBotones, 2) = 1 Then 'Has señalado por defecto = ON If Tabla_Control_Dig(cantidadBotones, 9) = 1 Then 'Has señalado Color Controles.mi_imagen(Controles.cantidad).Visible = False Load Controles.Command4(cantidadBotones) Controles.Command4(cantidadBotones).BackColor = Tabla_Control_Dig(cantidadBotones, 5) Controles.Command4(cantidadBotones).Top = Controles.Ys - 26 Controles.Command4(cantidadBotones).Left = Controles.Xs Controles.Command4(cantidadBotones).Width = Controles.Dimx Controles.Command4(cantidadBotones).Height = Controles.Dimy Controles.Command4(cantidadBotones).Visible = True Picture7.Picture = Nothing Picture6.Picture = Nothing Paso1.Hide Controles.Show End If If Tabla_Control_Dig(cantidadBotones, 9) = 0 Then 'Has señalado Imagen Controles.mi_imagen(Controles.cantidad).Visible = False 'cantidadBotones = cantidadBotones + 1 Load Controles.Command4(cantidadBotones) Controles.Command4(cantidadBotones).Picture = LoadPicture(Tabla_Control_Dig(cantidadBotones, 3)) 'Controles.Command4(cantidadBotones).BackColor = Tabla_Control_Dig(cantidadBotones, 5) Controles.Command4(cantidadBotones).Top = Controles.Ys - 26 Controles.Command4(cantidadBotones).Left = Controles.Xs Controles.Command4(cantidadBotones).Width = Controles.Dimx Controles.Command4(cantidadBotones).Height = Controles.Dimy Controles.Command4(cantidadBotones).Visible = True Picture7.Picture = Nothing Picture6.Picture = Nothing Paso1.Hide Controles.Show End If End If If Tabla_Control_Dig(cantidadBotones, 2) = 0 Then 'Has señalado por defecto = OFF If Tabla_Control_Dig(cantidadBotones, 9) = 1 Then 'Has señalado Color Controles.mi_imagen(Controles.cantidad).Visible = False Load Controles.Command4(cantidadBotones) Controles.Command4(cantidadBotones).BackColor= Tabla_Control_Dig(cantidadBotones, 6) Controles.Command4(cantidadBotones).Top = Controles.Ys - 26

Memoria.                                                                                                                                                                                                                            

43

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Controles.Command4(cantidadBotones).Left = Controles.Xs Controles.Command4(cantidadBotones).Width = Controles.Dimx Controles.Command4(cantidadBotones).Height = Controles.Dimy Controles.Command4(cantidadBotones).Visible = True Picture7.Picture = Nothing Picture6.Picture = Nothing Paso1.Hide Controles.Show End If If Tabla_Control_Dig(cantidadBotones, 9) = 0 Then 'Has señalado Imagen Controles.mi_imagen(Controles.cantidad).Visible = False 'cantidadBotones = cantidadBotones + 1 Load Controles.Command4(cantidadBotones) Controles.Command4(cantidadBotones).Picture = LoadPicture(Tabla_Control_Dig(cantidadBotones, 4)) 'Controles.Command4(cantidadBotones).BackColor = Tabla_Control_Dig(cantidadBotones, 5) Controles.Command4(cantidadBotones).Top = Controles.Ys - 26 Controles.Command4(cantidadBotones).Left = Controles.Xs Controles.Command4(cantidadBotones).Width = Controles.Dimx Controles.Command4(cantidadBotones).Height = Controles.Dimy Controles.Command4(cantidadBotones).Visible = True Picture7.Picture = Nothing Picture6.Picture = Nothing Paso1.Hide Controles.Show End If End If End If

Creación  de  indicadores  digitales  (Shape).   Las   directrices   para   crear   un   indicador   digital   son   idénticas   a   las   mencionadas   para   el   elemento   de   control   anterior.   En   cuanto   a   la   tabla   de   los   indicadores  digitales  sí  que  varía  y  se  pasará  a  analizar  a  continuación.     Cantidad   Ruta   Ruta   PIN   Estado   Valor   Modulo   ¿Alarma?   Texto   Imagen   Imagen   Actual   por   SIà1   alarma   ON   OFF   defecto   NOà0     Las  tres  primeras  celdas  son  usadas  en  un  timer  (en  el  formulario  cuatro)   para   cambiar   la   imagen   en   función   del   estado   del   campo   cinco.   Es   decir,   si   en   el   campo   cinco   aparece   un   uno,   la   imagen   a   mostrar   será   la   que   se   encuentre   en   la   ruta  de  la  celda  dos.       La   actualización   de   este   “estado   actual”   será   estudiada   en   el   análisis   del   formulario  cuatro  cuando  se  estudie  la  comunicación  PC-­‐chipKIT,  ya  que  este  valor   proviene  de  lo  que  mande  codificado  el  chipKIT  a  través  del  puerto  USB.     La   celda   siete,   es   el   módulo   al   que   pertenece   el   PIN   que   se   encuentra   recogido  en  el  campo  cuatro.    

Memoria.                                                                                                                                                                                                                            

44

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Por  último  los  campos  ocho  y  nueve  permiten  la  gestión  de  alarmas  en  los   indicadores   digitales.   Indicando   a   través   del   campo   ocho   si   el   usuario   requiere   alarma  y  en  el  campo  nueve  aparece  el  texto  que  el  usuario  quiere  que  aparezca.     Botón  Agregar.   If (Option2(0) And Option1(2)) = True Then 'Esto para indicadores booleanos cantidadindica = cantidadindica + 1 Tabla_Indicador_Dig(cantidadindica, 1) = Controles.cantidad Tabla_Indicador_Dig(cantidadindica, 2) = DialogON.FileName Tabla_Indicador_Dig(cantidadindica, 3) = DialogOFF.FileName Tabla_Indicador_Dig(cantidadindica, 4) = Text5.Text Tabla_Indicador_Dig(cantidadindica, 6) = Text10.Text If Option3(1) Then Tabla_Indicador_Dig(cantidadindica, 5) = 1 Else Tabla_Indicador_Dig(cantidadindica, 5) = 0 End If datos(Controles.cantidad, 6) = 3 End If

Botón  Aceptar.     If (Option2(0) And Option1(2)) indicadores booleanos If Option3(1) = True Then

=

True

Then

'Esto

para

Controles.mi_imagen(Controles.cantidad).Picture = LoadPicture(DialogON.FileName) SetLayeredWindowAttributes Controles.mi_imagen(Controles.cantidad).hwnd, RGB(0, 0, 255), 0, LWA_COLORKEY Controles.mi_imagen(Controles.cantidad).ScaleMode = 3 Controles.mi_imagen(Controles.cantidad).AutoRedraw = True Controles.mi_imagen(Controles.cantidad).PaintPicture Controles.mi_imagen(Controles.cantidad).Picture, _ 0, 0, Controles.mi_imagen(Controles.cantidad).ScaleWidth, Controles.mi_imagen(Controles.cantidad).ScaleHeight Picture1.Picture = Nothing Picture4.Picture = Nothing Paso1.Hide Controles.Show Else Controles.mi_imagen(Controles.cantidad).Picture = LoadPicture(DialogOFF.FileName) SetLayeredWindowAttributes Controles.mi_imagen(Controles.cantidad).hwnd, RGB(0, 0, 255), 0, LWA_COLORKEY Controles.mi_imagen(Controles.cantidad).ScaleMode = 3 Controles.mi_imagen(Controles.cantidad).AutoRedraw = True 'Controles.mi_imagen(Controles.cantidad).PaintPicture Controles.mi_imagen(Controles.cantidad).Picture, _ '0, 0, Controles.mi_imagen(Controles.cantidad).ScaleWidth, Controles.mi_imagen(Controles.cantidad).ScaleHeight Controles.mi_imagen(Controles.cantidad).PaintPicture Controles.mi_imagen(Controles.cantidad).Picture, _ 0, 0, Controles.mi_imagen(Controles.cantidad).ScaleWidth, Controles.mi_imagen(Controles.cantidad).ScaleHeight

Memoria.                                                                                                                                                                                                                            

45

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Picture1.Picture = Nothing Picture4.Picture = Nothing Paso1.Hide Controles.Show End If End If

  Creación  de  controles  analógicos  (Slider).   La   tabla   correspondiente   a   los   controles   analógicos,   contienen   un   gran   número  de  datos.       Máximo   Mínimo   DimX   DimY   PIN   Valor   Indice   Unidad   Slider(0)   Modulo   por   de   Text(1)   defecto   medida     Tanto  los  controles  analógicos  como  los  indicadores  son  más  complejos  que   los  digitales,  ya  que  requieren  un  número  de  datos  mayor.  Los  dos  primeros  datos,   son  utilizados  para  realizar  el  escalado.       Ejemplo   de   escalado.   Si   en   la   primera   celda   aparece   un   20   y   en   la   segunda   un   0,  la  información  que  se  debe  de  mandar  al  chipKIT  es  un  255  (20  -­‐>  255)  y  un  0  para   el  mínimo  (0  -­‐>  0).     Las   dos   siguientes   celdas   son   empleadas   para   el   aspecto   visual   del   slider   junto   con   la   octava.   Los   demás   campos   tienen   el   mismo   cometido   que   en   los   controles  digitales.     Botón  Agregar.     If ((Option1(0) Or Option1(1)) And Option2(1)) = True Then 'Controles analógicos cantidadcontrolanalog = cantidadcontrolanalog + 1 Tabla_Control_Analog(cantidadcontrolanalog, 1) = Text6.Text Tabla_Control_Analog(cantidadcontrolanalog, 2) = Text7.Text Tabla_Control_Analog(cantidadcontrolanalog, 3) = Controles.Dimx Tabla_Control_Analog(cantidadcontrolanalog, 4) = Controles.Dimy Tabla_Control_Analog(cantidadcontrolanalog, 5) = Text5.Text Tabla_Control_Analog(cantidadcontrolanalog, 6) = 0 Tabla_Control_Analog(cantidadcontrolanalog, 7) = cantidadcontrolanalog Tabla_Control_Analog(cantidadcontrolanalog, 8) = Text9.Text If Option30 = True Then Tabla_Control_Analog(cantidadcontrolanalog, 9) = 1 Else Tabla_Control_Analog(cantidadcontrolanalog, 9) = 0 End If Tabla_Control_Analog(cantidadcontrolanalog, 10) = Text10.Text datos(Controles.cantidad, 6) = 2 End If

  Memoria.                                                                                                                                                                                                                            

46

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

Botón  Aceptar.     If ((Option1(0) Or Option1(1)) And Option2(1)) = True 'Controles analógicos If Option30 = False Then Controles.mi_imagen(Controles.cantidad).Visible = False Load Controles.Pic_slider(Paso1.cantidadcontrolanalog) Controles.Pic_slider(cantidadcontrolanalog).Top Controles.Ys - 26 Controles.Pic_slider(cantidadcontrolanalog).Left Controles.Xs Controles.Pic_slider(cantidadcontrolanalog).Width = 15 Controles.Pic_slider(cantidadcontrolanalog).Height Controles.Dimy

Then

= =

=

Controles.Pic_slider(cantidadcontrolanalog).Visible = True Load Controles.Pic_Barra(Paso1.cantidadcontrolanalog) Controles.Pic_Barra(cantidadcontrolanalog).Top Controles.Ys - 26 Controles.Pic_Barra(cantidadcontrolanalog).Left Controles.Xs Controles.Pic_Barra(cantidadcontrolanalog).Width Controles.Dimx Controles.Pic_Barra(cantidadcontrolanalog).Height Controles.Dimy Controles.Pic_Barra(cantidadcontrolanalog).ZOrder vbBringToFront Controles.Pic_Barra(cantidadcontrolanalog).Visible = True Controles.Pic_slider(cantidadcontrolanalog).ZOrder vbBringToFront

= = = =

Load Controles.Label2(cantidadcontrolanalog) Controles.Label2(cantidadcontrolanalog).Top = Controles.Ys 26 + Controles.Dimy + 10 Controles.Label2(cantidadcontrolanalog).Left = Controles.Xs + (Controles.Dimx / 2) - 5 Controles.Label2(cantidadcontrolanalog).Width = Controles.Dimx + 20 Controles.Label2(cantidadcontrolanalog).Height = 25 Controles.Label2(cantidadcontrolanalog).Visible = True Controles.Label2(cantidadcontrolanalog).ZOrder vbBringToFront Else Controles.mi_imagen(Controles.cantidad).Visible = False Load Controles.Text1(cantidadcontrolanalog) Controles.Text1(cantidadcontrolanalog).Top = Controles.Ys

-

26 Controles.Text1(cantidadcontrolanalog).Left = Controles.Xs Controles.Text1(cantidadcontrolanalog).Width = Controles.Dimx Controles.Text1(cantidadcontrolanalog).Height = Controles.Dimy Controles.Text1(cantidadcontrolanalog).ZOrder vbBringToFront Controles.Text1(cantidadcontrolanalog).Visible = True Controles.Text1(cantidadcontrolanalog).ZOrder vbBringToFront End If Paso1.Hide

Memoria.                                                                                                                                                                                                                            

47

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Controles.Show End If

Creación  de  indicadores  analógicos  (ProgressBar).   La   tabla   de   los   indicadores   analógico   requiere   el   mismo   número   de   campos   que  la  de  los  controles.     Índice   Máximo   Mínimo   Valor   PIN   Color   Color   Vertical(0)   Unidad   Modulo   actual   fondo   progr   Horiz  (1)   de   medida   Alarma   Texto   Valor                 SI  à1   de     limite   NOà  0   alarma     De   nuevo   los   valores   “máximo”   y   “mínimo”   son   utilizados   para   realizar   el   escalado,  que  junto  al  campo  cuatro  también  son  utilizados  para  variar  su  estado   visual  en  función  de  lo  que  mande  chipKIT.  El  resto  de  campos,  son  necesarios  para   poder  manejar  este  tipo  de  controles  en  visual  basic.   Es   en   la   cuarta   pantalla   (en   VB6   denominada   Controles)   donde   se   lleva   a   cabo   todas   las   operaciones   necesarias   para   la   creación   de   la   aplicación   SCADA   y   por  lo  tanto  es  el  formulario  que  más  programación  requiere.       Los   tres   últimos   campos   son   utilizados   por   visual   basic   para   generar   las   alarmas  cuando  así  se  lo  indique  el  usuario.   Botón  Agregar.     If ((Option1(0) Or Option1(1)) And Option2(0)) 'Indicadores analógicos cantidadindicanalog = cantidadindicanalog + 1 Tabla_Indicador_Analog(cantidadindicanalog, cantidadindicanalog Tabla_Indicador_Analog(cantidadindicanalog, 2) Tabla_Indicador_Analog(cantidadindicanalog, 3) Tabla_Indicador_Analog(cantidadindicanalog, 4) Tabla_Indicador_Analog(cantidadindicanalog, 5) Tabla_Indicador_Analog(cantidadindicanalog, colorfondo.color Tabla_Indicador_Analog(cantidadindicanalog, colorprogreso.color Tabla_Indicador_Analog(cantidadindicanalog, 9) Tabla_Indicador_Analog(cantidadindicanalog, Text10.Text

=

True

Then

1) = = = =

=

Text6.Text Text7.Text 0 Text5.Text 6) = 7)

=

= Text8.Text 10) =

datos(Controles.cantidad, 6) = 1 End If

  Botón  Aceptar.     If ((Option1(0) Or Option1(1)) And Option2(0)) = True 'Indicadores analógicos Controles.mi_imagen(Controles.cantidad).Visible = False Load Controles.ProgressBar1(cantidadindicanalog) If Option4(0) = True Then

Memoria.                                                                                                                                                                                                                            

Then

48

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

Controles.ProgressBar1(cantidadindicanalog).Orientation = ccOrientationHorizontal Tabla_Indicador_Analog(cantidadindicanalog, 8) = 1 Else Controles.ProgressBar1(cantidadindicanalog).Orientation = ccOrientationVertical Tabla_Indicador_Analog(cantidadindicanalog, 8) = 0 End If Color_Fondo Controles.ProgressBar1(cantidadindicanalog).hwnd, colorfondo.color Color_Progreso Controles.ProgressBar1(cantidadindicanalog).hwnd, colorprogreso.color Controles.ProgressBar1(cantidadindicanalog).Top = Controles.Ys - 26 Controles.ProgressBar1(cantidadindicanalog).Left = Controles.Xs Controles.ProgressBar1(cantidadindicanalog).Width = Controles.Dimx Controles.ProgressBar1(cantidadindicanalog).Height = Controles.Dimy Controles.ProgressBar1(cantidadindicanalog).Visible = True Picture2.Picture = Nothing Picture8.Picture = Nothing Load Controles.Label1(cantidadindicanalog) Controles.Label1(cantidadindicanalog).Top = Controles.Ys 26 + Controles.Dimy + 10 Controles.Label1(cantidadindicanalog).Left = Controles.Xs 10 Controles.Label1(cantidadindicanalog).Width = Controles.Dimx + 20 Controles.Label1(cantidadindicanalog).Height = 25 Controles.Label1(cantidadindicanalog).Visible = True Controles.Label1(cantidadindicanalog).ZOrder vbBringToFront

Paso1.Hide Controles.Show End If

 

8.2.3  

Programación  del  formulario  Controles.  

Este   formulario   es   el   eje   central   de   la   aplicación,   sobre   el   se   vertebran   diferentes   operaciones   como,   guardar   el   panel   SCADA   o   cargar   uno   ya   existente.   Además,  de  manera  invisible  para  el  usuario,  también  se  lleva  a  cabo  la  gestión  de   la  comunicación  serie  con  el  chipKIT.  Así  mismo,  se  realiza  de  manera  automatica   la  programación  de  la  CPU  o  placa  principal  chipKIT.     Botón  de  Guardar  y  Botón  de  Cargar.     El  botón  Guardar  a  través  de  su  pulsación  permite  salvar  todo  el  trabajo  ya   realizado   sobre   el   SCADA.   El   archivo   que   genera,   es   del   tipo   .xlsx   es   decir   un   archivo  tipo  Excel.  En  el  cual  se  irá  guardando  celda  a  celda  cada  una  de  las  tablas   mencionadas   anteriormente,   de   tal   manera   que   cuando   se   quiera   rescatar   el   trabajo   realizado   (botón   de   Cargar),   únicamente   sea   necesario   volver   a   leer   este   Memoria.                                                                                                                                                                                                                            

49

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  archivo   e   ir   conformando   esas   tablas.   Una   vez   que   VB   disponga   de   esas   tablas,   trabajará  de  forma  normal  y  en  base  a  esos  datos  cargados.     A   continuación   se   muestra   la   programación   que   requiere   cada   uno   de   los   botones,  que  como  se  observa  es  bastante  extensa  y  nada  simple.  Por  ello,  es  más   didáctico   quedarse   con   la   idea   general   que   entrar   en   detalle   en   cada   una   de   las   líneas  de  programación.     Programación  del  botón  guardar.          Dim oExcel As Object Dim oBook As Object Dim oSheet As Object 'Abre un nuevo libro en excel Set oExcel = CreateObject("Excel.Application") Set oBook = oExcel.Workbooks.Add 'Añade la cabeceras Set oSheet = oBook.Worksheets(1)

'Comienza a pasar los Arrays oSheet.range("A1").Resize(1).Value = Controles.cantidad oSheet.range("A2").Resize(1).Value = Paso1.cantidadBotones oSheet.range("A3").Resize(1).Value = Paso1.cantidadindica oSheet.range("A4").Resize(1).Value Paso1.cantidadindicanalog oSheet.range("A5").Resize(1).Value Paso1.cantidadcontrolanalog

= =

oSheet.range("A6").Resize(40, 6).Value = datos oSheet.range("A" & (CStr(Controles.cantidad) + 6)).Resize(40, 10).Value = Tabla_Control_Dig oSheet.range("A" & (CStr(Controles.cantidad) + 6 + CStr(Paso1.cantidadBotones))).Resize(40, 6).Value = Tabla_Indicador_Dig oSheet.range("A" & (CStr(Controles.cantidad) + 6 + CStr(Paso1.cantidadBotones) + CStr(Paso1.cantidadindica))).Resize(40, 10).Value = Tabla_Indicador_Analog oSheet.range("A" & (CStr(Controles.cantidad) + 6 + CStr(Paso1.cantidadBotones) + CStr(Paso1.cantidadindica) + CStr(Paso1.cantidadindicanalog))).Resize(40, 10).Value = Tabla_Control_Analog oSheet.range("A" & (CStr(Controles.cantidad) + 6 CStr(Paso1.cantidadBotones) + CStr(Paso1.cantidadindica) CStr(Paso1.cantidadindicanalog) CStr(Paso1.cantidadcontrolanalog))).Resize(1, 5).Value = Fondo 'Save the Workbook and Quit Excel Guardar.ShowSave oSheet.SaveAs Guardar.FileName oExcel.Quit

Programación  del  botón  Cargar.   Memoria.                                                                                                                                                                                                                            

50

+ + +

 

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

  Dim obj As Object, libro As Object, Hoja As Object Dim Arch As String, Cant As Integer, x As Integer 'Creo un vector de Enteros generico Dim MiVector() As Integer Dim i As Integer Dim j As Integer 'creo nueva instancia de Excel Set obj = CreateObject("Excel.Application") 'Abro el archivo. Uso un ComomDialog Cargar.ShowOpen Arch = Cargar.FileName 'Abro el libro Set libro = obj.Workbooks.Open(Arch) 'referencia la Hoja, por defecto la hoja activa Set Hoja = obj.ActiveSheet 'Escribo en los Arrays Controles.cantidad = Hoja.cells(1, 1) Paso1.cantidadBotones = Hoja.cells(2, 1) Paso1.cantidadindica = Hoja.cells(3, 1) Paso1.cantidadindicanalog = Hoja.cells(4, 1) Paso1.cantidadcontrolanalog = Hoja.cells(5, 1) Fondo(0) = Hoja.cells(6 + Controles.cantidad Paso1.cantidadBotones + Paso1.cantidadindica Paso1.cantidadindicanalog + Paso1.cantidadcontrolanalog, 1).Value Fondo(1) = Hoja.cells(6 + Controles.cantidad Paso1.cantidadBotones + Paso1.cantidadindica Paso1.cantidadindicanalog + Paso1.cantidadcontrolanalog, 2).Value Fondo(2) = Hoja.cells(6 + Controles.cantidad Paso1.cantidadBotones + Paso1.cantidadindica Paso1.cantidadindicanalog + Paso1.cantidadcontrolanalog, 3).Value Fondo(3) = Hoja.cells(6 + Controles.cantidad Paso1.cantidadBotones + Paso1.cantidadindica Paso1.cantidadindicanalog + Paso1.cantidadcontrolanalog, 4).Value Fondo(4) = Hoja.cells(6 + Controles.cantidad Paso1.cantidadBotones + Paso1.cantidadindica Paso1.cantidadindicanalog + Paso1.cantidadcontrolanalog, 5).Value Image2.Move Fondo(2), Fondo(3), Fondo(0), Fondo(1) Image2.Picture = LoadPicture(Fondo(4))

+ + + + + + + + + +

For i = 1 To Controles.cantidad For j = 1 To 6 datos(i, j) = Hoja.cells(i + 5, j).Value Next Next For i = 1 To Paso1.cantidadBotones For j = 1 To 10 Tabla_Control_Dig(i, j) = Controles.cantidad, j).Value Next Next

Hoja.cells(i

For i = 1 To Paso1.cantidadindica For j = 1 To 6 Tabla_Indicador_Dig(i, j) = Hoja.cells(i Controles.cantidad + Paso1.cantidadBotones, j).Value

Memoria.                                                                                                                                                                                                                            

+

+

5

+

5

+

51

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

    Next Next

For i = 1 To Paso1.cantidadindicanalog For j = 1 To 10 Tabla_Indicador_Analog(i, j) = Hoja.cells(i + 5 + Controles.cantidad + Paso1.cantidadBotones + Paso1.cantidadindica, j).Value Next Next For i = 1 To Paso1.cantidadcontrolanalog For j = 1 To 10 Tabla_Control_Analog(i, j) = Hoja.cells(i + 5 + Controles.cantidad + Paso1.cantidadBotones + Paso1.cantidadindica + Paso1.cantidadindicanalog, j).Value Next Next ' Cierro Excel obj.Quit Set obj = Nothing Set libro = Nothing Set Hoja = Nothing 'Cargar las imagenes en el form excel = 1 excelID = 1 excelIA = 1 excelCD = 1 excelCA = 1 While (excel >1; //delay(1000); dato = Serial.read(); brillo = dato;

//read Serial

Memoria.                                                                                                                                                                                                                            

74

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

analogWrite(num_led,brillo); zonas_controles_analogicos[num_led] = brillo; } else{ num_led = (dato & 0x7E) >>1; //delay(1000); estado = (dato & 0x80) >> 7; digitalWrite(num_led,estado); zonas_controles_digitales[num_led] = estado; } } if (dato == 1){ lcd.setCursor(0, 1); lcd.print("MODULO 1"); } } } //Zona en la que se va a enviar la tabla de indicadores, para que los lea VB. int punteroauxiliar; // Con este recorro la tabla de pines indicadores digitales int punteroM1ID; punteroindicadoresdig = 0; //Indicadores DIGITALES punteroauxiliar =0; punteroM1ID = 0; while (punteroindicadoresdig != cantidad * 2){ PIN = pines_digi_entrada[punteroauxiliar]; punteroauxiliar = punteroauxiliar +1 ; MODULO = pines_digi_entrada[punteroauxiliar]; punteroauxiliar = punteroauxiliar +1 ; switch (MODULO){ case 0: //MODULO 0 zonas_indicadores_digitales[punteroindicadoresdig] = digitalRead (PIN); punteroindicadoresdig = punteroindicadoresdig +1 ; break; case 1: //MODULO 1 while (PIN != MODULO1_ID[punteroM1ID]){ punteroM1ID = punteroM1ID + 2; } punteroM1ID = punteroM1ID + 1; zonas_indicadores_digitales[punteroindicadoresdig] = MODULO1_ID[punteroM1ID]; punteroM1ID = 0; punteroindicadoresdig = punteroindicadoresdig +1 ; break; case 2: //MODULO 2 while (PIN != MODULO2_ID[punteroM1ID]){ punteroM1ID = punteroM1ID + 2; } punteroM1ID = punteroM1ID + 1; zonas_indicadores_digitales[punteroindicadoresdig] = MODULO2_ID[punteroM1ID]; punteroM1ID = 0; punteroindicadoresdig = punteroindicadoresdig +1 ; break;

Memoria.                                                                                                                                                                                                                            

75

Controlador  modular  programable  basado  en     procesador  de  32  bits  y  CAN  bus  

   

case 3: //MODULO 3 while (PIN != MODULO3_ID[punteroM1ID]){ punteroM1ID = punteroM1ID + 2; } punteroM1ID = punteroM1ID + 1; zonas_indicadores_digitales[punteroindicadoresdig] = MODULO3_ID[punteroM1ID]; punteroM1ID = 0; punteroindicadoresdig = punteroindicadoresdig +1 ; break; } } punteroindicadoresdig = 0; switch (cantidad) { case 1 ... 8: while (punteroindicadoresdig != 8){ datoindic = datoindic msgEID.RTR

= 1;

//RTR a recesivo por ser trama remota

message->msgEID.DLC

= 0;

// BIT DLC = longitud de los datos

//message->data[0]

= 0x00;

//message->data[1]

= 0x00;

//message->data[2]

= 0x00;

//message->data[3]

= 0x00;

//message->data[4]

= 0x00;

//message->data[5]

= 0x00;

//message->data[6]

= 0x00;

//message->data[7]

= 0x00;

IDE

=

trama

estándar

=

0,

trama

// datos, la trama remota no envía

nada

Anexos                                                                                                                                                                                                                                                                                  66    

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

   

/* Esta función permite que el modulo CAN pueda saber como va el proceso del mensaje y cuando el * mensaje esta listo para ser procesado. */

canMod1.updateChannel(CAN::CHANNEL0);

/* Modulo CAN directo para limpiar el canal TX . Esto envía algún mensaje pendiente en el canal TX . */

canMod1.flushTxChannel(CAN::CHANNEL0); } } /*______________________________________________________________________________________ ________________________________________________________________________________________ ________________________________________________________________________________________ _______________*/ /* ------------------------------------------------------------ */ /***

txCAN1

** **

Descripción:

** Inicializa un buffer de paquetes con la cabecera y carga el paquete. La carga útil en este caso es solo un ** carácter ASCII (0x31 = '1'). Transmite el paquete.*/

void txCAN1(uint32_t rxnode, uint8_t dato0, uint8_t dato1, uint8_t dato2, uint8_t dato3, uint8_t dato4, uint8_t dato5) // en la variable piso va metido el bit que quiero que se ponga a // 1 cuando pulsas el piso correspondiente cada vez. {

CAN::TxMessageBuffer * message;

message = canMod1.getTxMessageBuffer(CAN::CHANNEL0); que es el que

/*Se coge del CHANNEL0 por

* hemos configurado para transmitir

Anexos                                                                                                                                                                                                                                                                                  67    

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

   

/* IMPORTANTE lo que envía cuando se * pulsa hay que meterlo en el CHANEL0 */ if (message != NULL) { // limpiar el buffer message->messageWord[0] = 0; message->messageWord[1] = 0; message->messageWord[2] = 0; message->messageWord[3] = 0;

message->msgSID.SID recibe, es decir

= rxnode;

// recepción del nodo (rxnode es el nodo que lo

// a quien se lo envió) message->msgEID.IDE extendida = 1

= 0;

//BIT

IDE

=

trama

estándar

=

0,

trama

message->msgEID.RTR

= 0;

// RTR a dominante

message->msgEID.DLC

= 6;

// BIT DLC = numero de bytes a mandar por

= dato0;

// dato un solo byte

dato message->data[0] en este caso seria : message->data[1]

= dato1;

message->data[2]

= dato2;

message->data[3]

= dato3;

message->data[4]

= dato4;

message->data[5]

= dato5;

message->data[6]

= dato6;

//message->data[7]

lo que quiero enviar

= 0x00;

/* Esta función permite que el modulo CAN pueda saber como va el proceso del mensaje y cuando el * mensaje esta listo para ser procesado. */

canMod1.updateChannel(CAN::CHANNEL0);

/* Modulo CAN directo para limpiar el canal TX . Esto envía algún mensaje pendiente en el canal TX . */

canMod1.flushTxChannel(CAN::CHANNEL0); }

Anexos                                                                                                                                                                                                                                                                                  68    

   

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

}

//----------------------------------------------------------------------------------------------------------------------------------//** rxCAN1remota ** ** Descripción: //Comprueba si el nodo esta activo o no. Si esta activo imprime un mensaje indicando que esta correcto ** y sino es así imprime mensaje indicando de que es incorrecto por el monitor serie.*/ void rxCAN1remota(void) { CAN::RxMessageBuffer * message; if (isCAN1MsgReceived == false){ return; } //compruebo que si que ha llegado mensaje // si no ha llegado mensaje pongo NODO INACTIVO /* Mensaje ha sido recibido. Resetear los flags de isCAN1MsgReceived para recibir el siguiente mensaje. */

isCAN1MsgReceived = false; message = canMod1.getRxMessage(CAN::CHANNEL1);

/* Llamar a la función CAN::updateChannel() para que el modulo CAN pueda saberlo que se hace en el * proceso del mensaje. Habilitar el evento para que cuando el modulo CAN genere una interrupción cuando * ocurre el evento.*/ canMod1.updateChannel(CAN::CHANNEL1); canMod1.enableChannelEvent(CAN::CHANNEL1, CAN::RX_CHANNEL_NOT_EMPTY, true); } /* ----------------------------------------------------------------------------------------------------------------------------------------------- * / /*** rxCAN1 ** ** Descripción: ** Comprueba si el paquete ha sido recibido. Si es así leer el paquete recibido e imprimir la carga del ** paquete por el monitor seria.*/ void rxCAN1(byte DatosMsg[ ]) { CAN::RxMessageBuffer * message; if (isCAN1MsgReceived == false) { /* CAN1 no recibió ningún mensaje para salir de la función. Saltamos a ERRORCAN*/ //Seguridad_mal=1;

Anexos                                                                                                                                                                                                                                                                                  69    

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

    DatosMsg[0]= 0; DatosMsg[1]= 0; return ; }

/* Mensaje ha sido recibido. Resetear los flags de isCAN1MsgReceived para recibir el siguiente mensaje. */ isCAN1MsgReceived = false; message = canMod1.getRxMessage(CAN::CHANNEL1); /* Imprime el primer byte del área del paquete cargado como un carácter ASCII por el monitor serie. */ Serial.print( DatosMsg [0]); /* Llamar a la función CAN::updateChannel() para que el modulo CAN pueda saberlo que se hace en el * proceso del mensaje. Habilitar el evento para que cuando el modulo CAN genere una interrupción cuando * ocurre el evento.*/ canMod1.updateChannel(CAN::CHANNEL1); canMod1.enableChannelEvent(CAN::CHANNEL1, CAN::RX_CHANNEL_NOT_EMPTY, true); DatosMsg[0]= (message->data[0]); DatosMsg[1]= (message->data[1]); DatosMsg[2]= (message->data[2]); DatosMsg[3]= (message->data[3]); DatosMsg[4]= (message->data[4]); DatosMsg[5]= (message->data[5]); DatosMsg[6]= (message->data[6]); DatosMsg[7]= (message->data[7]); return ; } /* --------------------------------------------------------------------------- */ /*

Manejador de las funciones de interrupción

*/

/* --------------------------------------------------------------------------- */ /***

doCan1Interrupt

** **

Descripción:

** Rutina de servicio de interrupción para manejar el nivel de los eventos de interrupción para el modulo ** CAN1.*/

void doCan1Interrupt() {

/* Este es el controlador de las interrupciones CAN1. Esto no es la rutina actual de interrupción, sino que es * el manejador de interrupciones de usuario instalado por CAN::attachInterrupt. Esto es llamado por el ISR.

Anexos                                                                                                                                                                                                                                                                                  70    

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

   

* Ten en cuenta que hay muchos eventos en el modulo CAN1 que pueden causar esta interrupción. Estos * eventos son activados por la función CAN::enableModuleEvent() . * En este ejemplo solo CAN::RX_EVENT esta habilitado. */

/* Comprobar si el origen de la interrupción es la función CAN::RX_EVENT. * Esto es redundante ya que solo este evento esta habilitado en este ejemplo, pero esto muestra un * esquema para la manipulación de las interrupciones. */

if ((canMod1.getModuleEvent() & CAN::RX_EVENT) != 0) {

/* En este marco, se pueden comprobar los hechos que ocasionaron la interrupción con la función * CAN::getPendingEventCode() para obtener alta prioridad del evento activo.*/

if(canMod1.getPendingEventCode() == CAN::CHANNEL1_EVENT) {

/* Esto significa que el canal 1 ha causado un evento. * El CAN::RX_CHANNEL_NOT_EMPTY es un evento persistente. Tu puedes leer el canal en el ISR para * borrar la condición establecer una bandera para

del

evento

o

deshabilitar

el

origen

del

evento

y

* indicar que un mensaje se ha recibido. El evento puede ser habilitado por la aplicación cuando se ha * procesado un mensaje.

* Ten en cuenta que la salida del evento habilitado podría causar que la CPU mantenga la ejecución de la * ISR ya que CAN::RX_CHANNEL_NOT_EMPTY es un evento persistente. (a menos que la condición no * este vacía, se borra.) */

canMod1.enableChannelEvent(CAN::CHANNEL1, CAN::RX_CHANNEL_NOT_EMPTY, false); isCAN1MsgReceived = true; } }

Anexos                                                                                                                                                                                                                                                                                  71    

   

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

/* La bandera de interrupción del CAN1 se limpia por la rutina de servicio de la interrupción después lo * devuelve la función. Esto sucederá porque la causa del evento de la interrupción * (CAN::RX_CHANNEL_NOT_EMPTY) esta deshabilitado . * El intento del ISR's de borrar el flag de interrupción seria un error en el caso de que * CAN::RX_CHANNEL_NOT_EMPTY este habilitado, porque el evento todavía esta presente. En este caso * otra interrupción podría ocurrir inmediatamente */

}

                                         

Anexos                                                                                                                                                                                                                                                                                  72    

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

   

3.

Anexo  3.  Código  de  la  aplicación  SCADA.  

  El   código   de   la   aplicación   SCADA   ya   ha   sido   explicado   e   integrado   paso   a   paso   en   la   memoria   casi   en   su   totalidad.   Aun   así,   si   el   lector   lo   desea   podrá   consultarlo  en  la  carpeta  del  CD  adjunto  “Proyecto  SCADAv7.0”.    

 

Anexos                                                                                                                                                                                                                                                                                  73    

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

     

 

4.

Anexo  4.  Contenido  del  cd  adjunto.  

El  contenido  del  cd  adjunto  es  el  siguiente:   • • • • • • • • • • •

ANEXOS.   Datashetts  del  bus  CAN.   Datasheets  del  hardware.   Memoria.   Planos.   Pliego  de  condiciones.   Portada  y  índice  general.   Presupuesto.   Archivos  Top  Solid.   Proyecto  SCADAv7.0.   Manual  de  usuario.  

                                    Anexos                                                                                                                                                                                                                                                                                  74    

   

Controlador  modular  programable  basado     en  procesadores  de  32  bits  y  CAN  bus.  

                                                             Logroño,  a  3  de  septiembre  de  2013.             Alberto  Martínez  Inchusta.  

Anexos                                                                                                                                                                                                                                                                                  75    

Planos

Índice de Planos. 1.

Plano 1. Entradas digitales ..................................................................................................... 1

2.

Plano 2. Salidas digitales ......................................................................................................... 2

3.

Plano 3. Entradas analógicas ................................................................................................. 3

4.

Plano 4. Estructura hardware del autómata.................................................................... 4

5.

Plano 5. Placa principal. ........................................................................................................... 5

6.

Plano 6. Esquema electrónico de las salidas digitales rápidas. ................................ 6

7.

Plano 7. Esquema electrónico de las salidas digitales a triac.................................... 7

8.

Plano 8. Esquema electrónico de las entradas analógicas. ........................................ 8

9.

Plano 9. Esquema electrónico de las entradas digitales. ............................................ 9

Controlador modular programable basado En procesadores de 32 bits y CAN bus

1. Plano 1. Entradas digitales

Planos

1

Controlador modular programable basado En procesadores de 32 bits y CAN bus

2. Plano 2. Salidas digitales

Planos

2

Controlador modular programable basado En procesadores de 32 bits y CAN bus

3. Plano 3. Entradas analógicas

Planos

3

Controlador modular programable basado En procesadores de 32 bits y CAN bus

4. Plano 4. Estructura hardware del autómata.

Planos

4

Controlador modular programable basado En procesadores de 32 bits y CAN bus

5. Plano 5. Placa principal. Información disponible en disco (CD-ROM)

Planos

5

Controlador modular programable basado En procesadores de 32 bits y CAN bus

6. Plano 6. Esquema electrónico de las salidas digitales rápidas.

Información disponible en disco (CD-ROM)

Planos

6

Controlador modular programable basado En procesadores de 32 bits y CAN bus

7. Plano 7. Esquema electrónico de las salidas digitales a triac.

Información disponible en disco (CD-ROM)

Planos

7

Controlador modular programable basado En procesadores de 32 bits y CAN bus

8. Plano 8. Esquema electrónico de las entradas analógicas.

Información disponible en disco (CD-ROM)

Planos

8

Controlador modular programable basado En procesadores de 32 bits y CAN bus

9. Plano 9. Esquema electrónico de las entradas digitales. Información disponible en disco (CD-ROM)

Planos

9

Controlador modular programable basado En procesadores de 32 bits y CAN bus

Logroño, a 3 de Septiembre de 2013.

Fdo: Alberto Martínez Inchusta.

Planos

10

Pliego de condiciones

Índice del pliego de condiciones. 1.

Disposiciones Generales. ......................................................................................................... 1 1.1.

Introducción. ........................................................................................................................ 1

1.2.

Objeto...................................................................................................................................... 2

1.3.

Propiedad intelectual. ...................................................................................................... 3

2.

Disposiciones legales y normativa aplicable. .................................................................. 4

3.

Condiciones facultativas. ......................................................................................................... 6

4.

3.1.

Dirección................................................................................................................................ 6

3.2.

Libro de órdenes................................................................................................................. 7

Condiciones de ejecución y montaje. .................................................................................. 8 4.1

Condiciones de fabricación del circuito impreso. .................................................. 8

4.2

Pruebas y ensayos del montaje de la placa. ............................................................. 9

4.2.1

Prueba de alimentación. ......................................................................................... 9

4.2.2

Prueba de la placa. .................................................................................................... 9

4.2.3

Conexionado de los componentes....................................................................... 9

4.3

Conexionado de sensores y actuadores................................................................... 10

4.3.1

Entradas digitales. ................................................................................................... 10

4.3.2

Salidas digitales. ....................................................................................................... 11

4.3.3

Entradas analógicas. ............................................................................................... 12

4.4

Especificaciones técnicas de la parte hardware................................................... 13

4.4.1

Placa principal. ......................................................................................................... 13

4.4.2

Módulo de entradas analógicas.......................................................................... 14

4.4.3

Módulo de entradas digitales.............................................................................. 16

4.4.4

Módulo de salidas digitales rápidas. ................................................................ 18

4.4.5

Módulo de salidas digitales a triac. ................................................................... 19

4.4.6

chipKIT MAX32. ....................................................................................................... 20

4.5

Especificaciones técnicas del CAN bus..................................................................... 21

4.5.1

5.

MCP2551..................................................................................................................... 23

4.6

Instalación y uso de las aplicaciones ........................................................................ 25

4.7.

Conservación...................................................................................................................... 26

4.8.

Funcionamiento normal del equipo.......................................................................... 27

Condiciones de materiales y equipos. .............................................................................. 28 5.1.

Condiciones técnicas de los materiales. .................................................................. 28

5.2.

Condiciones técnicas del material informático .................................................... 29

5.3.

Condiciones técnicas de los circuitos impresos. .................................................. 30

5.4.

Condiciones técnicas de los elementos pasivos. .................................................. 31

5.5.

Hardware Open Source. Condiciones de utilización........................................... 32

6.

Manual de usuario. .................................................................................................................. 34

7.

Disposición final. ...................................................................................................................... 48

Controlador modular programable basado en procesadores de 32 bits y CAN bus

1. Disposiciones Generales. 1.1. Introducción. Las características y la descripción del proyecto “Controlador modular programable basado en procesador de 32 bits y CAN bus”, los componentes que intervienen, el cableado y conexionado eléctrico y control del funcionamiento del mismo se detallan en el documento de la memoria y en los correspondientes planos del documento. En este documento se exponen todas las condiciones técnicas de montaje, especificaciones a cumplir por los elementos y materiales normalizados y comerciales que se deben considerar a la hora de llevar a cabo la realización del proyecto. En caso de no realizarse según las condiciones tal y como se presentan en este documento, el proyectista no se responsabilizará de los posibles fallos y averías propios del funcionamiento, repercutiéndose todo el peso del problema sobre terceras personas. Todas las modificaciones de las que pueda ser susceptible el proyecto, deberán ser aprobadas por el ingeniero o proyectista.

Pliego de condiciones.

1

Controlador modular programable basado en procesadores de 32 bits y CAN bus

1.2. Objeto. La realización del presente Proyecto titulado “Controlador modular programable basado en procesador de 32 bits” se enmarca bajo la designación de Proyecto Fin de Carrera y tiene como propósito culminar con éxito los estudios de Ingeniería Industrial superior. El autor del presente proyecto ha cursado estos estudios en la Universidad de la Rioja, cumpliendo en su elaboración las directrices especificadas por dicho centro en la normativa del proyecto fin de carrera aprobada por el consejo de Gobierno el 15 de abril de 2005.

Pliego de condiciones.

2

Controlador modular programable basado en procesadores de 32 bits y CAN bus

1.3. Propiedad intelectual. Según el artículo 13 de la normativa vigente en el centro, la propiedad intelectual del autor y director del Proyecto o Trabajo Fin de Carrera se regirá por el Real Decreto Legislativo 1/1996, de 12 de abril, por el que se aprueba el texto refundido de la Ley de Propiedad Intelectual, y por la normativa vigente en la Universidad de La Rioja.

Pliego de condiciones.

3

Controlador modular programable basado en procesadores de 32 bits y CAN bus

2. Disposiciones legales y normativa aplicable. La realización del proyecto se regirá por la Ordenanza General de Seguridad e Higiene en el Trabajo del 7 de abril de 1970 y posteriores revisiones. Así mismo, se regirá por el Reglamento Electrotécnico de Baja Tensión, en el que se tendrá en cuenta las siguientes normativas: • •

M.I. B.T.029, la cual se refiere a instalaciones de pequeñas tensiones, menores de 50 voltios. M.I. B.T.031, la cual se refiere a las condiciones generales de instalación, de utilización, así como de los requisitos a cumplir a la hora del diseño.

El proyecto cumple también con las siguientes normativas DIN y UNE: • • • • • •



• • • • • • • •

Los materiales que pueden ser utilizados para la realización de placas de circuito impreso UNE 20-621-85/3. Los espesores de los materiales con recubrimiento metálico y sus tolerancias especificadas en la norma UNE 20-621-84/3. La norma UNE 20552 especifica las tolerancias sobre el espesor total en la zona de contactos. En cuanto a la anchura de las pistas, según la intensidad que circule por el material conductor, se referirá a la norma UNE 20-621. Los diámetros de los taladros están especificados en la norma UNE 20621-84/3. La norma UNE 20-612/2 recoge varios tipos de ensayos que pueden realizarse y los materiales, como pueden ser los ensayos de espesor, adherencia, porosidad, etc. En las distancias entre taladros para la colocación de componentes, se seguirá lo indicado en la norma UNE 20-524/1, UNE 20-524/2 y UNE 20-524/3. Reglas de seguridad para los aparatos electrónicos de norma UNE 20514-82. DIN 40801, referente a circuitos impresos, fundamentos, orificios y espesores. DIN 40803, referente a circuitos impresos, placas y documentación. DIN 40804, referente a circuitos impresos, conceptos. DIN41494, referente a las formas de construcción para dispositivos electrónicos. Reglas para el diseño y utilización de placas de circuito impresas UNE 20-621-3. Especificación para la realización de placas de simple o doble cara con agujeros no metalizados y metalizados UNE 20-621-4 y UNE 20-621-5. Especificación para las placas impresas multicapas UNE 20-621-6.

Pliego de condiciones.

4

Controlador modular programable basado en procesadores de 32 bits y CAN bus

• •

UNE 20902 que hace referencia a la técnica de circuitos impresos, terminología. UNE-EN 60249 en la cual se citan los materiales base para circuitos impresos.

Este proyecto debido a sus características se encuentra recogido dentro del reglamento eléctrico de baja tensión. “Se calificará como instalación eléctrica de baja tensión todo conjunto de aparatos y circuitos asociados en previsión de un fin particular, producción, conversión, transformación, distribución, o utilización de la energía eléctrica, cuyas tensiones nominales sean iguales o inferiores a 1000 voltios para corriente alterna y 1500 voltios para corrientes continuas.”

Pliego de condiciones.

5

Controlador modular programable basado en procesadores de 32 bits y CAN bus

3. Condiciones facultativas. 3.1. Dirección. La dirección del montaje estará realizada en su totalidad por el ingeniero o proyectista o por otra persona que esta delegue atendiendo a la capacidad de dicha persona para realizar este trabajo. Una vez realizado el montaje, su utilización podrá ser realizada por cualquier persona con conocimientos suficientes demostrables sobre el proyecto, la tecnología en él implicada y su funcionamiento. En caso de avería o pérdida de datos por incorrecta utilización, el proyectista queda exento de culpa.

Pliego de condiciones.

6

Controlador modular programable basado en procesadores de 32 bits y CAN bus

3.2. Libro de órdenes. El montaje de los elementos del proyecto se realizará atendiendo a los documentos y planos del mismo. Si es necesario realizar una modificación, se realizará bajo el pertinente consentimiento del propio ingeniero o proyectista.

Pliego de condiciones.

7

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4. Condiciones de ejecución y montaje. 4.1 Condiciones de fabricación del circuito impreso. Tanto el circuito impreso de la placa principal, así como cada uno de los módulos de entradas y salidas deberá regirse por la norma UNE-621-80, en la cual se especifican los ensayos a los que debe ser sometido el circuito impreso, así como los métodos para la ejecución de dichos ensayos.

Pliego de condiciones.

8

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.2 Pruebas y ensayos del montaje de la placa. Una vez montados todos los componentes y soldados a la placa, se procederá a efectuar los siguientes ensayos:

4.2.1 Prueba de alimentación. Para verificar el correcto funcionamiento de cada placa, se debe alimentar con -24÷48V. Se deberá comprobar que al conectar ambas tensiones no se produzca ningún tipo de fallo tal y como un cortocircuito entre las alimentaciones. Las placas chipKIT disponen de un LED de rojo el cual se ilumina cuando la placa está siendo alimentada correctamente. Si este LED se desvanece lentamente al realizar alguna conexión es el principal indicativo de que se está produciendo un cortocircuito y el limitador de corriente está realizando su trabajo.

4.2.2 Prueba de la placa. Para realizar el ensayo de la puesta en marcha de la placa, se deberá utilizar los ejemplos de chipKIT. Se hará uso del programa de ejemplo denominado “Blink” que hace parpadear intermitentemente cada segundo el LED que la placa de interfaz tiene conectada al pin 13, que se puede identificar en la placa por estar marcado con una LD. Este ejemplo es el más simple de todos, ideal para asegurar que si se produce algún fallo sea de hardware y no esté siendo enmascarado por un fallo de software. Si se quiere comercializar en la UE, será necesario que el sistema sea sometido a los ensayos pertinentes entre los que destaca la compatibilidad electromagnética, así como otros ensayos preceptivos.

4.2.3 Conexionado de los componentes. El conexionado se realiza siguiendo los esquemas que se encuentran en el CD, ubicados en la carpeta “Adjuntos del proyecto”.

Pliego de condiciones.

9

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.3 Conexionado de sensores y actuadores. 4.3.1 Entradas digitales.

Figura 1)

Pliego de condiciones.

Conexionado de sensores a los borneros de los módulos de entradas digitales.

10

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.3.2 Salidas digitales.

Figura 2)

Conexionado de actuadores tanto a las salidas digitales rápidas como a las salidas a triac.

Pliego de condiciones.

11

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.3.3 Entradas analógicas.

Pliego de condiciones.

12

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.4 Especificaciones técnicas de la parte hardware. 4.4.1 Placa principal.

Figura 3)

Simulación en 3D de la placa principal.

El aspecto de la placa principal es el de la imagen inferior, en ella se pueden observar los distintos zócalos que albergarán los módulos de entradas/salidas, así como los diferentes componentes electrónicos que forman: • •

La fuente de alimentación de los módulos. El hardware de las cinco salidas analógicas.

El esquema electrónico de la fuente de alimentación es el siguiente:

Figura 4)

Circuito electrónico de la fuente de alimentación

Esta fuente de alimentación convierte de +/-24 Vcc a +/-15Vcc. Características técnicas de esta fuente.

Pliego de condiciones.

13

Controlador modular programable basado en procesadores de 32 bits y CAN bus

FUENTE DE ALIMENTACION Tensión de entrada máximo Tensión de salida máximo Tensión de entrada mínimo Tensión de salida mínimo Intensidad de entrada máxima Corriente de pico a la entrada Frecuencia de trabajo Rango de temperaturas Precio Figura 5)

24v 15v -24v -15v 1.2 A 2.4 A 120 Hz -65÷150 ºC euros

Especificaciones técnicas de la fuente de alimentación.

Para las salidas analógicas se emplea un FOD8321, cuya limitación podría venir impuesta por su frecuencia de operación, ya que la función analogWrite() de chipKIT, genera una onda cuadrada estable (PWM) en un pin de salida analógica. La frecuencia de esta señal PWM será aproximadamente de 490Hz. El FOD8321 presenta una frecuencia de operación de 50 KHz muy superior a los 490 Hz del PWM que emplean las salidas analógicas de chipKIT, de tal manera que esté integrado puede dar cobertura a este tipo de salidas.

4.4.2 Módulo de entradas analógicas. El módulo de cuatro entradas analógicas presenta los siguientes bloques.

Figura 6)

Pliego de condiciones.

Bloques que componen los módulos de entradas analógicas.

14

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Por lo tanto ante lo mostrado en la figura 1, se puede ver que los componentes electrónicos que condicionan los valores máximos y mínimos tanto de entrada como de salida en voltajes son los analog switch ADG 5413 y el AD7512DITQ. El primero de los componentes presenta las siguientes características: • • • •

• • • • •

Rango de tensiones de entrada cuando trabaja en modo simple 9v ÷ 40v. Intensidad máxima a la entrada de 30mA. Pico de intensidad a la entrada 278mA. Rango de temperaturas: o Operación -40 a 125 ºC o Almacenamiento -65ºC a 150ºC Frecuencias de trabajo a temperatura ambiente. Ton típico de 170 ns Ton máximo de 202 ns Toff típico de 120 ns Toff máximo de 140 ns

El segundo componente presenta las siguientes características. • • • • •

Detecta nivel alto a partir de 3v y el mínimo con 0.8v máximo. Rango de temperaturas entre -55 y 125 ºC Frecuencias de trabajo a temperatura ambiente. Ton máximo de 1 us. Toff máximo de 1 us.

Los bloques de conversión intensidad-voltaje y el de reducción de voltaje, presentan como datos más interesantes sus rangos de temperaturas, ya que su respuesta dinámica es más rápida que la del ADG 5413 y por lo tanto es este elemento el que condiciona el ton y el toff del módulo. Así mismo los rangos de intensidad y voltaje de entrada son condicionados por el ADG 5413 y los de salida por el AD7512DITQ. De manera que tanto el RCV420 como el LM358 se mueven en un rango de -25 a 85 ºC. Con las situaciones más desfavorables este tipo de módulos presenta las siguientes características.

Pliego de condiciones.

15

Controlador modular programable basado en procesadores de 32 bits y CAN bus

ENTRADAS ANALÓGICAS Número de Entradas Rango de voltajes de entrada(V) Retraso de señal a ON Retraso de señal a OFF Voltaje a salida máximo de estado OFF Voltaje a salida mínimo de estado ON Intensidad máxima de entrada Rango de temperaturas Precio Figura 7)

4 9÷40 v 202 ns 140 ns 0.8 v 3.3 v 30 mA -25÷85 ºC 50 euros

Especificaciones técnicas del módulo de entradas analógicas.

4.4.3 Módulo de entradas digitales. La electrónica bajo la que se ha diseñado los módulos de entradas digitales, reduce el voltaje que llega de los sensores y además, aísla al chipKIT de picos de tensión que podrían destruir la placa de desarrollo.

Figura 8)

Circuito electrónico que aísla y adapta niveles.

Los rangos de tensión de entrada entre los que trabaja son los siguientes: • •

Entre 0 y 5.1 voltios es un 0 digital. Entre 5.1 y 48 voltios es un 1 digital.

Los rangos de tensión a la salida en función del valor a la entrada: • •

Vin entre 0 y 5.1 voltios, a la salida aparece 1.2 voltios máximo Vin entre 5.1 y 48 voltios, a la salida aparece entre 2.7 y 5 voltios.

El componente electrónico que más influye en las especificaciones dinámicas, es el optoacoplador 4N25 – 300E. Las características de este componente son:

Pliego de condiciones.

16

Controlador modular programable basado en procesadores de 32 bits y CAN bus

• •

Tensión entre sus pines 1 y 2 con la que empieza a conducir: 1.5v Intensidad con la que empieza a conducir: 10 mA.

• • •

Intensidad máxima de entrada de 60mA. Tensión máxima entre sus pines 1 y 2 de 5v. Rango de temperaturas: o Operación -55 a 100 ºC o Almacenamiento -55ºC a 125ºC Frecuencias de trabajo a temperatura ambiente. Ton de 2us. Toff de 2us.

• • •

Por su parte el zener 1N4733A, que posee una tensión nominal zener de 5.1 voltios, posee un rango de temperaturas bastante amplio, en concreto, -65 a 200 ºC.

ENTRADAS DIGITALES Número de Entradas 7 Rango de voltajes de entrada(V) 5.1÷48 v Retraso de señal a ON 2us Retraso de señal a OFF 2us Voltaje a salida máximo de estado OFF 1.2 v Voltaje a salida mínimo de estado ON 5v Intensidad máxima de entrada 60 mA Rango de temperaturas -65÷125 ºC Precio 9 euros Figura 9)

Pliego de condiciones.

Especificaciones técnicas del módulo de entradas analógicas.

17

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.4.4 Módulo de salidas digitales rápidas. La electrónica de los módulos de salidas digitales rápidas es muy sencilla, basándose únicamente en un convertidor de intensidad a voltaje, en concreto el FOD 8321.

Figura 10)

Circuito electrónico de las salidas digitales rápidas.

Características de este componente electrónico. • • • • •

• • • •

Rango de tensiones recomendable de entrada 5v máximo. Rango de tensiones de salida 0 a 35v. Intensidad máxima de salida de 2.5 A. Intensidad media a la entrada 25mA. Rango de temperaturas: o Operación -40 a 125 ºC o Almacenamiento -40ºC a 100ºC Frecuencias de trabajo a temperatura ambiente. Frecuencia de operación 25KHz. Ton típico de 500 ns Toff típico de 500 ns SALIDAS DIGITALES RAPIDAS Número de Entradas Rango de voltajes de salida(V) Retraso de señal a ON Retraso de señal a OFF Voltaje de entrada máximo Intensidad máxima de entrada Rango de temperaturas Precio Figura 11)

Pliego de condiciones.

6 0÷35 v 500 ns 500 ns 5v 25 mA -40÷100 ºC 7 euros

Especificaciones técnicas del módulo de salidas digitales rápidas.

18

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.4.5 Módulo de salidas digitales a triac. Las interfaces de salidas digital con triac, están basadas en un diodo luminiscente y un triac sensible a la luz (optotriac), en concreto el MOC3021 que controla a un triac de mayor potencia.

Figura 12)

Circuito electrónico de las salidas digitales a triac.

Características de este componente electrónico. • • • • • • •

Rango de tensiones 115/230vac. Rango de tensiones pico hasta 400v. Rango de 1 lógico hasta 1A. Intensidad media a la entrada 25mA. Rango de temperaturas: o Almacenamiento -40ºC a 150ºC Niveles tensión de salida 1 lógico hasta 3Vp. Niveles tensión de salida 0 lógico hasta 1.8Vp

SALIDAS DIGITALES a triac Número de Entradas Rango de voltajes de salida(V) Rango de 1 lógico hasta Intensidad media a la entrada Voltaje de salida máximo para 1 lógico Voltaje de salida máximo para 1 lógico Rango de temperaturas Precio Figura 13)

Pliego de condiciones.

6 115÷230 Vac 1A 25mA 3Vp 1.8Vp -40÷150 ºC 19 euros

Especificaciones técnicas del módulo de salidas digitales a triac.

19

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.4.6 chipKIT MAX32. chipKIT MAX32 Microcontrolador Memoria FLASH Voltaje de operación Frecuencia de operación Voltaje de entrada Voltaje de entrada máximo I/O pins Entradas analógicas Rango de voltaje de las entradas analógicas Intensidad de entrada a los pines Periféricos.

Figura 14)

Pliego de condiciones.

PIC32MX795F512L 128K 3.3v 80 Mhz 7v a 15v 20v 83 16 De 0v a 3.3v +/-18mA Ethernet 2 controladores CAN USB 2.0

Especificaciones técnicas del chipKIT 32MAX

20

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.5 Especificaciones técnicas del CAN bus. La capa física del CAN bus es responsable de la transferencia de bits entre los distintos módulos que componen la red. Define aspectos como niveles de señal, codificación, sincronización y tiempos en que los bits se transfieren al bus. En la especificación original del CAN, la capa física no fue definida, permitiendo diferentes opciones para la elección del tipo de unidad y niveles eléctricos de transmisión. Las características de las señales eléctricas en el bus fueron establecidas mas tarde por el estándar ISO 11898. La especificación CiA (CAN in Automotion), complementó las definiciones respecto al medio físico y conectores. Los módulos conectados al bus interpretan dos niveles lógicos denominados: • •

Dominante: la tensión diferencial (CAN_H - CAN_L) es del orden de 2.0vcon CAN_H = 3.5 v y CAN_L = 1.5v (nominales). Recesivo: la tensión diferencial (CAN_H - CAN_L) es del orden de 0v con CAN_H = CAN_L = 2.5v (nominales).

Otra de las partes a destacar de esta comunicación, es la velocidad con la que se transmiten los mensajes a través de la red. Lo normal es tener buses de corta longitud, para así obtener un funcionamiento óptimo. Pero si por el contrario tenemos redes de largas longitudes eso irá mermando la velocidad de transmisión, debido a los retardos en la línea, impedancias, tolerancias de los osciladores, etc. Para atenuar estas carencias se colocan en los extremos del bus impedancias de carga para una mayor estabilidad. A continuación, se muestran los valores típicos (son orientativos) de transmisión según la longitud de los buses: Velocidad (Bit/seg)

Tiempo de bit (microseg)

Longitud máxima (metros)

1 Mbps

1 microseg

30 m

800 Kbps

1,25 microseg

50 m

500 Kbps

2 microseg

100 m

250 Kbps

4 microseg

250 m

125 Kbps

8 microseg

500 m

50 Kbps

20 microseg

1000 m

20 Kbps

50 microseg

2500 m

10 Kbps

100 microseg

5000 m

Pliego de condiciones.

21

Controlador modular programable basado en procesadores de 32 bits y CAN bus

El número máximo de módulos no está limitado por la especificación básica y depende de las características de los controladores CAN (SJA 1000). Las especificaciones de buses de campo lo limitan a 32 o 64. El bus CAN utiliza transmisión serie asíncrona, y codificación NRZ, utilizando para evitar problemas el bit stuffing, inserción de un bit complementario tras 5 bits con el mismo valor, y una cuidadosa temporización de bit. Todos los dispositivos en una red CAN tienen su propio reloj, generalmente un oscilador de cuarzo, que pueden tener periodos ligeramente diferentes. Pese a ello, la velocidad de transmisión se ajusta para que sea la misma en todos los dispositivos aunque tengan frecuencias de oscilador diferentes. Al no ser estas frecuencias totalmente estables, los dispositivos se resincronizan con la corriente de bits. El tiempo nominal de bit (Bit timing) se divide en cuatro fases: • • •

Sincronización, donde se espera el flanco. Retardo de propagación, compensando el desfase debido a los retardos de propagación. Buffer 1 y 2, que son los tiempos antes y después del punto de muestreo nominal, variables para realizar la resincronización.

Se utilizan medios de transmisión eléctricos y ópticos, aunque sería posible utilizar transmisión por red eléctrica y sin cables. Se suelen utilizar cables de par trenzado UTP o STP, con transmisión diferencial, y hay que tener en cuenta los parámetros del cable cuando las distancias son largas ya que afectan a la tasa de transferencia. La topología básica es en bus, incluyendo dos terminadores a los extremos, para evitar reflexiones en la señal. Otras topologías más complejas se pueden usar gracias al uso de repetidores, que añaden retardo a la propagación de la señal. De puentes, que conectan dos redes lógicas separadas a nivel de enlace. Solo retransmiten aquellos mensajes que no son locales, y de pasarelas, que conectan redes con diferentes protocolos de alto nivel, cuando estos están presentes.

Pliego de condiciones.

22

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.5.1 MCP2551. Como ya se explicó en la memoria, un enlace CAN requiere entre otros elementos un controlador y un transceiver. El primero de ellos, lo aporta por partida doble el chipKIT 32MAX, sin embargo, debe ser el usuario el que acople el transceiver MCP 2551 para poder crear esta red de comunicación.

Figura 15)

Explicación grafica de toda la estructura hardware necesaria en cada uno de los nodos del CAN bus.

Este componente tiene como principales características soportar la tasa de transferencia máxima de 1 Mbps que se especifica en el protocolo CANopen, implementar los requerimientos de la capa física ISO-11898, detección de fallos en la tierra y permite conectar un máximo de 112 Nodos al Bus.

Figura 16)

Pliego de condiciones.

Patillaje del MCP 2551.

23

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 17)

Diagrama de bloques del MCP2551

La descripción detallada de cada pin se muestra a continuación: • • • • • • • •

Pin 1: TxD: Entrada digital que recibe los datos que van a ser enviados por el Bus. Pin 2: VSS: Referencia de tierra. Pin 3: VDD: Tensión de alimentación (+5V). Pin 4: RxD: Señal digital que transmite los datos recibidos por el bus. Pin 5: Vref: Tensión de referencia a la salida definida como Vdd/2. Pin 6: CANL: Parte baja de la señal diferencial del Bus. Pin 7: CANH: Parte alta de la señal diferencial del Bus. Pin 8: RS: Este pin permite seleccionar distintos modos de operación (High Speed, Slope Control, Standby) mediante una resistencia externa.

Pliego de condiciones.

24

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.6 Instalación y uso de las aplicaciones Para el correcto funcionamiento de todo el sistema, se debe instalar el controlador de la placa de chipKIT en el caso de que sea necesario para su funcionamiento siguiendo las instrucciones que se encuentran en la página web de digilent. Además se debe tener instalado el paquete de office. La aplicación SCADA podría requerir algún tipo de .dll, si se da el caso, el usuario deberá descargarla y depositarla allí donde se indique. Para el manejo de la aplicación se puede consultar el Manual de Usuario.

Pliego de condiciones.

25

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.7. Conservación Si para el montaje y puesta en marcha de los equipos y materiales que componen el hardware y software se siguen todas las indicaciones, recomendaciones y se cumplen las especificaciones que se dan en el pliego de condiciones, anexos y memoria, la vida útil de los elementos estará supeditada a aquella que de el fabricante siguiendo sus recomendaciones de mantenimiento.

Pliego de condiciones.

26

Controlador modular programable basado en procesadores de 32 bits y CAN bus

4.8. Funcionamiento normal del equipo Una vez realizados todos los pasos anteriores, el equipo estará listo para funcionar permanentemente. El equipo no necesita de un mantenimiento riguroso, siempre que su uso se realice dentro de los límites especificados para cada componente. El deterioro de los materiales puede ser debido al propio envejecimiento del material con el paso del tiempo.

Pliego de condiciones.

27

Controlador modular programable basado en procesadores de 32 bits y CAN bus

5. Condiciones de materiales y equipos. 5.1. Condiciones técnicas de los materiales. Lo materiales a emplear en este proyecto deberán cumplimentar todas y cada una de las normas descritas en el presente documento y podrán ser sometidos a diferentes pruebas y ensayos para asegurarse así de su correcto funcionamiento. En caso de no realizarse dichas pruebas y ensayos, el proyectista quedará exento de responsabilidad en el posible deterioro de los elementos durante su utilización. Estos materiales deben cumplir las especificaciones citadas para cada uno de ellos. Si son reemplazados por unos nuevos, estos deben tener las mismas características que los que reemplazan, inhibiéndose de cualquier responsabilidad por fallo si estos requisitos no son cumplidos.

Pliego de condiciones.

28

Controlador modular programable basado en procesadores de 32 bits y CAN bus

5.2. Condiciones técnicas del material informático Los requisitos mínimos del sistema informático necesario para poder ejecutar el software diseñado, son los siguientes: • • • • •

Ordenador personal con procesador Intel Pentium IV a 2.0 GHz o equivalente. 512 MB de memoria RAM DDR. Un puerto USB libre para la conexión de la placa de interfaz. 100 MB de espacio en disco duro para la instalación del software. Microsoft Windows XP

Para la realización del presente proyecto se ha utilizado la siguiente configuración de hardware y software: • • • • • • • •

Ordenador personal con sistema operativo MAC OS X Lion. Navegador de internet. Compilador de chipKIT Licencias Visual Basic. Microsoft Word 2010. Microsoft Visio 2010. Autocad 2010. Software gratuito de diseño de circuitos KiCAD, con el objetivo de que cualquiera pueda realizar cambios personales sobre las placas.

Pliego de condiciones.

29

Controlador modular programable basado en procesadores de 32 bits y CAN bus

5.3. Condiciones técnicas de los circuitos impresos. Las placas de los circuitos impresos serán de fibra de vidrio y tendrán un espesor no inferior a 750 um. Siendo una vez atacadas con ácido las placas para crear las pistas, cubiertas con un barniz protector fotosensible de manera que el proceso no oculte las zonas donde se deberán realizar la soldadura de los componentes. Se deberá tener especial cuidado en el proceso de soldadura de ciertos componentes tales como los semiconductores, tratando de reducir en la medida de lo posible el tiempo del proceso, ya que debido a la sensibilidad de éstos a la temperatura se podrían producir daños por sobrecalentamiento.

Pliego de condiciones.

30

Controlador modular programable basado en procesadores de 32 bits y CAN bus

5.4. Condiciones técnicas de los elementos pasivos. Las resistencias y condensadores tendrán unas tolerancias o márgenes de error permisibles. En el caso de las resistencias se considerará aceptable un error de hasta el 5%, siendo tolerable para los condensadores un valor del 20%.

Pliego de condiciones.

31

Controlador modular programable basado en procesadores de 32 bits y CAN bus

5.5. Hardware utilización

Open

Source.

Condiciones

de

El hardware open-source (de fuente abierta) comparte muchos de los principios y metodologías del software libre y de código abierto. En particular, los usuarios deben poder conocer en profundidad este hardware para comprender su funcionamiento, modificarlo y compartir dichos cambios. Para facilitar esta tarea, el CD que acompaña al proyecto contiene todos los ficheros originales (KiCAD) del diseño del hardware. En estos ficheros se permiten realizar trabajos personales y comerciales derivados, siempre que estos den crédito al autor, al director del proyecto y a la Universidad de la Rioja, y publiquen sus diseños bajo la misma licencia que Arduino: Creative Commons Attribution Share-Alike. El software también open-source. El código fuente para el ambiente Java se publica bajo la GPL y las bibliotecas C/C++ del microcontrolador bajo la LGPL. Los diseños de referencia de la placa Arduino se encuentran disponibles en la página hardware. Estos se encuentran bajo licencia Creative Commonos Attribution Share-Alike, por lo que se es libre de utilizar y adaptarlos para sus propias necesidades sin pedir permiso o pagar tarifa alguna. Si el usuario planea hacer algo de interés para la comunidad, se sugiere discutir tus ideas en el foro de desarrollo de hardware, para que los potenciales usuarios puedan aportar sus sugerencias. Si estás fabricando tu propia placa, ¡Inventa un nombre tu mismo! Esto permitirá a la gente identificarte con tus productos y ayudarte a construir tu propia marca. Se creativo: trata de sugerir lo que la gente hará con tu placa, o enfatizar en su forma o características, o tan solo escoge una palabra al azar que suene bien. "Arduino" es una marca registrada del equipo Arduino y no debe utilizarse para variantes no oficiales. Si estás interesado en que tu diseño se incluya junto con las placas oficiales, por favor consulta la sección Así que quieres hacerte un Arduino y ponte en contacto con el equipo Arduino. Ten en cuenta que aun cuando no intentamos restringir la utilización del sufijo "duino", su utilización tiende a espantar a los miembros italianos del equipo (al parecer suena horrible); sera mejor que lo evites. Utilizar una placa Arduino dentro de un producto comercial no requiere que reveles o liberes ninguna de las partes de su diseño. Derivar el diseño de un producto comercial a partir de los ficheros Eagle de la placa Arduino requiere que publiques los ficheros modificados bajo la misma licencia Creative Commons Attribution Share-Alike. Puedes fabricar y vender el producto resultante. Utilizar el núcleo y las bibliotecas de Arduino para el firmware de un producto comercial no requiere que publiques el código fuente para el firmware. Pliego de condiciones.

32

Controlador modular programable basado en procesadores de 32 bits y CAN bus

La LGPL requiere que se liberen los ficheros objeto que permitan el re-enlace al firmware para versiones actualizadas de las bibliotecas y núcleo de Arduino. Cualquier modificación al núcleo y bibliotecas debe ser publicado bajo la LGPL. El código fuente del ambiente Arduino está cubierto bajo la GPL, que requiere que cualquier modificación sea de código libre bajo la misma licencia. No previene la venta de software derivado o su incorporación en productos comerciales. En todos los casos, los requerimientos exactos son determinados por la licencia aplicable. Adicionalmente, consulta las preguntas anteriores para información sobre la utilización del nombre "Arduino".

Pliego de condiciones.

33

Controlador modular programable basado en procesadores de 32 bits y CAN bus

6. Manual de usuario. El presente manual está redactado para la versión 7.0 del software de supervisión SCADA. Pretende ser una guía útil para el usuario, que le enseñe a crear una aplicación a su medida. Para ello se realiza un ejemplo de cada uno de los controles posibles a crear. Junto a estos ejemplos, se muestra al usuario como poner en marcha la aplicación, además de mostrar la utilidad de todos los botones.

Pliego de condiciones.

34

Controlador modular programable basado en procesadores de 32 bits y CAN bus

La primera pantalla de la aplicación es una pantalla de presentación, en la que aparecen dos botones, los cuales rezan de la siguiente manera, “PROYECTO NUEVO” y “PROYECTO EXISTENTE”. El primero de los botones permite crear un SCADA desde cero, por su parte el segundo botón concede al usuario la posibilidad de partir de un panel SCADA ya realizado o en proceso de realización.

Figura 18)

Pantalla de presentación de la aplicación.

Se va a partir del supuesto caso en que el usuario decide crear el proyecto desde cero, ya que la única diferencia que existe con respecto a la otra opción es la no necesidad de pasar por una pantalla intermedia, que se va a analizar a continuación. Si por el contrario, se pulsaría la opción de “PROYECTO EXISTENTE”, la aplicación direccionaría al usuario a la última de las pantallas, una vez ahí, este debería pulsar el botón cargar y seleccionar el archivo (.xlsx) que desea cargar. La siguiente pantalla a la que nos conducirá la aplicación será un formulario limpio, que recibirá al usuario con una ventana emergente, en la que se le pedirá que “delimite la zona en la que se desea colocar la imagen de fondo”.

Figura 19)

Asistente de creación del panel SCADA

El primer paso a realizar en esta pantalla, será delimitar el área en la que se quiere colocar la imagen. Esto se consigue de la misma manera que cuando se quiere realizar una selección sobre cualquier aplicación Windows. Una vez que ya se le ha indicado a la aplicación el área en la que se quiere imprimir la imagen aparecerá de nuevo otra ventana emergente, que indicará al usuario cual es el paso siguiente, “Cargue la imagen de fondo”. Pliego de condiciones.

35

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 20)

Asistente de creación del panel SCADA

Pulsando sobre el botón cargar, se desplegará una pantalla emergente en la que se solicitará la ruta de la imagen de fondo.

Figura 21)

Solicita la ruta de la imagen de fondo.

Una vez seleccionado el archivo .jpeg que se desea cargar, inmediatamente se colocará la imagen sobre el fondo.

Figura 22)

Pliego de condiciones.

Estado de la aplicación una vez cargada la imagen de fondo.

36

Controlador modular programable basado en procesadores de 32 bits y CAN bus Se pulsa el botón siguiente para pasar a la siguiente página en la que se podrá llevar a cabo la creación de los diferentes elementos que permitirán al usuario interacturar con el proceso. Una vez situado en la tercera página, de nuevo aparecerá una ventana emergente en la que pedirá al usuario que “marque las zonas a controlar y edítelas”.

Figura 23)

El asistente indica al usuario que puede comenzar a crear las zonas de control.

Figura 24)

Asistente de cración del panel SCADA.

De manera, que siguiendo las instrucciones del asistente la siguiente tarea será crear las diferentes zonas de control. Para ello, de nuevo se marca la zona sobre la que se desea situar el elemento de control, en caso de que el usuario no esté convencido con el resultado obtenido, posee un botón de “MODIFICAR” que le permite borrar esta zona y volver a crear otra. Una vez que el usuario decida que esa es la zona final sobre la que desea colocar el elemento de control, pulsará en la zona remarcada y le aparecerá una ventana emergente a modo de formulario, que deberá rellenar para seleccionar si desea crear un botón, un shape, un slider, una etiqueta o una progressbar.

Pliego de condiciones.

37

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 25)

Formulario para crear los diferentes elementos de control.

En caso de querer crear un botón el formulario deberá ser rellenado de la siguiente manera.

Figura 26)

Formulario rellenado para crear un botón.

De manera que estamos creando un control booleano, cuyo estado por defecto es apagado y que configura al pin 25 del módulo cero como salida. Así mismo, en la parte de la derecha del formulario, permite elegir si se quiere un botón de color (que se ponga en verde cuando el actuador este encendido o en rojo

Pliego de condiciones.

38

Controlador modular programable basado en procesadores de 32 bits y CAN bus

en caso contrario) o un botón animado en el que se alterne la imagen elegida en función de la posición en que se encuentre. Una vez cumplimentado el formulario, se pulsa el botón Agregar, con el fin de guardar este componente y posteriormente se pulsa Aceptar para posicionar el control sobre la imagen de fondo.

Figura 27)

Aplicación SCADA con el botón ya creado.

Si el usuario necesita crear un slider o text, deberá cumplimentar el formulario de la siguiente manera.

Figura 28)

Formulario rellenado para crear un slider.

De nuevo creamos un control, pero en este caso los datos con los que trabaja son de tipo real. Se le indicará por tanto cual será el valor máximo y Pliego de condiciones.

39

Controlador modular programable basado en procesadores de 32 bits y CAN bus mínimo con los que se quiere trabajar y la aplicación de manera interna (como ya se ha explicado anteriormente) llevará a cabo el escalado. Se configura como salida analógica el pin 10 de módulo 0 y se le indica a la aplicación que cuando ofrezca el

valor en el que este posicionado el slider lo acompañe de la unidad de medida que se le indique. Una vez realizado el formulario se seguirán la operativa será la misma que la expuesta en el punto anterior.

Figura 29)

Aplicación SCADA con el slider ya creado.

En caso de querer crear un text, el formulario se rellena de la misma manera que en el anterior punto a excepción de que hay que marcar el check “text Analógico”.

Pliego de condiciones.

40

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 30)

Figura 31)

Formulario rellenado para crear un text.

Panel SCADA con el text ya creado.

Para crear una progressbar el proceso es el mismo que con el resto de controles, únicamente cambia la manera de rellenar el formulario.

Pliego de condiciones.

41

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 32)

Formulario rellenado para crear una progressbar.

En este caso se ha seleccionado un indicador (pin 0 del módulo 0), que trabajará con datos reales (analógicos), cuyos valores oscilarán entre 0 y 30. En la parte derecha se puede seleccionar la forma de relleno, o bien vertical o bien horizontal, así como el color de fondo y el color de la barra de progreso. De nuevo se le da la posibilidad al usuario de definir las unidades con las que está trabajando y que acompañarán al dato que indica cual es el valor de la entrada analógico (esta valor ya está escalado, en este caso entre 0 y 30). Así mismo el usuario podrá utilizar el servicio de gestión de alarmas marcando el check “Generar alarma”. Los campos que debe de rellenar es el valor límite a partir del cual quiere que se genere la alarma y el texto que quiere que aparezca.

Figura 33)

Pliego de condiciones.

Generación de alarma tras superar el valor límite.

42

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 34)

Aplicación SCADA con la progressbar ya creada.

El último elemento a crear, es un shape, que requiere rellenar el formulario como se expone a continuación.

Figura 35)

Formulario rellenado para crear un shape.

Con este formulario se indica que el pin 35 del módulo 0 debe trabajar como entrada digital (Booleano, Indicador) y que parte de un estado por defecto de cero (en este caso de apertura total de la válvula). En la parte de la derecha existen dos zonas que pinchando sobre ellas dan la posibilidad al usuario de seleccionar la ruta de las imágenes que deben aparecer en función del estado de las entrada. Además se ha seleccionado que se genere una alarma cuando el sensor transmita cero voltios.

Pliego de condiciones.

43

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 36)

Generación de alarma.

De nuevo se pulsa Agregar y Aceptar y se cierra la ventana emergente apareciendo el shape en la página principal.

Figura 37)

Aplicación SCADA con el shape ya creado.

Una vez que se tienen creados todos los elementos de control necesarios, es una práctica recomendable guardar la aplicación, para ello se pulsa el botón “GUARDAR” y se presentara una ventana emergente que solicitara al usuario el nombre que quiere dar al archivo y donde lo quiere guardar, tras cumplimentar ambas acciones la aplicación SCADA ya estará salvada y esperando a que en algún otro momento pueda ser cargada.

Pliego de condiciones.

44

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 38)

Ventana emergente que solicita la ruta en la que se quiere guardar la aplicación.

El siguiente paso es generar el código que necesita el chipKIT principal para poder gestionar tanto las comunicaciones con el PC como con los distintos módulos integrados en el bus CAN, así como la configuración de los pines de cada uno de los módulos que existen en la red CAN. Para ello, se pulsa el botón “PROGRAMAR chpKIT”, la ventana emergente que aparece es la siguiente.

Figura 39)

Ventana de programación y compilación chipKIT.

*Antes de realizar esta acción el usuario debe asegurarse que está conectado el PC con la placa de desarrollo mediante el cable USB.

Pliego de condiciones.

45

Controlador modular programable basado en procesadores de 32 bits y CAN bus Una vez que aparezca el entorno de programación de chipKIT, el usuario deberá buscar la zona en la que ponga “Escriba el código programa a partir de esta zona” y ahí programar su algoritmo de control. Cuando ya lo tenga programado deberá cargar el programa a la placa, mediante la pulsación del botón:

Figura 40)

Botón transferir.

En ese momento se comenzará a transferir el programa, mientras se este realizando esta acción no se debe modificar ninguna línea de la programación.

Figura 41)

Programa transfiriéndose al chipKIT.

Una vez se ha transferido el programa de manera correcta, se pulsa el botón “CONECTAR” que permitirá establecer las comunicaciones entre los diferentes módulos y el panel SCADA. Inmediatamente después de realizar esta acción, saltará un aviso en el que se comunicará el estado de todos los módulos de la red CAN y el usuario deberá decidir si desea continuar o por el contrario reiniciar la conexión.

Figura 42)

Pliego de condiciones.

Estado de los módulos del bus CAN.

46

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Figura 43)

Pliego de condiciones.

La aplicación funcionando.

47

Controlador modular programable basado en procesadores de 32 bits y CAN bus

7. Disposición final. Las partes contratantes, dirección técnica y empresa, se ratifican en el contenido del siguiente pliego de condiciones, en el cual tiene igual validez, a todos los efectos, que una escritura pública, prometiendo fiel cumplimiento.

Pliego de condiciones.

48

Controlador modular programable basado en procesadores de 32 bits y CAN bus

Logroño, a 03 de Septiembre de 2013.

Fdo: Alberto Martínez Inchusta.

Pliego de condiciones.

49

Presupuesto

Índice de Presupuesto. 1.

Introducción. ................................................................................................................................ 1

2.

Mediciones. ................................................................................................................................... 2

3.

4.

5.

2.1.

Partida hardware del sistema. ...................................................................................... 2

2.2.

Partida software de programación. ............................................................................ 3

2.3.

Partida placas de desarrollo. ......................................................................................... 3

2.4.

Partida mano de obra. ...................................................................................................... 3

Cuadros de precios unitarios. ................................................................................................ 4 3.1.

Partida hardware del sistema. ...................................................................................... 4

3.2.

Partida software de programación. ............................................................................ 5

3.3

Partida placas de desarrollo. ......................................................................................... 5

3.4.

Partida mano de obra. ...................................................................................................... 5

Presupuesto parcial................................................................................................................... 6 4.1

Partida hardware del sistema. ...................................................................................... 6

4.2.

Partida software de programación. ............................................................................ 8

4.3.

Partida placas de desarrollo. ......................................................................................... 8

4.4.

Partida mano de obra. ...................................................................................................... 8

Presupuesto total. .................................................................................................................... 10

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

1.

Introducción.

A lo largo de esta sección se desglosara el presupuesto en base a: • • • •

Mediciones: listado de todos los componentes y equipos necesarios, para realizar el autómata. Cuadro de precios unitarios: en este apartado se contemplarán los precios individuales de cada uno de los elementos necesarios. Precios parciales: en este apartado se contemplarán los precios parciales de cada una de las partidas. Precios totales: se calculará el presupuesto total al que asciende el presente proyecto.

Presupuesto

1

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

2.

Mediciones.

En este apartado se enumerarán los elementos utilizados en la red de abastecimiento de Améscoa Baja, así como la cantidad de cada uno de ellos.

2.1. Partida hardware del sistema. Módulo de siete entradas digitales. DESCRIPCIÓN Resistencia de diferentes valores Diodo led Diodo zener Optoacoplador 4N-25-300E Condensador

UNIDADES 35 7 7 7 7

Módulo de seis salidas digitales rápidas. DESCRIPCIÓN Conversor corriente-tensión FOD 8321 Condensador

UNIDADES 6 6

Módulo de seis salidas digitales a TRIAC. DESCRIPCIÓN Circuito opto-triac MOC3021 Diodo led Resistencias Condensadores TRIAC

UNIDADES 6 6 24 12 6

Módulo de cuatro entradas analógicas. DESCRIPCIÓN Analog-switches ADG 5413 Analog-switches AD 7512DI Micro switches Resistencias LM 358 RCV 420

Presupuesto

UNIDADES 4 2 4 12 4 4

2

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

Placa de potencia principal. DESCRIPCIÓN Zócalos Fuente de alimentación Pin-head Salidas analógicas Borneros Micro-switches

UNIDADES 12 1 7 5 36 5

2.2. Partida software de programación. DESCRIPCIÓN Visual Basic Studio

UNIDADES 1

2.3. Partida placas de desarrollo. DESCRIPCIÓN chipKIT MAX 32

UNIDADES 16

2.4. Partida mano de obra. DESCRIPCIÓN Análisis de la solución software. Análisis y diseño de la parte hardware. Depuración del programa en chipKIT 32MAX. Programación del panel SCADA. Programación de la comunicación serie y CAN bus. Documentación.

Presupuesto

UNIDADES (Horas) 5 60 40 110 80 50

3

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

3.

Cuadros de precios unitarios.

En este apartado quedan reflejados los precios unitarios de todos los elementos necesarios para llevar a cabo el proyecto, y que junto con el estado de mediciones sirven para realizar el presupuesto.

3.1. Partida hardware del sistema. Módulo de siete entradas digitales. DESCRIPCIÓN Resistencia de diferentes valores Diodo led Diodo zener Optoacoplador 4N-25-300E Condensador

PRECIO UD.(€) 0.1 0.15 0.1 0.3 0.15

Módulo de seis salidas digitales rápidas. PRECIO UD.(€) Conversor corriente-tensión FOD 8321 Condensador

PRECIO UD.(€) 0.94 0.15

Módulo de seis salidas digitales a TRIAC. DESCRIPCIÓN Circuito opto-triac MOC3021 Diodo led Resistencias Condensadores TRIAC

PRECIO UD.(€) 0.35 0.15 0.1 0.15 1.88

Módulo de cuatro entradas analógicas. DESCRIPCIÓN Analog-switches ADG 5413 Analog-switches AD 7512DI Micro switches Resistencias LM 358 RCV 420

Presupuesto

PRECIO UD.(€) 1.8 1.75 0.55 12 0.13 7.4

4

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

Placa de potencia principal. DESCRIPCIÓN Zócalos Fuente de alimentación Pin-head Salidas analógicas Borneros Micro-switches

PRECIO UD.(€) 0.55 1.65 0.55 1 0.75 0.55

3.2. Partida software de programación. DESCRIPCIÓN Visual basic studio

PRECIO UD.(€) 1283.65

3.3 Partida placas de desarrollo. DESCRIPCIÓN chipKIT MAX 32

PRECIO UD.(€) 40

3.4. Partida mano de obra. DESCRIPCIÓN Análisis de la solución software. Análisis y diseño de la parte hardware. Depuración del programa en chipKIT 32MAX. Programación del panel SCADA. Programación de la comunicación serie y CAN bus. Documentación.

Presupuesto

PRECIO UD.(€) 30 30 30 30 30 30

5

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

4. Presupuesto parcial. 4.1 Partida hardware del sistema. Módulo de siete entradas digitales. DESCRIPCIÓN Resistencia de diferentes valores Diodo led Diodo zener Optoacoplador 4N-25-300E Condensador

PRECIO UD.(€) 0.1 0.15 0.1 0.3 0.15

UNIDADES

PRECIO (€)

35 7 7 7 7

3.5 1.05 0.7 2.1 1.05

Módulo de seis salidas digitales rápidas. DESCRIPCIÓN Conversor corriente-tensión FOD 8321 Condensador

PRECIO UNIDADES UD.(€) 0.94 6 0.15 6

PRECIO (€) 5.64 0.9

Módulo de seis salidas digitales a TRIAC. DESCRIPCIÓN Circuito opto-triac MOC3021 Diodo led Resistencias Condensadores TRIAC

Presupuesto

PRECIO UNIDADES UD.(€) 0.35 6 0.15 6 0.1 24 0.15 12 1.88 6

PRECIO (€) 2.1 0.9 2.4 1.8 11.28

6

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

Módulo de cuatro entradas analógicas. DESCRIPCIÓN Analog-switches ADG 5413 Analog-switches AD 7512DI Micro switches Resistencias LM 358 RCV 420

PRECIO UD.(€) 1.8 1.75 0.55 0.1 0.13 7.4

UNIDADES

PRECIO (€)

4 2 4 12 4 4

7.2 8.75 2.2 1.2 0.52 29.6

PRECIO UD.(€) 0.55 1.65 0.55 1 0.75 0.55

UNIDADES

PRECIO (€)

12 1 7 5 36 5

6.6 1.65 3.85 5 27 2.75

Placa de potencia principal. DESCRIPCIÓN Zócalos Fuente de alimentación Pin-head Salidas analógicas Borneros Micro-switches PARTIDA Partida de hardware del sistema.

TOTAL PARTIDA 129.74

Asciende la partida de hardware del sistema a ciento veinte nueve con setenta y cuatro.

Presupuesto

7

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

4.2. Partida software de programación. DESCRIPCIÓN

PRECIO UNIDADES UD.(€) 1283.65 1

Visual basic studio PARTIDA Partida software de programación

PRECIO (€) 1283.65

TOTAL PARTIDA 1283.65

Asciende la partida de software de programación a mil doscientos ocheinta y tres con seseinta y cinco.

4.3. Partida placas de desarrollo. DESCRIPCIÓN

PRECIO UNIDADES PRECIO UD.(€) (€) 40 1 40

chipKIT MAX 32 PARTIDA Partida placas de desarrollo

TOTAL PARTIDA 40

Asciende la partida de placas de desarrollo a cuarenta euros.

4.4. Partida mano de obra. DESCRIPCIÓN Análisis de la solución software. Análisis y diseño de la parte hardware. Depuración del programa en chipKIT 32MAX. Programación del panel SCADA. Programación de la comunicación serie y CAN bus. Documentación.

Presupuesto

PRECIO UD.(€)

UNIDADES (Horas)

PRECIO (€)

30 30

5 60

150 1800

30

40

1200

30 30

110 80

3300 2400

30

50

1500

8

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

PARTIDA Partida mano de obra.

TOTAL PARTIDA 10350

Asciende la partida de mano de obra a diez mil trescientos cincuenta.

Presupuesto

9

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

5. Presupuesto total. PARTIDA Partida de hardware del sistema. Partida software de programación Partida placas de desarrollo Partida mano de obra.

PRESUPUESTO (€) 129.74 1283.65 40 10350

TOTAL PARCIAL

11803.39

I.V.A. 21% sobre total parcial.

2478.71

TOTAL

14282.10

Asciende el precio total del proyecto a la mencionada cantidad de, CATORCE MIL DOSCIENTOS OCHEINTA Y DOS CON DIEZ EUROS.

*Los precios con los que se calcula este presupuesto son del 2013, si el proyecto no es desarrollado en los dos años siguientes, los precios podrían ser otros. *Los precios de los componentes electrónicos, están supeditados a la compra de cien unidades. *El cálculo de la partida de hardware, está realizado para un módulo de cada tipo.

Presupuesto

10

Telecontrol de la Red de Abastecimiento de Améscoa Baja: Mediante tecnología WiMAX.

Logroño, a 3 de Septiembre de 2013.

Fdo: Alberto Martínez Inchusta.

Presupuesto

11

UNIVERSIDAD DE LA RIOJA

MANUAL DE USUARIO DEL PANEL SCADA v7.0 ALBERTO MARTINEZ INCHUSTA

2013

El presente manual está redactado para la versión 7.0 del software de supervisión SCADA. Pretende ser una guía útil para el usuario, que le enseñe a crear una aplicación a su medida. Para ello se realiza un ejemplo de cada uno de los controles posibles a crear. Junto a estos ejemplos, se muestra al usuario como poner en marcha la aplicación, además de mostrar la utilidad de todos los botones.

Manual de usuario del panel SCADA.

1

La primera pantalla de la aplicación es una pantalla de presentación, en la que aparecen dos botones, los cuales rezan de la siguiente manera, “PROYECTO NUEVO” y “PROYECTO EXISTENTE”. El primero de los botones permite crear un SCADA desde cero, por su parte el segundo botón concede al usuario la posibilidad de partir de un panel SCADA ya realizado o en proceso de realización.

Figura 1)

Pantalla de presentación de la aplicación.

Se va a partir del supuesto caso en que el usuario decide crear el proyecto desde cero, ya que la única diferencia que existe con respecto a la otra opción es la no necesidad de pasar por una pantalla intermedia, que se va a analizar a continuación. Si por el contrario, se pulsaría la opción de “PROYECTO EXISTENTE”, la aplicación direccionaría al usuario a la última de las pantallas, una vez ahí, este debería pulsar el botón cargar y seleccionar el archivo (.xlsx) que desea cargar. La siguiente pantalla a la que nos conducirá la aplicación será un formulario limpio, que recibirá al usuario con una ventana emergente, en la que se le pedirá que “delimite la zona en la que se desea colocar la imagen de fondo”.

Figura 2)

Asistente de creación del panel SCADA

El primer paso a realizar en esta pantalla, será delimitar el área en la que se quiere colocar la imagen. Esto se consigue de la misma manera que cuando se quiere realizar una selección sobre cualquier aplicación Windows. Una vez que ya se le ha indicado a la aplicación el área en la que se quiere imprimir la imagen aparecerá de nuevo otra ventana emergente, que indicará al usuario cual es el paso siguiente, “Cargue la imagen de fondo”. Manual de usuario del panel SCADA.

2

Figura 3)

Asistente de creación del panel SCADA

Pulsando sobre el botón cargar, se desplegará una pantalla emergente en la que se solicitará la ruta de la imagen de fondo.

Figura 4)

Solicita la ruta de la imagen de fondo.

Una vez seleccionado el archivo .jpeg que se desea cargar, inmediatamente se colocará la imagen sobre el fondo.

Figura 5)

Estado de la aplicación una vez cargada la imagen de fondo.

Manual de usuario del panel SCADA.

3

Se pulsa el botón siguiente para pasar a la siguiente página en la que se podrá llevar a cabo la creación de los diferentes elementos que permitirán al usuario interacturar con el proceso. Una vez situado en la tercera página, de nuevo aparecerá una ventana emergente en la que pedirá al usuario que “marque las zonas a controlar y edítelas”.

Figura 6)

El asistente indica al usuario que puede comenzar a crear las zonas de control.

Figura 7)

Asistente de cración del panel SCADA.

De manera, que siguiendo las instrucciones del asistente la siguiente tarea será crear las diferentes zonas de control. Para ello, de nuevo se marca la zona sobre la que se desea situar el elemento de control, en caso de que el usuario no esté convencido con el resultado obtenido, posee un botón de “MODIFICAR” que le permite borrar esta zona y volver a crear otra. Una vez que el usuario decida que esa es la zona final sobre la que desea colocar el elemento de control, pulsará en la zona remarcada y le aparecerá una ventana emergente a modo de formulario, que deberá rellenar para seleccionar si desea crear un botón, un shape, un slider, una etiqueta o una progressbar.

Manual de usuario del panel SCADA.

4

Figura 8)

Formulario para crear los diferentes elementos de control.

En caso de querer crear un botón el formulario deberá ser rellenado de la siguiente manera.

Figura 9)

Formulario rellenado para crear un botón.

De manera que estamos creando un control booleano, cuyo estado por defecto es apagado y que configura al pin 25 del módulo cero como salida. Así mismo, en la parte de la derecha del formulario, permite elegir si se quiere un botón de color (que se ponga en verde cuando el actuador este encendido o en rojo en caso contrario) o un botón animado en el que se alterne la imagen elegida en función de la posición en que se encuentre. Manual de usuario del panel SCADA.

5

Una vez cumplimentado el formulario, se pulsa el botón Agregar, con el fin de guardar este componente y posteriormente se pulsa Aceptar para posicionar el control sobre la imagen de fondo.

Figura 10)

Aplicación SCADA con el botón ya creado.

Si el usuario necesita crear un slider o text, deberá cumplimentar el formulario de la siguiente manera.

Figura 11)

Formulario rellenado para crear un slider.

De nuevo creamos un control, pero en este caso los datos con los que trabaja son de tipo real. Se le indicará por tanto cual será el valor máximo y mínimo con los que se quiere trabajar y la aplicación de manera interna (como ya se ha explicado anteriormente) llevará a cabo el escalado. Se configura como salida analógica el pin 10 de módulo 0 y se le indica a la aplicación que cuando ofrezca el valor en el que este posicionado el slider lo acompañe de la unidad de medida que se le indique. Manual de usuario del panel SCADA.

6

Una vez realizado el formulario se seguirán la operativa será la misma que la expuesta en el punto anterior.

Figura 12)

Aplicación SCADA con el slider ya creado.

En caso de querer crear un text, el formulario se rellena de la misma manera que en el anterior punto a excepción de que hay que marcar el check “text Analógico”.

Figura 13)

Manual de usuario del panel SCADA.

Formulario rellenado para crear un text.

7

Figura 14)

Panel SCADA con el text ya creado.

Para crear una progressbar el proceso es el mismo que con el resto de controles, únicamente cambia la manera de rellenar el formulario.

Figura 15)

Formulario rellenado para crear una progressbar.

En este caso se ha seleccionado un indicador (pin 0 del módulo 0), que trabajará con datos reales (analógicos), cuyos valores oscilarán entre 0 y 30. En la parte derecha se puede seleccionar la forma de relleno, o bien vertical o bien horizontal, así como el color de fondo y el color de la barra de progreso. De nuevo se le da la posibilidad al usuario de definir las unidades con las que está trabajando y que acompañarán al dato que indica cual es el valor de la entrada analógico (esta valor ya está escalado, en este caso entre 0 y 30). Manual de usuario del panel SCADA.

8

Así mismo el usuario podrá utilizar el servicio de gestión de alarmas marcando el check “Generar alarma”. Los campos que debe de rellenar es el valor límite a partir del cual quiere que se genere la alarma y el texto que quiere que aparezca.

Figura 16)

Generación de alarma tras superar el valor límite.

Figura 17)

Aplicación SCADA con la progressbar ya creada.

El último elemento a crear, es un shape, que requiere rellenar el formulario como se expone a continuación.

Figura 18)

Formulario rellenado para crear un shape.

Con este formulario se indica que el pin 35 del módulo 0 debe trabajar como entrada digital (Booleano, Indicador) y que parte de un estado por defecto de cero (en Manual de usuario del panel SCADA.

9

este caso de apertura total de la válvula). En la parte de la derecha existen dos zonas que pinchando sobre ellas dan la posibilidad al usuario de seleccionar la ruta de las imágenes que deben aparecer en función del estado de las entrada. Además se ha seleccionado que se genere una alarma cuando el sensor transmita cero voltios.

Figura 19)

Generación de alarma.

De nuevo se pulsa Agregar y Aceptar y se cierra la ventana emergente apareciendo el shape en la página principal.

Figura 20)

Aplicación SCADA con el shape ya creado.

Una vez que se tienen creados todos los elementos de control necesarios, es una práctica recomendable guardar la aplicación, para ello se pulsa el botón “GUARDAR” y se presentara una ventana emergente que solicitara al usuario el nombre que quiere dar al archivo y donde lo quiere guardar, tras cumplimentar ambas acciones la aplicación SCADA ya estará salvada y esperando a que en algún otro momento pueda ser cargada.

Manual de usuario del panel SCADA.

10

Figura 21)

Ventana emergente que solicita la ruta en la que se quiere guardar la aplicación.

El siguiente paso es generar el código que necesita el chipKIT principal para poder gestionar tanto las comunicaciones con el PC como con los distintos módulos integrados en el bus CAN, así como la configuración de los pines de cada uno de los módulos que existen en la red CAN. Para ello, se pulsa el botón “PROGRAMAR chpKIT”, la ventana emergente que aparece es la siguiente.

Figura 22)

Ventana de programación y compilación chipKIT.

*Antes de realizar esta acción el usuario debe asegurarse que está conectado el PC con la placa de desarrollo mediante el cable USB.

Manual de usuario del panel SCADA.

11

Una vez que aparezca el entorno de programación de chipKIT, el usuario deberá buscar la zona en la que ponga “Escriba el código programa a partir de esta zona” y ahí programar su algoritmo de control. Cuando ya lo tenga programado deberá cargar el programa a la placa, mediante la pulsación del botón:

Figura 23)

Botón transferir.

En ese momento se comenzará a transferir el programa, mientras se este realizando esta acción no se debe modificar ninguna línea de la programación.

Figura 24)

Programa transfiriéndose al chipKIT.

Una vez se ha transferido el programa de manera correcta, se pulsa el botón “CONECTAR” que permitirá establecer las comunicaciones entre los diferentes módulos y el panel SCADA. Inmediatamente después de realizar esta acción, saltará un aviso en el que se comunicará el estado de todos los módulos de la red CAN y el usuario deberá decidir si desea continuar o por el contrario reiniciar la conexión.

Figura 25)

Manual de usuario del panel SCADA.

Estado de los módulos del bus CAN.

12

Figura 26)

Manual de usuario del panel SCADA.

La aplicación funcionando.

13

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.