walterword Inserita: 19 settembre 2016 Segnala Inserita: 19 settembre 2016 stai usando male il threading
walterword Inserita: 20 settembre 2016 Segnala Inserita: 20 settembre 2016 devi fare in modo che la tua applicazione sia libera cioè che puoi gestire pulsanti e tutto il resto e mandare messaggi al logo e questo lo puoi fare nel main thread che viene lanciato quando parte l'applicazione.Ogni programma crea un processo ed ogni processo ha un thread principale . Poi con un thread secondario gestisci la lettura in modo asincrono per evitare di bloccare l'applicazione.Metti che non arriva niente si blocca tutto per cui thread per la lettura. Poi c'e' un altro problema , almeno in C#, che in realtà no ne' un problema di linguaggio ma di gestione dei threads. i controlli che sui , ossia pulsanti , finestrelle etc , sono create nel thread principale e non possono essere usate da altri thread.Per cui devi creare un delegato legato ad un evento , questo sempre in .NET , ma anche in java di JVM o Dalvik machine in android. Stessa cosa in C++ .Adesso io python lo uso raramente, è potente e molto utile in campo scientifico etc però lavoro prevalentemente in C/C++, C# e Java su linux o android. Se mi mandi in pvt la tua mail di mando degli appunti che trattano il multithreading in python . comunque meglio python 50 miliardi di volte del basic o VB
labri95 Inserita: 21 settembre 2016 Autore Segnala Inserita: 21 settembre 2016 ciao walter cerco di mandarti una mail in privato ma mi dice che non puoi ricevere i messaggi..
walterword Inserita: 21 settembre 2016 Segnala Inserita: 21 settembre 2016 ti ho scritto io vedi la posta
labri95 Inserita: 7 ottobre 2016 Autore Segnala Inserita: 7 ottobre 2016 non riesco a capire dove sbaglio. sto cercando di monitorare un uscita attraverso il Thread di python quando avvio il programma tipo questo: class Valore(Thread): def __init__(self): Thread.__init__ (self) self.daemon = True self.start() def run(self): while True: plc=snap7.client.Client() plc.connect("192.168.1.102",0,1) area = 0x82 start = 0 length = 1 bit = 1 data = plc.read_area(area,0,start,length) plc.read_area(area,0,start,length) print ("read1Q1:",get_bool(data,0,bit)) time.sleep(1) Valore() riesco a fare circa 10 letture dopo di che ottengo questo tipo di errore: ERROR:snap7.common:b' ISO : An error occurred during recv TCP : Connection timed out' Exception in thread Thread-1: Traceback (most recent call last): File "/usr/lib/python3.4/threading.py", line 920, in _bootstrap_inner self.run() File "/home/pi/salav3.py", line 45, in run plc.connect("192.168.1.102",0,1) File "/usr/local/lib/python3.4/dist-packages/snap7/client.py", line 25, in f check_error(code, context="client") File "/usr/local/lib/python3.4/dist-packages/snap7/common.py", line 65, in check_error raise Snap7Exception(error) snap7.snap7exceptions.Snap7Exception: b' ISO : An error occurred during recv TCP : Connection timed out'
ramandolo Inserita: 21 ottobre 2017 Segnala Inserita: 21 ottobre 2017 ciao, sono molto interessato a questa cosa . Poi sei riuscito a farlo funzionare bene ?
Livio Orsini Inserita: 21 ottobre 2017 Segnala Inserita: 21 ottobre 2017 Se in un anno non ha dato notizie è inutile chiedere.
Messaggi consigliati