DOCA0131IT-03

Lettura/scrittura dati aciclici tramite PROFIBUS DP V1

Panoramica

Per l'accesso aciclico DP V1, nel controller LTMR è implementato un meccanismo basato su slot/indice e indirizzamento lunghezza.

NOTA: Tutti i registri accessibili sono descritti nella sezione Gruppi di variabili di comunicazione. Se necessario sono organizzati in gruppi (variabili di identificazione, variabili statistiche,...) e sottogruppi.

L'accesso alle variabili avviene ogni 10 registri. Non è possibile accedere ai registri che si trovano tra due sottogruppi. Se l'accesso è impossibile, non è possibile accedere ad alcun registro e viene restituito un valore di errore rilevato (es. "impossibile trovare tutti i registri") tramiteDP V1.

Lettura dei dati aciclici (DS_Read)

Con la funzione DS_Read , il PROFIBUS DP principale può leggere i dati dal secondario. La tabella seguente illustra il contenuto di un frame DS_Read.

Byte

Sintassi

0 [numero funzione]

0x5E [Funzione DS_Read ]

1 [numero slot]

Valore costante = 1

2 [indice]

Indirizzo registro / 10

L'accesso comune ai registri avviene ogni 10 registri.

L'indice è sempre arrotondato per difetto al numero intero.

3 [lunghezza]

Lunghezza dei blocchi di dati in byte

(Numero di registri) x 2

Numero massimo dei registri = 20 (40 byte)

È possibile qualsiasi lunghezza compresa tra 2 e 40 byte.

da 4 a (lunghezza + 3)

Blocco di byte di dati da leggere.

DS_Read Esempio

Esempio: Lettura dei registri di identificazione da 50 a 62

Byte

Valore

0 [numero funzione]

0x5E [Funzione DS_Read ]

1 [numero slot]

1

2 [indice]

5 [50/10]

3 [lunghezza]

26 [(da 50 a 62 = 13) x 2]

Da 4 a 29

Valore dei registri da 50 a 62

Invio di dati aciclici (DS_Write)

Con la funzione DS_Write , il PROFIBUS DP principale può inviare dati a quello secondario.

Prima di scrivere un blocco di dati si raccomanda di procedere alla sua lettura, in modo da proteggere i dati che non vengono coinvolti dal processo di scrittura. L'intero blocco verrà scritto solo se si dispone dell'autorizzazione di scrittura, da verificare all'interno di ciascuna tabella dei registri nella sezione Gruppi di variabili di comunicazione. Le intestazioni della colonna 3 indicano se le variabili in ciascuna tabella sono di sola lettura o lettura/scrittura.

La tabella seguente illustra il contenuto di un frame DS_Write.

Byte

Sintassi

0 [numero funzione]

0x5F [funzione DS_Write ]

1 [numero slot]

Valore costante = 1

2 [indice]

Indirizzo registro / 10

L'accesso comune ai registri avviene ogni 10 registri.

L'indice è sempre arrotondato per difetto al numero intero.

3 [lunghezza]

Lunghezza dei blocchi di dati in byte

(Numero di registri) x 2

Numero massimo dei registri = 20 (40 byte)

È possibile qualsiasi lunghezza compresa tra 2 e 40 byte.

da 4 a (lunghezza + 3)

Blocco di byte di dati da scrivere.

DS_Write Esempio: Descrizione del processo

Esempio: Reimpostazione di un disinnesto impostando il bit 704.3 a 1

1. Leggere 700 con 704.

Byte

Valore

0 [numero funzione]

0x5E [Funzione DS_Read ]

1 [numero slot]

1

2 [indice]

70 [700/10]

3 [lunghezza]

10 [(da 700 a 704 = 5) x 2]

Da 4 a 13

Valore corrente dei registri da 700 a 704

2. Impostazione del bit 3 del registro 704 a 1.

3. Scrittura dei registri da 700 a 704.

Byte

Valore

0 [numero funzione]

0x5F [funzione DS_Write ]

1 [numero slot]

1

2 [indice]

70 [700/10]

3 [lunghezza]

10 [(da 700 a 704 = 5) x 2]

Da 4 a 13

Nuovo valore dei registri da 700 a 704

Feedback in caso di errore rilevato

Se l'accesso non è possibile, non è possibile accedere ad alcun registro e viene restituito un valore di errore rilevato tramite DP V1.

I primi 4 byte della risposta su DP in caso di errore rilevato sono:

Byte

Valore

Significato

0

0xDE/ 0xDF

per DS_Read / DS_Write

1

0x80

indicazione DP V1

2

0xB6

classe di errore rilevata + codice di errore rilevato 1 = accesso negato

3

0xXX

codice di errore rilevato 2, LTMR specifico (vedere tabella seguente)

Segue il codice di errore rilevato 2, LTMR specifico:

Codice di errore rilevato 2

Significato

01

Stack interno richieste pieno

03

Registro non gestito o necessità di diritti di accesso da superutente

06

Registro definito ma non scritto

07

Impossibile trovare tutti i registri

08

Registri non autorizzati alla scrittura

10

Valore scritto fuori dal range del registro, valore parola troppo ampio (troppo alto)

11

Valore scritto fuori dal range del registro, valore parola troppo piccolo (troppo basso)

12

Valore scritto fuori dal range del registro, (valore MSB troppo ampio)

13

Valore scritto fuori dal range del registro, (valore MSB troppo piccolo)

14

Valore scritto fuori dal range del registro, (valore LSB troppo ampio)

15

Valore scritto fuori dal range del registro, (valore LSB troppo piccolo)

16

Valore scritto non valido

20

Rifiuto da parte del modulo, restituzione di un frame di errore rilevato

255

Errore interno rilevato

Il tipo di codice e classe di errore rilevato presentati alla logica utente dipendono dall'implementazione del primario (ad esempio il PLC).

Il meccanismo accede solo a blocchi di parametri che iniziano ad un parametro dedicato (indirizzo MB). Questo significa che si accede anche a parametri (indirizzi MB) non utilizzati. Il valore dei dati letti da questi parametri è 0x00. In caso di scrittura, è necessario scrivere su questi parametri il valore 0x00. Diversamente l'accesso in scrittura verrà negato.

Registri interni TeSys T

Per maggiori dettagli sui registri interni TeSys T, consultare Communication Variables tables.

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

Le informazioni sono state utili?