Tipo di articolo: FAQ, ID articolo: 15262983, Data articolo: 07/05/2008
(0)
Valuta

A cosa occorre fare attenzione nel richiamo dei blocchi di comunicazione FC5/50 "AG_SEND/AG_LSEND" e FC6/60 "AG_RCV/AG_LRCV", se si trasferiscono variabili con il tipo dati "REAL"?

  • Articolo
  • Riguarda prodotto/i

Avvertenze di configurazione
Assicurarsi che nel richiamo dei blocchi di comunicazione FC5/50 "AG SEND/AG_LSEND" e FC6/60 "AG_RCV/AG_LRCV" nel pointer ANY per i parametri d'ingresso SEND e RECV ci sia esclusivamente il tipo dati BYTE.

Se ad esempio con l'impiego dell'FC5 "AG_SEND" si vuole trasmettere una variabile con il tipo dati REAL e si dichiara il pointer ANY sul parametro d'ingresso "SEND" nel modo seguente:

  •  P#DB1.DBX0.0 byte 4,

allora questo pointer ANY viene convertito da STEP 7 nel suo indirizzo simbolico, cioè il pointer ANY mostra il tipo dati REAL nel blocco dati indicato (DB). Per il pointer ANY sul parametro d'ingresso "SEND" sono consentiti i tipi dati "BYTE, WORD e DWORD. In questo esempio viene utilizzato però il tipo dati REAL, cioè di dati da trasferire non vengono interpretati correttamente. Il parametro di uscita ERROR dell'FC5 viene così impostato.


Figura 01: Nome simbolico del pointer ANY

Rimedio
In questo caso aumentare il valore del pointer ANY del parametro d'ingresso "SEND" di almeno 1 byte, per evitare la rappresentazione simbolica del pointer ANY.

La dichiarazione ha allora il seguente aspetto:

  • P#DB1.DBX0.0 byte 5


Figura 02: Pointer ANY con una lunghezza maggiore del valore da trasmettere

Dettagli errore
Descrizione dettagliata del guasto
Aiutateci a migliorare il Supporto online.
La pagina richiamata non può essere visualizzata. Contattare il webmaster.
Contattare il webmaster