Adattatori W&T
per TCP/IP, Ethernet, RS-232, RS-485, USB, 20 mA
Fibra ottica di vetro e di plastica, http, SNMP, OPC, I/O digitale, I/O analogico, ISA, PCI, ecc.?
      Prodotti
Pagina iniziale Contatti   Distributori nel mondo
Lingue:
DE

US

ES

IT

RU
Misurazione climatica
Termografo web
WuTooth
Web-IO
Digitale
Analogico
Area speciale
Server dati
Motherbox 2
pure.box 2
memoria di rete
Server Ethernet TCP/IP
Com-Server (seriali)
Server USB
Adattatori seriali
USB, RS232, RS485, 20 mA
Isolatori & fibra ottica
USB, RS232, RS485, 20 mA
Schede PC
PCI Express, bus PCI e
Bus ISA
...
Adattatori stampanti
Accessori
Download
Cose vecchie
Carrello Il vostro carrello

 
      Conoscenze tecniche
Libri, articoli, glossari...
Informazione tecnica di base
Applicazioni per Com-Server,
Server USB
, Web-IO,
termometro web,
Motherbox e pure.box
 
Applicazione relativa al Web-IO digitale:

Attivazione automatizzata con VBScript e job batch




 Ulteriori link: Panoramica del prodotto Panoramica dell’applicazione Versione per la stampa


Nel caso di numerosi compiti di attivazione minori non vale la pena creare un software applicativo speciale o acquistare in aggiunta costosi tool di automazione. È ampiamente sufficiente avviare il processo di attivazione desiderato facendo clic su un’icona o immettendo un comando. Con il Web-IO digitale e piccoli VBScript tali soluzioni possono essere attuate con poche righe di comando.

.

VBScript è un linguaggio interprete di facile programmazione che viene supportato di serie da Windows 2000, XP e Vista. Come fa presupporre il nome (Visual Basic Script), la sintassi di VBScript fa riferimento a quella di Visual Basic. Non è necessario uno speciale ambiente di sviluppo per la creazione di VBScript: è sufficiente un editor di testo. Si consiglia l’editor gratuito PSPAD (www.pspad.com) che presenta un’evidenziazione della sintassi per VBScript. Per il salvataggio di VBScript viene utilizzata la desinenza del file ".vbs".

Gli esempi descritti di seguito mostrano l’interazione di VBScript e Web-IO.


Non disponete ancora di un Web-IO® e desiderate semplicemente provarne il funzionamento come nell’esempio illustrato?

Nessun problema: vi mettiamo a disposizione gratuitamente per 30 giorni il Web-IO digitale 2x input, 2x output. Non dovete far altro che compilare l’ordinazione del campione e vi forniremo il Web-IO in prova in conto aperto. Se ci restituite l’apparecchio entro 30 giorni, vi accreditiamo completamente la fattura.

All’ordinazione del campione   All’ordinazione del campione

Preparativi
Avete già alimentato con corrente

1. Impostare un output con VBScript

Il seguente script imposta, quando richiamato, l’output 0 del Web-IO con l’indirizzo IP 10.40.22.101.

' VB Script Document
option explicit

Dim objHttp
Set objHttp = WScript.CreateObject("WinHttp.WinHttpRequest.5.1")
If objHttp Is Nothing Then Set objHttp = WScript.CreateObject("WinHttp.WinHttpRequest")
objHttp.Option(4) = 256 + 512 + 4096 + 8192
objHttp.SetTimeouts 0, 5000, 10000, 10000
objHttp.Open "GET", "http://10.40.22.101/outputaccess0?PW=&State=ON&", FALSE
objHttp.setRequestHeader "User-Agent", WScript.ScriptName
objHttp.Send ""
If Not (objHttp.statusText = "OK") Then
  WScript.Echo "Error: " & objHttp.statusText
  WScript.Quit 1
Else
  WScript.Echo objHttp.ResponseText
End If

Nucleo di questo script è l’oggetto WinHttp che viene utilizzato per inviare comandi al Web-IO. La vera e propria trasmissione dei comandi avviene con objHttp.Open.

http://10.40.22.101/outputaccess0?PW=&State=ON&  definisce che l’output 0 del Web-IO 10.40.22.101 deve accettare lo stato ON

Con objHttp.ResponseText viene letta la risposta del Web-IO. Nel caso del comando outputaccess il Web-IO restituisce una stringa composta dalla parola output, un punto e virgola e lo stato dell’output.

Esempio output;1

Una descrizione dettagliata dei possibili comandi del Web-IO è riportata nelle Istruzioni relative al Web-IO da pagina 102.


2. Richiamare VBScript da job batch

I job batch in ambiente Windows erano inizialmente stati concepiti per eseguire in modo automatizzato i comandi di Windows. Un esempio classico è rappresentato anche dall’Autoexec.bat negli ambienti DOS precedenti. Nel file batch viene inserito un elenco di comandi che, quando viene richiamato l’elenco, vengono portati a termine uno dopo l’altro.

Nei sistemi Windows possono essere pertanto automatizzati anche script e chiamate di programmi. Se ad es. devono essere attivati gli output di diversi Web-IO con una chiamata, ciò può essere realizzato mediante un job batch.

I corrispondenti nomi dei VBScript devono a tale scopo essere scritti nel file batch uno sotto l’altro. Negli script come quello sopra riportato è necessario creare uno script proprio per ogni compito di attivazione.

Proprio in job batch ha pertanto più senso creare uno script utilizzabile universalmente al quale, alla chiamata mediante parametri aggiuntivi, viene trasmesso il modo in cui si presenta il compito di attivazione. Al richiamo, al VBScritp indicato di seguito possono essere trasmessi i seguenti parametri:

  • IP
: indirizzo IP del Web-IO
  • PORT
: porta TCP del Web-IO
Questo parametro è optional; se non viene fornito, lo script utilizza la porta 80
  • PW
: password amministratore od operatore del Web-IO
Questo parametro è optional; se non viene fornito, lo script funziona senza password
  • MASK
: indica con scrittura esadecimale quali output devono essere impostati
Questo parametro è optional; se non viene fornito, lo script funziona con tutti gli output
  • STATE
: indica con scrittura esadecimale lo stato in cui gli output devono essere impostati

Il richiamo dello script si presenta come indicato di seguito:

setoutput.vbs IP=<IP address> [PORT=<portno.>] [PASSWORD=<password>] [MASK=<hex value>] STATE=<hex value>

' VB Script Document
option explicit

Dim objArgs, strArg, strArgall
Dim IP, PORT, PASSWORD, MASK, STATE, URLStr
Dim objHttp
Set objArgs = WScript.Arguments

'# Make sure that script starts as console application (best way "cscript //h:cscript")
Dim WshShell : Set WshShell = WScript.CreateObject("WScript.Shell")
If Right(WScript.FullName, Len(WScript.Fullname) - Len(WScript.Path) -1) _
     = "WScript.exe" Then
  For each strArg in objArgs
    strArgall = strArgall & " " & strArg
  next
  WshShell.Run "cmd /k cscript " & Chr(34) & WScript.ScriptFullName _
   & Chr(34) & strArgall
  WScript.Quit
End If

'# Check if there are Parameters
If  WScript.Arguments.count < 1 Then
  WScript.Echo "***********************************"
  WScript.Echo "* Not enough arguments *"
  WScript.Echo "***********************************"
  WScript.Echo ""
  WScript.Echo "Syntyx: setoutput.vbs IP=<IP address> [PORT=<portno.>] _
               [PASSWORD=<password>] [MASK=<hex value>] STATE=<hex value>"

  WScript.Quit
End If

'# Read the Parameters
for each
strArg in objArgs
  If Left(strArg,3) = "IP=" then
    IP = Mid(strArg, 4, Len(strArg) - 3)
  End If

  If Left(strArg,5) = "PORT=" then
    PORT = Mid(strArg, 6, Len(strArg) - 5)
  End If

  If Left(strArg,9) = "PASSWORD=" then
    PASSWORD = Mid(strArg, 10, Len(strArg) - 9)
  End If

  If Left(strArg,5) = "MASK=" then
    MASK = Mid(strArg, 6, Len(strArg) - 5)
  End If

  If Left(strArg,6) = "STATE=" then
    STATE = Mid(strArg, 7, Len(strArg) - 6)
  End If
Next

'# Mount the command String
If IP <> "" then
  URLStr = "http://" & IP
else
  WScript.Echo "***********************************"
  WScript.Echo "*    Not enough arguments : IP    *"
  WScript.Echo "***********************************"
End If

If PORT <> "" then
  URLStr = URLStr & ":" & PORT
End If

URLStr = URLStr & "/outputaccess?PW=" & PASSWORD & "&"

If MASK <> "" then
  URLStr = URLStr & "Mask=" & MASK & "&"
End If

If STATE <> "" then
  URLStr = URLStr & "State=" & STATE & "&"
else
  WScript.Echo "***********************************"
  WScript.Echo "*  Not enough arguments : STATE   *"
  WScript.Echo "***********************************"
End If

'# Send the Command String via HTTP object
Set
objHttp = WScript.CreateObject("WinHttp.WinHttpRequest.5.1")
If objHttp Is Nothing Then Set objHttp = WScript.CreateObject("WinHttp.WinHttpRequest")
objHttp.Option(4) = 256 + 512 + 4096 + 8192
objHttp.SetTimeouts 0, 5000, 10000, 10000
objHttp.Open "GET", URLStr, FALSE
objHttp.setRequestHeader "User-Agent", WScript.ScriptName
objHttp.Send ""
If Not (objHttp.statusText = "OK") Then
  WScript.Echo "Error: " & objHttp.statusText
  WScript.Quit 1
else
  WScript.Echo objHttp.ResponseText
End If

Dopo l’esecuzione dell’azione selezionata, lo script restituisce lo stato degli output.

ad es. output:0100

Il messaggio di stato è composto dalla parola output, da un punto e virgola e dallo stato dell’output con scrittura esadecimale.

CONSIGLIO: dell’esecuzione di VBScript è responsabile Windows Scripting Host che è presente in due varianti su ogni PC Windows. Le due varianti WScript e CScript si distinguono innanzitutto per il tipo di emissione di dati. Se non diversamente configurato, vengono elaborati gli script di WScript e vengono emessi i messaggi di testo in una finestra di dialogo di Windows. Ciò presenta lo svantaggio che ogni messaggio deve essere confermato dall’utente affinché lo script possa continuare a funzionare. Questo tipo di elaborazione non è pratica per l’impiego in job batch.

Immettendo il comando wscrit //H:cscript il CScript viene definito come standard script host. CScript emette tutti i messaggi in una DOSBOX e non aspetta la conferma.

Lo script indicato sopra verifica quale script host è attivo e si interrompe, se è attivo WSript, e si riavvia con CScript.

Affinché lo script possa funzionare più velocemente, si consiglia tuttavia di passare in generale a CScript.


 

Ulteriori esempi di programma per la programmazione socket sono riportati nelle pagine dei tool relative al Web-IO. Una descrizione dettagliata relativa ai comandi dei modelli Web-IO digitali è riportata nel manuale di riferimento.

All’ordinazione del campione   All’ordinazione del campione Download esempio di programma   Al download

 
    Altri esempi applicativi per Web-IO digitale
Tecniche web
     
     
     
     
  Siti web propri
       
        PHP e AJAX - pagine web dinamiche anche per diversi Web-IO
        Pagine web Mashup con visualizzazione dei valori nelle carte geografiche di Google Maps
        Java-Applet - utilizzare l’applet integrata
        Java-Applet. Esempio: visualizzazione degli input e degli output
        Java-Applet. Esempio: visualizzazione degli input e degli output e controllo degli output
        Java-Applet. Esempio: visualizzazione dei counter
        Java-Applet. Esempio: aprire le porte e accendere le luci nel browser
        Visualizzare e controllare il Web-IO con l’iPhone
        Web-IO con iPhone. Esempio: comando delle tapparelle
        Web-IO con iPhone. Esempio: monitoraggio del clima
        Web-IO con iPhone. Esempio: visualizzazione valori di misura
Integrazione sistema
     
     
     
     
     
      Box-to-box
Acquisizione dati
     
      datenlogger FTP - esempio
Timer
     
      Timer CRON (Linux)
      Taskplaner come timer
Programmazione personalizzata
     
      Visual Basic.Net 2005/2008/2010
      Visual Basic.Net 2005/2008/2010 con WuTdevice.dll
      Visual C++
      Visual C#
      Visual C# con WuTdevice.dll
      Visual C++ (Linux con QT Designer)
      Visual Delphi
      Visual Delphi.Net (2005)
      Lazarus/FreePascal
      Java
      comandare con VBScript
sistema Web-IO
     
     
      Motherbox - attivare diversi Web-IO
      Motherbox - collegare logicamente i Web-IO
      Controllo dei valori limite
  Web-IO - Possibilità della connessione di rete
       
        DSL
        UMTS/GPRS/rete di telefonia mobile
        Radio satellitare

 
  • Mister Wong
  • Bookmark Google
  • Twitter
  • Facebook
  • Digg
   Colophon
Saremo lieti di fornirvi una consulenza personale! Wiesemann & Theis GmbH Tel.:: 0202/2680-110 (lun.-ven., ore 8-17)
Porschestr. 12 Fax: 0202/2680-265
42279 Wuppertal E-mail personale:

© Wiesemann & Theis GmbH, con riserva di errori e modifiche: poiché possono verificarsi errori, nessuna nostra informazione deve essere utilizzata senza essere stata verificata. Vi preghiamo di comunicarci tutti gli errori o gli equivoci che avete rilevato in modo tale che possiamo riconoscerli ed eliminarli quanto prima.