software:devices:recdata

DEVICE RECDATA

1. 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 l’asse)
  • 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.

Nel file di configurazione (.CNF), la sezione BUS deve essere dichiarata in modo tale che siano presenti le risorse hardware necessarie all'implementazione del device RECDATA.
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.
;---------------------------------
; Dichiarazione devices interni
;---------------------------------
INTDEVICE
..
<NOME_DEVICE> RECDATA TCAMP QCTL1 QCTL2 IOUTA1 IOUTA2 INTL1 INTL2 ING1 ING2 OUT1 OUT2

dove:

<nome device> Nome assegnato al device.
RECDATAParola chiave che identifica il devices.
TCampTempo di campionamento device (1÷255 ms).
QCTL1Indirizzo contatore bidirezionale 1 (per evitare che il device utilizzi questa risorsa inserire il carattere X.X).
QCTL2Indirizzo contatore bidirezionale 2 (per evitare che il device utilizzi questa risorsa inserire il carattere X.X).
IOutA1Indirizzo hardware del componente DAC dell'uscita analogica 1. (per evitare che il device utilizzi questa risorsa inserire il carattere X.X).
IOutA2Indirizzo hardware del componente DAC dell'uscita analogica 2. (per evitare che il device utilizzi questa risorsa inserire il carattere X.X).
IntL1Numero 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.
IntL2Numero della linea di interrupt 2 (per evitare che il device utilizzi questa risorsa inserire il carattere X).
Ing1Ingresso generico 1
Ing2Ingresso generico 2
Out1Uscita generica 1
Out2Uscita generica 2
;---------------------------------
; Dichiarazione devices interni
;---------------------------------
INTDEVICE
Rec  RECDATA  2  2.CNT01  2.CNT02  2.AN01  2.AN02  1  2  2.INP01  2.INP02  2.OUT01  2.OUT02

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’uscita analogica dichiarata nel file di configurazione sia utilizzata da un device di posizionamento analogico (tipo CAMMING o EANPOS), il monitor propone la visualizzazione della posizione teorica dell’asse oltre a quella pratica. La differenza tra i due conteggi è l’errore di inseguimento dell’asse. Il devices di riferimento per queste informazioni è quello che in quel momento sta utilizzando la risorsa hardware di uscita analogica.
E’ possibile avviare la registrazione tramite l’ingresso in interrupt (IntL1)

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 stepnum, il 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 all’interno 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 l’utente risulterà difficile interpretare i dati rilevati senza passare attraverso il QVIEW (l’ambiente di sviluppo dispone di un tool dedicato). Per questo motivo non viene approfondito l’argomento se non su specifica richiesta del cliente.

La presenza di un errore nel device viene segnalato dallo stato st_error.
Quando st_error è uguale a 1, troviamo presente sulla variabile errcode il tipo di errore intervenuto (vedi tabella) e nella variabile errvalue una indicazione sulla causa dell’errore

CodicePrioritàDescrizione
11Modificato parametro mode durante la registrazione

Se il device va in errore, per poter riprendere la lavorazione bisogna cancellare lo stato st_error attraverso il comando RSERR.

La presenza di un warning nel sistema camming viene segnalato dallo stato st_warning.
Essendo causato da un evento non grave ed essendo garantita in questa situazione la gestione del device, il tool continua il suo lavoro.
Quando st_warning è uguale a 1, troviamo presente sulla variabile wrncode il tipo di warning intervenuto (vedi tabella) e nella variabile wrnvalue una indicazione sulla causa che ha provocato il warning.

CodicePrioritàDescrizione
10Comando non eseguito

Per cancellare lo stato st_warning bisogna inviare il comando RSWRN.

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.5.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 inviato.

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

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.

NomeCondizioniDescrizione
STARTRst_rec = 0
st_error = 0
Start recording
Comanda l'inizio dell'acquisizione dei dati.
Attiva lo stato st_reck.
STOPRst_rec = 1Stop recording
Ferma la procedura di registrazione dati.
Azzera lo stato st_rec.
READSTEPstepnum>stepin>1Read step
Consente di leggere lo step specificato in stepin. il dato è disponibile quando stepin=stepout. E' consigliato leggere quando non è in corso una registrazione (st_rec = 0).
INTENBLcapture>0Interrupt enable
Abilita cattura dell'interrupt indicato in IntL1 nel file di configurazione. All'arrivo dell'interrupt il devices inizierà la registrazione che verrà memorizzato in delta.
Attiva lo stato st_intenbl.
INTDSBLNessunaInterrupt disable
Disabilita la cattura dell'interrupt.
Azzera lo stato st_intenbl.
RSCAPTURENessunaReset capture
Disattiva lo stato di st_capture.
RSERRNessunaReset error
Azzera lo stato st_error.
RSWRNNessunaReset warning
Azzera lo stato st_warning.
NomeDRACondizioniDescrizione
stepnumL0RNessunaStep number
Indica il massimo numero di step possibili da registrare. Il valore viene fissato automaticamente all'accensione del sistema e non può essere variato.
Range valido: 1 ÷ 999999
stepinL0R-WNessunaStep input
Indica il numero di step che l'utente intende leggere con il comando di READSTEP.
Range valido: 1 ÷ stepnum
stepoutL0RNessunaStep output
Indica il numero di step disponibile alla lettura nei parametri data1, data2, data3 e data4.
Range valido: -999999 ÷ 999999
data1L0RNessunaData number 1
Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.
Vedi capitolo dediato.
data2L0RNessunaData number 2
Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.
Vedi capitolo dedicato.
data3L0RNessunaData number 3
Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.
Vedi capitolo dedicato.
data4L0RNessunaData number 4
Variabile d'uso. Al suo interno di trovano i valori catturati durante la registrazione.
Vedi capitolo dedicato.
captureBRR-WNessunaCapture mode
Definisce il modo di cattura dell'interrupt sull'impulso di zero.
0=Disabilitato.
1=One-shot su fronte di salita. Viene catturato il primo fronte di salita dell`impulso di zero dopo l`attivazione di st_intenbl.
2=One-shot su fronte di discesa. Viene catturato il primo fronte di discesa dell`impulso di zero dopo l`attivazione di st_intenbl.
Range valido: 0 ÷ 2.
modeBRR-Wst_rec = 0Recording mode
Il modo di registrazione viene definito da un Byte i cui singoli bit, se impostati a 1, abilitano l'acquisizione.
20 = Encoder 1
21 = Encoder 2
22 = Uscita analogica 1
23 = Uscita analogica 2
24 = Errore di inseguimento 1
25 = Errore di inseguimento 2
26 = Encoder virtuale 1
27 = Encoder virtuale 2
Ad esempio, se si vogliono registrare i valori di Encoder 1 e Encoder 2, si imposterà mode = 3
tbaseWRRNessunaTime base
Visualizza il tempo di campionamento programmato nel file di configurazione.
errcodeB0RNessunaError code
Indica il tipo di errore intervenuto nel sistema. Il codice è valido solo se st_error = 1 (Vedi capitolo dedicato)
Range valido: 0 ÷ 100.
errvalueB0RNessunaError value
Indica la causa dell'errore intervenuto nel sistema. Il codice è valido solo se st_error = 1 (Vedi capitolo dedicato)
Range valido: 0 ÷ 100.
wrncodeB0RNessunaWarning code
Indica il tipo di warning intervenuto nel sistema. Il codice è valido solo se st_warning = 1 (Vedi capitolo dedicato)
Range valido: 0 ÷ 100.
wrnvalueB0RNessunaWarning value
Indica la causa del warning intervenuto nel sistema. Il codice è valido solo se st_warning = 1 (Vedi capitolo dedicato)
Range valido: 0 ÷ 100.
NomeDRACondizioniDescrizione
st_intenblF0RNessunaInterrupt enabled
Segnala l'abilitazione alla cattura dello lo start alla registrazione da linea di interrupt. Viene attivato dal comando INTENBL e disattivato dal comando INTDSBL o sul fronte di salita di st_capture.
0 = Interrupt disabilitato
1 = Interrupt abilitato.
All'accensione per default viene posto a zero.
st_captureF0RNessunaInterrupt captured
Segnalazione di interrupt catturato; viene resettato con il comando RSCAPTURE.
0 = Interrupt non catturato
1 = Interrupt catturato
All'accensione per default viene posto a zero.
st_int1F0RNessunaStatus of interrupt line 1
Indica lo stato della linea di interrupt IntL1.
0 = Ingresso in interrupt disattivo.
1 = Ingresso in interrupt attivo.
All'accensione per default viene posto a zero.
st_int2F0RNessunaStatus of interrupt line 2
Indica lo stato della linea di interrupt IntL2.
0 = Ingresso in interrupt disattivo.
1 = Ingresso in interrupt attivo.
All'accensione per default viene posto a zero.
st_errorF0RNessunaStatus of device error
Indica lo stato di errore nel device.
Per la decodifica dell'errore si deve fare riferimento alla variabile errcode ed errvalue.
0 = Errore non presente.
1 = Errore presente.
All'accensione per default viene posto a zero.
st_warningF0RNessunaStatus 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'accensione per default viene posto a zero.

Nessuna limitazione

  • Ultima modifica: 2020/07/13 15:17