peppeve Inserito: 6 novembre 2009 Segnala Inserito: 6 novembre 2009 Devo realizzare una comunicazione seriale con una stampante termica, il protocollo è del tipo rs232 ma con livelli TTL (0-5 Volt). La comunicazione avviene ad una velocità di 600 bps 8 bit no parità quindi il segnale sarà composto da Bit start (livello logico 0) - bit 0..7 (dati) - bit stop (livello logico 1).Il Plc in questione è un 226 con estensione digitale (utilizzo la Q2.0 come uscita di trasmissione). Veniamo al mio problema.Non avendo la risoluzione adeguata con i timer di fabbrica (1 ms) ho cercato di realizzare i ritardi attraverso una for-next il problema però è che non sono riuscito a reperire nessuna informazione riguardo al tempo di esecuzione delle istruzione di questo genere (per le operazione booleane è di 0,22 microsecondi).Con un baud rate di 600btp mi servono dei timing da 1,666666 millisecondi quindi dovrei eseguire + di 7500 istruzioni booleane per arrivare al mio scopo, pertanto ho pensato di utilizzare un ciclo for-next.Qualcuno mi aiuta?
Livio Orsini Inserita: 7 novembre 2009 Segnala Inserita: 7 novembre 2009 Scusa perchè complicarti la vita? Con la 226 hai 2 porte seriali, la seconda la programmi in modo free port (basta leggere l'help on line e l'assistente) ed hai risolto tutto senza strane temporizzazioni.
peppeve Inserita: 7 novembre 2009 Autore Segnala Inserita: 7 novembre 2009 :smilie_nono: purtroppo sono già tutte e 2 impegnate, in una un touch panel e nell'altra un pc che mi funge da supervisore
lucios Inserita: 8 novembre 2009 Segnala Inserita: 8 novembre 2009 Non sono un esperto di 200, quindi non so se hai la possibilità di aggiungere un modulo seriale in più....Quello che vuoi fare è, secondo me, troppo complicato e , in ogni caso, dubito che riusciresti a creare una connessione affidabile.Ciao
peppeve Inserita: 8 novembre 2009 Autore Segnala Inserita: 8 novembre 2009 Ho trovato nel manuale del 200 tutti i tempi di esecuzione di ogni operazione. Lunedì cercherò di cavarci qualcosa.
Livio Orsini Inserita: 8 novembre 2009 Segnala Inserita: 8 novembre 2009 Le porte seriali sono RS485, puoi sempre pensare a sfruttare il multipoint che permette la 485. E' senz'altro più semplice che quello che cerchi di fare. Tra l'altro è altamente inaffidabil Tempi inferiori a 5 ms non sono compatibili con le CPU S7-22x
peppeve Inserita: 8 novembre 2009 Autore Segnala Inserita: 8 novembre 2009 Ok Livio grazie per il consiglio. Mi servirà un adattatore di livello però (la stampante accetta rs232 o ttl mentre le porte del 226 usano il protocollo rs485).
Livio Orsini Inserita: 9 novembre 2009 Segnala Inserita: 9 novembre 2009 Mi servirà un adattatore di livello..Certamente ma non solo. Devi avere un adattatore che sia indirizzabile altrimenti alla stampante arrivano tutti i comandi che invii sulla linea.
peppeve Inserita: 9 novembre 2009 Autore Segnala Inserita: 9 novembre 2009 Ho risolto............ho inserito dei ritardi software per l'esattezza 6 divisione di dword e lavora benissimo. Se a qualcuno interessa posso postare il codice. :thumb_yello:
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