Sviluppo di un’interfaccia touchscreen per il controllo del processo di asciugatura di materiale plastico

Sviluppo di un’interfaccia touchscreen per il controllo del processo di asciugatura di materiale plastico

Matdry: un software embedded sviluppato con librerie QT per un controllore custom

CLIENTE:

Project Engineering

L’esigenza

Project Engineering srl è un’azienda manifatturiera leader che da oltre 25 anni progetta e realizza dispositivi elettronici nell’ambito dei Controllori Custom e Sistemi di test e Apparecchi medicali. Per conto di una multinazionale loro cliente , ha realizzato un controllore custom per la gestione del processo di asciugatura del materiale plastico all’interno del ciclo produttivo di semilavorati ottenuti per pressofusione.
L’azienda, specializzata nello sviluppo di soluzioni Linux embedded con Qt/QML, ha richiesto il nostro contributo per sviluppare il software embedded in collaborazione con il proprio team di sviluppo. A noi è stato affidato la parte dell’interfaccia uomo macchina (HMI – HUMAN-MACHINE INTERFACE) e la parte di interazione con il controllore dell’impianto, sviluppato da Project Engineering.

 

La soluzione

La specifica fornita dal cliente era composta dal set di mockups realizzati con il tool Figma. Il nostro compito è stato quello di realizzare il software GUI in modo tale da avere un look&feel più vicino possibile a quello dei mockups. Le schermate che abbiamo realizzato sono state circa 70. All’interno di ciascuna di esse erano presenti diversi widget (buttons, dropdown list, tabelle, finestre di allarme, ecc.) e, molto spesso, gli stessi widget sono stati utilizzati in più punti del software con delle piccole differenze tra una schermata e l’altra. Le sfide che abbiamo affrontato in questo progetto sono state:

  1. Generalizzare al massimo il codice di ciascun widget in modo tale da poter riutilizzare lo stesso componente in tutte le schermate in cui era presente. Questo approccio ci ha permesso di realizzare un codice estremamente ottimizzato e facilmente manutenibile, a favore del rispetto dei tempi di consegna e della qualità del prodotto realizzato.
  2. Restare fedeli ai mockups dovendo però adattare il funzionamento degli widget alle logiche previste dal software di controllo che, molto spesso, non risultavano essere allineate.

Abbiamo organizzato il processo di sviluppo secondo la metodologia Agile (Scrum): il lavoro è stato suddiviso in sprint bisettimanali al termine dei quali abbiamo inviato il report sulle attività svolte ed una versione incrementale e testabile del software, in modo da consentire a Project Engineering di valutare lo stato di avanzamento del progetto. Il codice sorgente è stato mantenuto su un repository Git condiviso.

 

I vantaggi

I vantaggi raggiunti al nostro contributo sono stati:

  • Look&feel del software fedele ai mockups di design: in questo modo il prodotto realizzato ha avuto un’ottima usabilità
  • Consegna del software nei tempi prestabiliti: l’approccio Agile Scrum è stato fondamentale per raggiungere questo obiettivo
  • Efficienza ed ottimizzazione del codice sviluppato: la generalizzazione del codice dei singoli widget ci ha permesso di evitare duplicazioni deleterie per la manutenibilità dello stesso.

Vuoi sviluppare un nuovo software su misura o un software embedded?

Operiamo a Pistoia, Firenze, Prato, Pisa, Livorno, Bologna, Piacenza, Milano e in tutta Italia

La richiesta

  • Sviluppo di un software embedded HMI per il controllo del processo di asciugatura del materiale plastico per stampi in pressofusione in collaborazione con il team di sviluppo del cliente

Il nostro contributo

  • Sviluppo del software GUI secondo il look&feel dei mockups realizzati dal team di design e della parte di interfaccia verso il modulo di controllo realizzato da Project Engineering
  • Gestione del processo in modalità Agile Scrum con sprint bisettimanali

Tecnologie usate

  • ARM based HMI con micro i.MX6ULL 
  • SO Linux Embedded 
  • librerie QT5
  • linguaggio di programmazione C++, QML, Javascript

Risultati raggiunti

  • Look&feel del software fedele ai mockups di design
  • Consegna del software nei tempi prestabiliti
  • Efficienza ed ottimizzazione del codice sviluppato

La testimonianza

Il progetto relativo all’essiccatore per granulati plastici è stato il nostro secondo progetto sviluppato con Kiwibit, in linguaggio C++ in ambiente Linux su hardware ARM. Anche in questo progetto abbiamo raggiunto gli obbiettivi prefissati sia in termini tecnici che temporali, nonostante che durante lo sviluppo siano emerse significative modifiche ai requisiti che ci hanno costretto a riformulare la pianificazione del lavoro. L’utilizzo di metodologia Agile ha sicuramente contribuito a gestire la situazione, ma sono le persone che fanno la differenza ed in questo Kiwibit si è confermato un ottimo partner.

Ing. Marco Del Nero

R&D Controllers Manager, Project Engineer

Software di collaudo della HMI di controllo per abbattitori termici | ALI Tst

Software di collaudo della HMI di controllo per abbattitori termici | ALI Tst

Realizzazione software embedded di collaudo su controllore custom per abbattitori termici

CLIENTE:

Project Engineering

L’esigenza

Project Engineering srl è un’azienda manifatturiera leader che da oltre 25 anni progetta e realizza dispositivi elettronici nell’ambito dei Controllori Custom e Sistemi di test e Apparecchi medicali. Per un loro cliente ha sviluppato un controllore custom e ci ha commissionato il software di collaudo della HMI di controllo per abbattitori termici.

 

La soluzione

Il software da realizzare era diviso in una parte di GUI con delle schermate relativamente semplici ed una parte di business logic articolata in una serie di macchine a stati, ciascuna relativa a uno dei test necessari al superamento del collaudo del dispositivo. Solitamente, per questo genere di sviluppo, Project Engineering realizzava la business logic interamente C++ per garantire i requisiti di RAM (<= 128MB) del dispositivo fisico.

In questo progetto abbiamo proposto al cliente un approccio differente, ovvero lo sviluppo della business logic in linguaggio Javascript.

La sfida è stata quella di riuscire ad adottare questo approccio, utilizzando un linguaggio di programmazione di alto livello, quindi potenzialmente meno efficiente in termini di consumo di risorse, su un hardware dalle capacità di memoria RAM limitata. Per poter dare una risposta veloce al cliente sulla fattibilità della nostra soluzione abbiamo iniziato a sviluppare la macchina a stati del test di collaudo più complesso del set. In questo modo abbiamo realizzato uno Smoke Test che, in circa una settimana, ci ha confermato la fattibilità della soluzione proposta e offerto uno strumento di sviluppo più veloce e intuitivo rispetto all’utilizzo del C++.

Abbiamo organizzato il processo di sviluppo secondo la metodologia Agile (Scrum). Il lavoro è stato suddiviso in sprint bisettimanali al termine dei quali abbiamo inviato il report sulle attività svolte ed una versione incrementale e testabile del software, in modo da consentire a Project Engineering di valutare lo stato di avanzamento del progetto.

Il codice sorgente è stato mantenuto su un repository GIT condiviso.

 

I vantaggi

Le scelte progettuali descritte ci hanno garantito accesso ai vantaggi offerti dal JavaScript, in quanto linguaggio di più alto livello rispetto al C++, interpretato, a tipizzazione dinamica e con supporto a un paradigma dichiarativo-funzionale.

In particolare, una soluzione ha prodotto i seguenti risultati strategici:

  • Tempi di sviluppo del software più brevi: la scrittura delle logiche in Javascript è risultata più veloce
  • Manutenzione del software a lungo termine: accesso a un maggior bacino potenziale di sviluppatori (la cui maggioranza ha familiarità col JavaScript ma non col C++), con conseguente maggior probabilità di garantire adeguato supporto al software nel lungo termine.
  • Consegna del software nei tempi prestabiliti: l’approccio Agile Scrum è stato fondamentale per raggiungere questo obiettivo

Vuoi sviluppare un nuovo software su misura?

Operiamo a Pistoia, Firenze, Prato, Pisa, Livorno, Bologna, Piacenza, Milano e in tutta Italia

La richiesta

  • Sviluppo di un software di collaudo di un controllore custom per la gestione di alcuni modelli di abbattitori termici

Il nostro contributo

  • Sviluppo del software di collaudo tramite il toolkit Qt su piattaforma U21 micro Freescale iMx6ULL e sistema operativo Linux con linguaggi C++, JavaScript e QML

Tecnologie usate

  • ARM based HMI con micro i.MX6ULL 
  • SO Linux Embedded 
  • librerie QT5
  • linguaggio di programmazione C++, QML, Javascript

Risultati raggiunti

  • Tempi di sviluppo del software più brevi
  • Manutenzione del software a lungo termine
  • Consegna del software nei tempi prestabiliti

La testimonianza

“Il progetto relativo agli abbattitori di temperatura è stato il primo progetto sviluppato insieme a Kiwibit. Il progetto è stato portato avanti dai due team Project Engineering e Kiwibit e fin da subito si è creata un’ottima sinergia e collaborazione, sia tecnica che umana che ha portato al raggiungimento degli obiettivi prefissati nei tempi stabiliti. Kiwibit si è mostrata un’Azienda capace di ascoltare con attenzione i nostri requisiti e aperta al confronto tecnico al fine di perseguire la maggior qualità del risultato, con approccio costruttivo e propositivo.

Ing. Marco Del Nero

R&D Controllers Manager, Project Engineer

Piattaforma di gestione preventivi e ordini

Piattaforma di gestione preventivi e ordini

Sviluppo di software per la gestione del workflow di generazione e approvazione dei preventivi e successiva amministrazione degli ordini acquisiti

CLIENTE:

Ram Oil&Gas

L’esigenza

RAM Oil&Gas è una società di ingegneria che opera con importanti realtà multinazionali del settore. Visto il crescente aumento dei volumi di lavoro degli ultimi anni il management ci ha contattato per sviluppare uno strumento centralizzato, accessibile a tutto il personale tecnico ed amministrativo dedicato alla gestione del workflow di generazione e approvazione dei preventivi e successiva amministrazione degli ordini acquisiti.

La soluzione

Vista la natura del progetto abbiamo ritenuto opportuno sviluppare un’applicazione web responsive, fruibile da qualsiasi tipo di dispositivo, sia esso un desktop, tablet o smartphone. In questo modo abbiamo dato la possibilità a tutti gli utenti massima libertà di consultazione dell’applicazione. Su richiesta del cliente abbiamo deployato l’applicazione su un loro server interno in modo da permettere la gestione architetturale del software direttamente al loro personale preposto. Per la programmazione sia lato client che lato server abbiamo scelto di utilizzare la runtime di JavaScript Open source multipiattaforma Node.js con framework Express mentre i dati vengono ospitati su un database Postgres.  Per lo sviluppo client-side ci siamo affidati anche al framework Angular 2+.

La piattaforma permette la gestione in primis del processo di approvazione dei preventivi basato sul workflow molto articolato e complesso del proprio cliente principale. Tramite la piattaforma vengono gestite le approvazioni parziali delle voci dei preventivi, le revisioni, la possibilità di allegare documentazione accessoria e l’invio di notifiche automatiche via mail sui cambi di stato del workflow ai referenti delle attività preventivate, siano essi tecnici interni all’azienda o fornitori esterni. Nel caso di approvazione delle attività vengono generati gli ordini di commessa e, per il personale amministrativo, è possibile vedere la rendicontazione secondo una serie di KPI definite col cliente. 

I vantaggi

Grazie all’introduzione della piattaforma il cliente ha riscontrato i seguenti vantaggi:

  • centralità ed uniformità della gestione del processo. Prima dell’esistenza della piattaforma i preventivi erano gestiti dai tecnici in modo non organico e tutto il personale faceva riferimento ad un foglio Excel su una folder di un server condiviso dove riportava a mano tutte le informazioni necessarie ad identificare univocamente il preventivo. Con l’aumento del numero di persone che avevano accesso al file, l’utilizzo simultaneo del foglio Excel era fonte di inconsistenza e mancanza di sincronizzazione dei dati inseriti.
  • aumento della produttività. La piattaforma ha permesso l’automatizzazione dell’inserimento di molti dati ricorrenti nei preventivi, come quelli relativi alle anagrafiche dei clienti, tecnici e fornitori e l’automatizzazione di operazioni quali l’invio delle mail agli stakeholder coinvolti nel processo.

La richiesta

  • Digitalizzazione del processo di gestione di preventivi ed ordini

Il nostro contributo

  • Sviluppo applicazione web responsive  

Tecnologie usate

  • Bootstrap, Angular 2+, Javascript
  • NodeJs, ExpressJs
  • Postgres

Risultati raggiunti

  • Centralità ed uniformità della gestione del processo
  • Aumento della produttività

La testimonianza

L’applicazione web sviluppata da Kiwibit ha permesso al nostro team di migliorare la produttività e l’efficienza nel processo di gestione dei preventivi ed ordini verso il nostro cliente principale. Uno strumento efficace e di facile utilizzo ormai indispensabile nel nostro lavoro quotidiano  

Barbara Mazzaro

Ram Oli & Gas

Generazione automatica di documenti

Generazione automatica di documenti

Lo sviluppo di software open-source generatori automatici di documenti in formato MS Office.

CLIENTE:

Importante multinazionale

L’esigenza

Il cliente lavora su commesse di grande dimensione con punti di verifica ricorrenti sullo stato di avanzamento in cui ha la necessità di consegnare ai propri clienti un numero considerevole di report in formato Office, documenti di testo .docx, fogli di lavoro .xlsx e presentazioni .pptx. Si tratta di documenti di diverse decine di pagine in cui vengono riportati i risultati delle analisi e della progettazione di parti dell’impianto oggetto della commessa. 

La realizzazione dei report era a carico del personale altamente qualificato, solitamente ingegneri progettisti, i quali impiegavano giornate di lavoro di attività a basso valore aggiunto per collezionare dati, grafici ed immagini da inserire nei report. Tutti le informazioni erano  prodotte dai software utilizzati dagli stessi ingegneri per la progettazione dell’impianto. I report solitamente erano composti da parti a comune e parti variabili caratterizzate dai risultati delle analisi e della configurazione dell’impianto.

L’eventuale sviluppo di nuovi software avrebbe dovuto avere la caratteristica di poter essere installata su server sia Linux che Microsoft per esigenze infrastrutturali esistenti.

La soluzione

Abbiamo realizzato una serie di software batch, generatori automatici di report Microsoft Office, in grado di produrre documenti nei tre formati richiesti .docx, .xlsx e .pptx. Vista la caratteristica dei documenti di avere parti a comune e variabili abbiamo costruito insieme al cliente dei template di progetto, ovvero dei file contenenti le parti a comune e arricchiti con dei “placeholder” che sono serviti per compilare automaticamente le parti variabili con i dati di progetto. Per soddisfare l’esigenza di far girare i generatori su macchine sia Windows che Linux abbiamo optato per una tecnologia open-source, ovvero il progetto POI dell’Apache Software Foundation. Si tratta di una suite open di librerie Java in grado di manipolare i modelli xml dei suddetti formati Office.

I vantaggi

Lo sviluppo dei generatori ha portato al cliente i seguenti vantaggi:

  • risparmio di tempo e conseguente riduzione di costi di commessa. Solitamente prima dell’introduzione dei generatori il personale del cliente spendeva anche molte ore nella produzione di un singolo report. Adesso sono necessari solo pochi secondi con tutti i vantaggi del caso.
  • assenza di Office su server in cui gira il generatore. Utilizzando la tecnologia open-source il cliente non ha più l’esigenza di aver installato Office sui server in cui girano i generatori potendo evitare anche il costo della licenza del software Microsoft.
  • riduzione degli errori di compilazione del documento. Demandando questo genere di attività ripetitiva ed a basso valore aggiunto dal personale qualificato al software il cliente ha ridotto il numero di errori presenti nei documenti.
  • personale del cliente più soddisfatto. Togliendo al personale qualificato l’incombenza di dover spendere delle ore del proprio lavoro su un’attività a così basso valore aggiunto il cliente ha constatato un incremento della soddisfazione del proprio personale.

La richiesta

  • Automatizzare la generazione di documenti in formato Office .docx, .xlsx, .pptx, realizzando software batch installabili sia su Windows che su Linux

Il nostro contributo

  • Sviluppo di moduli software che utilizzano un file template e lo compilano con i dati del progetto  

Tecnologie usate

  • Librerie Apace POI
  • Java 7 e 8

Risultati raggiunti

  • Risparmio di tempo e conseguente riduzione di costi di commessa
  • Assenza di Office su server in cui gira il generatore
  • Riduzione degli errori di compilazione del documento
  • Personale del cliente più soddisfatto

La testimonianza

La parte di sviluppo dei generatori in formato Word non è stata semplice da realizzare a causa del complesso modello xml nativo del formato in questione. Il cliente aveva la necessità di generare documenti molto elaborati, ma con la nostra esperienza di sviluppo in linguaggio Java siamo riusciti a soddisfare tutte le loro esigenze.” 

Lisa Morassi

Technical & Operations Manager
Kiwibit

Automatizzazione dei rilasci dei software nei vari ambienti di test, QA e PROD | Automatic Deployer

Automatizzazione dei rilasci dei software nei vari ambienti di test, QA e PROD | Automatic Deployer

Sviluppo di moduli per la CI (Continuos Integration) su piattaforma Jenkins.

CLIENTE:

Importante multinazionale

L’esigenza

Il cliente aveva sviluppato nel corso degli anni un ampio ecosistema di software e, vista la moltitudine di tools e tecnologie differenti utilizzate per svilupparli, spendeva molto tempo e risorse nella fase di rilascio. Inoltre a seguito della procedura per ottenere una delle certificazione ISO aveva l’esigenza di implementare la “Segregation of Duties” che impone di tenere separate le mansioni e aree di responsabilità tra cui quelle di sviluppatori, deployer e tester.  

La soluzione

Visto l’elevato numero di tool che dovevano essere distribuiti mediante il nuovo sistema automatico il lavoro di scrittura del codice è stato preceduto da una capillare fase di analisi che ci ha permesso di individuare tutte le criticità della successiva fase di sviluppo.

Abbiamo dovuto sviluppare jobs di varia natura capaci di deployare applicazioni anche a tecnologia mista. La scelta di Jenkins è stata ottimale per le sue caratteristiche di versatilità ma abbiamo comunque dovuto mettere in campo tutte le nostre abilità tecniche per riuscire ad automatizzare i rilasci delle applicazioni più complesse.

I vantaggi

Grazie all’introduzione del deployer  il cliente ha riscontrato i seguenti vantaggi:

  • ottimizzazione dei tempi di rilascio delle applicazioni. I precedenti rilasci manuali portavano con sé potenziali criticità a causa della complessità delle infrastrutture IT del cliente, con molteplicità di ambienti di rilascio, sistemi operativi di diverse tecnologie, ecc.. L’introduzione del deployer automatico ha permesso di analizzare e superare le criticità in fase di sviluppo dei jobs in modo da non lasciarle gestire ogni volta dall’operatore incaricato del rilascio.
  • diminuzione del margine di errore sui rilasci. L’utilizzo dello strumento automatico di deploy ha standardizzato la gestione del versionamento dei software sul repository dei codici sorgenti imponendo i commit agli sviluppatori secondo regole ben precise.

La richiesta

  • Automatizzazione dei rilasci dei software nei vari ambienti di test, QA e PROD

Il nostro contributo

  • Analisi di fattibilità
  • Sviluppo dei jobs di rilascio dei software

Tecnologie usate

  • Jenkins

Risultati raggiunti

  • Ottimizzazione dei tempi di rilascio delle applicazioni
  • Diminuzione del margine di errore sui rilasci

La testimonianza

“Sfruttando la modularità di Jenkins abbiamo realizzato un sistema potente e, allo stesso tempo, semplice da utilizzare.
Il flusso di approvazione e distribuzione può essere gestito facilmente via email.
Con questa soluzione abbiamo consentito al cliente di standardizzare una grande quantità di processi riducendo drasticamente tempi ed errori.” 

Francesco Frosini

Senior Software Architect
Kiwibit