Data: 04 Novembre 2008
Os: 13.15.2811
RoboxLib: 3.4.0
Derivata da : RTE 33.11.7
Nota: suite con >= RDE3.5.0
Nota: suite con >= RC3E v33.2.4
build7
•IMPLEMENTAZIONE
MV_TO_CJV_INFO
Questa funzione calcola lo spazio e il tempo necessario per raggiungere la velocità desiderata con accelerazione pari a 0. Si devono fornire i dati di cinematica attuali e valori di velocità, accelerazione e jerk desiderati. Viene quindi restituita la posizione in cui sarà raggiunta la velocità target desiderata ed il tempo necessario.
Sintassi: esito = MV_TO_CJV_INFO (struct STRU_MVTOCJV_INFO dm)
Parametri:
oesito rende vero se tutti i parametri sono OK , altrimenti se la accelerazione o jerk sono uguali a 0 rende falso e viene generato l'allarme
9900 Illegal Arg. A:1 T:xx St:yyy
odm struttura di tipo stru_mv_to_cjv_info o di tipo STRU_MVTOCJV_INFO contenente i dati di lavoro.
i dati entranti sono:
▪dati correnti (cPos, cSpeed, cAcc)
▪dati desiderati (dAcc, dJerk, targetSpeed)
i dati uscenti sono:
▪posInfo valore di posizione finale
▪timeInfo tempo di missione
Nota: tipicamente questa funzione viene usata in congiunzione con MV_TO_CJV o MV_TO_CJVE. In tal caso è indispensabile fornire gli stessi dati di ingresso come valori correnti, accelerazione e jerk.
•IMPLEMENTAZIONE
DISPAN_ON
Aggiunta la direttiva per associare la dispan alla seriale specificata
•IMPLEMENTAZIONE
SYS_LOG
Aggiunte le informazioni (prima del report) dei tempi di riferimento e del tempo attuale da usarsi come eventuale riferimento per la conversione da tempi del report in data/ora
•IMPLEMENTAZIONE
SYS_FLAG
Aggiunto il bit
obit 10 0x00000400 abilita, per diagnostica, il report informazioni interne per l'istruzione MV_TO_CJV
build6
•IMPLEMENTAZIONE
TM2DATE
Direttiva per convertire il tempo del report in data e ora.
Sintassi - Nei comandi che seguono il parametro opzionale -REP serve per inserire il risultato del comando anche nel report:
oTM2DATE [-REP] visualizza il valore attuale di tempo nei due formati
oTM2DATE -REF [-REP] mostra i dati di riferimento utilizzati per ricostruire l'ora
oTM2DATE tm [-REP] converte il tempo TM in data e ora utilizzando i dati di riferimento dell'attuale accensione.
oTM2DATE tm initTM date time [-REP] converte il tempo TM in data e ora utilizzando i dati di riferimento specificati su comando
•CORREZIONE
SERIALI
Le seriali non presenti non vengono più erroneamente inizializzate
•IMPLEMENTAZIONE
MV_TO_CJV
Questa funzione porta dalla velocità attuale a quella di regime controllando l'accelerazione con il jerk specificato.
La funzione termina il suo lavoro quando ci si arresta sulla posizione target specificata. E' possibile in qualsiasi momento la variazione delle grandezze desiderate (posizione target, velocità di regime, accelerazione e jerk)
Sintassi: esito = MV_TO_CJV ( struct STRU_MVTOCJV dm, [holdflag [, fr]])
esito = MV_TO_CJV ( struct STRU_MVTOCJVE dm, [holdflag [, fr]])
Parametri:
oesito codice reso dalla funzione. I possibili valori sono:
▪MV_IN_ALARM
▪MV_POSITIONING
▪MV_OVERSHOOTING
▪MV_ACCEL
▪MV_AT_SPEED
▪MV_DECEL
▪MV_REACHED
odm struttura di tipo STRU_MVTOCJV o di tipo STRU_MVTOCJVE contenente i dati di lavoro.
I dati correnti (cPos, cSpeed, cAcc) tipicamente sono imposti solo quando si effettua la prima chiamata alla funzione, dopo di che vengono aggiornati dalla istruzione e dall'esterno devono usati dopo l'esecuzione della istruzione.
Nota: Se si utilizza questa funzione per movimentare un asse, l'imposizione delle grandezze cinematiche DEVE essere effettuata usando l'istruzione SET_KINEMATICS (es. SET_KINEMATICS(nax, dm.cPos, dm.vPos, dm.APos)).
I dati desiderati (dpos, dspeed, dacc, djerk) possono essere imposti solo in qualsiasi momento.
La zona riservata della struttura contiene informazioni diagnostiche da comunicare alla Robox in caso di anomalie di funzionamento.
oholdflg parametro opzionale - flag di richiesta di hold della movimentazione (default 0)
ofr parametro opzionale - valore di riduzione runtime (0 -:- 1) della velocità di esecuzione della movimentazione (default 1.0)
In caso di struttura di tipo STRU_MVTOCJVE vengono inoltre forniti i dati relativi alla posizione di un eventuale arresto immediato e il tempo relativo necessario
•CORREZIONE
AM(0)
Evitato di imporre a 1 il bit AM(0).9 quando si generava un allarme non definito
•CORREZIONE
SYS_LOG
Corretto errore che limitava erroneamente il report composito (os+rte)
•IMPLEMENTAZIONE
BCC_REPLY_NACK
Istruzione per rispondere un messaggio NACK
Sintassi : reso = BCC_REPLAY_NACK (bRx, nack [, par])
Dove :
oreso 0 --> esito con errore, 1 OK
obRx struttura di tipo BCC_MSGUSER in cui è stato ricevuto il messaggio
onack codice nack da rispondere
opar opzionale - parametro aggiuntivo di alcuni codici NACK.
•IMPLEMENTAZIONE
BCC_REPLY_MSG
Istruzione per rispondere un messaggio
Sintassi : reso = BCC_REPLY_MSG (bRx, bTx [, msgCode [, lendata])
Dove :
oreso 0 --> esito con errore, 1 OK
obRx struttura di tipo BCC_MSGUSER in cui è stato ricevuto il messaggio
obTx struttura di tipo BCC_MSGUSER con i dati da inviare
omsgCode opzionale - codice del messaggio da inviare, se non specificato mantiene quello presente in bTx
opar opzionale - lunghezza dell'area dati del messaggio da inviare, se non specificata mantiene quello presente in bTx
build4
•IMPLEMENTAZIONE : LADDER OB
Integrazione della gestione degli Ob in ladder. Accetta file di tipo 1.2.0 1.3.1 e temporaneamente 1.3.0 (destinato a non essere più accettato)
build3
•IMPLEMENTAZIONE : MVA_ZC
Aggiunto gestione del bit 0x800 (bit.11). I bit è utilizzato solo se si è selezionato il ciclo di 0 di tipo monodirezionale, con il u0 e con la ricerca della variazione iniziale. In questo caso se il bit è in 1, dopo che si trova la variazione del u0 la velocità di posizionamento "velPos" viene mantenuta per uno spazio pari al parametro "spSch". Indi si passa alla velocità "velZc" per effettuare la fase finale. In pratica di allunga la fase di posizionamento iniziale (dopo che si è trovato il u0) di "spSch".
con zcFlag = 0x813 -(bit11) 1000 0001 0011 (bit0)
v
velPos . . ./------------- ------------\
. . . . . . . ./ . . . . . . . . . . . . . . . . . \
velZc. . ./ . . . . . . . . . . . . . . . . . . . \ ________
. . . . . . / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \
---------------------------------------------------------- > space
. . . . . . . . . . . |<----- spSch --->|
. . . . . . . . . . . _ . . . . . . . . . . . . . . . . . . . . . . . . _
u0. . . ______| |________________________| |______
con zcFlag = 0x013 -(bit11) 0000 0001 0011 (bit0)
v
velPos . . ./----\
. . . . . . . ./. . . . \
velZc. . ./ . . . . . \ _______________________
. . . . . . / . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \
---------------------------------------------------------- > space
. . . . . . . . . . . _ . . . . . . . . . . . . . . . . . . . . . . . . _
u0. . . ______| |________________________| |______
build1
•CORREZIONE : DF1
Eliminato generazione di 'Undefined opcode' che si presentava nella seguente condizione:
outilizzo di più seriali
oerrore in file df1.cfg a partire dalla linea della definizione del secondo seriale.
ocomunicazione su linea da parte di pannello operatore su seriale configurato.
•CORREZIONE : TRASDUTTORI R o RR
Se come tipo di traduttore è selezionato R o RR (utilizzati in modo incrementale o in modo assoluto) viene azzerato il relativo bit di C0_DONE all'accensione.
Se come tipo di traduttore è selezionato NVR o NVRR (utilizzati in modo incrementale o in modo assoluto) NON viene azzerato il relativo bit di C0_DONE all'accensione.
•CORREZIONE : F_CLOSE
Controllo che il file handler non sia nullo, in caso di errore si genera allarme 9900 con codice 1
La routine azzera inoltre stru_filehnd.
•CORREZIONE : F_PUTS
Controllo che il file handler non sia nullo, in caso di errore si genera allarme 9900 con codice 2
•CORREZIONE : F_GETS F_SEEK
Controllo che il file handler non sia nullo, in caso di errore si genera allarme 9900 con codice 3
•CORREZIONE : F_WRITE F_READ
Controllo che il file handler non sia nullo, in caso di errore si genera allarme 9900 con codice 4
•CORREZIONE : TIME HOUR MINUTE SECOND
All'accensione il tempo di sistema poteva essere erroneamente azzerato.
Risolto questo inconveniente sorto dalla versione 33.8.1
build0
•IMPLEMENTAZIONE : MV_TO_CJ
Implementazione istruzione e funzione OB
pos = MV_TO_CJ (esito, start, struct STRU_MVTOCJ dm, [holdflag [, fr]])
esecuzione di una movimentazione verso un target di una grandezza generica specificando velocità desiderata, accelerazione e jerk
I dati sono assunti solo su start. In caso di partenza con velocità diversa da 0 si ha una fase di arresto della grandezza prima di partire verso il target programmato.
Hold e variazioni di fr sono gestiti utilizzando una rampa lineare di velocità.
Rende:
opos -> valore di posizione della grandezza
Parametri:
oesito nome di una variabile di tipo intero in cui l'istruzione scrive il codice di esito
▪MV_IN_ALARM
▪MV_POSITIONING
▪MV_INITIALIZING
▪MV_ACCEL
▪MV_AT_SPEED
▪MV_DECEL
▪MV_HOLDED
▪MV_REACHED
ostart nome di una variabile di tipo intero usata per far acquisire i dati di missione (qualsiasi valore diverso da 0), l'istruzione resetta la richiesta scrivendoci 0
odm struttura di tipo STRU_MVTOCJ contenente i dati di lavoro. I dati correnti (cpos, cspeed, cacc) devono essere imposti solo nel momento dello start, dopo di che vengono aggiornati dalla istruzione e dall'esterno possono usati dopo l'esecuzione della istruzione. I dati desiderati (dpos, dspeed, dacc, djerk) devono essere imposti solo nel momento dello start, dopo di che non sono più utilizzati dall'istruzione. L'unico dato che può essere aggiornato runtime è delta. La zona riservata della struttura non deve essere assolutamente scritta in quanto contiene tutti i dati si missione.
oholdflg parametro opzionale - flag di richiesta di hold della movimentazione (default 0)
ofr parametro opzionale - valore di riduzione runtime (0 -:- 1) della velocità di esecuzione della movimentazione (default 1.0)
•CORREZIONE : MVA_TO_N_CJ
Eliminato partenza eccessivamente lenta. Risolto questo inconveniente
•CORREZIONE : MV_TABLE
Eliminato l'errore di generazione posizione se la 'x' fornita era maggiore o uguale all'ultima 'x' della tabella (solo su CAM1)
Il problema era comunque ovviabile aggiungendo una struttura in più (non dichiarata) in fondo al buffer contenente gli stessi dati dell'elemento precedente
•CORREZIONE : MVA_TO_N_CJ
Facendo una missione nulla il codice di reso non era MV_REACHED ma MV_HOLDED. Risolto questo inconveniente