Vous êtes sur la page 1sur 8

CaractersticastcnicasdelsoftwaredelaComputadoraIndustrial

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.

Equipo tcnico a cargo del desarrollo de firmware de la CIAA


Responsables:

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

Para realizar el desarrollo del software se utilizarn los estndares ms modernosaplicablesaarquitectura


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. 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.

Utilizar el esquema servidor/cliente, comunicando a los mismos medianteservicios 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 ylos clientes(manejo y presentacin dedatos) pueden ser
programados en diferentes lenguajes de programacin ya que se utilizan interfacesRESTful,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 mduloeselque permiteescribirlos programas que luegoejecutalaCIAA.


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 sehara un lenguajeintermedio que luegoser interpretado por
elfirmware.
Mdulo de Programacin: este mdulo es el encargado de tomar el programa compilado enun 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 paragenerarun programaque 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 mapade memoriade
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 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

Vous aimerez peut-être aussi