CIAA Software v1.0 PDF
CIAA Software v1.0 PDF
CIAA Software v1.0 PDF
AbiertaArgentina
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 ejecutaren la plataforma, compilar dicho
cdigo para la arquitectura del microcontrolador delaplataforma,descargarelprograma al microcontrolador
yvisualizar/editarelmapadememoriadelaCIAA.
2.
Responsable:Ing.J.EzequielEspsito(DebtechSRL,LSEFIUBA)
Subresponsable:Ing.GustavoAlessandrini(INTI,ORT)
Colaboradores:
3.
Ing.PaolaPezoimburu(LSEFIUBA,SurEmp.Tec.)
Ing.GustavoAlessandrini(INTI,ORT)
Ing.GustavoMuro(FCEIyAUNR)
Documentosaplicablesydereferencia
PropuestaparaeldesarrollodeunaComputadoraIndustrialAbiertaArgentina:
http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/11/PropuestaComputadora
IndustrialAbiertaArgentinaACSECADIEELv2.5.pdf
CaractersticastcnicasdelhardwaredelaComputadoraIndustrialAbiertaArgentina:
http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/11/CIAAHardwarev1.1.pdf
4.
CaractersticastcnicasdelfirmwaredelaComputadoraIndustrialAbiertaArgentina:
http://www.sase.com.ar/asociacioncivilsistemasembebidos/files/2013/12/CIAAFirmwarev1.0.pdf
Requerimientosdelsoftware
Losrequerimientosdelsoftwaresurgieronapartirdediscusionesconlossiguientesgruposdetrabajo:
CIAAHardware:grupodetrabajoencargadodelhardwaredelaCIAA.
CIAAFirmware:grupodetrabajoencargadodelfirmwaredelaCIAA.
CIAASoftware:grupodetrabajoencargadodelsoftwaredelaCIAA.
CIAACoordinacin:grupodetrabajoencargadodelsistemaCIAAanivelgeneral.
Embebidos32@:comunidadabiertaregionaldedicaalossistemasembebidos.
Estos grupos de trabajo estn formados principalmente poringenierosprovenientes del rea industrialy 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 RRHHy de los conocidosestndares
industrialessellegaronalossiguientesrequerimientosdealtonivelparaelsoftware:
5.
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.
Presentacinconceptualdelsoftware
5.1.
Principiosdearquitecturadesistema
Separar la capa de modelo de datos de la capa de interfaz grfica. Paraesto se utilizarel patrn
de diseo MVC (Model View Controller). Las ventajas de utilizar este patrn de diseo, esque las
aplicacionesresultanserindependientedelabibliotecagrficautilizada.
Implementar protocolos de comunicacin de manera tal que los mismos sean independientes del
canal de transmisin.La principal ventaja deeste esquema, es quelos 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.
Esquemageneral
LosmdulosquecomprendernalsoftwaredelaCIAAson:
5.3.
Detalledelosmdulos
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 enel hecho dequelacomunidad dedesarrolloa nivelregional no tiene
amplios conocimientos y experiencia en el Framework Eclipse.Si se utilizar esteconjuntode tecnologas
el desarrollo tomara mucho ms tiempo del planeado (aproximadamente de 6 a 8 meses desde la
publicacindelosdocumentos)ynoseestarancumpliendoconlosobjetivosdelproyecto.
Por otro lado, por ser elFrameworkJavaFXuna tecnologa muy poco madura enelmercado, la opcin Java
| Framework JavaFX | Boost | Herramientas Libres qued descartada.La justificacines 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:
8.
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/
Listadetareasdelsoftware
En esta seccin se definen las listas de tareasa realizar para cadamdulo, el encargado de llevar adelante
cadatareayeltiempodedesarrollodelasmismas.
8.1.
ListadetareasparaelMdulodeCodificacin
NPrev
Implementacindelasclasesquepermitan
definirloselementosdeladeLgicaLadder
Implementacindelasclasesquepermitan
combinarelementosdeLgicaLadderpara
generarunprograma
GeneracindeprogramadeLgicaLadder
medianteeditorgrficoparalaCIAA
GeneracindeprogramadeLgicaLadder
medianteeditordetextoparalaCIAA
GeneracindeprogramaenLenguajeC
medianteeditordetextoparalaCIAA
8.2.
DetalledelaTarea
HorasHombre
ListadetareasparaelMdulodeCompilacin
N
Prev
TraductordelprogramaenLgicaLadder
enunlenguajeintermedioqueser
interpretadoporelfirmwaredelaCIAA
TraductordelprogramaenLenguajeCen
unlenguajeintermedioqueser
interpretadoporelfirmwaredelaCIAA
8.3.
Encargado
DetalledelaTarea
Encargado
Horas
Hombre
Encargado
Horas
Hombre
ListadetareasparaelMdulodeProgramacin
N
Prev
DetalledelaTarea
EnvioalfirmwaredelaCIAAelprograma
enlenguajeintermediomedianteinterfaz
RS485
EnvioalfirmwaredelaCIAAelprograma
enlenguajeintermediomedianteinterfaz
Ethernet
8.4.
ListadetareasparaelMdulodeComunicacin
N
Prev
Implementacindelainterfazde
comunicacingenrica(aperturade
puerto,escritura,lecturaycerradode
puerto)
Implementacindelasclasesque
permitanmanejarelPuertoSeriedelaPC
Implementacindelasclasesque
permitanmanejarSocketsEthernetdesde
laPC
2,3
Implementacindelprotocoloestndar
Modbus
8.5.
DetalledelaTarea
Horas
Hombre
Encargado
Horas
Hombre
Encargado
Horas
Hombre
ListadetareasparaelMdulodeDepuracin
N
Prev
Obtencindevariablesdelmapade
memoriadelaCIAAparavisualizacina
partirdelacomunicacinModbus
Edicindevariablesdelmapadememoria
delaCIAAapartirdelacomunicacin
Modbus
8.6.
Encargado
DetalledelaTarea
ListadetareasparalaInterfazGrfica
N
Prev
DetalledelaTarea
Gestindeproyectos.Creacin,
guardado,aperturaycerradode
proyectos.
2
Interfazgrficaparacodificacin.
Interfazgrficaparacompilacin.
Interfazgrficaparaprogramacin.
Interfazgrficaparadepuracin.
8.7.
ListadetareasparalaValidacindelSoftware
N
Prev
ValidacindelMdulodeCodificacin.
ValidacindelMdulodeCompilacin.
ValidacindelMdulodeProgramacin.
ValidacindelMdulodeDepuracin.
ValidacindelaInterfazGrfica.
9.
DetalledelaTarea
Encargado
Requisitosdedocumentacinparalosdesarrolladoresdelsoftware
BugTracker:
http://www.proyectociaa.com.ar/project
Guadeestiloyconvencindenombres:
http://googlestyleguide.googlecode.com/svn/trunk/cppguide.xml
DocumentacindearchivosdecdigofuenteparasoportarformatoDoxygen
www.doxygen.org
Horas
Hombre