Vai al contenuto
PLC Forum


Azzerare wstring su pannello comfort


Project75

Messaggi consigliati

Buongiorno, ho creato delle circa 20 variabili wstring nella tabella delle variabili di un pannello TP 1200 comfort,  come posso azzerarle? Grazie 

Link al commento
Condividi su altri siti


Scusami andavo di fretta....

Smarttags("Miavariabile") = ""

 

Questo dentro un vbscript che chiamerai da un evento a piacere.

 

Sempre che tu voglia azzerare da dentro il pannello.

Link al commento
Condividi su altri siti

36 minuti fa, drn5 ha scritto:

Scusami andavo di fretta....

Smarttags("Miavariabile") = ""

 

Questo dentro un vbscript che chiamerai da un evento a piacere.

 

Sempre che tu voglia azzerare da dentro il pannello.

Non l'ho fatto mai non ho la più pallida idea, se puoi spiegare con qualche esempio mi faresti una grande cortesia. Grazie mille 

Link al commento
Condividi su altri siti

Le variabili che hai definito nella tabella del pannello possono esser di due tipi:

- locali al pannello e quindi esistono solo li e non hanno niente da spartire con il plc collegato

- agganciate al plc e quindi fanno riferimento a delle aree di memoria quali db, merker, input, output

 

nel tuo caso sono delle Wstring e ora non so se locali al pannello o agganciate al plc. 

supponiamo che siano agganciate a Wstring esistenti nel plc e che tu le voglia azzerare.

 

O le azzeri nel plc o le azzeri nel pannello che indirettamente le azzererà nel plc.

 

se le azzeri nel plc e dovrai stabilire tu in quale momento potresti scrivere una riga in SCL che sia tipo  :

 

MiaVariabile := '';

 

se le azzeri nel pannello potresti usare uno VBscript che usi il comando:

 

SmartTags("MiaVariabile") = ""

 

Dato che lo script non vive di vita propria deve essere richiamato.

Lo puoi richiamare con un evento legato per esempio ad un Pulsante del pannello o al cambio stato di un Tag (variabile) esistente nel pannello che in fase di definizione alla voce evento richiamerà lo script che hai realizzato per azzerare la MiaVariabile.

 

OK?

Ciao

 

 

 

 

 

 

 

 

Link al commento
Condividi su altri siti

1 ora fa, drn5 ha scritto:

Le variabili che hai definito nella tabella del pannello possono esser di due tipi:

- locali al pannello e quindi esistono solo li e non hanno niente da spartire con il plc collegato

- agganciate al plc e quindi fanno riferimento a delle aree di memoria quali db, merker, input, output

 

nel tuo caso sono delle Wstring e ora non so se locali al pannello o agganciate al plc. 

supponiamo che siano agganciate a Wstring esistenti nel plc e che tu le voglia azzerare.

 

O le azzeri nel plc o le azzeri nel pannello che indirettamente le azzererà nel plc.

 

se le azzeri nel plc e dovrai stabilire tu in quale momento potresti scrivere una riga in SCL che sia tipo  :

 

MiaVariabile := '';

 

se le azzeri nel pannello potresti usare uno VBscript che usi il comando:

 

SmartTags("MiaVariabile") = ""

 

Dato che lo script non vive di vita propria deve essere richiamato.

Lo puoi richiamare con un evento legato per esempio ad un Pulsante del pannello o al cambio stato di un Tag (variabile) esistente nel pannello che in fase di definizione alla voce evento richiamerà lo script che hai realizzato per azzerare la MiaVariabile.

 

OK?

Ciao

 

 

 

 

 

 

 

 

Intanto volevo ringraziarti per la disponibilità, comunque le variabili sono locali al pannello e lo script non l'ho utilizzato mai, oltretutto non uso nemmeno il linguaggio scl

1 ora fa, drn5 ha scritto:

Le variabili che hai definito nella tabella del pannello possono esser di due tipi:

- locali al pannello e quindi esistono solo li e non hanno niente da spartire con il plc collegato

- agganciate al plc e quindi fanno riferimento a delle aree di memoria quali db, merker, input, output

 

nel tuo caso sono delle Wstring e ora non so se locali al pannello o agganciate al plc. 

supponiamo che siano agganciate a Wstring esistenti nel plc e che tu le voglia azzerare.

 

O le azzeri nel plc o le azzeri nel pannello che indirettamente le azzererà nel plc.

 

se le azzeri nel plc e dovrai stabilire tu in quale momento potresti scrivere una riga in SCL che sia tipo  :

 

MiaVariabile := '';

 

se le azzeri nel pannello potresti usare uno VBscript che usi il comando:

 

SmartTags("MiaVariabile") = ""

 

Dato che lo script non vive di vita propria deve essere richiamato.

Lo puoi richiamare con un evento legato per esempio ad un Pulsante del pannello o al cambio stato di un Tag (variabile) esistente nel pannello che in fase di definizione alla voce evento richiamerà lo script che hai realizzato per azzerare la MiaVariabile.

 

OK?

Ciao

 

 

 

 

 

 

 

 

Intanto volevo ringraziarti per la disponibilità, comunque le variabili sono locali al pannello e lo script non l'ho utilizzato mai, oltretutto non uso nemmeno il linguaggio scl.

Link al commento
Condividi su altri siti

Salve,

 

a seguire dal seguente weblink, https://we.tl/t-WBJpMVltkg  puoi scaricare da WeTransfert due brevi video di esempio che ho fatto con lo scopo di renderti il più semplice possibile il controllo che ti presti ad implementare.

Sicuramente il tutto specie per la parte inerente lo script può essere decisamente semplificato, ma sono partito dal fatto che non hai mai usato scripts e linguaggi scl o simili.

 

Ho semplicemente attivato lo script per mezzo del pulsante AZZERA STRINGHE che richiama lo script AzzeraStringhe, lo script effettua un move nella variabile interna denominata Stringa vuota assegnandole il valore"" che appunto azzererà poi le tue 20 stringhe.

 

Lo script prosegue copiando poi su ogni singola variabile interna Stringa 1 Stringa 2 etc. etc. il valore contenuto nella variabile AzzeraStringhe facendo così l'azzeramento che ti serve.

 

Link al commento
Condividi su altri siti

 

 

28 minuti fa, cagliostro ha scritto:

Salve,

 

a seguire dal seguente weblink, https://we.tl/t-WBJpMVltkg  puoi scaricare da WeTransfert due brevi video di esempio che ho fatto con lo scopo di renderti il più semplice possibile il controllo che ti presti ad implementare.

Sicuramente il tutto specie per la parte inerente lo script può essere decisamente semplificato, ma sono partito dal fatto che non hai mai usato scripts e linguaggi scl o simili.

 

Ho semplicemente attivato lo script per mezzo del pulsante AZZERA STRINGHE che richiama lo script AzzeraStringhe, lo script effettua un move nella variabile interna denominata Stringa vuota assegnandole il valore"" che appunto azzererà poi le tue 20 stringhe.

 

Lo script prosegue copiando poi su ogni singola variabile interna Stringa 1 Stringa 2 etc. etc. il valore contenuto nella variabile AzzeraStringhe facendo così l'azzeramento che ti serve.

 

Grazie mille gentilissimo, proverò e ti farò sapere. 😉

Modificato: da Project75
Link al commento
Condividi su altri siti

Buongiorno cagliostro, le variabili wstring, create nel pannello sono ritentive?

 

Buongiorno cagliostro, le variabili wstring, create nel pannello, sono ritentive?

 

Link al commento
Condividi su altri siti

Tutte le variabili dichiarate internamente alle Hmi Basic e Comfort non hanno la possibilità di avere la retentività.

Puoi solamente inizializzarle a dei valori prefissati che comunque nulla hanno a che fare con la ritenzione.

 

Se per forza le variabili devono essere ritentive, allora dovranno per esempio essere dichiarate in un DB ritentivo del PLC e da li nel data base delle variabili dichiarate come interne alla Hmi vai invece a prenderti quelle definite nel DB a ritenzione.

Link al commento
Condividi su altri siti

Altra possibilità sarebbe quella di salvare le variabili interne in un archivio o in un file di testo, quindi sempre per mezzo di un script all'avvio della hmi, prendere le variabili archiviate o quelle messe in un file di testo e copiarle nelle variabili interne.

Tuttavia come da te scritto nei post precedenti, non avendo familiarità con Scripts ed altri linguaggi simili, se ti è possibile sceglierei la via della retentività mediante DB su PLC.

Link al commento
Condividi su altri siti

39 minuti fa, cagliostro ha scritto:

Altra possibilità sarebbe quella di salvare le variabili interne in un archivio o in un file di testo, quindi sempre per mezzo di un script all'avvio della hmi, prendere le variabili archiviate o quelle messe in un file di testo e copiarle nelle variabili interne.

Tuttavia come da te scritto nei post precedenti, non avendo familiarità con Scripts ed altri linguaggi simili, se ti è possibile sceglierei la via della retentività mediante DB su PLC.

Il problema è che nel plc non li posso mettere perché ho già raggiunto il numero massimo di variabili che può gestire la cpu, ecco perché ho utilizzato le variabili del hmi.

Link al commento
Condividi su altri siti

La percentuale non la ricordo solo che nel db alcune variabili non mi funzionavano e se avvicinavo il mouse mi diceva che ho raggiunto il numero massimo di variabili da gestire dalla CPU 1215 dc/dc/dc, poi ho chiamato l'otline e mi ha  detto che avevo raggiunto il numero massimo di variabili che la cpu poteva elaborare. Guardando la percentuale ora è bassissima, invio foto.

16342139061205968983271690715795.jpg

Link al commento
Condividi su altri siti

Cosa possa essere successo francamente non ne ho idea, ma dallo screenshot che hai pubblicato, l'effettiva occupazione della memoria di lavoro della CPU ti permette di gestire in tutta tranquillità le tue variabili WString in un DB ritentivo.

 

Prova........

Link al commento
Condividi su altri siti

Ho già provato, mi da errore, ma non potresti gentilmente inviarmi l'inizio dello script per memorizzare una wstring e poi magari continuo io con le altre?

Modificato: da Project75
Link al commento
Condividi su altri siti

37 minuti fa, Project75 ha scritto:

Ho già provato, mi da errore, ma non potresti gentilmente inviarmi l'inizio dello script per memorizzare una wstring e poi magari continuo io con le altre?

Pubblica screenshot dell'errore che hai, grazie.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...