Vai al contenuto
PLC Forum


Windows CE


Cagnulein

Messaggi consigliati


del_user_97632
 

Infatti, Windows CE, aveva tanti difetti ma una cosa su tutte faceva abbastanza bene: eseguire codice in tempo reale!

Purtroppo Windows 10 & Co. non gradiscono molto la parte realtime. Si, so quello che state per dire: ma ci sono le estensioni realtime per windows!

Ok, ma le avete provate? Queste estensioni sono dannatamente pesanti e si portano dietro un ulteriore zavorra: UN COSTO DI LICENZA SUPERIORE A QUELLO DI WINDOWS STESSO!

Quindi, vi starete chiedendo, che cosa suggerisce il fenomenale Roberto Viola?

 

Semplice: LINUX!

O meglio, Linux + Wine + Xenomai!

 

Ciao,

ci sono aziende, come la mia e altre, che lavorano in ambiente Linux embedded da oltre 20 anni. Per dire che non e' una novita'.

non ho mai provato la soluzione Linux + Wine + Xenomai! Solo Linux puro.

 

Riguardo Linux, se hai bisogno di informazioni sul kernel, io non ho ne lauree, ne letto grandi libroni, ma posso vantare quasi 20 lavori aggiunti al sistema operativo ufficiale (alcuni mancano in lista perche sono iun approvazione)

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=dureghello

 

Considera che esistono molte soluzioni "Real Time" anche per Linux, dalla classica patch real time che applichi alla versione che vuoi (ma che ornmai dovrebbe essere in "mainline" (repository kernel.org chiamato anche "upstream")) e altre soluzione tipo RTLinux , Montavista e altre.

 

Nota che Real Time e' un termine che non e' legato al tempo. Significa che un determinato evento deve essere processato entro un certyo tempo "mission ciritcal". Anche un led che accende dopo un secondo da un evento puo' essere real time. Quindi Linux puo' soddisfare una montagna di applicazioni senza patch real time.

 

(scusate i termini inglesi, ma ma alcune traduzioni italiane mi risultano difficili)

 

 

Modificato: da _angelo_
Link al commento
Condividi su altri siti

Ciao _angelo_, proprio perchè non hai mai usato questa triade secondo me il mio post ha senso (voglio dire, se uno esperto come te non ha mai adottato una soluzione del genere, significa che questo tipo di strategia non è conosciuta sufficientemente).

Molto spesso diventa difficile sostituire un sistema con Windows CE proprio per la sua molteplice forma (GUI + logica realtime).

 

Io, lavorando in ambito industriale, parlo di realtime quando intendo movimentazione di assi con PID e roba varie. Quindi parlo di roba che deve essere deterministico nel range 1 millisecondo.

 

 

Link al commento
Condividi su altri siti

 

Io, lavorando in ambito industriale, parlo di realtime quando intendo movimentazione di assi con PID e roba varie. Quindi parlo di roba che deve essere deterministico nel range 1 millisecondo.

 

 

 

Lavorare in tempo reale, o "real time", significa che il sistema di controllo risponde in un tempo che è ininfluente nei confronti dell'evolversi del processo controllato.

Se l'interfaccia è un essere umano, tempi di risposta <0.1" sono risposte in tempo reale, se devo controllare la temperatura ambiente di una abitazione si può ritenere una risposta in tempo realeanche un ritardo di 10'. Al contrario se un processo dipende da un evento che dura 1µs, la risposta in tempo reale non ammette ritardi >100 ns.

 

Come sempre tutto è relativo.

Spesso si confonde ilmultitasking con il real time. Un sistema può essere multitasking ma non real time, oppure essere real time ma non multitasking.

 

Sistemi basati su linux difficilmente possono essere considerati real time per applicazioni di automazione e regolazione, a meno che si tratti di processi molto lenti.

Link al commento
Condividi su altri siti

Io, lavorando in ambito industriale, parlo di realtime quando intendo movimentazione di assi con PID e roba varie. Quindi parlo di roba che deve essere deterministico nel range 1 millisecondo.
Sistemi basati su linux difficilmente possono essere considerati real time per applicazioni di automazione e regolazione, a meno che si tratti di processi molto lenti. 

Come dice giustamente Livio, penso che tutti i sistemi basati su Linux, Windows (anche CE) e compagnia cantante,è meglio utilizzarli per altre cose.

Un bel PLC e passa la paura... (oppure un bel microcontrollore se uno ha le capacità e la voglia di lavorarci).

 

Link al commento
Condividi su altri siti

del_user_97632

Ciao cagnulein,

 

come ti dicevo, per chi conosce questo settore, "real time" non e' una definizione legata in nessun modo a un tempo perciso. Real time significa che il tuo sistema riesce a elaborare un evento (generalmente un interrupt) entro un tempo "utile" alla tua applicazione, puo essere anche un secondo. Ma lasciamo stare le teorie e le nozioni accademiche. Sappiamo che quando si parla di real time molti intendono in genere tempistiche di reazione < 10 o 1ms.  

 

Linux con patch real time va sotto al 1ms, si va nei microsecondi. Questo viene raggiunto modificando delle parti chiave del sistema, come gli spinlock, e anche, diverse altre parti. Questa parte e' stata sviluppata da Ingo Molnar, lo stesso che ha sviluppato l'attuale scheduler (CFS), di red hat.   Se ti interessano i dettagli:

 

https://rt.wiki.kernel.org/index.php/Main_Page

https://elinux.org/Realtime_Preemption#Conversion_of_Spinlocks_to_Mutexes

 

Una volta ho fatto tutta una serie di test per un cliente, che usava un sistema di guida automatica, dove tra due tir si voleva mantenere una distanza piu o meno costante senza che il pilota guidi. Devo dire che alla fine il cliente mi pare non l'abbia adottato. Pero' linux real time si usa in molte applicazioni che conosco.

 

Si, per la mia passione per linux, a windows non mi avvicino, e settore industriale ne sono fuori, comunque tua soluzione e' interessante, forse potriesti arricchire il tuo post con qualche misura, grafici e cose del genere.

 

Ciao ;)

 

 

 

 

 

 

 

 

 

Link al commento
Condividi su altri siti

 

 

Sistemi basati su linux difficilmente possono essere considerati real time per applicazioni di automazione e regolazione, a meno che si tratti di processi molto lenti.

Buongiorno, sicuramente lei ha molta esperienza, ma le posso assicurare che io ho usato Linux con patch realtime xenomai per gestire 4 assi interpolati con closed loop a 1millisecondo. Io credo che questo SIA realtime.

 

Ciao Angelo, come mai non segnali Xenomai? Credo che sia lo stato dell'arte per la parte realtime. L'hai mai usato?

Link al commento
Condividi su altri siti

 

come ti dicevo, per chi conosce questo settore, "real time" non e' una definizione legata in nessun modo a un tempo perciso. Real time significa che il tuo sistema riesce a elaborare un evento (generalmente un interrupt) entro un tempo "utile" alla tua applicazione, puo essere anche un secondo. Ma lasciamo stare le teorie e le nozioni accademiche. Sappiamo che quando si parla di real time molti intendono in genere tempistiche di reazione < 10 o 1ms.

 

Per prima cosa non sono teorie e nozioni accademiche, ma conoscenze anche pratiche indispensabili per chi deve fare determinati lavori.

Come ho scritto prima, nell'automazione industriale uno RTOS che risponda ad un evento in 10 ms non è real time. In genere si configurano le priorità dei vari jobs per ottimizzare la risorsa di CPU.

 

Inoltre per un vero RTOS per applicazioni industriali il tempo di risposta agli eventi è solo uno dei requisti.

Linux è comunque di derivazione Unix, sistema operativo progettato come multitasking real time, ma non per applicazioni di controllo e regoalzione industriale.

 

Poi ognuno può fare quello che moglio crede, oramai purtroppo si vede di tutto: processi industriali automatizzati con arduino e raspberry ed altre simili nefandezze.

 

Se è per questo anch'io ho fatto le mie porcate. olti anni addietro ho persino ustato una mia variante di DOS come (quasi) multitasking, però ho avuto il pudore di non vantarmene.:smile:

 

 

Link al commento
Condividi su altri siti

 

Inoltre per un vero RTOS per applicazioni industriali il tempo di risposta agli eventi è solo uno dei requisti.

Salve, cerco di prendere per il verso giusto le sue frasi e cerco di buttare la conversazione in qualcosa di costruttivo (non è stato propriamente elegante la sua ultima risposta, altri al posto mio si sarebbero offesi).

Vediamo insieme gli aspetti per il quale un RTOS possa essere applicato per le applicazioni industriali, così capiamo meglio quali pensa possano essere i limiti di linux con patch realtime.

Se ha link o vuole farmi direttamente un elenco qui gliene sarei ben grato.

 

Aggiungo che comunque il mio post partiva dal sostituire Windows CE con Linux. Quindi stiamo andando OT

 

Grazie

Modificato: da Cagnulein
Link al commento
Condividi su altri siti

 

(non è stato propriamente elegante la sua ultima risposta, altri al posto mio si sarebbero offesi).

 

Non capisco cosa ci sia di offensivo; comunque puoi anche offenderti, è un tuo problema.:smile:

 

Visto il tono e la suscettibilità dimostrata meglio che io non risponda più, altrimenti si che potrei diventare sgradevole.

 

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Non ho capito per quale motivo una persona (moderatore!), che tra l'altro non conosce il suo interlocutore, dovrebbe partire con questi presupposti.

Io non ho la supponenza di essere maestro di nessuno, e parto sempre pensando che potrei sbagliare. Però, vorrei che anche dall'altra parte si possa avere l'umiltà di fare lo stesso.

Ovviamente non la costringo a nessuna riflessione, ci mancherebbe.

Buona serata

Link al commento
Condividi su altri siti

 

Non ho capito per quale motivo una persona (moderatore!), che tra l'altro non conosce il suo interlocutore, dovrebbe partire con questi presupposti.

 

Quali presupposti?

Link al commento
Condividi su altri siti

Dopo le tue affermazioni sulla mia presunta "offensività" è il commento più morbido che potessi fare.

 

Sino ad ora, i miei interventi sono stati esclusivamente tecnici, quindi da utente.

 

Se dovrò intervenire ancora lo farò da moderatore dichiarandolo prima.

 

Link al commento
Condividi su altri siti

Chi leggera' questo thread si sará fatto la sua opinione.

Spero di invogliare qualcun altro a portare feedback sulla propria esperienza con Linux in ambito industriale.

Link al commento
Condividi su altri siti

 

Da quel che so io l'unico sistema operativo veramente multitasking, real time e mission critical è QNX.

 

E un ottimo sistema, ma c'è anche lo RTOS sviluppato da Intel e perfezionato da Siemens; credo che il sui fattori di pregio sia la grande robustezza e la grandissima affidabilità. (mi ero riproposto di non intervenire ulteriormente, ma di fronte ad una citazione appropriata trovo giusto commentare).

Link al commento
Condividi su altri siti

Giusto per darvi una info: i nuovi PLC di Beckhoff (non stiamo parlando degli ultimi scappati di casa :) ) che usciranno nel 2020, avranno come unico sistema operativo Linux.

Immagino (ma non so di per certo), che possano avere FPGA e/o microcontrollori per compiti hard realtime che affiancano la main CPU.

Link al commento
Condividi su altri siti

 

Giusto per darvi una info: i nuovi PLC di Beckhoff (non stiamo parlando degli ultimi scappati di casa :) ) che usciranno nel 2020, avranno come unico sistema operativo Linux.

Immagino (ma non so di per certo), che possano avere FPGA e/o microcontrollori per compiti hard realtime che affiancano la main CPU.

Grazie per la info ma quale valore aggiunto dà, conoscere il sistema operativo di un PLC ? I PLC si valutano dalle prestazione che offrono (che ovviamente sono direttamente discendenti ANCHE dal S.O. adottato).

Personalmente, da utilizzatore di Linux da oltre 10 anni, sarei molto ma molto felice se gli ambienti di sviluppo per PLC / HMI / Scada fossero (anche) nativamente utilizzabili da Linux senza dover ricorrere a macchine virtuali ... poi se i sistemi operativi dei vari dispositivi sono (anche) Linux per me diventa un dettaglio.

Link al commento
Condividi su altri siti

 

Grazie per la info ma quale valore aggiunto dà, conoscere il sistema operativo di un PLC ? I PLC si valutano dalle prestazione che offrono (che ovviamente sono direttamente discendenti ANCHE dal S.O. adottato).

Personalmente, da utilizzatore di Linux da oltre 10 anni, sarei molto ma molto felice se gli ambienti di sviluppo per PLC / HMI / Scada fossero (anche) nativamente utilizzabili da Linux senza dover ricorrere a macchine virtuali ... poi se i sistemi operativi dei vari dispositivi sono (anche) Linux per me diventa un dettaglio.

L'utilità di questa informazione riguarda il fatto che Beckhoff ha reputato essere "sufficientemente" realtime il sistema Linux per essere inserito nei propri PLC. Fino al 2019 usavano Windows 7 con estensione realtime.

Link al commento
Condividi su altri siti

L'utilità di questa informazione riguarda il fatto che Beckhoff ha reputato essere "sufficientemente" realtime il sistema Linux per essere inserito nei propri PLC. Fino al 2019 usavano Windows 7 con estensione realtime. 

Presumo utilizzeranno (o hanno sviluppato) una distribuzione Linux con il kernel modificato in modo di avere dei task realtime, perchè le normali distribuzioni (es. Ubuntu) sono ottimi s.o. ma non sicuramente adatti ad applicazioni realtime.

Penso che la scelta di Linux sia dettata dal fatto che si tratta di un sistema aperto e non ti costringe a "correre dietro" a tutti gli aggiornamenti e modifiche di Windows.

Segnalo che è da più di 30 anni che la DElectron di Firenze produce un ottimo CNC a base PC, lo Z32, che nacque addirittura in DOS per poi evolversi in Windows XP. Anche loro, per poter fare questo, hanno dovuto mettere le mani nel profondo del sistema operativo.

Ora anche loro sono passati a Linux probabilmente perchè, ma è una mia ipotesi, si sono stancati di correre dietro alle "paturnie" di Microsoft.

Link al commento
Condividi su altri siti

 

Presumo utilizzeranno (o hanno sviluppato) una distribuzione Linux con il kernel modificato in modo di avere dei task realtime, perchè le normali distribuzioni (es. Ubuntu) sono ottimi s.o. ma non sicuramente adatti ad applicazioni realtime.

Si, sicuramente, Xenomai, come ho segnalato nel mio primo post di questo thread ne è un esempio.

Modificato: da Cagnulein
Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...