Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Software - Acquisizione/elaborazione dati


Messaggi consigliati

Inserito:

Salve a tutti,

sono nuovo di questa sezione,non voletemene se diro' castronerie.

Posseggo:

HD : scheda acquisizione dati della ADVANTECH mod. PCL-812PG

SW: LabView 6 e Visidaq st. ed. 3.1

Impiego:

ho in ingresso alla scheda n. 8 segnali analogici che lavorano nel range 1/5 Volt

utilizzando Visidaq,perche' mi sembra piu' intutivo di LV,ho settato..? fatto delle TAg ??,morale ho i miei bei otto strumentini che tranquillamente leggono i dati dei sensori cosi' come mi interessa,se interessa i sensori devono realizzare una stazione meteorologica,per cui la lettura viene data in G°,Hpa,%UM,Vento/velocita' Km/h,vento/direzione su scala di 360°,irraggiamento solare in W/mq.,irraggiamento solare differenziato sempre in W/mq.,pioggia in mm..

Fin qui',lascio immaginare le peripezie,ce la ho fatta,ma che impresa....

Quesito,o meglio...cerco una mano..:

Premessa:

questi dati nei valori cosi' espressi,andrebbero analizzati,memorizzati,censiti per ora,giornata,mese,etccc,ci vorrebbero pure delle curve con diversi parametri,etcccc. inoltre tutti,o quasi,idati andrebbero su di una pagina WEB in modo da renderli disponibili (sono membro di una struttura di Protezione Civile).

Voler fare tutto questo con i programmi che ho,immagino,ma non mi sbaglio,sia al limita della fattibilita',a meno che uno non ci lavori ,penso,come mestiere.

Uovo di Colombo:

ho trovato in rete un validissimo programma di gestione dati meteo,che fa' anche di piu' di quello che mi serve ed apre una porta anche a chi non ha stazioni chiavi in mano,infatti permette di leggere,come dati di ingresso, una semplice stringa degli 8 valori in formato .TXT !!!

Ovviamente la gentilezza dell'autore di questo prg. mi ha fornito la giusta sequenza di posizionamento dei dati.

La mano consiste in..,visto che i due SW in mio possesso lo prevedono,una elaborazione,forse in linguaggio VB di un programmino che estrapoli e salvi da qualche parte i dati.

La ho fatta lunga ma era l'unico modo per cercare di spiegarmi.

Un ringraziamento a tutti.

Ciao

  • 2 weeks later...

Inserita:

A scuola avevavo fatto una scedina simile era solo una piccola scheda di acquisizione temperatura e umidità cio non toglie di aggiungere altri dati, ma per cominciare ci andava bene, comunicava in seriale ed aveva un microprocessore che acquisiva la temperatura e l'umidità quando gli veniva chiesto e spediva i dati al computer che c'era l apossibilità di vederli su dei grafici e di salvarli in un file, questo programmino era prorio in VB.

Questo è quello che ci era stato chiesto a scuola anchew perchè a scuola l'ho fatto in C++ e a casa me lo sono fatto VB, e dovrei averlo ancora da qualche parte nel pc.Poi vedendo la tua necessità è un attimo leggere altri dati e spedire i file in una pagina web.

Comunque io l'ho fatto era similare ma funzionava.

Spero di esserti stato d'aiuto

Inserita:

Grazie,di cuore, BIZZ,

da quando e' stato scritto il messaggio ad oggi,ho fatto progressi,anche se non definitivi.

Riassumo,anche perche' la cosa e' un poco complessa,vedo di spiegarmi:

PREMESSA:

questo progetto,come obbiettivo,ha quello di mettere a disposizione di piu' utenti i dati rilevati da una stazione meteorologica professionale composta da n.8 sensori

1) partiamo dagli 8 sensori...uno per ogni canale entrano ,come segnale analogico,range 1/5 volt) nella scheda di acquisizione dati della ADVANTECH PCL-812PG (non ti dico quanto costa .....),perfetto,no problem

2) questa scheda e' VISIBILE,cioe' ha i driver,per programmi di acquisizione dati a livello industriale

3) ho trovato,ed uso,uno di questi ,sempre della ADVANTECH,chiamato VISIDAQ

4) ho usato questo prg. per leggere i dati dei sensori,per cui in pratica,ottengo le loro rispettive misure e vedo come esse cambiano nel tempo (ad esempio la temperatura),perfetto,ci siamo

5) leggendo bene questo programma ho capito,ed e' una sua funzione,che lo stesso puo' generare e salvare ad intervalli preimpostabili dall'utente,una stringa di dati relativamente alle letture degli 8 sensori...GOOD.Questo file cosi' salvato,puo' essere di tipo append od overwrite..a me interessa non una sbrodolata di dati,ma una sola stringa orizzontale che ,per l'intervallo impostato,venga di continuo aggiornata.....

6) sempre in rete trovo,ed ho,un programma gestionale dei dati meteo chiamato WIN DISPLAY,e' un programma completissimo che supera addirittura le mie aspettative,ha una certe veste grafica di facile lettura,la creazione di curve su base tempo trascorso,etcc.....PERFETTO....genera anche pagine WEB...cosa vuoi di piu'....

7) meraviglia delle meraviglie...questo programma accetta,come dati input,oltre a quelli sulle porte COM,etcc.anche dati provenienti da files .TXT/ASCII.....

8) allora mi viene da pensare...se VISIDAQ mi salva dati in formato leggibile da WEATHER DISPLAY,allora ci siamo,E' FATTA...Eureka...

9) ti sembrava facile....e fattibile invece sono,attualmente,stoppato dal seguente problema:

VISIDAQ mi salva i dati della stringa nel seguente modo:

spaceXXXXspace,space,space,YYYY,space,space,space,ZZZZ....etc

per capirci, X,Y,Z,..... sono le letture degli otto sensori.

WEATHER DISPLAY ...V U O L E i dati della stringa nel seguente modo:

XXXXspaceYYYYspaceZZZZspace,etc.....

Come vedi gli space creano disturbo di interpretazione.

Sono fermo a questo punto,risolto questo sara' un SUCCESSO.

Ci capisci qualche cosa ?Puoi darmi una mano per bypassare questo problemino ??

Ciao,ancora grazie.

Pellegrino Biagio

IK1CFJ

Inserita: (modificato)

Beh, qui si tratta semplicemente di filtrare il file sostituendo "space,space,space," con "space" (ricerca e sostituzione di stringhe) e il gioco è fatto!

Appendere al programmino VB questa semplice funzione non dovrebbe costituire un proplema, se solo questo era l'ostacolo che trovavi.

Modificato: da nll
Inserita:

Ciao,Luca

ESATTO il problema e' esattamente questo,ma da parte mia insormontabile....

Mi daresti una mano ???

Grazie,ciao

Inserita:

eccoti il codice sorgente in VisualBasic:

Function riduceStringa(str As String, strCercata As String, strSost As String) As String

   

    Dim strAnalisi As String

    Dim risultato As String

    Dim posiz As Integer

   

    strAnalisi = Trim(str)

   

    Do

        posiz = InStr(strAnalisi, strCercata)

        If posiz > 0 Then

            risultato = risultato & Left(strAnalisi, posiz - 1) & strSost

            strAnalisi = Right(strAnalisi, Len(strAnalisi) - (posiz + Len(strCercata) - 1))

        End If

    Loop Until posiz = 0

           

    risultato = risultato & strAnalisi

       

    riduceStringa = Trim(risultato)

   

End Function

Inserita:

Caro,Luca

per prima cosa ti ringrazio per l'interessamento che hai avuto nei miei riguardi anche affrontando la stesura di un prg. in VB.Se vorrai, se ne avrai bisogno e se ne saro' capace,potro' contraccambiare in materia di Hardware,anche se vuoi come pura realizzazione.

Questo messaggio vuole anche ,in qualche modo,ringraziare tutti i Soci,che fino ad oggi hanno dimostrato (nelle varie sezioni) completa disponibilta'.

Ti ho mandato un msg. in private mode...vedi se puoi leggerlo,in ogni caso,anche affinche',forse,possa servire ad altri Soci,di seguito ti espongo i miei ulteriori problemi riguardanti il prg che mi hai gentilmente compilato (.....ti ho chiesto una mano.......ma sai come e' !!! dopo si vuole anche il braccio.....,dimmelo e mi faro' da parte).

Ribadisco la mia totale quasi completa ignoranza nel settore "programmazione" ,BIT mi sta' costringendo e ce ne e' riuscito a farmi comprare un manuale ad hoc (lo ricevero' come regalo,tra un mese circa...).

Veniamo al mio problema,riassuntino velocissimo (da centometrista..) dei miei msg precedenti:

ho otto segnali,li leggo con VISIDAQ,li salvo ogni tot. tempo su di un certo file che VISIDAQ genera in automatico e che si deve chiamare ,per forza , datain38.ini ,solo in questo modo il successivo software fruiritore (WIN DISPLAY) ,riesce a "succhiare" i dati,cioe' le letture.

Abbiamo appurato,pero', che gli spazi bianchi (space) tra un dato e l'altro ,sono diversi da come li salva VISIDAQ ed invece da come li vorrebbe WEATHER DISPLAY..(ebbene si' sono ripetitivo,ma forse serve..).

Grazie ,Luca,mi hai fatto un prg. in VB ma ti chiedo ulteriormente:

1) dove "infricchio,cioe' inserisco tale prg." ????

Deve essere appeso ??? come ??? dove ??? mi rispetta la possibilita' dell'upgrade dei dati ??? devo farlo girare manualmente o fa' tutto da se' ???

Come vedi,nebbia ,come si dice,in Val Padana

2) sempre per questa mia ignoranza sovrana,mi e' poco chiaro cosa mi dici di fare con il prg. che mi hai compilato,lo allego di seguito con inserite le mie domande:

--------------------

Function riduceStringa(str As String, strCercata As String, strSost As String) As String

Dim strAnalisi As String (1)

Dim risultato As String (2)

Dim posiz As Integer (3)

strAnalisi = Trim(str)

Do

posiz = InStr(strAnalisi, strCercata)

If posiz > 0 Then

risultato = risultato & Left(strAnalisi, posiz - 1) & strSost

strAnalisi = Right(strAnalisi, Len(strAnalisi) - (posiz + Len(strCercata) - 1))

End If

Loop Until posiz = 0

risultato = risultato & strAnalisi

riduceStringa = Trim(risultato)

End Function

Alla funzione devi passare 3 stringhe in quest'ordine:

Stringa da analizzare (nel tuo caso "xxxx, , ,yyyy, , ,zzzz, , , .......")

Sotto stringa da cercare (nel tuo caso ", , ,")

Stringa da sostituire alla sottostringa (nel tuo caso " ")

Ho voluto creare la funzione in modo da poter sostituire qualunque stringa (stringa da cercare) contenuta ripetitivamente in qualunque testo (stringa da analizzare), con qualunque stringa sustitutiva (stringa da sostituire).

------------------------

Cerchiamo di vedere se ho ben capito:

1) dopo il testo che tu hai scritto...

Dim strAnalisi As String ---------------lascio uno spazio bianco ,forse si',poi apro apici (") ?? e scrivo xxxx,,,yyyy,,,zzzz,,, etc ?..e chiudo apici ???.

qui' gia' non capisco ...ma e' il prg che deve farlo in automatico !!!!!

2) e 3) vale quanto in 1)

Non vado oltre,hai ben capito,non ci capisco....

In attesa di una ennesima gentile risposta diretta oppure qui'.

Notte

Bye Biagio

Inserita:

Ti ho risposto con un messaggio privato, ma merita che accenni qualcosa anche qui, ad uso e consumo degli utilizzatori del forum.

La funzione deve essere inserita dentro un programma che si occupa di aprire il tuo file "datain38.ini" sorgente e un file "datain38.ini" destinatario (ovviamente su un'altra cartella),

estrae una riga dal file (contenente il rilievo istantaneo di tutti gli 8 sensori) e la passa alla funzione come primo parametro. Che per esempio memorizzi sulla variabile "OriginariaStr"

in una variabile stringa avrai memorizzato (oppure avrai fatto in modo di farlo chiedere all'utente di volta in volta) la sottostringa da cercare, che passerai alla funzione come secondo parametro. Che per esempio si chiama "VecchiaStr"

in un'altra variabile stringa avrai memorizzato (oppure avrai fatto in modo di farlo chiedere all'utente di volta in volta) la stringa che vuoi inserire al posto della precedente. Che per esempio si chiama "NuovaStr"

ti sarai creata una variabile stringa dove memorizzare il risultato della chiamata alla funzione. Che per esempio si chiama "RisultatoStr"

esegui la chiamata in questo modo:

RisultatoStr = riduceStringa(OriginariaStr, VecchiaStr, NuovaStr)

A questo punto appendi il contenuto della variabile "RisultatoStr" al tuo file "datain38.ini" destinatario.

Meglio se tutto questo lo inserisci in un ciclo Do While Not EOF, così da scandire tutte le righe del file (nel caso vi fosse una sola riga il ciclo verrebbe eseguito una sola volta, ma in questo modo avresti la possibilità di usare lo stesso programma anche quando nel file sorgente hai più righe, oppure saltare la ciclatura in presenza di un file vuoto).

Inserita:

Ok,Luca ho letto e ricevuto.

Mi metto al lavoro....di tempo ne ho,sono da poco in pensione...

Grazie ancora,ti aggiornero' dei risultati raggiunti.

Ciao.

Biagio

Inserita:

Caro Luca,

ti devo dire la verita'.Il mio Post era stato da me inserito in un'altra sezione .."Automazione...etc",poi il Moderatore lo ha traslato qui'.

In effetti,forse era questa la sezione giusta,ma ,ti dico in tutta sincerita',che ,visto anche la mia minimissima conoscenza nel ramo "programmazione" ovvero S.W.,non me la sentivo di argomentare su di un certo livello di conoscenze,seppur,di base.

Gentilmente mi hai risposto,sia qui' che in privato,dandomi ottimi consigli.

Ho passato il pomeriggio di oggi a vedere come potevo ricostruire le tue informazioni.

Non ci sono riuscito.La mia mente e' andata in confusione.

Come ti ho gia' detto,non conosco assolutamente il V.B. ne' altri linguaggi,per cui ho provato a ricostruire un minimo di "strategia" per mettere assieme le Tue informazioni,ma poi mi sono,come ripeto,arreso.

Da piu' di 30 anni pratico il mondo della elettronica che ho insegnato,per quello che posso,anche ad altri,cercando di essere il piu' possibile compreso,partendo da schemi funzionali,a blocchi,etc... (non sono un Insegnante,sono un Geometra !! con tanta passione..).

Ora pero' mi trovo spiazzato,ad esempio,seppur non conoscendo il lg. V.B.,non so' da dove partire (ad es: domanda ingenua ,ma ci sta' tutta,devo avere a disposizione per quello che e' l'oggetto della mia domanda,un particolare SW ????).

A me,credo,serve una cosa che reputo semplice,essenzialmente costituita da una "abolizione" di spazi interposti,su di una stringa,tra dati salvati su di un file.

Non posso assolutamente agire sul file che g e ne r a i dati con tali spazi anomali per quanto invece,a posteriori,mi serve.

Ho solo a disposizione un file,formato ASCII/TXT salvato in un certo modo:

Scusa,cerca di seguirmi,per cortesia---

Il mio primo programma VISIDAQ) ,come abbiamo detto,genera un file chiamato PIPPO

Come faccio ad agire su di esso per avere la nuova configurazione degli space??

Devo "incollarci" un altro prg,come da tue info ???

Ho capito,giustamente,che questo file PIPPO deve poi essere salvato nel famoso file DATAIN38.ini

Ma quale e' la procedura ???

Confermo,appartengo a questo mondo di ignoranti,cosa ci vuoi fare....cerchero' di imparare pure questo..

Grato per la collaborazione.

P.S.: Luca,non ti preoccupare,capisco i tuoi impegni che penso + o - coincidano con i miei (famigli,sono Socio della Protezione Civile,domani mi tocca...,sono anche un Radioamatore,sono anche un "cretino" che cerca di aggiustare tutto quello che gli amici mi portano in laboratorio,pero' poi si beve....

Fai con calma,sempre che tu lo voglia.

Ciao,Biagio

Inserita:

OK, appena riesco ti scrivo un eseguibile che dovrai fare funzionare in questo modo:

NomeEseguibile.exe [Percorso\FileSorgente] [Percorso\FileDestinazione] [stringaDaCercare] [stringaSostitutiva]

con eventualmente l'aggiunta delle righe (da... a ...) sulle quali intervenire.

Ovviamente sono tutti nomi di fantasia, vedrò al lato pratico come chiamare il tutto.

Tendenzialmente cerco di creare programmi che possano essere usati in più contesti, questo forse ti ha creato un certo disorientamento, ma non è bene creare qualcosa che funziona solo in un caso particolare, altrimenti ti tocca riscrivere tutto il codice e ricompilare ogni volta che cambia anche la più piccola cosa (basta anche un solo spazio in più nella stringa). Io non sono in pensione, ma non mi ci dovrebbe voler ancora molto tempo, i figli sono autonomi, ma solo per quello che gli fa comodo, per altro non si fanno scrupolo di servirsi ancora di papà e mamma, le righe di codice da scrivere non sono molte, ma il tempo è tiranno. Vediamo quanto tempo ci vorrà per fare il tutto.

Inserita:

Caro Luca,

in un modo o nell'altro siamo tutti "schiavi",ma si fa' per dire....,delle problematiche che regolano la ns. vita.

Mia figlia sta' preparando la tesi di laurea in Ing. Edile (ha preso da papa' !!!!),poteva pero' anche sciegliere Informatica o simili (papa' avrebbe gradito !!!) e non sarebbe qui' a rompere...In ogni caso e' tutto OK,anzi ancora meglio.

Spero,sempre che sia nei tuoi obbiettivi,ma immagino di si' in quanto sicuramente saprai benissimo come riempire le NUOVE ore, che la messa a riposo sia la piu' vicina possibile.

Concordo su quando dici che la soluzione di un problema deve essere il piu' possibile "generalizzata" in modo che possa essere fruita da piu' utenti con problematiche + o - simili.

Credo quindi che attraverso la mia dichiarata ignoranza tu abbia capito il mio problema.

Non ti stare a preoccupare per la tempistica......La Ns. Associazione ha avuto in dono tale strumentazione ed anche altra ben piu' complessa,nel lontano Dicembre 2002.

Da allora mi sono dato da fare,E-mail,,contatti,ricerche,etc...,mi sono iscritto e lo sono tutt'ora, ad un ottimo forum (METEONETWORK),che mi ha assistito nel miglior modo possibile.

Purtroppo,come ripeto,il mio caso e' anomalo in quanto si affida a rilevazioni di letture da sensori a se' stanti,cioe' non facenti parte di un KIT,software compreso (ad es.: stazioni OREGON,DAVIS,LA CROSSE,etc...).

Se ti interessa posso inviarti foto di quanto posseggo.....sta a vedere che ti faccio ammalare pure di questo morbo ???.

A risentirci,tempo ne ho,anzi...ne abbiamo.

Ciao.

Inserita:

Ciao NLL (Luca),

spero non ti sia gia' messo all'opera...

RISOLTO tutto,bastava leggere bene l'. del prg. Visidaq.C'e' proprio l'opzione:

xxx xxx xxx

un solo spazio cioe' !!!

Chiedo venia,e' tutta colpa mia.Certi argomenti,se creano dei problemi,secondo me',vanno abbandonati e poi ripresi con maggiore serenita' e calma...cosa che spesso mi manca.

Ancora un grazie infinito per tutto quello che hai fatto,scusami.

I migliori auguri per tutto...

  • 5 months later...
Inserita:

x Luca

Spero tu stia bene,presumo sia ancora in ferie.

Permettimi di allacciarmi al post.Quando dicevo di aver risolto tutto....cioe' di aver trovato la soluzione,tanto per capirci...i famosi space,non avevo fatto i conti con il refresh dei dati.

Mi spiego meglio il programma, lo chiamo A,genera un file in formato TXT,cioe' in pratica un LOG in maniera perfetta e' quello che mi interessa (datain38.ini).

Il programma ,diciamo B,non riesce a leggere queste stringhe,perche' A sta' girando.Solo se interrompo il run di A il prg B acquisisce l'ultima stringa memorizzata.

Mi sembra che tu come hai scritto avessi gia' subdorato e risolto tale inghippo.

Nel frattempo,la mia distrazione,ha fatto si' che perdessi il tuo programma.

Una seconda spedizione sarebbe cosa grata.

Dovrei essere cosi' in grado di finire questo calvario (me lo sono cercato,che dura da piu' di 2 anni....

Sto' anche preparando il mio sito (speriamo di concluderlo almeno....entro 2 anni !!!!).

Se ti puo' interessare si trova su :

http://www.web.tiscali.it/tigulliometeo

Scusa per l'ennesimo disturbo.

Ciao.

Inserita:

Ciao,Gabriele

hai ragione....il mio sbaglio e' grave,in pratica e' come se non sapessi dove abito !!!!!!

Forse sara' l'emozione del primo mio sito..

Grazie.

Ciao

P.S.: spero di fare un bel sito ringraziando anche gli amici di questo OTTIMO forum che mi hanno gentilmente aiutato.

Inserita:

Adesso ti rimando il file eseguibile. Purtroppo non l'ho più ripreso in mano per fare quelle piccole migliorie che mi ero ripromesso di fare: tempo tiranno.

Ora faccio un salto alla mia web-mail e via...

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