Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisione Revisione precedente | |||
| software:devices:aninp [2019/08/29 17:01] – modifica esterna 127.0.0.1 | software:devices:aninp [2020/07/13 15:01] (versione attuale) – qem103 | ||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| + | ====== DEVICE ANINP ====== | ||
| + | |||
| + | |||
| + | ====== - 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 dellingresso vengono riportate nel fascicolo hardware della scheda.\\ I cablaggi e collegamenti dellapparecchiatura descritta nel presente manuale, devono rispettare la Normativa Europea EN60204-1. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ^: | ||
| + | |||
| + | ===== - Installazione ===== | ||
| + | |||
| + | ==== - Dichiarazione device nella unit di configurazione ==== | ||
| + | |||
| + | Nella unit di configurazione, | ||
| + | presenti le risorse hardware necessarie allimplementazione 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: | ||
| + | <code QCL> | ||
| + | ; | ||
| + | ; Dichiarazione devices | ||
| + | ; | ||
| + | INTDEVICE | ||
| + | ... | ||
| + | <nome device> | ||
| + | </ | ||
| + | dove: | ||
| + | |<nome device> | ||
| + | |NINP|Parola chiave che identifica il device ingresso analogico| | ||
| + | |Tcamp|Tempo campionamento device (1÷255 ms)| | ||
| + | |IChn|indirizzo ingresso ADC| | ||
| + | |Type|Numero indentificativo tipo di ingresso (fare riferimento alla scheda tecnica hardware)| | ||
| + | |||
| + | ^: | ||
| + | |||
| + | ==== - Esempio ==== | ||
| + | |||
| + | <code QCL> | ||
| + | ; | ||
| + | ; Dichiarazione devices | ||
| + | ; | ||
| + | INTDEVICE | ||
| + | AnSensor | ||
| + | </ | ||
| + | |||
| + | ===== - Funzionamento ===== | ||
| + | |||
| + | Allaccensione 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 laggiornamento dei dati | ||
| + | sulla base del tempo di campionamento. Nel caso vengano riscontrati errori o imprecisioni, | ||
| + | stato // | ||
| + | La conversione del dato in uscita dal device (// | ||
| + | viene eseguita ricorrendo a dei fattori di scala (// | ||
| + | formula: | ||
| + | |||
| + | //**outUm = (scaleA x outbit / scaleB) + scaleC**// | ||
| + | |||
| + | Oltre a questa uscita aggiornata sulla base del tempo di campionamento del device, è disponibile | ||
| + | luscita //outUmF//, filtrata con un tempo di carica //tfilter// programmabile (espresso in ms). | ||
| + | |||
| + | ^: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== - Configurazione ==== | ||
| + | |||
| + | Una singolo ingresso può essere gestito da più device ANINP contemporaneamente, | ||
| + | |||
| + | ===== - Comandi e parametri ===== | ||
| + | |||
| + | ==== - 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 dellinizializzazione del device | ||
| + | mantiene lo stato precedentemente definito), oppure lo stato che assume al momento | ||
| + | dellinizializzazione del device.\\ | ||
| + | Se il device non necessita di inizializzazione il campo R indica il valore che il parametro o stato | ||
| + | assume allaccensione della scheda.\\ | ||
| + | R = Ritentivo\\ | ||
| + | 0 = Al momento dellinizializzazione del device il valore viene forzato a zero.\\ | ||
| + | 1 = Al momento dellinizializzazione del device il valore viene forzato a uno.\\ | ||
| + | - = Al momento dellinizializzazione del device viene presentato il valore significativo. | ||
| + | |||
| + | **D**\\ | ||
| + | Indica la **dimensione del parametro**.\\ | ||
| + | F = Flag\\ | ||
| + | B = Byte\\ | ||
| + | W = Word\\ | ||
| + | L = Long\\ | ||
| + | S = Single Float | ||
| + | |||
| + | === - 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 laccettazione del parametro: se vengono | ||
| + | introdotti dei valori esterni ai limiti impostati, il dato viene comunque accettato; pertanto devono | ||
| + | essere previsti opportuni controlli dellapplicativo tali da garantire il corretto funzionamento.\\ | ||
| + | Per lesecuzione di un comando, tutte le relative condizioni devono necessariamente essere | ||
| + | soddisfatte; | ||
| + | |||
| + | **A**\\ | ||
| + | Indica la modalità di accesso.\\ | ||
| + | R = Read (lettura).\\ | ||
| + | W = Write (scrittura).\\ | ||
| + | RW = Read / Write. | ||
| + | |||
| + | ===== - Tabella parametri ===== | ||
| + | |||
| + | ^NOME^D^R^A^Condizioni^Descrizione^ | ||
| + | |outbit|W|-|R|Nessuna|**Output measure in bits**\\ Valore letto dal canale di ingresso compensato dell' | ||
| + | |offset|W|R|RW|Nessuna|**Offset compensation**\\ Offset uscita DAC in bit. Definisce il valore in bit della correzione relativa all' | ||
| + | |scaleA|W|R|RW|Nessuna|**Scale A**\\ Valore intero parametro A formula di scaling.\\ Range valido: -32768 ÷ 32767| | ||
| + | |scaleB|W|R|RW|Nessuna|**Scale B**\\ Valore parametro B utilizzato nella formula di scaling. Deve essere necessariamente diverso da zero.\\ Range valido: -32768 ÷ 32767| | ||
| + | |scaleC|W|R|RW|Nessuna|**Scale C**\\ Valore parametro C utilizzzato nella formula di scaling.\\ Range valido: -32768 ÷ 32767| | ||
| + | |outUm|L|-|R|Nessuna|**Output measure in unity**\\ Uscita derivata dalla formula di scaling.\\ Range valido: -32768 ÷ 32767| | ||
| + | |tfilter|W|R|RW|Nessuna|**Filter time**\\ Tempo di carica del filtro RC. Se tfilter < = Tcamp device, il filtro è disattivato. Valore espresso in unità ms.\\ Range valido: 0 ÷ 32767| | ||
| + | |outUmF|L|-|R|Nessuna|**Filtered output in unity of measure**\\ Uscita in unità di misura, filtrata.\\ Range valido: -32768 ÷ 32767| | ||
| + | |||
| + | ===== - Tabella stati ===== | ||
| + | |||
| + | ^NOME^D^R^A^Condizioni^Descrizione^ | ||
| + | |st_errcfg|F|-|R|Nessuna|**Configuration error**\\ Segnala che è stato rilevato un errore nella configurazione dell' | ||
| + | |||
| + | ===== - Limitazioni ===== | ||
| + | |||
| + | ==== - Scaling ==== | ||
| + | |||
| + | //ScaleB// deve essere impostato diverso da zero, in caso contrario //OutUm// viene forzato a 0. | ||
| + | |||
| + | ==== - 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//. | ||
| + | |||
| + | ==== - Offset ==== | ||
| + | |||
| + | Il parametro //offset// viene sommato allingresso analogico acquisito (// | ||
| + | il controllo sulloverflow della somma. | ||
| + | |||
| + | ==== - 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' | ||
| + | |||
| + | Una singola risorsa hardware (ogni singolo ingresso) può essere gestita da più device ANINP | ||
| + | contemporaneamente, | ||
| + | nella dichiarazione del device (file di configurazione), | ||
| + | analogico viene configurato come l' | ||
| + | |||
| + | ===== - Esempio applicativo ===== | ||
| + | |||
| + | ==== - Unit di configurazione ==== | ||
| + | |||
| + | <code QCL> | ||
| + | ; | ||
| + | ; Nome Modulo: Ex_Aninp.CNF | ||
| + | ; Autore: QEM srl Data : 01/05/99 | ||
| + | ; Sistema: QMove1 / QCL3 Libreria: 1LIB3B04 | ||
| + | ; Funzionalità: | ||
| + | ; | ||
| + | ; [1] - Applicativo di esempio per utilizzo device ANINP | ||
| + | ; | ||
| + | ; | ||
| + | ; Definizione Costanti | ||
| + | ; | ||
| + | CONST | ||
| + | ; | ||
| + | ; Definizione Variabili SYSTEM | ||
| + | ; | ||
| + | SYSTEM | ||
| + | slSet1 | ||
| + | slSet2 | ||
| + | ; | ||
| + | ; Definizione Variabili GLOBAL | ||
| + | ; | ||
| + | GLOBAL | ||
| + | ; | ||
| + | ; Definizione Variabili TIMER | ||
| + | ; | ||
| + | TIMER | ||
| + | ; | ||
| + | ; Definizione DATAGROUP | ||
| + | ; | ||
| + | DATAGROUP | ||
| + | |||
| + | ; | ||
| + | | ||
| + | ; | ||
| + | BUS | ||
| + | 1 | ||
| + | 2 | ||
| + | 3 | ||
| + | 4 . | ||
| + | | ||
| + | ; | ||
| + | ; Definizione Variabili INPUT | ||
| + | ; | ||
| + | INPUT | ||
| + | |||
| + | ; | ||
| + | ; Definizione Variabili OUTPUT | ||
| + | ; | ||
| + | OUTPUT | ||
| + | ofGTSet1 | ||
| + | ofLTSet2 | ||
| + | |||
| + | ; | ||
| + | ; Dichiarazione device interni | ||
| + | ; | ||
| + | INTDEVICE | ||
| + | ;Nome | ||
| + | Asse ANINP 0004 2.AI01 2 | ||
| + | |||
| + | END | ||
| + | </ | ||
| + | |||
| + | ==== - Gestione ANINP ==== | ||
| + | |||
| + | <code QCL> | ||
| + | ; | ||
| + | ; Nome File: TASK_00.MOD | ||
| + | ; Progetto: EX_ANINP | ||
| + | ; Descrizione: | ||
| + | ; | ||
| + | |||
| + | ; | ||
| + | ; 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: | ||
| + | |||
| + | IF slSet1 EQ 0 | ||
| + | | ||
| + | ENDIF | ||
| + | IF slSet2 EQ 0 | ||
| + | | ||
| + | ENDIF | ||
| + | ; | ||
| + | ; Comparazioni sull' | ||
| + | ; | ||
| + | ; 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 | ||
| + | SETOUT ofGTSet1 | ||
| + | ELSE | ||
| + | RESOUT ofGTSet1 | ||
| + | ENDIF | ||
| + | | ||
| + | IF Asse:outUmF LT slSet2 | ||
| + | SETOUT ofLTSet2 | ||
| + | ELSE | ||
| + | RESOUT ofLTSet2 | ||
| + | ENDIF | ||
| + | |||
| + | WAIT 1 | ||
| + | JUMP MAIN | ||
| + | |||
| + | END | ||
| + | </ | ||
| + | |||