ciaa-software-v1.0

8
Características técnicas del software de la Computadora Industrial Abierta Argentina 1. Introducción En el presente documento se describen las características del software que poseerá la Computadora Industrial Abierta Argentina (CIAA). El software es el programa que se ejecuta en una computadora (Windows/Linux compatible) y permite: escribir el código que se ejecutará en la plataforma, compilar dicho código para la arquitectura del microcontrolador de la plataforma, descargar el programa al microcontrolador y visualizar/editar el mapa de memoria de la CIAA. 2. Equipo técnico a cargo del desarrollo de firmware de la CIAA Responsables: Responsable: Ing. J. Ezequiel Espósito (Debtech SRL, LSEFIUBA) Subresponsable: Ing. Gustavo Alessandrini (INTI, ORT) Colaboradores: Ing. Paola Pezoimburu (LSEFIUBA, Sur Emp. Tec.) Ing. Gustavo Alessandrini (INTI, ORT) Ing. Gustavo Muro (FCEIyAUNR) 3. Documentos aplicables y de referencia Propuesta para el desarrollo de una Computadora Industrial Abierta Argentina: http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/11/PropuestaComputadora IndustrialAbiertaArgentinaACSECADIEELv2.5.pdf Características técnicas del hardware de la Computadora Industrial Abierta Argentina: http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/11/CIAAHardwarev1.1.pdf Características técnicas del firmware de la Computadora Industrial Abierta Argentina: http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/12/CIAAFirmwarev1.0.pdf 4. Requerimientos del software Los requerimientos del software surgieron a partir de discusiones con los siguientes grupos de trabajo: CIAAHardware: grupo de trabajo encargado del hardware de la CIAA. CIAAFirmware: grupo de trabajo encargado del firmware de la CIAA. CIAASoftware: grupo de trabajo encargado del software de la CIAA. CIAACoordinación: grupo de trabajo encargado del sistema CIAA a nivel general.

Upload: josbaney-jose-pereira-calles

Post on 13-Sep-2015

2 views

Category:

Documents


0 download

DESCRIPTION

Caracteristicas Técnicas

TRANSCRIPT

  • CaractersticastcnicasdelsoftwaredelaComputadoraIndustrialAbiertaArgentina

    1. Introduccin

    En el presente documento se describen las caractersticas del software que poseer la Computadora Industrial Abierta Argentina (CIAA). El software es el programa que se ejecuta en una computadora (Windows/Linux compatible) y permite: escribir el cdigo que se ejecutar en la plataforma, compilar dicho cdigo para la arquitectura del microcontrolador de la plataforma, descargar el programa al microcontrolador yvisualizar/editarelmapadememoriadelaCIAA.

    2. Equipo tcnico a cargo del desarrollo de firmware de la CIAA

    Responsables:

    Responsable:Ing.J.EzequielEspsito(DebtechSRL,LSEFIUBA) Subresponsable:Ing.GustavoAlessandrini(INTI,ORT)

    Colaboradores:

    Ing.PaolaPezoimburu(LSEFIUBA,SurEmp.Tec.) Ing.GustavoAlessandrini(INTI,ORT) Ing.GustavoMuro(FCEIyAUNR)

    3. Documentosaplicablesydereferencia

    PropuestaparaeldesarrollodeunaComputadoraIndustrialAbiertaArgentina:http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/11/PropuestaComputadoraIndustrialAbiertaArgentinaACSECADIEELv2.5.pdf

    CaractersticastcnicasdelhardwaredelaComputadoraIndustrialAbiertaArgentina:http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/11/CIAAHardwarev1.1.pdf

    CaractersticastcnicasdelfirmwaredelaComputadoraIndustrialAbiertaArgentina:http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/12/CIAAFirmwarev1.0.pdf

    4. Requerimientosdelsoftware

    Losrequerimientosdelsoftwaresurgieronapartirdediscusionesconlossiguientesgruposdetrabajo:

    CIAAHardware:grupodetrabajoencargadodelhardwaredelaCIAA. CIAAFirmware:grupodetrabajoencargadodelfirmwaredelaCIAA. CIAASoftware:grupodetrabajoencargadodelsoftwaredelaCIAA. CIAACoordinacin:grupodetrabajoencargadodelsistemaCIAAanivelgeneral.

  • Embebidos32@:comunidadabiertaregionaldedicaalossistemasembebidos.

    Estos grupos de trabajo estn formados principalmente por ingenieros provenientes del rea industrial y del rea acadmica, con amplia experiencia en el desarrollo y en la implementacin de hardware, firmware y software para sistemas embebidos. A partir de la experiencia de los RRHH y de los conocidos estndares industrialessellegaronalossiguientesrequerimientosdealtonivelparaelsoftware:

    CodificacindelaCIAAenLgicaLadder. Medianteuneditorgrfico. Medianteuneditordetexto.

    CodificacindelaCIAAenC. Medianteuneditordetexto.

    Compilacin del programa de la CIAA a un lenguaje intermedio que ser interpretado por el firmware.

    ProgramacindedelaCIAA. AtravsdeRS485Ethernet(descargadelprogramaalfirmware).

    ComunicacinconlaCIAA. UtilizandoelprotocoloestndarabiertoModbus. AtravsdeEthernet. AtravsdeRS232. AtravsdeRS485.

    MapadememoriadelaCIAA. Edicindelmapadememoria. Visualizacindelmapadememoria.

    InterfazGrficadeUsuario. Aperturayguardadodeproyectos. Interfazgrficadecodificacin. Interfazgrficadecompilacin. Interfazgrficadeprogramacin. Interfazgrficadelmapadememoria.

    5. Presentacinconceptualdelsoftware

    5.1. Principiosdearquitecturadesistema

    Para realizar el desarrollo del software se utilizarn los estndares ms modernos aplicables a arquitectura desistemas:

    Utilizar tecnologas OpenSource y CrossPlatform. La ventaja es que las aplicaciones se desarrollan una nica vez y luego las mismas se podrn compilar para diferentes arquitecturas y sistemasoperativos.

    Separar la capa de modelo de datos de la capa de interfaz grfica. Para esto se utilizar el patrn de diseo MVC (Model View Controller). Las ventajas de utilizar este patrn de diseo, es que las aplicacionesresultanserindependientedelabibliotecagrficautilizada.

    Implementar protocolos de comunicacin de manera tal que los mismos sean independientes del canal de transmisin. La principal ventaja de este esquema, es que los protocolos de comunicacin industriales estndares se programarn una nica vez y luego se los podr utilizar en diferentes

  • medios(porejemploRS233,RS485yEthernet).

    Utilizar tcnicas avanzadas de programacin orientada a objetos, para escribir cdigo flexible, escalableymantenible.

    Utilizar el esquema servidor/cliente, comunicando a los mismos mediante servicios web RESTful y protocolo HTTP. Las principales ventajas de este esquema son, por un lado que el servidor (lgica de datos) es programado una nica vez y los clientes (manejo y presentacin de datos) pueden ser programados en diferentes lenguajes de programacin ya que se utilizan interfaces RESTful, y por otro lado, que la comunicacin entre el servidor y los clientes es transparente a las complicadas topologas de redes de las organizaciones ya que se utiliza el protocolo HTTP. Cabe aclarar, que por cuestiones de tiempo de desarrollo, en la primera versin del software de la CIAA se programar en conjunto el servidor con el cliente. En futuras versiones se pretende separar el servidordelclienteparagenerarunsistemamsflexible,escalableyrobusto.

    5.2. Esquemageneral

    LosmdulosquecomprendernalsoftwaredelaCIAAson:

  • 5.3. Detalledelosmdulos

    Mdulo de Codificacin: este mdulo es el que permite escribir los programas que luego ejecuta la CIAA. Los programas podrn ser escritos, por un lado, en Lgica de Ladder de manera grfica y de mediante editor de texto. Por otro lado, tambin se podrn escribir programan en Lenguaje C mediante editor de texto.

    Mdulo de Compilacin: este mdulo es el encargado de compilar el programa escrito mediante el Mdulo de Codificacin. La compilacin se har a un lenguaje intermedio que luego ser interpretado por elfirmware.

    Mdulo de Programacin: este mdulo es el encargado de tomar el programa compilado en un lenguaje intermedio (que es generado por el Mdulo de Compilacin) y enviarlo al microcontrolador de la CIAA. Para esto se utilizar la interfaz RS485 o Ethernet. El programa en lenguaje intermedio ser almacenado en las memoria disponibles en la CIAA. Es decir los pasos para generar un programa que se ejecute en la CIAAsern:

    1. CdificacinenLgicaLadderoenCutilizandoelMdulodeCodificacin.2. Compilacindelprogramaaunlenguajeintermedio(porejemplounformatoXML).3. Programacin de la CIAA a partir de enviar el programa en lenguaje intermedio al firmware

    (medianteRS485oEthernet).4. El firmware se encargar de guardar el programa en la memoria SD disponibles por hardware,

    realizado las comprobaciones de integridad necesarias y tomando las precauciones de robustez adecuadas.

    5. El firmware enviar el programa guardado en la SD a la flash interna del correspondiente microcontrolador.

    6. Elfirmwareinterpretarelprogramaguardadoenlaflashyloejecutarpasoapaso.

    Mdulo de Comunicacin: este mdulo ser el encargado de establecer comunicaciones con la CIAA. Dicha comunicacin se establecer mediante el protocolo industrial estndar Modbus utilizando Ethernet, RS232oRS485.

    Mdulo de Depuracin: este mdulo ser el encargado de obtener informacin del mapa de memoria de laCIAA,parasuvisualizaciny/oedicin.

    Interfaz Grfica: es la interfaz grfica para el usuario. La misma le permitir a los usuarios de la plataformaCIAArealizarlacodificacin,compilacin,programacinydepuracindemaneragrfica.

    6. Seleccindetecnologadedesarrollo

    A travs de los grupos de trabajo anteriormente mencionados, se someti a debate cul debera ser las tecnologasutilizadasparadesarrollarelsoftwaredelaCIAA.Lasopcionesfueron:

  • LenguajedeProgramacin BibliotecaGrfica Bibliotecas HerramientasLibres

    C++ Qt Boost Binutils,gcc,newlibyOpenOCD

    Java FrameworkEclipse Boost Binutils,gcc,newlibyOpenOCD

    Java FrameworkJavaFX Boost Binutils,gcc,newlibyOpenOCD

    Por disponer de poco tiempo para realizar el desarrollo y por los conocimientos generales que maneja la comunidad a nivel regional, la opcin Java | Framework Eclipse | Boost | Herramientas Libres qued descartada. La justificacin se basa en el hecho de que la comunidad de desarrollo a nivel regional no tiene amplios conocimientos y experiencia en el Framework Eclipse. Si se utilizar este conjunto de tecnologas el desarrollo tomara mucho ms tiempo del planeado (aproximadamente de 6 a 8 meses desde la publicacindelosdocumentos)ynoseestarancumpliendoconlosobjetivosdelproyecto.

    Por otro lado, por ser el Framework JavaFX una tecnologa muy poco madura en el mercado, la opcin Java | Framework JavaFX | Boost | Herramientas Libres qued descartada. La justificacin es que al ser la CIAA una plataforma industrial se requiere que tanto el hardware, como el firmware y como el software sean robustos.AlserJavaFXunatecnologamuynueva,lacondicinderobusteznoestarasiendocumplida.

    Finalmente, se decide que las tecnologas ms apropiadas para llevar a cabo el desarrollo son C++ | Qt | Boost | Herramientas libres. La justificacin es que por un lado a nivel regional, la comunidad tiene gran conocimiento y experiencia en estas tecnologas. Por otro lado, la cantidad de aos de presencia que tienen estas tecnologas en el mercado y la cantidad de proyecto exitosos que se desarrollaron a nivel internacional y nacional, hacen que estas herramientas sean las correctas en trminos de confianza, y robustez.

    7. Herramientasdedesarrollo

    Lasherramientasdedesarrolloautilizarson:

    Administracin: Wikiparaeldesarrollodelproyecto:http://www.proyectociaa.com.ar/devwiki Administracindelproyectoybugtracker:http://www.proyectociaa.com.ar/project

    Desarrollo: IDEdedesarrollo:http://qtproject.org/wiki/Category:Tools::QtCreator

    Bibliotecas: Bibliotecagrfica Boost:http://www.boost.org/

    8. Listadetareasdelsoftware

    En esta seccin se definen las listas de tareas a realizar para cada mdulo, el encargado de llevar adelante cadatareayeltiempodedesarrollodelasmismas.

  • 8.1. ListadetareasparaelMdulodeCodificacin

    N NPrev DetalledelaTarea Encargado HorasHombre

    1 ImplementacindelasclasesquepermitandefinirloselementosdeladeLgicaLadder

    2 1 ImplementacindelasclasesquepermitancombinarelementosdeLgicaLadderpara

    generarunprograma

    3 2 GeneracindeprogramadeLgicaLaddermedianteeditorgrficoparalaCIAA

    4 2 GeneracindeprogramadeLgicaLaddermedianteeditordetextoparalaCIAA

    6 GeneracindeprogramaenLenguajeCmedianteeditordetextoparalaCIAA

    8.2. ListadetareasparaelMdulodeCompilacin

    N NPrev

    DetalledelaTarea Encargado HorasHombre

    1 TraductordelprogramaenLgicaLadderenunlenguajeintermedioqueser

    interpretadoporelfirmwaredelaCIAA

    2 TraductordelprogramaenLenguajeCenunlenguajeintermedioqueser

    interpretadoporelfirmwaredelaCIAA

    8.3. ListadetareasparaelMdulodeProgramacin

    N NPrev

    DetalledelaTarea Encargado HorasHombre

    1 EnvioalfirmwaredelaCIAAelprogramaenlenguajeintermediomedianteinterfaz

    RS485

    2 EnvioalfirmwaredelaCIAAelprograma

  • enlenguajeintermediomedianteinterfazEthernet

    8.4. ListadetareasparaelMdulodeComunicacin

    N NPrev

    DetalledelaTarea Encargado HorasHombre

    1 Implementacindelainterfazdecomunicacingenrica(aperturadepuerto,escritura,lecturaycerradode

    puerto)

    2 1 ImplementacindelasclasesquepermitanmanejarelPuertoSeriedelaPC

    3 1 ImplementacindelasclasesquepermitanmanejarSocketsEthernetdesde

    laPC

    4 2,3 ImplementacindelprotocoloestndarModbus

    8.5. ListadetareasparaelMdulodeDepuracin

    N NPrev

    DetalledelaTarea Encargado HorasHombre

    1 ObtencindevariablesdelmapadememoriadelaCIAAparavisualizacina

    partirdelacomunicacinModbus

    2 1 EdicindevariablesdelmapadememoriadelaCIAAapartirdelacomunicacin

    Modbus

    8.6. ListadetareasparalaInterfazGrfica

    N NPrev

    DetalledelaTarea Encargado HorasHombre

    1 Gestindeproyectos.Creacin,

  • guardado,aperturaycerradodeproyectos.

    2 Interfazgrficaparacodificacin.

    3 Interfazgrficaparacompilacin.

    4 Interfazgrficaparaprogramacin.

    5 Interfazgrficaparadepuracin.

    8.7. ListadetareasparalaValidacindelSoftware

    N NPrev

    DetalledelaTarea Encargado HorasHombre

    1 ValidacindelMdulodeCodificacin.

    2 ValidacindelMdulodeCompilacin.

    3 ValidacindelMdulodeProgramacin.

    4 ValidacindelMdulodeDepuracin.

    5 ValidacindelaInterfazGrfica.

    9. Requisitosdedocumentacinparalosdesarrolladoresdelsoftware

    BugTracker: http://www.proyectociaa.com.ar/project

    Guadeestiloyconvencindenombres: http://googlestyleguide.googlecode.com/svn/trunk/cppguide.xml

    DocumentacindearchivosdecdigofuenteparasoportarformatoDoxygen www.doxygen.org