FP_ASCII_TO_BIN

ASCII -> conversione binaria

Questa istruzione FP converte il codice ASCII memorizzato nell'area specificata da s2_AsciiData in un dato binario a 16 bit/32 bit. Il metodo di conversione è specificato da s1_Format. Il risultato della conversione viene memorizzato nell'area specificata da d_BinaryData.

NOTA

Le istruzioni FP FP_ASCII_TO_BIN e FP_ASCII_CHECK non distinguono tra maiuscole e minuscole

Parametri

Ingresso

s1_Format (STRING)

Formato stringa e controllo impostati tra virgolette

s2_AsciiData (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

Indirizzo iniziale per memorizzare i dati ASCII

n_Conversions (WORD, INT, UINT)

Quantità di numeri da convertire: 0–65535

n_AsciiDataStartPosition (INT)

Posizione iniziale nel dato ASCII: 0–255

Uscita

d_BinaryData (BOOL, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, DATE, TOD, DT, STRING)

Indirizzo iniziale per memorizzare i dati binari

Spiegazione di ogni cifra del codice di controllo s1_Format:

Posizione nel codice di controllo

Descrizione

s1_Format

PLC a 16 bit

PLC a 32 bit

Direzione di conversione

     

+

Avanti (solo per numeri esadecimali con tipo di dato convertito x, X)

'+%4X'

se il segno più viene omesso: inversa (impostazione di default)

'%4X'

%

tipo di dato convertito per formato stringa (obbligatorio)

 

formato riempimento elementi mancanti

     

0

carattere 0 utilizzato come riempitivo

'%06x'

-

+

aggiungere un segno più

'%+4d'

-

-

allineamento a sinistra

'%-6d'

-

˽

(spazio) aggiunta di uno spazio al posto del segno più

'%˽4d'

-

#

inserire 0x per numeri esadecimali

'%#4X'

-

aggiungere sempre un punto decimale per un numero reale

'%#8.0f'

-

8

ampiezza del dato ASCII

'%08d'

nessuna ampiezza

  • FP_BIN_TO_ASCII: si suppone l’ampiezza minima richiesta

  • FP_ASCII_TO_BIN e FP_ASCII_CHECK: viene richiesto un separatore a virgola

'%d,'

-

precisione dopo il punto decimale

     

.5

qualsiasi cifra dopo il punto decimale

'%8.5f'

-

I

tipo di dato convertito doppio

p.es. tipo di dato convertito con l = Ii -> DINT

'+%4ld'

formato del tipo di dato convertito

     

i

INT

'%10i'

u

UINT

'%10u'

-

d

INT

'%6d'

x

esadecimale minuscolo

'+%4x'

X

esadecimale maiuscolo

'+%4X'

b

BCD

'+%5b'

-

f

Numero in virgola mobile

'+%-6.2f'

-

e

esponenziale 1.23e10

'+%9.3e'

-

E

esponenziale maiuscolo 1.23E10

'+%9.3E'

-

g

mobile o esponenziale

'+%12g'

-

G

maiuscolo mobile o esponenziale

'+%9.3G'

-

  • Per FP_BIN_TO_ASCII: è possibile aggiungere qualsiasi stringa alla conversione, p.es. 'PANA'

  • Per FP_ASCII_TO_BIN e FP_ASCII_CHECK: è consentita solo la virgola

'+%8dPANA'

-

disponibile su PLC a 16 bit/32 bit

Esempi di stringa di controllo s1_Format

  • Esempio: '+%4X' converte un valore ASCII con un'ampiezza di quattro caratteri in maiuscolo in direzione avanti (valido per PLC a 16 bit/32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽12A'

    16#12A (indicato in formato esadecimale)

  • Esempio: '%4X' converte un valore ASCII con un'ampiezza di quattro caratteri in maiuscolo in direzione indietro (valido per PLC a 16 bit/32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽B2A'

    16#B2A (indicato in formato esadecimale)

  • Esempio: '%06d' converte un valore ASCII con un'ampiezza di sei caratteri, valore decimale con tre zeri iniziali (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '000100'

    16#100 (indicato in formato esadecimale)

  • Esempio: '%+4d' converte un valore ASCII con un'ampiezza di quattro caratteri, valore decimale, segno + aggiunto (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '+100 ˽ ˽'

    100 (indicato in formato decimale)

  • Esempio: '%-6d' converte un valore ASCII con un'ampiezza di sei caratteri, allineamento a sinistra (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '100˽ ˽ ˽'

    100 (indicato in formato decimale)

  • Esempio: '%˽4d' converte un valore ASCII con un'ampiezza di quattro caratteri con uno spazio iniziale (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽100'

    100 (indicato in formato decimale)

  • Esempio: '%#8.0f' converte un valore ASCII con un'ampiezza di otto caratteri, numero in virgola mobile, quattro spazi iniziali (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽ ˽ ˽ ˽123.'

    123,45678 (indicato in formato decimale)

  • Esempio: '%8.3f' converte un valore ASCII con un'ampiezza di otto caratteri, precisione di tre caratteri dopo il punto decimale (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽123.456'

    123,45599 (indicato in formato decimale)

  • Esempio: '+%10u' converte un valore ASCII con un'ampiezza di 10 caratteri, sette spazi iniziali, intero senza segno (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽ ˽ ˽ ˽ ˽ ˽ ˽100'

    -100 (indicato in formato decimale)

  • Esempio: '%06d' converte un valore ASCII con un'ampiezza di sei caratteri con tre spazi iniziali (valido per PLC a 16 bit/32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽ ˽ ˽100'

    100 (indicato in formato decimale)

    Intervallo utilizzabile per il valore prima del tipo di dato convertito:

    1–15 prima dei tipi di dati convertiti d, ld, i, li

    1–4 prima del tipo di dato convertito X

    1–8 prima del tipo di dato convertito lX

    se non viene specificata alcuna ampiezza, la virgola viene aggiunta p.es. '%d,' (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '100,'

    100 (indicato in formato decimale)

    • FP_BIN_TO_ASCII: si suppone l’ampiezza minima richiesta

    • FP_ASCII_TO_BIN e FP_ASCII_CHECK: viene richiesto un separatore a virgola

  • Esempio: '+%4ld' converte un valore ASCII con un'ampiezza di quattro caratteri, richiede DINT o DWORD per il risultato convertito (valido per PLC a 16 bit/32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽100'

    100 (indicato in formato decimale)

  • Esempio: '+%6i' converte un valore ASCII con un'ampiezza di sei caratteri, tre spazi iniziali, intero con segno in direzione avanti (valido per PLC a 16 bit/32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽ ˽ ˽-100'

    -100 (indicato in formato decimale)

  • Esempio: '+%6d' converte un valore ASCII con un'ampiezza di sei caratteri con tre zeri iniziali in direzione avanti (valido per PLC a 16 bit/32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '000100'

    100 (indicato in formato decimale)

  • Esempio: '+%4X' converte un valore ASCII con un'ampiezza di quattro caratteri, numero esadecimale in maiuscolo in direzione avanti (valido per PLC a 16 bit/32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽12A'

    16#12A (indicato in formato esadecimale)

  • Esempio: '+%5b' converte un valore ASCII con un'ampiezza di cinque caratteri, dati BCD (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽123'

    16#123 (indicato in formato esadecimale)

  • Esempio: '+%-6.2f' converte un valore ASCII con un'ampiezza di sei caratteri, allineamento a sinistra, precisione due cifre dopo il punto decimale (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '1.23˽'

    1,2345 (indicato in formato decimale)

  • Esempio: '+%9.3e' converte un valore ASCII con un'ampiezza di 9 caratteri, precisione 3 cifre dopo il punto decimale, minuscolo esponenziale (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '1.235e+03'

    1234.5678 (indicato in formato decimale)

  • Esempio: '1.235E+03' converte un valore ASCII con un'ampiezza di 9 caratteri, precisione 3 cifre dopo il punto decimale, maiuscolo esponenziale (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '1.235E+03'

    1234.5678 (indicato in formato decimale)

  • Esempio: '+%12g' converte un valore ASCII con un'ampiezza di 12 caratteri, numero in virgola mobile (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽ ˽ ˽ ˽ ˽1234.57'

    1234.5678 (indicato in formato decimale)

  • Esempio: '+%9.3G' converte un valore ASCII con un'ampiezza di nove caratteri, precisione tre caratteri dopo il punto decimale, numero in virgola mobile, maiuscolo esponenziale (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽ ˽ ˽1.E+03'

    1234 (indicato in formato decimale)

  • Per FP_BIN_TO_ASCII: è possibile aggiungere qualsiasi stringa alla conversione

    Esempio: '+%8dPANA' converte un valore ASCII con un'ampiezza di otto caratteri, numero decimale, 'PANA' viene aggiunto (valido solo per PLC a 32 bit)

    Dati ASCII

    Risultato della conversione nei dati binari

    '˽ ˽ ˽ ˽ ˽100PANA'

    100 (indicato in formato decimale)

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se è presente un errore nella stringa di controllo specificata da sFormat.

  • se la direzione in avanti (+) viene specificata in sFormat quando il formato è decimale.

  • se il numero di caratteriASCII per unità convertita specificata da n_Conversions supera 4 per dato a 16 bit o 8 per dato a 32 bit quando il formato esadecimale è specificato da s1_Format.

  • se 0 viene specificato per il n. di unità da 16 o 32 bit (word da 1 o 2) da convertire in n_Conversions.

  • Se la quantità di numeri decimali da 16 o 32 bit da convertire specificato da n_Conversions supera l'area per memorizzare i dati ASCII.

  • se il risultato della conversione supera l'area.

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se è presente un errore nella stringa di controllo specificata da sFormat.

  • se la direzione in avanti (+) viene specificata in sFormat quando il formato è decimale.

  • se il numero di caratteriASCII per unità convertita specificata da n_Conversions supera 4 per dato a 16 bit o 8 per dato a 32 bit quando il formato esadecimale è specificato da s1_Format.

  • se 0 viene specificato per il n. di unità da 16 o 32 bit (word da 1 o 2) da convertire in n_Conversions.

  • Se la quantità di numeri decimali da 16 o 32 bit da convertire specificato da n_Conversions supera l'area per memorizzare i dati ASCII.

  • se il risultato della conversione supera l'area.

Quando bStart è impostato su TRUE viene eseguita l’istruzione. Converte 2 x 4 caratteri decimali ASCII in dati binari. Offset = 1 carattere ASCII (8 bit).

L'ultima revisione: 2024-12-18Feedback su questa paginaPanasonic hotline