Vai al contenuto
PLC Forum


Wincc Flexible 2005: Ricette E Script


Messaggi consigliati

Inserito:

Salve a tutti, premetto che sono nuovo a Wincc e avrei bisogno di implementare una cosa particolare.

Ho una pagina con una vista ricetta, e premendo un pulsante vorrei salvare in un file csv il contenuto

di tutte le ricette. C'è già una funzione che fa questo ma mi salva il contenuto dei dati per colonna

invece che per riga.

Mi salva :

Ric1Dato1;Ric2Dato1;Ric3Dato1

Ric1Dato2;Ric2Dato2;Ric3Dato2

Ric1Dato3;Ric2Dato3;Ric3Dato3

Invece vorrei:

Ric1Dato1;Ric1Dato2;Ric1Dato3

Ric2Dato1;Ric2Dato2;Ric2Dato3

Ric3Dato1;Ric3Dato2;Ric3Dato3

Allora ho pensato di fare uno script, ciclare all'interno dei dati e salvare io una riga alla volta (prendendo il valore

di ogni variabile).

Solo non riesco a capire come funziona la LoadDataRecord.

la chiamo cosi':

LoadDataRecord "Prova Dati",index,retFunc

"Prova dati" è l'insieme delle mie ricette

index è l'indice della ricetta (che aumenta per ogni riga)

retFunc è il ritorno della funzione che dovrebbe ritornare 4 se è tutto ok, 2 se sta ancora eseguendo la funzione

e 12 se qualcosa è andato storto.

Il problema è proprio il ritorno della funzione (visto che mi baso su quello per tutto).

Se non ho capito male le funzioni sono "lanciate" e poi lo script continua, non è detto quindi che quando eseguo

la riga successiva, la funzione sia terminata. Ma dovrei avere come ritorno 2 no?

Invece ho sempre 4 e lo script sta li' all'infinito perchè non restituisce mai nè 2 nè 12 (che dovrebbe indicare che c'è stato

un errore come ad esempio sto caricando un set di dati che non esiste).

Qualcuno ha avuto qualche esperienza in merito?


Inserita: (modificato)

Ho cambiato strada: ora uso la sua funzione per esportare i dati e mi "aggiusto" il file csv

utilizzando uno script.

La domanda ora è : come si "aspetta" che la funzione di esportazione dei dati sia terminata?

Modificato: da Gatito
Inserita: (modificato)

..dalla guida...

Emetti segnalazione di stato

Stabilisce se in seguito a un'esportazione viene emessa una segnalazione di stato o meno:

0 (hmiOff) = Off: La segnalazione di stato non viene emessa.

1 (hmiOn) = On: La segnalazione di stato viene emessa.

Stato di elaborazione

Indica lo stato di elaborazione della funzione di sistema. Utilizzare il valore di ritorno p. es. per eseguire altre funzioni di sistema solo dopo che questa funzione di sistema si è conclusa senza errori:

2 = funzione di sistema in esecuzione.

4 = funzione di sistema conclusa senza errori.

12 = funzione di sistema non eseguita a causa di un errore.

....la prima cosa che mi viene in mente è un bel ciclo while finchè segnalazione<>4 e da 12

Modificato: da Wizard78
Inserita:

Ok, ammetto di essere alle prime armi e un po' ignorante in materia (programmo si, ma con altri linguaggi)

ma fino a leggere la guida ci arrivo :D :D :D

Il problema è proprio quello: nella finestra Proprietà del tasto (tab Eventi) io metto come prima funzione

appunto la EsportaSetDiDati, metto la segnalazione a On, gli assegno una variabile (es Sts_VarExport).

Nella lista funzioni, la numero 2 è appunto il mio script.

Come uso la variabile in modo da "attendere" che la funzione EsportaSetDiDati sia completa?

Dovrei "aspettare" che la variabile Sts_VarExport (nello script viene visualizzata in arancione) abbia il

valore 4. Ho provato con un loop ma non funziona, e mi viene creato il file senza attendere che la funzione

EsportaSetDiDati sia completata.

Inserita:

Come non detto: funziona :)

La mia ignoranza in VBScript è grande.... ;)

Inserita: (modificato)

...ma io credo che il file venga creato non appena parte la funzione......il valore restituito però diventa 4 solo quando la funzione ha finito il lavoro.....

comunque farei tutto dentro un unico script.....cioè nel tuo script esegui la funzione ExportDataRecords, aspetti che Sts_VarExport diventi 4 e prosegui.......

p.s. ho risp prima che dicessi che funziona............comunque meglio così!

Modificato: da Wizard78

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