GPDCTL Control V1.00

 

Reference manual

V1.0 19-01-2001  WWW.QFPENG.COM


Il controllo gestisce tutte le funzionalità della schede di input/output QFP Engineering OmniBus di tipo OB-GPD-XXX (Scheda 24 I/O, 4 ingressi analogici 10-bit).

Il dispositivo è dotato di 3 porte di I/O generiche da 8 bit ognuna (PortA, PortB, PortC). Ogni bit è configurabile singolarmente come ingresso o come uscita utilizzando le proprietà DirA, DirB, DirC in abbinamento al metodo WriteConfiguration

Per leggere o scrivere sulle porte di I/O si usano le proprietà PortA, PortB, PortC ed i metodi ReadPorts e WritePorts rispettivamente.

I bit 0-3 di PortA possono essere configurati come input analogici con AnalogEnabled. Per leggere i valori di questi ingressi si usano le proprietà Analog0, Analog1, Analog2, Analog3 ed il metodo ReadAnalog.

La comunicazione con il dispositivo è attivata dal metodo Connect ed è terminata dal metodo Disconnect , la segnalazione dell'avvenuta connessione o disconnessione è notificata rispettivamente dagli eventi Connected e Disconnected. Le proprietà Status e StatusDescription rappresentano lo stato corrente della connessione.

Il metodo GetDevicesList fornisce una lista dei dispositivi installati nel sistema. Il metodo ExplorerShow avvia il software di configurazione OmniBus Explorer, mentre DeviceDialogShow permette di variare la configurazione del dispositivo ed effettuare la diagnostica.

Di seguito è riportato l'elenco completo delle proprietà, dei metodi e degli eventi del controllo:

Proprietà Metodi Eventi

Status

StatusDescription

DeviceId

DeviceDescription

SerialNumber

WatchDogTime

PortA, PortB, PortC

DirA, DirB, DirC

Analog0, Analog1, Analog2, Analog3

AnalogEnabled

ExternalVref

Connect

Disconnect

ErrDescription

GetDevicesList

ExplorerShow

DeviceDialogShow

ReadPorts

WritePorts

ReadAnalog

ReadAll

ReadConfiguration

WriteConfiguration

SaveConfiguration

Factory

Connected

Disconnected

 


Metodo Connect

Richiede la connessione ad un dispositivo. Se la connessione riesce viene generato l'evento Connected, altrimenti viene generato l'evento Disconnected.

Sintassi:

oggetto.Connect  DeviceId, (Optional) Account, (Optional) Password

Argomento Tipo Descrizione
DeviceId String Identificativo del dispositivo*, fa riferimento al nome che si è assegnato al dispositivo in fase di configurazione (vedi documentazione OmniBus Explorer).
Account String Opzionale, Nome account, da specificare in caso di dispositivi protetti (vedi documentazione OmniBus Explorer)
Password String Opzionale, Password di accesso per dispositivi protetti  (vedi documentazione OmniBus Explorer).

Restituisce 0 se la richiesta viene accettata, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription, in questo caso non sarà generato nè l'evento Connected nè l'evento Disconnected.

Esempio:

result = oggetto.Connect "DAQ01"

if result<>0 then msgbox oggetto.ErrDescription(result), vbExclamation

Richiede la connessione al dispositivo "DAQ01", se la richiesta non viene accettata una msgbox  descrive il motivo del rifiuto.

* In alternativa all'identificativo del dispositivo può essere usata una notazione del tipo ".\\indirizzo_server\nome_dispositivo_sul_server" (per maggiori informazioni si veda  Utilizzo dei controlli su pagine web)

<<


Metodo Disconnect

Richiede la terminazione della connessione.

Nessun Argomento, restituisce 0 se la richiesta viene accettata, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Metodo ErrDescription

Restituisce una stringa che contiene la descrizione del codice di errore ErrorCode

esempio: 

msgbox oggetto.ErrDescription ErrorCode

<<


Metodo GetDevicesList

Riempie una ComboBox con gli identificativi dei dispositivi installati sul sistema e supportati dal controllo.

Esempio:

oggetto.GetDevicesList ComboBox

<<


Metodo ExplorerShow

Visualizza la shell del software OmniBus Explorer

<<


Metodo DeviceDialogShow

Visualizza la finestra di dialogo di configurazione del dispositivo corrente, funziona solo dopo l'evento connected.

<<


Evento Connected

Viene generato al completamento dell'operazione di connessione richiesta con il metodo Connect. Dopo questo evento è possibile utilizzare tutte le funzionalità del dispositivo.

Sintassi:

oggetto_Connected()

<<


Evento Disconnected

Segnala all'applicazione che la comunicazione tra il dispositivo ed il controllo è terminata. Dopo questo evento non è più possibile comunicare con il dispositivo.

Sintassi:

oggetto_Disconnected (ErrorCode)

L'evento può essere causato sia da una richiesta di disconnessione (Disconnect) sia da cause esterne (es. perdita di comunicazione con un server remoto), in quest'ultimo caso ErrorCode (long) è un codice di errore che è possibile decodificare con il metodo ErrDescription

<<


Proprietà Status

Rappresenta lo stato attuale della connessione, i valori possibili sono:

Valore Significato
0 Dispositivo connesso
1 Dispositivo disconnesso
2 Dispositivo in attesa di connessione
3 Dispositivo in fase di disconnessione

<<


Proprietà StatusDescription

Di tipo String, fornisce una descrizione dello stato attuale della connessione (vedi proprietà Status)

<<


Proprietà DeviceId

Identificativo del dispositivo, fa riferimento al nome che si è assegnato al dispositivo in fase di configurazione (vedi metodo Connect, documentazione OmniBus Explorer). 

<<


Proprietà DeviceDescription

Descrizione del dispositivo, fa riferimento alla descrizione che si è assegnata al dispositivo in fase di configurazione (vedi documentazione OmniBus Explorer). 

<<


Proprietà SerialNumber

Proprietà di sola lettura, restituisce il numero di serie del dispositivo connesso. Se il dispositivo non è connesso restituisce 0.

<<


Metodo ReadPorts

Legge gli ingressi digitali. Dopo il comando, i valori aggiornati sono disponibili nelle proprietà PortA, PortB, PortC.

Se un pin è configurato come uscita, il bit corrispondente rappresenta lo stato dell'uscita.

Se i pin A0-A4 sono configurati come ingressi analogici, i bit sono letti sempre come 0.

Per leggere anche gli ingressi analogici, usare il metodo ReadAll.

Sintassi:

result = oggetto.ReadPorts

Restituisce 0 se la lettura ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Metodo WritePorts

Aggiorna le uscite della scheda con i valori contenuti nelle proprietà PortA, PortB, PortC.

Se un pin è configurato come ingresso il corrispondente bit è ignorato.

Dopo il comando le variabili PortA, PortB, PortC sono aggiornate con i valori letti dalle porte.

Sintassi:

result = oggetto.WritePorts

Restituisce 0 se l'operazione ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Metodo ReadAnalog

Legge gli ingressi analogici. Dopo il comando,  i valori aggiornati sono disponibili nelle proprietà Analog0, Analog1, Analog2, Analog3.

Per leggere anche gli ingressi digitali usare il metodo ReadAll.

Sintassi:

result = oggetto.ReadAnalog

Restituisce 0 se l'operazione ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Metodo ReadAll

Legge sia gli ingressi digitali che quelli analogici. Dopo il comando,  i valori aggiornati sono disponibili nelle proprietà PortA, PortB, PortC, Analog0, Analog1, Analog2, Analog3.

Se si desidera leggere solo gli ingressi digitali usare il metodo ReadPorts, mentre se si desidera leggere solo gli ingressi analogici usare ReadAnalog.

Sintassi:

result = oggetto.ReadAll

Restituisce 0 se l'operazione ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Metodo WriteConfiguration

Invia al dispositivo i  parametri di configurazione impostati con DirA, DirB, DirC, WatchdogTime, AnalogEnabled, ExternalVref. Le impostazioni resteranno attive fino allo spegnimento del dispositivo, per rendere le impostazioni durature usare il comando SaveConfiguration.

Sintassi:

result = oggetto.WriteConfiguration

Restituisce 0 se l'aggiornamento ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Metodo ReadConfiguration

Legge i parametri di configurazione. Dopo il comando,  i valori aggiornati sono disponibili nelle proprietà DirA, DirB, DirC, WatchdogTime, AnalogEnabled, ExternalVref.

Sintassi:

result = oggetto.ReadConfiguration

Restituisce 0 se l'aggiornamento ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Metodo SaveConfiguration

Salva nella memoria permanente del dispositivo lo stato attuale delle uscite e i parametri di configurazione impostati con con DirA, DirB, DirC, WatchdogTime, AnalogEnabled, ExternalVref.

Le impostazioni resteranno attive anche dopo lo spegnimento del dispositivo.

Se successivamente si vogliono ripristinare le impostazioni di fabbrica usare il metodo Factory.

Sintassi:

result = oggetto.SaveConfiguration

Restituisce 0 se l'aggiornamento ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Proprietà PortA (PortB, PortC)

Ad ogni bit di PortA è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). I bit di PortA, rappresentano lo stato dei corrispondenti PIN di I/O sulla scheda.

Esempio:

'LETTURA

Gpd.ReadPort     'legge gli ingressi ed aggiorna le proprietà PortA, PortB, PortC

if (Gpd.PortA and 8) <> 0 then      ' se il segnale applicato sul pin A3 è alto esegue il codice nell'if

    ' ...............

end if

 

'SCRITTURA

Gpd.PortB=1+4+16    'Bit B0, B2 e B4 alti, tutti gli altri bassi

Gpd.WritePorts          'Aggiorna le uscite

 

<<


Proprietà DirA  (DirB, DirC)

Ad ogni bit di DirA è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). Se il bit è 0, il pin è configurato come uscita, se il bit è 1 il pin è configurato come ingresso.

Esempio:

Gpd.DirA=15         'A0-A3 ingressi, A4-A7 uscite

Gpd.DirB=0           'B0-B7 tutte uscite

Gpd.DirC=255        'C0-C7 tutti ingressi

Gpd.WriteConfiguration    'Invia alla scheda i valori impostati

<<

 


Proprietà Analog0  (Analog1, Analog2, Analog3)

Analog0 rappresenta il valore letto dal convertitore analogico/digitale sul pin A0/AN0 al momento dell'ultimo comando ReadAnalog o ReadAll.

Il valore è  un numero intero compreso tra 0 e 1023. Per ottenere il valore di tensione corrispondente occorre usare la seguente formula: V=Analog0/1023*Vref.

Vref è 5V se ExternalVref=False, altrimenti è la tensione applicata sul pin A3.

Esempio:

Gpd.ReadAnalog                     'Legge gli ingressi analogici

Vref=5                                    'Tensione di alimentazione 5V

V=Gpd.Analog0/1024*Vref       'Calcola il valore in volt

MsgBox "Il valore misurato in volt è " & V  'Visualizza il valore letto

<<


Metodo Factory

Ripristina le impostazioni di fabbrica per i parametri di configurazione, per maggiori informazioni vedi metodo SaveConfiguration.

Dopo questo comando, all'accensione, tutti gli I/O sono configurati come ingressi, il Watchdog timer è disabilitato. 

Sintassi:

result = oggetto.Factory

Restituisce 0 se l'aggiornamento ha avuto successo, altrimenti restituisce un codice di errore che può essere decodificato con il metodo ErrDescription.

<<


Proprietà WatchDogTime

Imposta il tempo del watchdog timer in millisecondi. Se il tempo è 0 il watchdog è disabilitato. 

La funzione di watchdog consente di portare le uscite in uno stato di sicurezza predefinito qualora dovesse cadere la comunicazione tra il dispositivo ed il PC. In particolare, quando il watchdog è attivo, la scheda si aspetta ad intervalli regolari un comando di read o write. Se questi comandi non arrivano ad intervalli di tempo minori di WatchDogTime, le uscite assumono l'ultimo valore salvato nella memoria non volatile del dispositivo. Questo valore è quello salvato con SaveConfiguration (vedi).

L'impostazione ha effetto solo dopo il comando WriteConfiguration o SaveConfiguration.

Esempio:

oggetto.WatchDogTime=10000              '  10 secondi

oggetto.UpdateConfiguration                  'Aggiorna i parametri di configurazione della scheda

'da questo momento in poi, almeno ogni dieci secondi bisogna richiamare ReadInputs o WriteOutputs ecc.

<<

 


Proprietà AnalogEnabled

Impostata su True, abilita gli ingressi analogici A0-A3. I corrispondenti bit di DirA devono essere impostati come ingressi. Quando A0-A3 sono impostati come ingressi analogici, i corrispondenti bit di PortA sono letti come '0'.

L'impostazione ha effetto solo dopo il comando WriteConfiguration o SaveConfiguration.

Vedi anche ExternalVref

Esempio:

Gpd.DirA=Gpd.DirA Or 0x0F                     'bit 0-4 impostati come ingressi

Gpd.AnalogEnabled=True                        'Abilita ingressi analogici

oggetto.UpdateConfiguration                    'Rende effettive le impostazioni

<<


Proprietà ExternalVref

Normalmente la tensione di riferimento del convertitore analogico/digitale è 5V. Tuttavia, per particolari esigenze, è possibile fornire tale tensione dall'esterno. Se ExternalVref è settata su True, sull'ingresso A3 deve essere applicata la tensione di riferimento del convertitore analogico digitale. Naturalmente, gli ingressi A0-A3 devono essere impostati come ingressi analogici (vedi AnalogEnabled).

L'impostazione ha effetto solo dopo il comando WriteConfiguration o SaveConfiguration.

Esempio:

Gpd.DirA=Gpd.DirA Or 0x0F                     'bit 0-4 impostati come ingressi

Gpd.AnalogEnabled=True                        'Abilita ingressi analogici

Gpd.ExternalVref=True                            'Sull'ingresso A3 è applicata Vref

oggetto.UpdateConfiguration                    'Rende effettive le impostazioni

 

<<