Vai al contenuto
PLC Forum


Estrarre stringa da un'altra stringa


Messaggi consigliati

Inserito: (modificato)

Ciao,

sto cercando di estrarre da una stringa che mi arriva su una DB, l'anno e convertirlo in un intero.

Ho usato le FC standard Siemens ma non funziona.

La CPU è una 317F-PN/DP e sto usando S7 v5.5

Allego le immagini del codice.

1.jpg

2.thumb.jpg.e145d530f2e054c55b0debc2586d

Modificato: da cdc

Inserita:

Il primo carattere nella stringa di caratteri può essere un segno o una cifra, i caratteri successivi devono essere costituiti da cifre

il manuale dice questo, la tua stringa è composta solo da numeri ed eventualmente il segno come primo carattere?

potresti ricomporre la stringa eliminando i byte (ogni carattere è un byte) che contengono valori diversi dai numeri, dovrebbero essere sempre nello stesso posto.

Inserita:

No, la mia stringa come si vede dall'esempio è una data ed un orario con cifre delimitate da punti o da due punti.

Quindi vuol dire che non si può fare?

Inserita:

se fc38 vuole solo numeri oltre ad un eventuale segno iniziale no, non puoi usarla.

una stringa è composta da caratteri ascii quindi ogni byte è un codice ascii che identifica un carattere. a te serve solo l'anno quindi saranno 4 byte al massimo. individui quali byte sono all'interno della stringa. penso saranno sempre gli stessi. li copi in una nuova stringa composta dai due byte iniziali che identificano la stringa e dai 4 caratteri (numeri che compongono l'anno). con la nuova stringa usi fc38 e la converti il numero intero.

altra soluzione è quella di decodificare tu i 4 caratteri senza usare fc38

Inserita:

Il mio problema è che non funziona la FC26.

La FC38 funziona correttamente se gli imposto in ingresso una stringa formata da soli numeri.

Inserita:

individui quali byte sono all'interno della stringa. penso saranno sempre gli stessi. li copi in una nuova stringa composta dai due byte iniziali che identificano la stringa e dai 4 caratteri (numeri che compongono l'anno). con la nuova stringa usi fc38 e la converti il numero intero.

la stringa è PALLET_TIME

leggi i 4 byte che ti compongono l'anno.

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...