odx Inserito: 3 luglio 2015 Segnala Share Inserito: 3 luglio 2015 Devo utilizzare i nuovi pannelli ESA Crew con modulo I/O integrato e plc integrato in codesys. Il mio problema è quello di leggere un valore ASCII da un modulo remoto, del tipo ABC1234567, dal quale devo estrapolare il solo valore numerico, per poi compararlo in un range. Premesso che compararlo non è un problema, come faccio a estrarre la parte numerica da una stringa ASCII ? Esiste un comando ? So che lo troverei cercando a fondo nei manuali, ma sono a corto di tempo e magari qualcuno conosce le due righe di codice. Grazie Link al commento Condividi su altri siti More sharing options...
odx Inserita: 28 luglio 2015 Autore Segnala Share Inserita: 28 luglio 2015 111 visitatori e zero risposte ... siccome devo ancora decidere se prendere il lavoro o meno, provo a riformulare la domanda, rendendola più generica: utilizzando Codesys ( purtroppo non l'ho ancora usato bene e non conosco le sue potenzialità ), posso recuperare un dato numerico da una stringa ASCII, semplicemente rimuovendo le lettere ? Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 28 luglio 2015 Segnala Share Inserita: 28 luglio 2015 (modificato) ma chiamare quelli della ESA e cheiderlo a loro , visto che devi prendere i loro panneli , invece di aspettare quelli del plcforum e magari rischiare di perdere il lavoro ? No eh ? Di solito con un linguaggio o sistema di programmazione puoi fare anche di piu , si tratta di studiare i manuali o fare un corso Modificato: 28 luglio 2015 da walterword Link al commento Condividi su altri siti More sharing options...
odx Inserita: 28 luglio 2015 Autore Segnala Share Inserita: 28 luglio 2015 Il lavoro consisterebbe nel leggere una stringa ASCII da un barcode e fare un confronto di valore. Se devo inserire 8 ore di lavoro per capire come togliere i numeri dalla stringa ASCII .... diventa troppo costosa la progettazione. Non è il nostro core business, era un lavoro extra e non posso realizzarlo alla pari o in perdita ( sono un dipendente ok, ma alla fine questa sarebbe la risposta che mi darebbe ... quindi faccio prevenzione ) . Inoltre si tratta di un lavoro a se stante, non realizzabile in serie, e quindi non recupero niente nemmeno a lungo termine. Ci sono altre ragioni per cui sto cercando di farlo, ma esulano dal discorso ... Saprei far tutto .. comunicazione, pagine del pannello, confronti ... ma non so, se e come scomporre la stringa .... tutto qua. Ho provato a mandare una mail a Diego B. di Esa ... vediamo che mi risponde. Mi sembrava una cosa semplice per chi usa Codesys quotidianamente .... ci ho provato. Link al commento Condividi su altri siti More sharing options...
valvolina Inserita: 29 luglio 2015 Segnala Share Inserita: 29 luglio 2015 ciao, un esempio: string_test è un stringa di caratteri carattere è un byte array di numeri è un array di byte dove vengono depositati i numeri estratti dalla stringa IF indice < 255 THEN FOR indice:=0 TO 255 DO carattere := string_test[indice]; // valori numeri ca 0 a 9 16#30 / 16#39 IF (carattere = 16#30) OR (carattere = 16#31) OR (carattere = 16#32) OR (carattere = 16#33) OR (carattere = 16#34) OR (carattere = 16#35) OR (carattere = 16#36) OR (carattere = 16#37) OR (carattere = 16#39) OR (carattere = 16#39) THEN array_di_numeri[conta] := carattere; conta := conta +1; END_IF END_FOR END_IF saluti da Valvolina Link al commento Condividi su altri siti More sharing options...
odx Inserita: 30 luglio 2015 Autore Segnala Share Inserita: 30 luglio 2015 Grazie In pratica, posso alleggerirlo mettendo al posto di 255 il valore massimo della stringa in arrivo dal mio barcode. Nel frattempo mi è arrivato un esempio da ESA, che non posso aprire ... in quanto serve Crew 1.5 in uscita domani . Settimana prossima provo e inserisco i risultati appena riesco, e se ho successo li posto. Link al commento Condividi su altri siti More sharing options...
valvolina Inserita: 30 luglio 2015 Segnala Share Inserita: 30 luglio 2015 ciao si puoi allegerirlo come dici tu, volevo dirti che nel mio codice c'è un piccolo errore, ho scritto due volte il valore 16#39, uno dei due va corretto in 16#38 (che manca e quindi non estrarresti il numero 8) saluti Valvolina Link al commento Condividi su altri siti More sharing options...
odx Inserita: 30 luglio 2015 Autore Segnala Share Inserita: 30 luglio 2015 Ok, grazie ancora. Link al commento Condividi su altri siti More sharing options...
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