Vai al contenuto
PLC Forum


Area Di Memoria Temporizzatore


Claudio_89

Messaggi consigliati

Salve a tutti. Mi sto cimentando nella comunicazione tra plc s7 200 cpu 222 e PC (Visual basic 6). Volevo riuscire a inviare al PC il valore di conteggio di un qualsiasi temporizzatore però non so come riuscire a tirar fuori il numero intero, cioè il tempo impostato a un qualsiasi temporizzatore.

Grazie mille in anticipo!

Dalla Vecchia Giulio

Link al commento
Condividi su altri siti


Cosa vuoi dire?

so come riuscire a tirar fuori il numero intero

Il numero che passi al temporizzatore? , che a seconda del temporizzatore utilizzato possono essere millesimi, secondi minuti oppure ore?.

Link al commento
Condividi su altri siti

Esatto il numero che viene passato al temporizzatore. Poi in base al temporizzatore trovo il tempo effettivo. Siccome invio i dati al PC in formato ASCII devo poter recuperare il dato di un qualunque temporizzatore e poi trasformarlo in stringa ASCII per poi inviarlo. Avete qualche idea?

Grazie.

Dalla Vecchia Giulio

Link al commento
Condividi su altri siti

...e poi trasformarlo in stringa ASCII per poi inviarlo. Avete qualche idea?

Per convertire da binario ad ASCII è necessario convertire in decimale (BCD) ed aggiungere ad ogni cifra 30H (30 esadecimale); questa è la codifica ASCII per i numeri da 0 a 9.

Però, a mio giudizio, è più conveniente trasmettere al PC il numero binario e poi far fare la conversione eventuale al programma in VB, che la esegue in automatico.

La 222 ha una sola porta di comunicazione, la stai usando in modalità freeport, commutando il modo dopo aver scaricato il programma, o comunichi con PC sempre con protocollo Siemens?

Link al commento
Condividi su altri siti

Grazie mille Livio per la risposta. La porta seriale la stò usando in modalità free-port, dopo aver caricato il programma nella cpu. Ho già provato a inviare dei numeri interi al programma in VB. In microwin prendo il numero intero, lo trasformo in stringa di caratteri ASCII e poi con la funzione "xmt" lo invio al PC, dove con il controllo "mscomm" di vb lo leggo e lo visualizzo in una text box. Fin qui tutto semplice. Ora però vorrei implementare il programma potendo andare a trasmettere il valore di un qualsiasi temporizzatore. Quindi volevo ricavare il numero intero passato al temporizzatore, trasformarlo in stringa di caratteri ASCII e poi inviarlo al PC.

Grazie.

Dalla Vecchia Giulio

Link al commento
Condividi su altri siti

Ok quello che vuoi fare è possibile, usi la funzione "converti numero intero in stringa" dove metti il Txxnel campo IN, poi segli il formato in uscita (x i punti....) e l'indirzzo della stringa in uscita es VB100... qui ci saranno la lunghezza della stringa nel primo Byte, e i caratteri ASCII nei successivi byte.

Link al commento
Condividi su altri siti

Grazie mille Max.bocca per la risposta. Come hai detto tu funziona però mi trasferisce il numero istantaneo, istante per istante, del conteggio che sta facendo il temporizzatore. Io invece volevo inviare al PC il numero (il tempo), che poi viene moltiplicato per il moltiplicatore in base al numero di temporizzatore (es. T32 x1ms) che imposto al temporizzatore, cioè il PT come viene chiamato in linguaggio KOP. Spero di avermi spiegato bene. Quindi mi serve sapere l'area di memoria in cui viene salvato il "PT" per poterlo estrarre e inviarlo. Grazie mille.

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ah giusto! non ci avevo neanche pensato! Appoggio la variabile ad una VWxxx che il temporizzatore è in grado di leggere e io nello stesso tempo posso farne quello che voglio (leggerla, scriverla, inviarla). Grazie mille!!! :thumb_yello:

Link al commento
Condividi su altri siti

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...