Iris _

Pixsys Forum

everybody's effort for the same goal

Messaggio errore ScriptVBA

Post Reply
Marco
Posts: 31
Joined: 05/05/2019, 14:40

Messaggio errore ScriptVBA

Post by Marco »

Salve,
ho scritto questo script per salvare un file dal pannello ad una pennetta USB collegata alla presa anteriore:

Dim FileScelto, FileDaCopiare As String
Dim Destinazione As String
Dim Indice, temp As Integer

Sub Main()
On Error GoTo GestioneErrore

FileScelto = GetFilePath$("*.csv",,,"Scegli File",0)

temp = InStrRev(FileScelto,"\")
Indice = Len(FileScelto) - temp
FileDaCopiare = Right(FileScelto,Indice)

'MsgBox (FileScelto,vbOkOnly,"file da copiare")

ChDrive "HardDisk2"
'MkDir "HardDisk2:\log"
ChDir "HardDisk2:\"

Destinazione = CurDir$() + "\" + FileDaCopiare
'MsgBox(Destinazione,vbInformation,"Stringa Destinazione")
FileCopy (FileScelto,Destinazione)

Exit Sub

GestioneErrore:
MsgBox(Err.Description,vbExclamation,"Errore")

Exit Sub

End sub


Con il simulatore di Movicon funziona bene, ma quando lo carico nel pannello all'esecuzione dello script mi segnala il seguente errore, del quale non riesco a capire il motivo e neppure la linea e l'offset a cui si riferisce.

ErroreVBA.jpg
Ringrazo in anticipo per la cortesia e cordialmente saluto
You do not have the required permissions to view the files attached to this post.
Pixsys tecnico 1
Moderatore
Posts: 1672
Joined: 29/10/2010, 10:09
Contact:

Re: Messaggio errore ScriptVBA

Post by Pixsys tecnico 1 »

Salve,
una soluzione è aggiungere dopo ogni istruzione un "Debug.Print" e poi eseguire il programma sul pannello con la finestra de output aperta per capire dove si ferma lo script. QUeto purtroppo capita perchè l'editor degli script non ha un debugger completo ma solo un "analizzatore di sintassi" del codice inserito.
E' inoltre da tenere presente che mentre nel PC il codice usa i comandi VBscript, negli HMi CE7 è WWB COM quindi qualche istruzione potrebbe cambiare / non essere disponibile.
Marco
Posts: 31
Joined: 05/05/2019, 14:40

Re: Messaggio errore ScriptVBA

Post by Marco »

Salve,

ho provato come suggerito inserendo delle istruzioni debug.print, purtroppo non producono alcun output, nonostante abbia attivato il flag "Mostra finestra di output" nelle proprietà proggetto e "Crea un proprio trace Tab" nelle proprietà dello script.

Per le istruzioni negli script sto facendo riferimento al seguente link:

https://www.winwrap.com/web2/basic/#!/r ... erview.htm

quindi in teoria quelle che ho usato dovrebbero essere compatibili con gli script per il TD810.

Ringrazio e cordialmente saluto
Pixsys tecnico 1
Moderatore
Posts: 1672
Joined: 29/10/2010, 10:09
Contact:

Re: Messaggio errore ScriptVBA

Post by Pixsys tecnico 1 »

Salve,
se non vede la finestra di output di Movicon deve prima abilitare il servizio explorer del sistema operativo, in quanto di default è disabilitato.
Accedendo al TdControlPanel, il pulsante "WIN EXPLORER" le permette di abilitare la spunta "RUN WINDOWS EXPLORER at STARTUP".
In questo modo, il sistema operativo permette di visualizzare la barra delle applicazioni in basso e quindi di spostarsi tra la finestra di Movicon e la finestra di output.
Marco
Posts: 31
Joined: 05/05/2019, 14:40

Re: Messaggio errore ScriptVBA

Post by Marco »

Salve,

la spunta su "Run win expolrer at startup" è già selezionata e la finestra di output si vede e si puo aprire. Quando eseguo lo script mi riporta l'errore "invalid intruction" ma non gli output delle istruzioni Debug.print inserite nello script. Nello script è selezionata l'opzione "Crea un proprio trace Tab" che si può visualizzare ed aprire e riporta sempre "Invalid instruction" Line xx, offset yy ma non gli output di debug.print.
Le istruzioni Debug.print sono del tipo "Debug.print x" dove al posto di x metto un numero che identifica l'istruzione script che esegue subito dopo. Con il simulatore funziona ma nel pannello purtroppo no.

Grazie e cordiali saluti
Pixsys tecnico 1
Moderatore
Posts: 1672
Joined: 29/10/2010, 10:09
Contact:

Re: Messaggio errore ScriptVBA

Post by Pixsys tecnico 1 »

Salve,
l'istruzione Debug.Print si aspetta le virgolette se vuole stampare una stringa costante, tipo:

Debug.Print " siamo al passo 5 "
Post Reply