Problema con function block eTP
Home › Forum › Informazioni ambiente di sviluppo LogicLab › Problema con function block eTP
- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 1 anno, 5 mesi fa da
[email protected].
-
AutorePost
-
Ottobre 17, 2023 alle 10:41 pm #74382
[email protected]
PartecipanteHo un problema molto banale con questo function block, ma nonostante diverse prove non riesco a trovare la soluzione…
Purtroppo nella sezione KwnoledgeBase di questo funcion block il link punta su un indirizzo sbagliato (manda a SysGetPhrDI) e non ho quindi potuto approfondire come è strutturato il FB. Ho utilizzato questo FB come temporizzatore luci scale; funziona tutto, ma vorrei inserire un reset del conteggio; temo però di sbagliare sintassi perchè scrivendo:
// La pressione di SB3 azzera il conteggio IF (SB3=TRUE) THEN ScalaTerra1.ET:=0; END_IF;
dove:
SB3 è la serie dei pulsanti scala
ScalaTerra1 è il FBTutto il resto funziona bene, ma non riesco ad azzerare il conteggio ogni volta che viene ripremuto il pulsante. Portando il FB nella schermata di watch, alla prima pressione di SB3 parte il conteggio, ma le pressioni successive non lo azzerano.
Sapreste suggerirmi una soluzione.
Ottobre 18, 2023 alle 8:52 am #74385Sergio Bertana
Amministratore del forumMentre utilizzavi il FB eTP, abbiamo rilasciato con il package Pck055a010 la nuova versione TP timer pulse. La nuova versione funziona esattamente come la precedente, l’unica differenza è che ora i valori di PT ed ET sono in formato TIME. Nella pagina di manuale abbiamo riportato il diagramma di funzionamento che credo dia una idea di come utilizzare il FB.
Ma veniamo alla tua domanda, ET è una uscita del FB quindi anche se tu la azzeri il FB la continuerà a settare con il suo valore interno. Per gestire la luce scala, basta appoggiare SB3 (serie dei pulsanti scala) sull’ingresso IN del FB. Come vedi dal digramma di funzionamento sulla attivazione di IN si attiva l’uscita Q che rimane attiva per il tempo impostato in PT. Trascorso il tempo l’uscita Q si disattiva indipendentemente dallo stato dell’ingresso IN, ecco un esempio di utilizzo.
ScalaTerra1.IN:=SB3; //Comando ingresso ScalaTerra1(); //Eseguo il timer luce scala Lampada:=ScalaTerra1.Q; //Gestisco la lampada
Per avere una nuova attivazione dell’uscita Q devi disattivare l’ingresso IN e poi riattivarlo,
Novembre 4, 2023 alle 10:41 am #74476[email protected]
PartecipanteGrazie mille per la risposta, ma temo di non essere riuscito a spiegarmi. Questo è il programma attualmente in uso:
//Luce Scala ScalaTerra1(IN:=SB3,PT:=65000);// Iniziallizzazione FB IF (ScalaTerra1.Q) THEN //la pressione del pulsante causa l'attivazione per un tempo impostato L2:=TRUE; //Le luci scala vengono attivate L3:=TRUE; //Gli sbarchi vengono attivati ELSE L2:=FALSE; //Le luci scala vengono disattivate L3:=FALSE; //Gli sbarchi vengono disattivati END_IF;
Il mio problema sarebbe quello di azzerare il conteggio (azzerare il valore ET). Le luci scale restano attive per circa 1 minuto, ma capita che quando le mie figlie sono sulle scale e la luce è già stata accesa in precedenza (magari sono appena scese, vogliono risalire immediatamente e trovano quindi la luce già accesa), loro iniziano a salire e la luce si spegne quando sono a metà scala.
Vorrei quindi che, ripremendo uno dei pulsanti luce scala, si azzerasse il conteggio ET. Avete qualche idea su come si possa fare?
Grazie a tutti in anticipo…
Novembre 4, 2023 alle 11:45 am #74477[email protected]
PartecipanteBuongiorno, Ho risolto!! Avevo solo sbagliato il FB…
Nella stessa libreria c’era anche TOFF (timer OFF) che lavora proprio come serve a me.
Essendo poi strutturato esattamente come TP, è stato sufficiente caricare nel progetto il FB e modificare il Type di ScalaTerra1 da TP a TOFF, ed ora funziona correttamente.
Grazie ancora a tutti
-
AutorePost
- Devi essere connesso per rispondere a questo topic.