Abilitare JavaScript per vedere questo sito.

Introduzione

Da RTE 34.9.5 è possibile comunicare con i controlli Robox in modalità ProfiNET device.

Il controllo Robox può essere configurato, tramite le porte ETH FB-S 4 e 5, come dispositivo di I/O all'interno della rete ProfiNET e appare come una periferica di tipo SLAVE.

Rispetto a Profibus il controllo permette di scambiare fino a 352 Byte nelle due direzioni suddivisi in 11 blocchi in TX e 11 in RX, anzichè 6, da 16 word ciascuno.

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.

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

NOTA: Nel caso in cui sia attivo warm_rst.8, tutte le comunicazioni ProfiNET sono disabilitate.

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

 

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC