DEVICE ANINP

1. Introduzione

  • Il device gestisce la lettura ed elaborazione di un ingresso analogico.
  • Il dato letto è una word a 16 bit con segno alla quale è possibile sommare un offset, inserire un fattore di scala ed attivare un filtro software passa basso del tipo RC.
  • Le specifiche di risoluzione dell’ingresso vengono riportate nel fascicolo hardware della scheda.
    I cablaggi e collegamenti dell’apparecchiatura descritta nel presente manuale, devono rispettare la Normativa Europea EN60204-1.

:info:Nota:
Le specifiche di risoluzione dell'ingresso sono riportare nel fascicolo con la descrizione hardware della scheda (o dello strumento) che si sta utilizzando.

1.1.1 Dichiarazione device nella unit di configurazione

Nella unit di configurazione, la sezione BUS deve essere dichiarata in modo tale che siano presenti le risorse hardware necessarie all’implementazione del device ANINP. Deve essere presente almeno un ingresso analogico con risoluzione massima di 16 bit.
Nella sezione INTDEVICE della unit di configurazione deve essere aggiunta la seguente definizione:

;---------------------------------
; Dichiarazione devices
;---------------------------------
INTDEVICE
...
<nome device>  ANINP  Tcamp  IChn  Type

dove:

<nome device>Nome assegnato al device
NINPParola chiave che identifica il device ingresso analogico
TcampTempo campionamento device (1÷255 ms)
IChnindirizzo ingresso ADC
TypeNumero indentificativo tipo di ingresso (fare riferimento alla scheda tecnica hardware)
:important:Attenzione:
è necessario che tutte le voci di definizione siano presenti sulla stessa linea.

1.1.2 Esempio

;---------------------------------
; Dichiarazione devices
;---------------------------------
INTDEVICE
AnSensor    ANINP 2   2.AI01 1

All’accensione del sistema, il device controlla la corretta dichiarazione del tipo di ingresso da utilizzare, definito nella unit di configurazione (Type). Se la diagnostica del canale si conclude con successo, viene eseguito l‘aggiornamento dei dati sulla base del tempo di campionamento. Nel caso vengano riscontrati errori o imprecisioni, lo stato st_errcfg viene impostato a uno ed il valore della variabile outbit viene forzato a zero. La conversione del dato in uscita dal device (outbit), nell’unità di misura necessaria per l’applicazione, viene eseguita ricorrendo a dei fattori di scala (scaleA, scaleB e scaleC) secondo la formula:

outUm = (scaleA x outbit / scaleB) + scaleC

Oltre a questa uscita aggiornata sulla base del tempo di campionamento del device, è disponibile l‘uscita outUmF, filtrata con un tempo di carica tfilter programmabile (espresso in ms).

:info:Questa funzionalità permette di filtrare eventuali disturbi e fluttuazioni sovrapposte al segnale utile con la possibilità di personalizzare il tempo di carica del filtro (tfilter).

1.2.1 Configurazione

Una singolo ingresso può essere gestito da più device ANINP contemporaneamente, a condizione che il numero identificativo dell'ingresso Type, inserito nella dichiarazione del device, sia uguale; in caso contrario l'ingresso analogico viene configurato come l'ultimo device dichiarato nel file di configurazione.

1.3.1 Simbologia adottata

Il nome del parametro, stato o comando viene riportato alla sinistra della tabella.

R
Indica se il relativo parametro o stato è ritentivo (al momento dell’inizializzazione del device mantiene lo stato precedentemente definito), oppure lo stato che assume al momento dell’inizializzazione del device.
Se il device non necessita di inizializzazione il campo “R” indica il valore che il parametro o stato assume all’accensione della scheda.
R = Ritentivo
0 = Al momento dell’inizializzazione del device il valore viene forzato a zero.
1 = Al momento dell’inizializzazione del device il valore viene forzato a uno.
- = Al momento dell’inizializzazione del device viene presentato il valore significativo.

D
Indica la dimensione del parametro.
F = Flag
B = Byte
W = Word
L = Long
S = Single Float

1.3.1.1 Condizioni

Vengono descritte tutte le condizioni necessarie affinché il parametro sia considerato corretto o perché il comando venga accettato.
In alcuni casi vengono specificati dei valori limite per l’accettazione del parametro: se vengono introdotti dei valori esterni ai limiti impostati, il dato viene comunque accettato; pertanto devono essere previsti opportuni controlli dell’applicativo tali da garantire il corretto funzionamento.
Per l’esecuzione di un comando, tutte le relative condizioni devono necessariamente essere soddisfatte; in caso contrario il comando non viene eseguito.

A
Indica la modalità di accesso.
R = Read (lettura).
W = Write (scrittura).
RW = Read / Write.

NOMEDRACondizioniDescrizione
outbitW-RNessunaOutput measure in bits
Valore letto dal canale di ingresso compensato dell'Offset.
Range valido: 0 ÷ 32767
offsetWRRWNessunaOffset compensation
Offset uscita DAC in bit. Definisce il valore in bit della correzione relativa all'ingresso analogico in modo da compensare l'eventuale deriva del sistema.
Range valido: -32768 ÷ 32767
scaleAWRRWNessunaScale A
Valore intero parametro A formula di scaling.
Range valido: -32768 ÷ 32767
scaleBWRRWNessunaScale B
Valore parametro B utilizzato nella formula di scaling. Deve essere necessariamente diverso da zero.
Range valido: -32768 ÷ 32767
scaleCWRRWNessunaScale C
Valore parametro C utilizzzato nella formula di scaling.
Range valido: -32768 ÷ 32767
outUmL-RNessunaOutput measure in unity
Uscita derivata dalla formula di scaling.
Range valido: -32768 ÷ 32767
tfilterWRRWNessunaFilter time
Tempo di carica del filtro RC. Se tfilter < = Tcamp device, il filtro è disattivato. Valore espresso in unità ms.
Range valido: 0 ÷ 32767
outUmFL-RNessunaFiltered output in unity of measure
Uscita in unità di misura, filtrata.
Range valido: -32768 ÷ 32767
NOMEDRACondizioniDescrizione
st_errcfgF-RNessunaConfiguration error
Segnala che è stato rilevato un errore nella configurazione dell'ingresso.
0 = Non è stato rilevato nessun errore.
1 = È stato rilevato un errore.

1.6.1 Scaling

ScaleB deve essere impostato diverso da zero, in caso contrario OutUm viene forzato a 0.

1.6.2 Filtro

Il tempo di carica del filtro RC tfilter deve essere impostato maggiore o uguale al tempo di campionamento del device (Tcamp), in caso contrario viene disattivato il filtro ed il parametro OutUmF viene aggiornata con lo stesso valore di OutUm.

1.6.3 Offset

Il parametro offset viene sommato all’ingresso analogico acquisito (outbit), non viene eseguito il controllo sull‘overflow della somma.

1.6.4 Configurazione

:info:Nel caso che un singolo canale venga gestito da più device ANINP aventi Type diversi, il compilatore non rileva errori e il canale viene impostato con l'ultimo Type dichiarato.

Una singola risorsa hardware (ogni singolo ingresso) può essere gestita da più device ANINP contemporaneamente, a condizione che il numero identificativo dell'ingresso (Type), inserito nella dichiarazione del device (file di configurazione), sia uguale; in caso contrario l'ingresso analogico viene configurato come l'ultimo device dichiarato nel file di configurazione.

1.7.1 Unit di configurazione

;*************************************************************************************
; Nome Modulo: Ex_Aninp.CNF                 Progetto: Ex_ANINP
; Autore: QEM srl                           Data : 01/05/99
; Sistema: QMove1 / QCL3                    Libreria: 1LIB3B04
; Funzionalità: Esempio gestione ANINP      Release: 0
;------------------------------------- Note ------------------------------------------
; [1] - Applicativo di esempio per utilizzo device ANINP
;*************************************************************************************
;-------------------------------------------------------------------------------------
; Definizione Costanti
;-------------------------------------------------------------------------------------
CONST
;-------------------------------------------------------------------------------------
; Definizione Variabili SYSTEM
;-------------------------------------------------------------------------------------
SYSTEM
slSet1   L                                ;Setpoint 1
slSet2   L                                ;Setpoint 2
;-------------------------------------------------------------------------------------
; Definizione Variabili GLOBAL
;-------------------------------------------------------------------------------------
GLOBAL
;-------------------------------------------------------------------------------------
; Definizione Variabili TIMER
;-------------------------------------------------------------------------------------
TIMER
;-------------------------------------------------------------------------------------
; Definizione DATAGROUP
;-------------------------------------------------------------------------------------
DATAGROUP
 
;-------------------------------------------------------------------------------------;
 Configurazione Bus
;-------------------------------------------------------------------------------------
BUS
    1   1CPUB   02
    2   1AI8B   00
    3   1MIXA   00
    4   .
 
;-------------------------------------------------------------------------------------
; Definizione Variabili INPUT
;-------------------------------------------------------------------------------------
INPUT
 
;-------------------------------------------------------------------------------------
; Definizione Variabili OUTPUT
;-------------------------------------------------------------------------------------
OUTPUT
ofGTSet1   F   3.OUT01                    ;Segnalazione superamento setpoint 1->
ofLTSet2   F   3.OUT02                    ;Segnalazione superamento setpoint 2<-
 
;-------------------------------------------------------------------------------------
; Dichiarazione device interni
;-------------------------------------------------------------------------------------
INTDEVICE
;Nome   Tipo   TCamp   Contatore Type
Asse    ANINP  0004    2.AI01 2
 
END

1.7.2 Gestione ANINP

;*************************************************************************************
; Nome File: TASK_00.MOD
; Progetto: EX_ANINP
; Descrizione: Gestione Posizionamento
;*************************************************************************************
 
;-------------------------------------------------------------------------------------
; Operazioni di Inizializzazione Asse
;-------------------------------------------------------------------------------------
Asse:offset = 0                                ;Tensione di offset
 
;-------------------------------------------------------------------------------------
; Fattore di scala: (scaleA * outbit / scaleB) + scaleC
; outUm minima = (4 * 0 / 8 ) + 3 = 3
; outUm massima = (4 * 4095 / 8) + 3 = 2050
;-------------------------------------------------------------------------------------
Asse:scaleA = 4                                ;Fattore di scala A
Asse:scaleB = 8                                ;Fattore di scala B
Asse:scaleC = 3                                ;Fattore di scala C
Asse:tfilter = 10                              ;Tempo del filtro di acquisizione
 
IF slSet1 EQ 0
 slSet1 = 1500
ENDIF
IF slSet2 EQ 0
 slSet2 = 300
ENDIF
;-------------------------------------------------------------------------------------
; Comparazioni sull'ingresso analogico
;-------------------------------------------------------------------------------------
; Variabili utilizzate
; slSet1 : Quota di comparazione per uscita ofGTSet1 (da impostare con Qview)
; slSet2 : Quota di comparazione per uscita ofLTSet2 (da impostare con Qview)
;-------------------------------------------------------------------------------------
 
MAIN:
  IF Asse:outUmF GT slSet1                     ;Se l'ingresso analogico è > del setpoint 1
    SETOUT ofGTSet1                            ;Attiva l'uscita ofGTSet1
  ELSE
    RESOUT ofGTSet1                            ;Disattiva l'uscita ofGTSet1
  ENDIF
 
  IF Asse:outUmF LT slSet2                     ;Se l'ingresso analogico è < del setpoint 2
    SETOUT ofLTSet2                            ;Attiva l'uscita ofLTSet2
  ELSE
    RESOUT ofLTSet2                            ;Disattiva l'uscita ofLTSet2
  ENDIF
 
  WAIT 1
  JUMP MAIN
 
END
  • Ultima modifica: 2020/07/13 15:01