cdc Inserito: 24 settembre 2015 Segnala Inserito: 24 settembre 2015 (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.5Allego le immagini del codice. Modificato: 24 settembre 2015 da cdc
ken Inserita: 24 settembre 2015 Segnala Inserita: 24 settembre 2015 Il primo carattere nella stringa di caratteri può essere un segno o una cifra, i caratteri successivi devono essere costituiti da cifreil 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.
cdc Inserita: 25 settembre 2015 Autore Segnala Inserita: 25 settembre 2015 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?
ken Inserita: 25 settembre 2015 Segnala Inserita: 25 settembre 2015 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
cdc Inserita: 25 settembre 2015 Autore Segnala Inserita: 25 settembre 2015 Il mio problema è che non funziona la FC26.La FC38 funziona correttamente se gli imposto in ingresso una stringa formata da soli numeri.
ken Inserita: 25 settembre 2015 Segnala Inserita: 25 settembre 2015 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_TIMEleggi i 4 byte che ti compongono l'anno.
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora