Re: [Python] Chiarimento sul ciclo while.

2016-12-30 Per discussione Daniele Zambelli
Il 30 dicembre 2016 08:29, Luigi Fontana  ha scritto:
> Ammetto che non sono sicurissimo del messaggio di errore (eran le due di
> mattina). Volevo solo sapere se esiste qualche impedimento specifico con i
> calcoli nei cicli while o se si era trattato di un mero errore di codice.

Buona la seconda.

Prova a riprodurre il problema, ma non lavorare in una shell, scrivi
il programma direttamente in un file. Che ide usi?

Ciao

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Chiarimento sul ciclo while.

2016-12-30 Per discussione Luigi Fontana
Uso idle attualmente. Sto su una macchina davvero minimale e,  comunque,
 faccio solo piccoli script molto elementari.

Lavoro sempre su file solo che ieri ho confuso "save as"  con il semplice
"save" tanto era il rinc0glionimento.

Allora riscrivo tutto con attenzione (e fiducia). Al limite avrò,
perlomeno, un esempio da mostrarvi.

Grazie.  :)

Il 30/dic/2016 09:14, "Daniele Zambelli"  ha
scritto:

> Il 30 dicembre 2016 08:29, Luigi Fontana  ha
> scritto:
> > Ammetto che non sono sicurissimo del messaggio di errore (eran le due di
> > mattina). Volevo solo sapere se esiste qualche impedimento specifico con
> i
> > calcoli nei cicli while o se si era trattato di un mero errore di codice.
>
> Buona la seconda.
>
> Prova a riprodurre il problema, ma non lavorare in una shell, scrivi
> il programma direttamente in un file. Che ide usi?
>
> Ciao
>
> --
>
> Daniele
>
> www.fugamatematica.blogspot.com
>
> giusto!
> nel verso
> forse è perché non guardiamo le cose
> Quando non ci capiamo,
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Logica PLC

2016-12-30 Per discussione piergiorgio pancino
I PLC sono microcontrollori e come tali non utilizzano thread.
Il ciclo viene gestito in pratica con una programmazione asincrona, 
semplicemente ripetuto in maniera banale:1) Controllo tutti gli ingressi2) 
Eseguo le operazioni di elaborazione (AND OR e controllo delle 
temporizzazioni)4) Attivo le uscite interessate
Per gestire le temporizzazioni in maniera semplice basta fare un confronto con 
il tempo, ad esempio nel seguente codice eseguo operazioni variea due 
intervalli di tempo prestabiliti:
mio_intervallo_1 = 1 # 1 secondomio_intervallo_2 = 1 # 0.5 second1
orario_partenza_evento_1 = time.time()orario_partenza_evento_2 = time.time()

while(True)    if (time.time() - orario_partenza_evento_1 > mio_intervallo_1):  
      eseguo_quello_che_voglio_1() 
        orario_partenza_evento_1 = time.time()           if (time.time() - 
orario_partenza_evento_2 > mio_intervallo_2):        
eseguo_quello_che_voglio_2()         orario_partenza_evento_2 = time.time()   

Tutti i vari controlli 
Chiaramente più la complessità del programma cresce, più tempo ci vorrà tra una 
scansione e l'altra, se tu vuoi effettuare esattamente N controlli al secondo 
puoi introdurre uno sleep alla fine di ogni ciclo e rallentare l'esecuzione del 
programma.
Per completezza c'è da dire che esistono anche gli interrupt, ma in questo caso 
non ne vedo la necessità.
Piergiorgio Pancino 

Il Giovedì 29 Dicembre 2016 19:29, Attilio Menegon 
 ha scritto:
 

 Buonasera a tutti,Chiedo un chiarimento su 
un concetto che mi sembra sfuggire.Volendo realizzare un programma in python 
che legga e scriva degli I/O tipo quelli del GPIO del Raspberry, volendo 
implementare delle logiche tipo PLC, mi chiedo come si gestiscano le 
temporizzazioni ed altre situazioni simili.Mi spiego meglio: il programma nel 
PLC cicla più volte al secondo dalle 10 alle 100 volte e nel esecuzione porta 
avanti il controllo di eventuali eventi temporizzati che avvengono in processi 
paralleli. L’esempio sono più funzioni / sottoprogrammi di tipo luci scale 
temporizzate che vengono inizializzati da uno o più ingressi (che vanno alti) e 
devono essere gestite in modo parallelo ed indipendente ed ogni istanza di 
funzione processa il suo temporizzatore in modo indipendente mentre il 
programma principale continua a girare in autonomia e quando la temporizzazione 
termina il sottoprogramma passa il risultato al programma principale che di 
conseguenza aggiorna lo stato delle uscite. In questo caso, io come 
programmatore mi devo solo incaricare di impostare in sequenza le istruzioni o 
lo schema a contatti,  poi il compilatore fa tutto da solo e mi restituisce 
l’eseguibile da scaricare nel PLC.Vorrei comprendere come implementare in modo 
corretto tali esecuzioni parallele in un programma Python che giri su 
PC.Attualmente ho visto solo dei piccoli esempi in cui la temporizzazione viene 
fata con la funzione sleep che blocca l’esecuzione del programma per il tempo 
richiesto e poi il programma riprende e cicla su se stesso, in questo modo non 
si possono però eseguire più temporizzazioni contemporaneamente. Viceversa 
penso sia corretto lanciare dei programmi paralleli ogni volta che viene 
istanziato una temporizzazione e che questi eseguano in modo indipendente la 
temporizzazione con la funzione SLEEP() e al suo termine restituiscano il 
risultato aggiornando una variabile del programma principale che continua nel 
frattempo a girare ad esempio al l’interno di un ciclo WHILE infinito.Quindi 
chiedo delle dritte su come instanziare questi sottoprogrammi, recuperarne il 
risultato e farsi restituire il programma.  Ringrazio fin da ora per la 
collaborazione  Attilio Menegon
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


   ___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python