Introduzione
Da RTE 34.9.5 è possibile comunicare con i controlli Robox in modalità Profinet device.
Il controllo Robox appare come una periferica di tipo SLAVE all'interno della rete PROFINET.
La gestione viene attuata come emulazione profibus DPSlave se canale PROFINET attivato e PFB.CFG presente nell'alias di cartella SYS_DIR o FB_DIR.
Per maggiori dettagli, vedere documentazione profibus.
Nota: rispetto a Profibus i blocchi scambiabili sono 11 in TX e 11 in RX, anzichè 6.
Da RTE34.15.4 è stata aggiunta la possibilità di gestire delle informazioni SINCRONE (IRT).
Nella definizione di blocco è stato aggiunto l'attributo IRT BLOCK_TO_RBX n [IRT] dove:
•n è il numero del blocco
•IRT specifica che il blocco in arrivo contiene dati IRT
e la nuova keyword IRT_TO n [IRT] dove:
•n è l'indice RR dove inserire il reference time TO
Esempio
in PFB.cfg IRT_TO 211 ; definizione dell'indice RR dove memorizzare il Time Output ... BLOCK_TO_ROBOX 1 IRT O-0 R_32 1001 ; posizione del riferimento del master in [unit] O-4 R_32 1002 ; velocità del master in millesimi di unit/sec [unit/1000/sec] ... in RULE LIT rr_Irt_TO_PN RR(211) LIT r_PosMaster_PN R(1001) LIT r_SpeedMaster_PN R(1002) ... REAL irt_to ; tempo di applicazione dei dati irt [uSec] REAL irt_to_prec ; valore precedente di irt_to [uSec] REAL dtMaster ; delta tempo variazione master [sec] REAL velMaster ; velocità del master [unit/sec] REAL deltaPosMaster ; variazione della posizione del master [unit] INT posMaster ; posizione del master arrivato da profinet [unit] INT posMasterPrec ; posizione precedente del master arrivato da profinet [unit] INT adjMaster ; posizione del master aggiustata al tempo di esecuzione delle rule INT adjMasterPrec ; posizione precedente del master aggiustata su rule [unit] REAL deltaAdjMaster ; variazione di posizione del master [unit] REAL totMaster ; totalizzatore del master [unit] INT mstFlag ; flag per specificare come gestire le informazioni del master ; 0 --> 0x01 Riferimento di velocità presente ; 1 --> 0x02 dimensione della posizione master 1 indica 32 bit, 0 indica 16 bit REAL KconvSpeedPN2US = 0.001 ; costante per converite la velocità del master ricevuta via profinet in velocità in unità/sec ... FUNCTION AdjMasterPosition () ; aggiorna i dati in arrivo da Profinet. irt_to = rr_Irt_TO_PN ; tempo output configurato in pfb.cfg [microsecondi] posMaster = r_PosMaster_PN ; spazio master configurato in pfb.cfg [unità master] ... IF (mstFlag.(0)) ; poszione e velocità master sono froniti direttamente da PN velMaster = r_SpeedMaster_PN * KconvSpeedPN2US ; conversione della velocità in [unità master/sec] ELSE ; gestione se viene fornita solo la posizione del master.. IF ((irt_to <> irt_to_prec) AND (irt_to_prec<>0)) dtMaster = (irt_to - irt_to_prec)/1e6 ; tempo tra ultime due letture (da rule) del Time Output PN in secondi irt_to_prec = irt_to ; calcolo dello spazio del master tra ultime due letture (da rule) IF (mstFlag.(1)) deltaPosMaster = DELTA_ENC32(posMaster, posMasterPrec) ; con posizioni di 32 bit ELSE deltaPosMaster = DELTA_ENC16(posMaster, posMasterPrec) ; con posizioni di 16 bit ENDIF ; calcolo della velcita in [unita master/sec] velMaster = (deltaPosMaster) / dtMaster ENDIF ; aggiorna i dati precedenti posMasterPrec = posMaster irt_to_prec = irt_to ENDIF ; calcola la poszione del master aggiustata alla battuta delle rule adjMaster = posMaster + velMaster * (SYNCH_HW_TIME - irt_to)/1e6 IF (mstFlag.(1)) deltaAdjMaster = DELTA_ENC32 (adjMaster , adjMasterPrec) ; con posizioni di 32 bit ELSE deltaAdjMaster = DELTA_ENC16 (adjMaster , adjMasterPrec) ; con posizioni di 16 bit ENDIF ; aggiorna i dati precedenti adjMasterPrec = adjMaster ; calcolo del master che evolve verso l'infinito ed oltre totMaster = totMaster + deltaAdjMaster END_FUN |