Canale aciclico

 

 

Panoramica

NOTA

Se tramite il canale aciclico si accede in scrittura agli oggetti che sono mappati nell'area I/O, i relativi valori vengono sovrascritti nuovamente con il ciclo successivo. Per questo motivo, i dati mappati nell'area I/O non devono essere scritti tramite il canale aciclico!

Tramite il canale aciclico è possibile eseguire istruzioni di scrittura e lettura acicliche. A tal fine, sono state implementate le aree dati per la comunicazione aciclica nell'area di input/output del modulo funzionale. Quest'area comprende 8 byte di dati output e 8 byte di dati input. Essi hanno l'assegnazione seguente:

Richiesta

 

Risposta

Dati output

  • Byte 0: CMD - comando
  • Byte 1: SUBIDX - sottoindice
  • Byte 2: IDX0 - indice (byte low)
  • Byte 3: IDX1 - indice (byte high)
  • Byte 4: DATA0 - dati (byte low)
  • Byte 5: DATA1 - dati
  • Byte 6: DATA2 - dati
  • Byte 7: DATA3 - dati (byte high)

 

 

 

 

Dati input

  • Byte 0: STATUS - stato
  • Byte 1: SUBIDX - sottoindice
  • Byte 2: IDX0 - indice (byte low)
  • Byte 3: IDX1 - indice (byte high)
  • Byte 4: DATA0 - dati (byte low)
  • Byte 5: DATA1 - dati
  • Byte 6: DATA2 - dati
  • Byte 7: DATA3 - dati (byte high)

 

CMD

IDLE→

 

Comando→

 

IDLE→

Stato:

 

←IDLE

 

←Comando

 

←IDLE

CMD - comando

Codice

Nome

Descrizione

0x00

IDLE

Imposta marcia a vuoto.

Con questa istruzione è possibile richiedere lo stato di attesa per una nuova istruzione, dopo che l'esecuzione del comando è stata retrosegnalata tramite STATUS.

0x11

READ_ONCE

Lettura di un oggetto dati

Con questa istruzione è possibile richiedere una volta i dati, dopo che l'istruzione è stata riconosciuta.

0x21

WRITE_ONCE

Scrittura di un oggetto dati

Con questa istruzione i dati vengono scritti solo una volta, dopo che l'istruzione è stata riconosciuta.

SUBIDX - sottoindice: sottoindice nell'elenco degli oggetti

IDX0 / IDX1 - indice: indice nell'elenco degli oggetti

DATA0 – DATA3 - dati: dati da trasmettere

STATUS - stato

Codice

Nome

Descrizione

0x00

IDLE

Marcia a vuoto - in attesa di istruzioni

0x14

READ_ONCE

L'istruzione READ_ONCE è stata riconosciuta, i dati sono validi.

0x24

WRITE_ONCE

L'istruzione WRITE_ONCE è stata riconosciuta, i dati sono stati accettati.

0x81

READ_NOT_EXIST

Anomalia - accesso in lettura - dati non esistenti

L'istruzione non è stata eseguita!

0x91

WRITE_NOT_EXIST

Anomalia - accesso di scrittura - dati non esistenti

L'istruzione non è stata eseguita!

0x92

WRITE_RNG_ERR

Anomalia - accesso di scrittura - area dati superata

L'istruzione non è stata eseguita!

0x93

WRITE_RDO_ERR

Anomalia - accesso di scrittura - è possibile solo la lettura dei dati

L'istruzione non è stata eseguita!

0x94

WRITE_WPR_ERR

Anomalia - accesso di scrittura - i dati sono protetti da scrittura

L'istruzione non è stata eseguita!

0x99

ACYC_COM_ERR

Anomalia durante la comunicazione aciclica

L'istruzione non è stata eseguita!