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.
Ringrazo in anticipo per la cortesia e cordialmente saluto
Messaggio errore ScriptVBA
-
- Posts: 34
- Joined: 05/05/2019, 14:40
Messaggio errore ScriptVBA
You do not have the required permissions to view the files attached to this post.
-
- Moderatore
- Posts: 1687
- Joined: 29/10/2010, 10:09
- Contact:
Re: Messaggio errore ScriptVBA
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.
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.
-
- Posts: 34
- Joined: 05/05/2019, 14:40
Re: Messaggio errore ScriptVBA
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
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
-
- Moderatore
- Posts: 1687
- Joined: 29/10/2010, 10:09
- Contact:
Re: Messaggio errore ScriptVBA
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.
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.
-
- Posts: 34
- Joined: 05/05/2019, 14:40
Re: Messaggio errore ScriptVBA
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
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
-
- Moderatore
- Posts: 1687
- Joined: 29/10/2010, 10:09
- Contact:
Re: Messaggio errore ScriptVBA
Salve,
l'istruzione Debug.Print si aspetta le virgolette se vuole stampare una stringa costante, tipo:
Debug.Print " siamo al passo 5 "
l'istruzione Debug.Print si aspetta le virgolette se vuole stampare una stringa costante, tipo:
Debug.Print " siamo al passo 5 "