southofsanity Inserito: 30 settembre Segnala Inserito: 30 settembre Salve volevo fare uno script che se il tasto rimane premuto per 3 secondi aggiorna una variabile ma se rilascio prima non si aggiorna, ho fatto vari tentativi ma non riesco a trova l'evento che controlla se il tasto e premuto, ho povato con enabled ma niente appena premo il pulsante dopo 3 sec la variabile si aggiorna. qualche idea ? grazie mille di seguito lo script Dim TagApp Dim Tempo, Fine, i Fine= Now+3/24/3600 Do If Now>Tempo + 1/24/3600 Then i = i+1 Tempo= Now End If Loop Until Now>=Fine 'If ScreenItems("Pulsante1").Enabled Then Set TagApp = HMIRuntime.Tags("prova") TagApp.Read TagApp.Value = 365 TagApp.Write 'End If
drn5 Inserita: 30 settembre Segnala Inserita: 30 settembre me la giocherei con set e reset del bit a livello premi/rilascia nel pannello e poi i 3" li gestirei a plc.
southofsanity Inserita: 30 settembre Autore Segnala Inserita: 30 settembre Ciao, Non volevo farlo gestire dal PLC perche e gia abbastanza carico e i pulsanti sono un centinaio su serie 300. comunque grazie
lucios Inserita: 30 settembre Segnala Inserita: 30 settembre (modificato) Quote ho fatto vari tentativi ma non riesco a trova l'evento che controlla se il tasto e premuto Sono piuttosto arrugginito con VB Script ma so che esistono eventi quali keypress, keydown, click, ecc. Questi sono appunto "eventi" che scattano quando avviene qualcosa ("click" quando clicchi sul bottone, keypress quando il bottone è premuto e rilasciato, ecc.). Enabled non serve perchè indica se il bottone è abilitato o meno alle azioni. Il giochino potrebbe essere di far partire un timer di 3 secondi sull'evendo keydown e stopparlo sull'evento keyup. Sull'evento tick del timer attivare la tua variabile. Però in VB script sinceramente non mi ricordo come funzionano i timer, prova a documentarti. Modificato: 30 settembre da lucios
southofsanity Inserita: 30 settembre Autore Segnala Inserita: 30 settembre (modificato) Si volevo fare esattamente questo, ma non trovo la sintassi corretta, e il vb di wincc 8 non e il massimo nel correttore di sintassi, per lui va sempre bene anche se ci scrivi la divina commedia, il timer funziona, funziona tutto , mi manca di trovare la funzione tasto premuto , grazie Modificato: 30 settembre da southofsanity
drn5 Inserita: 30 settembre Segnala Inserita: 30 settembre Poi ci penso come farla a livello hmi..nel frattempo però l'idea di tenere il pannello fermo per 3" in un ciclo DO LOOP è semplicemente sbagliata. Per quello la demanderei al PLC, al di là della quantità di pulsanti presenti che potrebbero tutti quanti condividere la stessa routine perché comunque i pulsanti premuti non possono essere più di uno alla volta.
southofsanity Inserita: 30 settembre Autore Segnala Inserita: 30 settembre Fatto, lo posto se sesrvisse, bisogna appoggiare l'elemento ad una variabile, direttamente non lo gestisce... ma va la va la va la nel 2025. Dim TagApp, Button Dim LastTime, StopTime, i Set Button = ScreenItems("Pulsante1") StopTime= Now+3/24/3600 Do If Now>LastTime + 1/24/3600 Then i = i+1 LastTime= Now End If Loop Until Now>=StopTime If Button.Pressed = 1 Then Set TagApp = HMIRuntime.Tags("prova") TagApp.Read TagApp.Value = 0 TagApp.Write End If
Livio Orsini Inserita: 30 settembre Segnala Inserita: 30 settembre 3 ore fa, southofsanity ha scritto: Fatto, lo posto se sesrvisse Ottimo, proprio nello spirito del forum che auspica la condivisione delle informazioni e delle conoscenze.
p.fabio Inserita: 1 ottobre Segnala Inserita: 1 ottobre 23 ore fa, southofsanity ha scritto: Loop Until Now>=StopTime Ma lasci in loop lo script per 3 secondi?
lucios Inserita: 1 ottobre Segnala Inserita: 1 ottobre Quote Ma lasci in loop lo script per 3 secondi? In effetti sembra una soluzione "strana". Per curiosità sono andato a guardare velocemente un po di documentazione vecchia di wincc che ho e ho visto che esistono i trigger di tipo timer. Forse si può risolvere più elegantemente con quelli.
southofsanity Inserita: 6 ottobre Autore Segnala Inserita: 6 ottobre (modificato) cosi dice di fare mamma siemens per temporizzare uno script, ma sono aperto ad altre soluzioni. proponete sono tutto orecchi Modificato: 6 ottobre da southofsanity
lucios Inserita: 8 ottobre Segnala Inserita: 8 ottobre Quote cosi dice di fare mamma siemens per temporizzare uno script, ma sono aperto ad altre soluzioni. proponete sono tutto orecchi Come già detto sono abbastanza arrugginito su questi argomenti visto che è da un po' che non ho a che fare con "mamma Siemens" e non vorrei farti perdere tempo inutilmente, ma hai provato ad indagare sui trigger?
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora