Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
software:devices:recdata [2017/01/19 16:42] – [2.1. Dichiarazione device nel file di configurazione (.CNF)] qem103 | software:devices:recdata [2024/07/24 09:00] (versione attuale) – [1.2 Funzionamento] qem218 | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | ====== DEVICE RECDATA ====== | ||
+ | |||
+ | |||
+ | ====== - Introduzione ====== | ||
+ | |||
+ | Il device interno RECDATA è uno tool residente nella CPU che permette di gestire la registrazione | ||
+ | dei dati del tipo: | ||
+ | * Conteggi encoder | ||
+ | * Conteggi virtuali asse (è la posizione teorica che deve assumere lasse) | ||
+ | * Uscite analogiche | ||
+ | * Errori di inseguimento assi | ||
+ | * Stato di ingressi | ||
+ | * Stato di uscite | ||
+ | Per registrare questi dati viene sfruttata la RAM della CPU, per questo motivo, per utilizzare | ||
+ | questo device, la percentuale di utilizzo della memoria dei dati (USER Data memory) non deve | ||
+ | superare il 50% della totale. Infatti il device in oggetto occupa da solo il 50% della memoria RAM. | ||
+ | |||
+ | |||
+ | ===== - Installazione ===== | ||
+ | |||
+ | ==== - Dichiarazione device nel file di configurazione (.CNF) ==== | ||
+ | |||
+ | Nel file di configurazione (.CNF), la sezione BUS deve essere dichiarata in modo tale che siano | ||
+ | presenti le risorse hardware necessarie all' | ||
+ | Nella sezione INTDEVICE del file .CNF deve essere aggiunta la seguente definizione: | ||
+ | |||
+ | ^:info:^È necessario che tutte le voci di definizione siano presenti sulla stessa linea. Nel caso in cui non si desideri associare una risorsa, ad esempio IntL, si deve comunque inserire nel relativo campo la stringa X.^ | ||
+ | |||
+ | <code QCL> | ||
+ | ; | ||
+ | ; Dichiarazione devices interni | ||
+ | ; | ||
+ | INTDEVICE | ||
+ | .. | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | dove: | ||
+ | |<nome device>| Nome assegnato al device.| | ||
+ | |RECDATA|Parola chiave che identifica il devices.| | ||
+ | |TCamp|Tempo di campionamento device (1÷255 ms).| | ||
+ | |QCTL1|Indirizzo contatore bidirezionale 1 (per evitare che il device utilizzi questa risorsa inserire il carattere X.X).| | ||
+ | |QCTL2|Indirizzo contatore bidirezionale 2 (per evitare che il device utilizzi questa risorsa inserire il carattere X.X).| | ||
+ | |IOutA1|Indirizzo hardware del componente DAC dell' | ||
+ | |IOutA2|Indirizzo hardware del componente DAC dell' | ||
+ | |IntL1|Numero della linea di interrupt 1 (per evitare che il device utilizzi questa risorsa inserire il carattere X). Questa linea di interrupt può dare lo start alla registrazione.| | ||
+ | |IntL2|Numero della linea di interrupt 2 (per evitare che il device utilizzi questa risorsa inserire il carattere X).| | ||
+ | |Ing1|Ingresso generico 1| | ||
+ | |Ing2|Ingresso generico 2| | ||
+ | |Out1|Uscita generica 1| | ||
+ | |Out2|Uscita generica 2| | ||
+ | <code QCL> | ||
+ | ; | ||
+ | ; Dichiarazione devices interni | ||
+ | ; | ||
+ | INTDEVICE | ||
+ | Rec RECDATA | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== - Funzionamento ===== | ||
+ | |||
+ | Di seguito si riporta uno schema di principio del funzionamento del device RECDATA | ||
+ | {{ : | ||
+ | Il device RECDATA lavora solamente con la risoluzione massima del trasduttore (bit encoder * 4). | ||
+ | Nel caso in cui l' | ||
+ | di posizionamento analogico (tipo CAMMING o EANPOS), il monitor propone la visualizzazione | ||
+ | della posizione teorica dell' | ||
+ | di inseguimento dell' | ||
+ | quel momento sta utilizzando la risorsa hardware di un' | ||
+ | È possibile avviare la registrazione tramite l' | ||
+ | |||
+ | ==== - Step disponibili per la memorizzazione ==== | ||
+ | |||
+ | Il device utilizza il 50% della memoria RAM della CPU, la quale viene suddivisa in bancate di 16 | ||
+ | Byte. Il numero di passi disponibili per la registrazione viene indicato dal parametro // | ||
+ | quale è solamente in lettura, ed è calcolato con la formula:\\ | ||
+ | //stepnum// = RAM disponibile : 16\\ | ||
+ | I 16 Byte della bancata (chiamati step) sono a loro volta divisi in 4 Long, chiamati //data1//, //data2//, | ||
+ | //data3// e //data4//. La formattazione dei dati allinterno della memoria dipende da come viene | ||
+ | impostato il parametro mode seguendo il seguente ordine:\\ | ||
+ | Stato I/O\\ | ||
+ | Encoder 1\\ | ||
+ | Encoder 2\\ | ||
+ | Uscita analogica 1\\ | ||
+ | Uscita analogica 2\\ | ||
+ | Errore di inseguimento 1\\ | ||
+ | Errore di inseguimento 2\\ | ||
+ | Encoder virtuale 1\\ | ||
+ | Encoder virtuale 2\\ | ||
+ | Per lutente risulterà difficile interpretare i dati rilevati senza passare attraverso il QVIEW (lambiente | ||
+ | di sviluppo dispone di un tool dedicato). Per questo motivo non viene approfondito largomento | ||
+ | se non su specifica richiesta del cliente. | ||
+ | |||
+ | |||
+ | ===== - Gestione errori device ===== | ||
+ | |||
+ | La presenza di un errore nel device viene segnalato dallo stato // | ||
+ | Quando // | ||
+ | (vedi tabella) e nella variabile // | ||
+ | |||
+ | ^Codice^Priorità^Descrizione^ | ||
+ | |1|1|Modificato parametro mode durante la registrazione| | ||
+ | |||
+ | Se il device va in errore, per poter riprendere la lavorazione bisogna cancellare lo stato // | ||
+ | attraverso il comando //RSERR//. | ||
+ | |||
+ | |||
+ | ===== - Gestione warning device ===== | ||
+ | |||
+ | La presenza di un warning nel sistema camming viene segnalato dallo stato // | ||
+ | Essendo causato da un evento non grave ed essendo garantita in questa situazione la gestione del | ||
+ | device, il tool continua il suo lavoro.\\ | ||
+ | Quando // | ||
+ | intervenuto (vedi tabella) e nella variabile // | ||
+ | il warning. | ||
+ | |||
+ | ^Codice^Priorità^Descrizione^ | ||
+ | |1|0|Comando non eseguito| | ||
+ | |||
+ | Per cancellare lo stato // | ||
+ | |||
+ | |||
+ | ===== - Tabella 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. | ||
+ | |||
+ | ==== - Comandi ==== | ||
+ | |||
+ | I comandi sono stati ordinati con priorità decrescente. Ad esempio, in caso di contemporaneità | ||
+ | dei comandi //INIT// ed //EMRG//, viene acquisito per primo il comando //INIT//. | ||
+ | |||
+ | ^Nome^Condizioni^Descrizione^ | ||
+ | |STARTR|st_rec = 0\\ st_error = 0|**Start recording**\\ Comanda l' | ||
+ | |STOPR|st_rec = 1|**Stop recording**\\ Ferma la procedura di registrazione dati.\\ Azzera lo stato // | ||
+ | |READSTEP|stepnum> | ||
+ | |INTENBL|capture> | ||
+ | |INTDSBL|Nessuna|**Interrupt disable**\\ Disabilita la cattura dell' | ||
+ | |RSCAPTURE|Nessuna|**Reset capture**\\ Disattiva lo stato di // | ||
+ | |RSERR|Nessuna|**Reset error**\\ Azzera lo stato // | ||
+ | |RSWRN|Nessuna|**Reset warning**\\ Azzera lo stato // | ||
+ | |||
+ | ==== - Parametri ==== | ||
+ | |||
+ | ^Nome^D^R^A^Condizioni^Descrizione^ | ||
+ | |stepnum|L|0|R|Nessuna|**Step number**\\ Indica il massimo numero di step possibili da registrare. Il valore viene fissato automaticamente all' | ||
+ | |stepin|L|0|R-W|Nessuna|**Step input**\\ Indica il numero di step che l' | ||
+ | |stepout|L|0|R|Nessuna|**Step output**\\ Indica il numero di step disponibile alla lettura nei parametri data1, data2, data3 e data4.\\ Range valido: -999999 ÷ 999999| | ||
+ | |data1|L|0|R|Nessuna|**Data number 1**\\ Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.\\ Vedi capitolo dediato.| | ||
+ | |data2|L|0|R|Nessuna|**Data number 2**\\ Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.\\ Vedi capitolo dedicato.| | ||
+ | |data3|L|0|R|Nessuna|**Data number 3**\\ Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.\\ Vedi capitolo dedicato.| | ||
+ | |data4|L|0|R|Nessuna|**Data number 4**\\ Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.\\ Vedi capitolo dedicato.| | ||
+ | |capture|B|R|R-W|Nessuna|**Capture mode**\\ Definisce il modo di cattura dell' | ||
+ | |mode|B|R|R-W|st_rec = 0|**Recording mode**\\ Il modo di registrazione viene definito da un Byte i cui singoli bit, se impostati a 1, abilitano l' | ||
+ | |tbase|W|R|R|Nessuna|**Time base**\\ Visualizza il tempo di campionamento programmato nel file di configurazione.| | ||
+ | |errcode|B|0|R|Nessuna|**Error code**\\ Indica il tipo di errore intervenuto nel sistema. Il codice è valido solo se st_error = 1 (Vedi capitolo dedicato)\\ Range valido: 0 ÷ 100.| | ||
+ | |errvalue|B|0|R|Nessuna|**Error value**\\ Indica la causa dell' | ||
+ | |wrncode|B|0|R|Nessuna|**Warning code**\\ Indica il tipo di warning intervenuto nel sistema. Il codice è valido solo se st_warning = 1 (Vedi capitolo dedicato)\\ Range valido: 0 ÷ 100.| | ||
+ | |wrnvalue|B|0|R|Nessuna|**Warning value**\\ Indica la causa del warning intervenuto nel sistema. Il codice è valido solo se st_warning = 1 (Vedi capitolo dedicato)\\ Range valido: 0 ÷ 100.| | ||
+ | |||
+ | ==== - Stati ==== | ||
+ | |||
+ | ^Nome^D^R^A^Condizioni^Descrizione^ | ||
+ | |st_intenbl|F|0|R|Nessuna|**Interrupt enabled**\\ Segnala l' | ||
+ | |st_capture|F|0|R|Nessuna|**Interrupt captured**\\ Segnalazione di interrupt catturato; viene resettato con il comando RSCAPTURE.\\ **0** = Interrupt non catturato\\ **1** = Interrupt catturato\\ All' | ||
+ | |st_int1|F|0|R|Nessuna|**Status of interrupt line 1**\\ Indica lo stato della linea di interrupt IntL1.\\ **0** = Ingresso in interrupt disattivo.\\ **1** = Ingresso in interrupt attivo.\\ All' | ||
+ | |st_int2|F|0|R|Nessuna|**Status of interrupt line 2**\\ Indica lo stato della linea di interrupt IntL2.\\ **0** = Ingresso in interrupt disattivo.\\ **1** = Ingresso in interrupt attivo.\\ All' | ||
+ | |st_error|F|0|R|Nessuna|**Status of device error**\\ Indica lo stato di errore nel device.\\ Per la decodifica dell' | ||
+ | |st_warning|F|0|R|Nessuna|**Status of device warning**\\ Indica lo stato di warning nel device.\\ Per la decodifica del warning si deve fare riferimento alla variabile wrncode e wrnvalue.\\ **0** = Warning non presente.\\ **1** = Warning presente\\ All' | ||
+ | |||
+ | |||
+ | ===== - Limitazioni ===== | ||
+ | |||
+ | Nessuna limitazione | ||
+ | |||