southofsanity Posted September 30 Report Posted September 30 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 Posted September 30 Report Posted September 30 me la giocherei con set e reset del bit a livello premi/rilascia nel pannello e poi i 3" li gestirei a plc.
southofsanity Posted September 30 Author Report Posted September 30 Ciao, Non volevo farlo gestire dal PLC perche e gia abbastanza carico e i pulsanti sono un centinaio su serie 300. comunque grazie
lucios Posted September 30 Report Posted September 30 (edited) 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. Edited September 30 by lucios
southofsanity Posted September 30 Author Report Posted September 30 (edited) 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 Edited September 30 by southofsanity
drn5 Posted September 30 Report Posted September 30 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 Posted September 30 Author Report Posted September 30 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 Posted September 30 Report Posted September 30 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 Posted October 1 Report Posted October 1 23 ore fa, southofsanity ha scritto: Loop Until Now>=StopTime Ma lasci in loop lo script per 3 secondi?
lucios Posted October 1 Report Posted October 1 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 Posted October 6 Author Report Posted October 6 (edited) cosi dice di fare mamma siemens per temporizzare uno script, ma sono aperto ad altre soluzioni. proponete sono tutto orecchi Edited October 6 by southofsanity
lucios Posted October 8 Report Posted October 8 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?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now