Vai al contenuto

Lettura di 3 temperature da sonde 1-Wire

Home Forum Programmazione IEC 61131 (LogicLab) Lettura di 3 temperature da sonde 1-Wire

Stai visualizzando 15 post - dal 16 a 30 (di 35 totali)
  • Autore
    Post
  • #59873
    [email protected]
    Partecipante

    Sto provando a far funzionare un semplice programma che legge due sonde di temperatura 1-wire. Come prima cosa ho implementato gli esempi trovati in FBD ed in ST, utilizzando  OWireCore_v1 ed OWRdTemperature. Le librerie sono le ultime aggiornate.

    I programmi funzionano tutti all’inizio molto bene, ma dopo qualche ora di funzionamento, casualmente, smettono di leggere i valori di temperatura che rimangono a valore 0.0 Il blocco OWire mi esce in fault e SysGetLastError valore 46728.

    Il brutto è che anche riconoscendo lo stato di non funzionamento non riesco a trovare niente che resetti il tutto e faccia ripartire correttamente. L’unico modo è spengere il PLC un MPS054B.  Invariabilmente dopo un po smettono di leggere il bus.

    Ho collegato le due sonde solo con i collegamenti I-W e GND, che dovrebbero essere sufficienti. Potrebbe essere che le sonde hanno comunque bisogno di una alimentazione a 5v ? Cosa posso fare per capire il perchè si bloccano ?

    #59878
    Sergio Bertana
    Amministratore del forum

    Non mi ritorna il codice di errore che riporti, gli errori hanno codici a 8 cifre dove le 5 cifre più significative sono l’ID dell’oggetto e le tre cifre meno significative sono il numero di errore. Puoi mica verificare l’esatta versione del FB OWireCore_v1 (Vedi screenshot).

    Per resettare il controller One-Wire del modulo CPU MPS054 occorre disabilitare l’ingresso Enable del FB OWireCore_v1 e poi riabilitarlo. Prova a verificare se così facendo la lettura riparte.

    In merito all’alimentazione delle sonde, dipende dal tipo di sonda che hai utilizzato, il modello TR160 non richiede alimentazione.

    #59885
    [email protected]
    Partecipante

    Allora, ho dovuto aspettare che si ripresentasse il problema. Il codice di errore non tornava neanche a me, avevo usato UINT invece di UDINT, per quello leggevo quel codice di errore incomprensibile. Quello corretto è 1000820 ossia  Errore sequenza Strong Pullup.

    La versione delle librerie è quella corretta, ho verificato. La sonda che uso è  il box DES-216 con la sola sonda di temperatura. Disabilitando e riabilitando  l’ingresso enable del controller non ripartono le letture.

    #59893
    Sergio Bertana
    Amministratore del forum

    Strano errore sembra un problema sul bus, ho allestito anch’io qui in laboratorio un sistema che acquisisce lo steso sensore, stiamo a vedere se incappo in un problema simile.

    Che tipo e che lunghezza di cavi hai per il collegamento con le sonde ?

    Quando si verifica il problema puoi provare a scollegare e ricollegare le sonde al sistema senza spegnere il sistema e vedere se la lettura riparte.

    Se non riparte, puoi provare a fermare l’esecuzione programma e farlo ripartire senza spegnere il sistema (LogicLab menù On-Line->Halt/Warm restart).

    #59894
    [email protected]
    Partecipante

    Anche io ho ancora tutto su banco, se dici che sembra un problema hardware di bus provo a ricablare il tutto. I cavi saranno di 50 cm da PLC alla prima sonda e da lei alla seconda, per questo ho messo banalmente cordicella da 1mmq.

    Metto un UTP di rete e collego una sola coppia e collego insieme le altre. Avevo anche già provato a scollegare e ricollegare, ma quando va in “blocco” non ripartono le letture, invece quando funziona bene , anche scollegando, non si impalla niente e riparte con le letture.

    Anche il warm start l’avevo già provato e facendolo riparte il tutto.

    Cablo con cavo twistato e so dire se risuccede.

    #59896
    Sergio Bertana
    Amministratore del forum

    Essendo così corto il cablaggio non credo dia problemi anche usare due cavetti separati, però se potessi mettere in test collegando una sola sonda di temperatura, ci porteremmo nelle stesse condizioni di test che stò eseguendo io qui in laboratorio.

    Cosi possiamo confrontare i risultati, il mio sistema stà funzionando da oltre 6 ore senza problemi ma vediamo domani mattina…

    #59898
    [email protected]
    Partecipante

    Risultato della prova, ho due sonde la 1 e la 2 per intenderci. Ieri sera ho collegato solo la 1 e fino a stamani funzionava tutto, a questo punto ho collegato la 2 e scollegato la 1 ed ora a mezzogiorno si è rifermato.

    Senza toccare nulla ho provato a ricollegare la 1 ma il sistema rimane in blocco e legge nessuna delle due.  Ho lasciato le stesse cordicelle di collegamento per non cambiare due cose contemporaneamente, l’errore che esce è sempre 1000820.

    Adesso devo togliere dal banco perchè devo allestire il quadretto, quando ricolleghero il tutto lo farò con cavi incrociati e riprovo. Se nel frattempo viene in mente altre prove da fare le faremo appena rimontato il tutto.

    #59905
    Sergio Bertana
    Amministratore del forum

    Da quello che scrivi e dalla prova fatta da me in laboratorio dove è da 3 giorni che il sistema stà acquisendo temperatura senza problemi, sembra che tu abbia un problema con la sonda che hai identificato come 2. Questa sonda probabilmente dopo un po di funzionamento blocca il bus 1-Wire.

    Con l’attuale sistema operativo sullo SlimLine non è possibile “spegnere” il bus 1-Wire cosa invece possibile agendo sul segnale DTR se utilizzi l’adattatore Seriale/1-Wire connesso alla porta seriale e quindi la sonda restando alimentata continua a bloccare il bus.

    Abbiamo rilasciato una nuova versione del sistema operativo Sfw198d050, che permette resettando il comando Open del FB SysSerialPort di spegnere il bus 1-Wire.

    Ti consiglio di eseguire l’aggiornamento del sistema con il nuovo sistema operativo e di inserire un timer che su errore resetta il comando Open per un tempo e poi lo riabilita.

    #59927
    [email protected]
    Partecipante

    Ho fatto come mi hai detto, ho scaricato il nuovo FW ed installato. La porta che sto utilizzando è quella dedicata al 1-Wire che nel programma LogicLab definisco con Sp1.COM:=ADR(‘PCOM255.0’); quindi senza adattatore.

    Ho impostato un timeout di lettura sul FB OWRdTemperature, aspettando il segnale Done, ed identifico correttamente il caso in cui mi va in blocco. Da li in poi ho fatto come dici te, ho messo a FALSE il comando Open del FB SysSerialPort ed in effetti controllando con il tester mi spenge l’alimentazione sul bus (5V) e lo riattiva su Open:=TRUE. Tengo basso il segnale per 4Sec.

    Se simulo il problema, ossia scollegando tutte le sonde il sistema funziona bene, va in timeout, parte il tempo di reset (Open:=FALSE), e quando ricollego le sonde riparte tutto bene.

    Quando invece il problema esce da solo non si resetta, e rimane l FB della seriale con la condizione di Fault attiva, senza avere modo di farla resettare. L’unico modo rimane sempre spengi e riaccendi. Prossima prova che faccio è reimpostare i parametri della seriale durante il RESET, ossia fargli fare la reimpostazione come su SysFirstLoop.

    Se simulo il problema scollegando le sonde, chiaramente il programma va  in loop tentando il reset della seriale e riabilitandola. Ho visto con il tester che dopo 7/8 volte che spegne e riaccende il bus, non lo riaccende più, nel senso che fisicamente non si alzano più i 5v,ed il FB della seriale alza il Fault=TRUE e da li non esce fino a che si resetta del tutto il PLC.

    #59933
    Sergio Bertana
    Amministratore del forum

    Hai provato con il FB SysSerialPort in Fault a resettare il comando di Open. Resettando Open e poi settandolo nuovamente si reinizializza la porta ed il Fault deve resettarsi.

    Se quando hai il fault sulla porta esegui un comando SysLog da connessione Telnet, o visualizzi la pagina di Logs da interfaccia web (Screenshot) hai il report degli errori, e questo ci permette di capire cosa succede.

    #59961
    [email protected]
    Partecipante

    Si, ho provato, quando è in fault, metto OPEN:=FALSE del FB SysSerialPort, ma il fault non si azzera. Questo il log che mi dicevi…

    12/05/2021, 14:56:28.155 [SFW198][6400] No resources:PCOM255.0
    12/05/2021, 14:56:28.155 [SFR050][1000] Fct:eSetSerialMode
    12/05/2021, 14:56:38.877 [SFW198][6000] User program error:9992010

    A questo punto non penso che dipenda dalle sonde, perchè al momento in cui spengo la seriale anche il bus si spegne e quindi dovrebbero ripartire le letture. Sembra sia proprio un problema della seriale 1-wire.

    Ti ricordo che ho usato quella dedicata e non una RS232 con adattatore. Ho usato solo due fili e niente alimentazione alle sonde, solo quella che gli arriva dal bus. Funziona tutto perfettamente per qualche ora e poi va in blocco e non riesco in nessun modo a resettare per fare ripartire.

    A questo punto non so più cosa fare.

    #59968
    Sergio Bertana
    Amministratore del forum

    Il problema sull’attivazione/disattivazione del comando Open del FB SysSerialPort l’abbiamo risolto con la nuova versione del firmware Pck051a040 che rilasceremo in giornata. Per intenderci era il problema che determinava l’errore No resources:PCOM255.0.

    Per un BUG chiudendo e riaprendo la porta si saturavano le risorse a disposizione. In pratica però è mai successo di dover chiudere e riaprire la risorsa utilizzando i dispositivi 1-Wire.

    Quindi abbiamo sicuramente risolto un BUG latente ma che non è mai apparso perchè mai nessuno ha avuto questa necessità. Quindi vista la tua situazione credo che una delle tue sonde vada in qualche situazione di blocco del bus. E l’unico modo per resettarla sia spegnerla chiudendo/riaprendo la porta.

    #59969
    [email protected]
    Partecipante

    Si, avevo visto che quando chiudi e riapri quella porta dopo averlo fatto 6/7 volte la barra di MAlloc sul web monitor andava oltre il 90%. Da li in poi la porta va in fault e non se ne esce più.  Appena c’e’ la nuova versione FW la scarico e provo.

    Solo che in questi giorni ho testato a lungo sia con una sonda, che con l’altra e comunque il blocco del bus avviene con entrambe. Se fosse un problema di sonde a questo punto, credo io, che spengendo la porta ( come adesso già faccio e verifico con il tester che la tensione bus vada a zero) oppure disconnettendo le sonde fisicamente e riconnettendo dovrebbe ripartire a leggere. Ma così non è.

    Vediamo con il nuovo FW se si risolve. Speriamo.

    #59971
    Sergio Bertana
    Amministratore del forum

    Nella zona download è disponibile la nuova versione del firmware.

    Il tuo problema è molto strano, è la prima volta che ci capita, abbiamo clienti che utilizzano da 5 a 10 sonde connesse in parallelo in applicazioni domotiche e non ho mai avuto feedback di non funzionamento, tanto è che grazie alla tua segnalazione abbiamo scoperto BUGs latenti che non si erano mai evidenziati.

    Se può confortarti il sistema che ho messo in test con l’acquisizione di una sonda DES-216 stà ormai funzionando ininterrotamente da 13 giorni. Nel caso avessi ancora problemi prova ad inviare il tuo programma al ns supporto ed eseguiamo una verifica.

    #59976
    [email protected]
    Partecipante

    Si, infatti immagino che siano usate normalmente senza problemi, poi i blocchi funzione che ci sono nelle librerie sono semplici da configurare, e infatti funzionano bene fino a che… non interviene nel mio caso la sfortuna.

    La stessa sfortuna che per scaricare il FW PCK051A040 mi rimanda alla pagina 404 not found. Gli altri FW me li scarica senza problemi. Quello no. Urge per me una benedizione.

Stai visualizzando 15 post - dal 16 a 30 (di 35 totali)
  • Devi essere connesso per rispondere a questo topic.