ciaa-software-v1.0
DESCRIPTION
Caracteristicas TécnicasTRANSCRIPT
-
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