Vai al contenuto
PLC Forum


Vba Per Excel


veneziano

Messaggi consigliati

Salve a tutti, qualcuno può indicarmi come inserire la funzione Timer in VBA ?

Mi spiego meglio vorrei creare un foglio dove tramite un comando ( classico bottone) attivo un timer dove posso

visualizzare il tempo trascorso in una cella.

Un timer hh:mm che arriva almeno a 10000 ore e che posso fermare con lo stesso bottone oppure un altro, in modo che posso prendere in riferimento il valore della cella e creare un grafico che mi rappresenta l'andamento.

Aspetto lumi

Grazie a tutti

Veneziano

Link al commento
Condividi su altri siti


Gianmario Pedrani

Non so quali siano le tue esperienze in vb?????

per fare un cronometro devi usare la funzione time() ed un altrocontrollo che ora mi sfugge il nome che serve a richiamare una funzione in modo ciclico.

Poi alla pressione del tuo pussante setti una variabile semaforo ed leggi il tempo ore minuti secondi con la funzione time e le appoggi in una variabile, seconda cosa ti crei una funzione che verra ricihamata ogni secondo dal controllo che ora non ricordo come si chiama. dove nel suo interno metti un altra variabile che legge il tempo del tuo pc, terza cosa sottrai la variabile appena letto con quella precedente ed il risultato lo visualizzi in una cella.....

non so se sono stato chiaro.... ma cosi dovrebbe funzionare ciaoooooooooo

Link al commento
Condividi su altri siti

Puoi usare il pulsante per fare lo start/stop del timer.

Setti per il timer un tempo di campionamento di xxx millisecondi , ogni xx millisecondi ti verra' generato un evento.

Nell'evento potresti andare a leggere la variabile globale timer e fai le dovute comparazioni

Dim Start As Single

Start = Timer

Ciao B)

Link al commento
Condividi su altri siti

Allora prima di tutto grazie a tutti, poi devo dirmi (sob !) che non ho esperienza in VBA o meglio o fatto qualcosa per Access, ma il VBA è un altra cosa. Questo mi obbliga a un altra domanda che volevo fare da tempo.

Diciamo (sono un over 40) che per linee generali tuttto il panorama Automazione e HMI è abbastanza chiaro: plc (cos'è cosa fà come si programma) pannelli operatore, azionamenti etc.

Arrivo al dunque, adesso mi sono appassionato e sono determinato ad andare fino in fondo per capire come funziona il VBA. Io ho capito questo, correggetemi se sbaglio.

Tramite il VBA è possibile creare un programma exe che installato su un pc che ha una periferica d'interfaccia con ingressi e uscite (digitali e analogici) faccia un qualcosa.

Vorrei capire cosa succede e come funziona da parte del pc, cosa si deve fare per collegare gli indirizzi dell'interfaccia con i comandi del programma. Chiaramente parlo a livello schematico di principio, sono perfettamente conscio che sono tantissime cose.

Allora per adesso avevo pensato che potevo fare una prova con il VBA di Excel, e in seguito osare con il VBA vero e propio (ho la 5.0).

Il progetto è questo:

Devo rilevare il tempo d'utilizzo di una serie di componenti rotabili di una macchina.

In Excel pensavo di creare una tabella dove in una cella c'è il codice del pezzo, un altra la data di sostituzione ,poi il pulsante che io schiaccerò quando avrò confermato la sostituzione e in un altra il conteggio delle ore e min dal momento della sostituzione.

Il conteggio deve essere sempre attivo anche se non ho aperto excel e anche quando il pc è spento.

Faccio tutto in excel anche perche devo fare un grafico a barre che mi permette a colpo d'occhio di vedere quale componente sta raggiungendo il limite, visto che il grafico si aggiorna in tempo reale visto il rif alla cella.

Questo è tutto spero di non avervi annoiato e confido nella vostra disponibilità, che manifestate sempre a questo forum, nel farmi capire di più.

Tengo a sottolineare che non lavoro nella programmazione o automazione, ma un giorno mi piacerebbe tanto.......

Grazie in anticipo

Veneziano

Link al commento
Condividi su altri siti

ciao

attenzione a non cadere in errore con le sigle ..tu hai VBA oppure VB versione 5.0

IL VBA (visual basic for application) e' un linguaggio che solitamente e' abbinato a qualche altro programma

mentre visual basic e' un linguaggio autonomo (autonomo si fa per dire).

sono quindi 2 cose diverse.

ciao

dario

Link al commento
Condividi su altri siti

Gianmario Pedrani

be se il progetto è quello allora cambia tutta la logica.... mi spiego meglio, sara il plc ad avere nel suo interno i dati ed il tempo anche perchè se spegni il pc, tutto deve funzionare!!!!! sopratutto il tuo cronometro...

il pc ti servira solo per visualizzare i dati e fare un grafico, come tu hai descritto. :huh: Ora veniamo alla comunicazione, di solito i pc o i pannelli che si collegano al plc servono solo come interfaccia uomo macchina, con tutti gli abbellimenti del caso, una routine all'interno dei pannelli ed del pc, pensa ha fare delle richieste al plc con un tempo ben preciso, il plc quando avra finito di fare le sue cose risponde fornendo i dati al pannello o al pc. :rolleyes: Per collegare queste variabili ci sono vari modi, funzioni gia pronte dal costruttore di plc, o da terzi che devi implementare nel tuo progamma dove il passaggio dei dati avrà un riferimento ben preciso all'interno dell'aria del plc. io ti posso fare un esempio secondo la mia esperienza ma molti altri potranno darti altre strade a secondo del plc o del tipo di comunicazione che tu vorrai fare.

Allora, ho il mio plc bello o brutto che sia, faccio il programma che deve fare funzionare la mia macchina o applicazione in generale, e nel suo interno gli faccio anche il cronometro, tutti i dati sensibile, quelli che dovro fare vedere all'operatore, li vado ad raggruppare in una zona ben precisa di memoria, dopo di che finito il programma che dovra essere autonomo in questo caso visto che il pc potrà essere spento... mi porto sul mio pc ed inizio a scrivere la mia supervisione, faccio i miei bei disegni e inizio ad utilizzare queste funzioni, per andare a leggere e se necessario a scrivere i miei dati all'interno del mio plc... :P un altra strada e quella ti utilizzare altri tipi di protocollo o schede di rete, oppure crearsi un protocollo personale, tutto sta nella bravura e nel tempo di chi programma..... e nella quantita di dati... es walterwolrd lui usa opcserver per andare a comunicare con i suoi plc, io ho provato ad utilizzare prodave che sono delle librerie dll per l'esattezza per la comunicazione con altri plc, alcuni usano modbus ecc ecc ecc ho provato anche a comunicare in tcp-ip, anche con degli sms, dipende tutto da cosa devi o vuoi fare

spero di averti chiarito un po le idee.. se hai altre domande noi tutti siamo qui

ciaooooooooooo B)

Link al commento
Condividi su altri siti

Allora il programma che ho è " Visual Basic 5.0 CCE " poi volevo fare una precisazione:

Ringrazio Gianmario per l'esaustiva panoramica tra le connessioni plc-pc.

Infatti un passo successivo sarà approfondire tutto questo, solo che adesso volevo capire se lo strumento che ho

( VB 5.0 ) puo rendere possibile una mia idea senza dover installare un plc con pannello operatore.

Si tratta di un area test dove un operatore deve mettere in pressione con acqua per un tot minuti un apparato e verificare la tenuta.

Quindi si tratta di comandare delle elettrovalvole una pompa ed avere informazioni sulla pressione.

Siccome mi occorre un archiviazione rapida ricorro al pc con excel o access.

Allora io la faccio semplice ma so che non è cosi:

Preparo una grafica con i comandi e i valori da rilevare

Associo ingressi ed uscite

Configuro la scheda interfaccia ( esistono schede che possono stare all'esterno tramite la seriale ?)

Effettuo l'archiviazionedei dati .

La domanda è : si può fare con un pc ?

Mi piacerebbe capire anche solo a livello base sperimentando un ingresso ed un uscita.

Non voglio offendere la profesionalità di nessuno, perchè mi rendo conto che sto trattando l'argomento come se andassi al mercato, però attualmente ( sto studiando ) è l'unico modo che ho per entrare nel contesto.

Un grazie di cuore a tutti

Veneziano

Link al commento
Condividi su altri siti

Veneziano, fai attenzione con il VBCCE si possono creare OCX. I programmi *.exe e *.com non si possono generare. Li puoi mettere a punto e far girare solo nell'ambiente di sviluppo

Link al commento
Condividi su altri siti

  • 2 weeks later...

Allora Livio, non posso fare quello che avevo in mente con quello che ho? (ammesso che ci riesca).

Dammi lumi

In sostanza ho (forse) una esigenza concreta di realizzare questo semplice appararato (come sopre descritto) e pensavo di prendere due piccioni con una fava e cioè fare una picola prova di programmazione in VBA, ma completa (script,interfaccia,visualizzazione etc).

Allora ti giro la domanda:

Cosa mi serve per fare il tutto ?

Aspetto notizie

Ciao e grazie

Veneziano

Link al commento
Condividi su altri siti

La prova la puoi fare e puoi anche generare un exe. L'iportante che il tutto giri sul medesimo PC dove è installato VB5CCE. Poi se vuoi realizzare copie distribuibili devi usare VB6. VB6 lo si deve acquistare, non è distribuito lineramente.

Puoi anche pensare di usare un altro linguaggio, magari C#.net, o Delphi.

Link al commento
Condividi su altri siti

Ok il Pc sarà lo stesso.

Allora posso iniziare questo progetto.

Adesso secondo che cosa mi conviene fare:

trovare l'interfaccia I/O analogici/digitali più adatta al mio scopo ed effettuare l'installazione dopodiche ricollegare gli indirizzi al programma, oppure realizzare il programma con la maschera di comando dove ci sono i pulsanti ?

Programma:

Si tratta di un area test dove un operatore deve mettere in pressione con acqua per un tot minuti un apparato e verificare la tenuta.

Quindi si tratta di comandare delle elettrovalvole una pompa ed avere informazioni sulla pressione.

Io la faccio semplice ma so che non è cosi.

Quale approccio mi consigli ?

E cosa devo tener conto per acquistare l'interfaccia in funzione del pc ?

Ti confesso che adesso che sto scrivendo sono emozionato in quanto fino qualche anno fà per me queste cose erano Magia Nera, invece adesso ne stò parlando ( non propio in termini professionali ma almeno riesco a farmi capire) per costruire qualcosa.

Spero propio che grazie a te e a tutti gli altri che hanno risposto e che risponderanno, riesca a realizzare questo piccolo progetto, che ribadisco è ad uso interno al mio lavoro.

Grazie

Veneziano

Link al commento
Condividi su altri siti

Da quello che scrivi sembra che i segnali siano pochi e che tu non abbia stingenti necessità di tempo (pochi millisecondi) ma se anche aggiorni il tutto ogno 200 ms funziona tutto.

Prova qui, hanno moduli che vanno bene per il tuo scopo, sono affidabili, non molto costosi, si interfacciano in seriale con protocollo Modbus e, credo, che se lo chiedi ti danno anche i drver VB per interfacciarli direttamente da PC

Modificato: da Livio Orsini
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...