Soluzione # - CS333281

Il server restituisce una stringa dal PLC S7-1200 con i primi due caratteri mancanti

Modifica: 03-Apr-2025   


Nota: Questo articolo è stato tradotto per la sua comodità utilizzando un software di traduzione automatica. PTC non garantisce l'affidabilità o la leggibilità dei contenuti di questa traduzione. Clicca qui per vedere la versione originale di questo articolo in inglese. Per ulteriori informazioni sulla traduzione automatica, clicca qui.
Grazie per averci informato. Esamineremo questa traduzione il prima possibile.

Si applica a

  • Kepware Server (formerly KEPServerEX) 5.19.467.0 to 6.8
  • ThingWorx Kepware Server (legacy) 8.0 to 8.4

Descrizione

Problema: i primi due caratteri mancano quando si legge una stringa da un blocco dati in un PLC Siemens S7-1200. Possibile causa: â?? Una stringa creata in un blocco dati nel PLC S7-1200 avrà una lunghezza fissa di 256 byte. I suoi primi due byte indicano la lunghezza dei dati della stringa corrente e la lunghezza massima della stringa. Per avere una lunghezza specifica in un blocco dati PLC, la stringa deve essere creata come un array di caratteri. In entrambi i tipi di blocchi dati, la fine della stringa sarà contrassegnata con un terminatore nullo. Se un tag viene creato come stringa nel server, il driver tratterà sempre i primi due byte come campi di lunghezza. Di conseguenza, non li leggerà. Ad esempio, un array di 18 caratteri viene creato in "DB 12" e viene inizializzato al valore di "KEPWARE". Se un tag viene creato nel server con un indirizzo di "DB12,STRING0,18", nel client verrà visualizzato un valore di "PWARE". Questo perché il driver presuppone che i primi due byte siano dati di lunghezza. Se un tag viene creato nel server con un indirizzo di "DB12,C0,18" e il tipo di dati è impostato su stringa, l'intera stringa verrà visualizzata come valore nel client. Soluzione: quando si leggono stringhe vere da un blocco di dati, utilizzare il tipo di indirizzo String. In alternativa, utilizzare i tipi di indirizzo carattere per garantire che i caratteri iniziali non vengano ignorati.
This is a PDF version of Article 333281 and may be out of date. For the latest version CS333281