Jump to content
PLC Forum


Project75

Azzerare wstring su pannello comfort

Recommended Posts

Project75

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

Link to comment
Share on other sites


Project75
17 minuti fa, drn5 ha scritto:

Miavariabile := ""

 

Ciao

Grazie, potresti spiegare nel dettaglio.

Link to comment
Share on other sites

drn5

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 to comment
Share on other sites

Project75
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 to comment
Share on other sites

drn5

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 to comment
Share on other sites

Project75
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 to comment
Share on other sites

cagliostro

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 to comment
Share on other sites

Project75

 

 

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. 😉

Edited by Project75
Link to comment
Share on other sites

Project75

Grazie mille cagliostro, ho provato, funziona perfettamente.  🙂

Link to comment
Share on other sites

Project75

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

 

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

 

Link to comment
Share on other sites

cagliostro

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 to comment
Share on other sites

cagliostro

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 to comment
Share on other sites

Project75
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 to comment
Share on other sites

drn5
3 ore fa, Project75 ha scritto:

ho già raggiunto il numero massimo di variabili che può gestire la cpu

che cpu usi?

ottimizza l'ottimizzabile!

 

Ciao

Link to comment
Share on other sites

cagliostro

A che % di occupazione sei arrivato nella memoria di lavoro del PLC?

A seguire screenshot di esempio

 

 

Immagine 2021-10-14 135058.jpg

Link to comment
Share on other sites

Project75

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 to comment
Share on other sites

cagliostro

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 to comment
Share on other sites

Project75

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?

Edited by Project75
Link to comment
Share on other sites

cagliostro
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 to comment
Share on other sites

Project75

Non sono davanti al PC, mi potresti , se possibile, gentilmente inviare la prima parte dello script?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...