Vai al contenuto
PLC Forum


Teoria: Problema Acquisizione Impulsi Plc E Pc


Messaggi consigliati

Inserito:

Salve a tutta la comunità, questo è il mio primo post e spero di ampliare le mie conoscenze!

Mi è sorto un problema mentre stavo studiando l'encoder: il mio professore ci ha detto che "con un comune PC noi non potremmo acquisire i dati perché il computer è un sistema real-time". Ma cosa significa esattamente? Perché un pc non può acquisire i dati dal PLC?


Inserita: (modificato)

Se hai ripetuto esattamente le parole ed i concetti espressi del tuo professore, mi duole dirti che il tuo professore ne capisce poco sia di PC che di real time; però sono portato a credere che hai frainteso.

Il PC non ha un sistema operativo "real time", almeno nell'accezione comune del termine.

Il sistema operativo del PC, sia esso Win, Linux o Mac, nonn risponde agli eventi esterni con la prontezza necessaria per controllare un sistema di automazione; infatti è tarato per interagire con l'uomo che ha riflessi molto più lenti di quelli di una macchina.

Ciò non toglie che su di un comune PC sia possibile installare un sistema operativo real Time multitasking (vero multitasking non come Win o Linux) ed usare il PC come sistema di automazione. Ne esistono numerosi esempi commerciali.

Modificato: da Livio Orsini
Inserita:

Scusami Livio potresti farci un esempio di sistema operativo realtime? Io so che alcune versioni di linux sono basati su kernel realtime ma tu ne affermi il contrario. Potresti dirci il perchè e quali sono le caratteristiche che rendono un sistema operativo realtime?

Inserita: (modificato)

Il più classico SO real time multitasking per PC è il mitico QNX; dico mitico perchè è forse stato il primo vero e serio real time multitasking per PC.

Win, linux ed il Mac dono tutti multitasting per PC; il primo è stato proprio il Mac della mela, poi è venuto Window ed alla fine Linux che è un derivato di Unix.

Bisogna fare delle distinzioni però perchè ci sono delle confusioni semantiche.

Bisogna distinguere bene cosa si intende per un sistema operativo multitasking e real time applicazioni di automazione e cosa invece s'intende per applicazioni di ufficio o di gioco o casalinghe.

Prima di tutto i tempi di reazione.

I tempi di reazione di un sistema real time per automazione, degno di questo nome, sono almeno due ordini di grandezza minori di un buon sistema operativo, e ben ottimizzato, per PC.

Poi c'è la questione più grave e fondamentale: i blocchi.

In un sistema operativo per office o per applicazioni casalinghe (non domotiche) puoi anche permetterti che un programma vada in loop infinito, che vada "a spasso", o che dedichi troppo tempo ad un processo.

Nei sistemi operativi per automazione sono state prese tutte le precauzioni perchè questo non avvenga. Qualsiasi task, anche della massima priorità, può usare la risorsa CPU solo per alcuni microsecondi (si definisce un massimo in fase di configurazione), poi o rilascia il controllo o viene forzato a rilasciarlo.

Inoltre c'è il controllo sulla'ccesso alle risorse Hw, controllo che nei sistemi Win è stato introdotto solo con WinNT. Un sistema operativo per automazione non permette il controllo diretto delle risorse Hw, ma vi si accede tramite apposite risorse Sw.

Infine c'è la questione più spinosa: la protezione della memoria dati e di programma.

Quando lanci un programma su PC, indipendentemente dal sistema operativo usato, carichi il codice dalla memooria di massa e lo riposizioni nella memoria di lavoro (RAM). Questo ovviamente per massimizare la velocità di esecuzione. Ovviamente in caso di eseguibili pesanti e complessi, il carico avviene per blocchi. In altri termini nella memoria di alvora si carica solo la parte di programma in esecuzione e, successivamente, si andrà a sostituire la parte già eseguita con nuove porzioni di eseguibile. Sempre nella memoria di lavoro sono allocate le aree dati e di stack.

Se non ci sono controlli seri e sicuri può accadere che, in fase die secuzione, l'area di dati possa corrompere l'area di stack od anche l'area riservata all'esecuzione.

I risultati disastrosi di un simile accadimento sono facilmente intuibili.

Ebbene sino alle ultime versioni nessuno dei sistemi operativi per PC offre la garanzuia assoluta che questo non avvenga.

Da Win95a Win7 si sono fatti notevoli miglioramenti in fatto di sicurezza, ma siamo ancora lontani dalle prestazioni dello RTOS Siemens (derivato da un analogo Intel) o da QNX.

Linux è stato ispirato dalla filosofia Unix, dandone un'interpretazione più povera e semplificata; le successive versioni commerciali dovendosi confrontare sempre più con le applicazioni WIn hanno virato molto in questa direzione.

Ci sono sitemi operativi per PC, che sono dei veri RTOS, come quello di Siemens, che offrono Win come uno dei Jobs del sistema; job soggetto a tutto e per tutto alle regole di un RTOS vero. Pertanto nel caso che un programma di Win vada in un loop infinito, non succede nulla perchè, trascorsa la slice time dedicata a Win, il controllo della CPU viene comunque rilasciato e passa al primo task schedulato.

Con questo spero di aver chiarito i concetti e di aver riposizionato correttamente le frecce semantiche.

Modificato: da Livio Orsini

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