rddiego Inserito: 1 febbraio 2007 Segnala Inserito: 1 febbraio 2007 Ho un TSX premium che comunica con un PC su cui gira un supervisore fatto con WinCCIl collegamento è in Ethernet tramite OPC utilizzando il driver XIP.Ho necessità di visualizzare una stringa di 20 caratteri su WinCC.Attualmente sto leggendo un Array di 20 Byte dal PLC su una variabile WinCC chiamata per comodità ASCII.Purtroppo in ogni word i byte sono invertiti ed ho quindi necessità di girarli e ricomporre la mia stringa (non posso col PLC)attualmente è così:sul PLC = 'ciao a tutti'WinCC = 'icoaa t tuit'Qual è l'azione C per poter fare questa operazione o meglio come faccio a scompattare la variabile ASCII in singoli byte. Oppure c'è un'altra maniera per leggere le stringhe dal PLC?
Savino Inserita: 1 febbraio 2007 Segnala Inserita: 1 febbraio 2007 (modificato) Ciao,Dunque, prova con wsprintf ...wsprintf : formata e carica una serie di caratteri e valori in un buffer.Header: Declared in winuser.h.Library: Use user32.libchar Old_Ascii[21]; char New_Ascii[21]; Old_Ascii[21]='\ 0'; (ultimo carattere nullo) New_Ascii[21]='\ 0'; wsprintf(Old_Ascii,"%s","icoaa t tuit"); wsprintf(New_Ascii,"%c%c%c%c%c%c%c%c%c%c%c%c",Old_Ascii[1],Old_Ascii[0],Old_Ascii[3],Old_Ascii[2],Old_Ascii[5], Old_Ascii[4],Old_Ascii[7],Old_Ascii[6],Old_Ascii[9],Old_Ascii[8],Old_Ascii[11],Old_Ascii[10]); Poi,la stringa New_Ascii risultera' "ciao a tutti" Modificato: 1 febbraio 2007 da Savino
rddiego Inserita: 2 febbraio 2007 Autore Segnala Inserita: 2 febbraio 2007 grazie Savino, in realtà ho risolto già così:char* text;char text2[21];int i;text=GetTagChar("asci"); //Tipo di ritorno:char* for(i=0;i<19;i=i+2){ text2[i+1]=text; text2=text[i+1];}return text2;
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