tronco10 Inserito: 27 aprile 2010 Segnala Share Inserito: 27 aprile 2010 ciao a tutti!sono nuovo del forum e vi scrivo perche' ho bisogno di aiuto da persone molto piu esperte di me con il programma vijeo citect, in particolare con il linguaggio Cicode....io è da poco cho ho iniziato ad usarlo...sto creando un progetto di supervisione che controlla lo stato di "maturazione" di blocchi di cemento(o pannelli) fino alla loro completa "cottura": ho necessita' di far aprire e scrivere al programma durante il runtime un file di testo (o tipo excel) che chiamero' "STORICO" in cui ci siano le seguenti colonne: "ora", "% gradora", "% KWH", "temperatura"ecc. ecc. .Tale file dovra' poi rimanere aperto in quanto ogni 15 minuti il programma deve andare a scrivere una nuova riga con i dati aggiornati della maturazione....il file si deve chiudere ala termine della maturazione o allo stop da parte dell'operatore.al termine del ciclo (o allo stop)il file deve essere copiato in un'altra cartella.io finora o provato a fare qualche prova ma senza risultati anche perche' non conosco la sintassi del cicode, pertanto chiedo il vostro AIUTO in particolare se potete indicarmi la sintassi da usare con qualche spiegazione dettagliata...grazie a tutti,a presto! Link al commento Condividi su altri siti More sharing options...
pescatori Inserita: 28 aprile 2010 Segnala Share Inserita: 28 aprile 2010 Una via semplice è quella di configurare un "Device" che punti ad un file di testo o dbf, ed utilizzare poi le funzioni di Cicode per la gestione dei "Device", tipo "DevOpen" e "DevAppend" per andare ad aggiungere i record delle tue registrazioni. Per configurare un "Device" devi andare nel "Project Editor", menu "System" e trovi "Devices"; guarda l'. di linea per capire come funzionanno e come configurare i Devices, poi sempre nell'. vai a guardarti le Cicode Functions per la gestione dei Devices. (dall'indice naviga fino a Cicode Programming Reference->Cicode Function Categories->Device Functions). Link al commento Condividi su altri siti More sharing options...
tronco10 Inserita: 28 aprile 2010 Autore Segnala Share Inserita: 28 aprile 2010 ciao!grazie per l'aiuto ora ci provo e poi ti faccio saperea presto.... Link al commento Condividi su altri siti More sharing options...
tronco10 Inserita: 28 aprile 2010 Autore Segnala Share Inserita: 28 aprile 2010 Una via semplice è quella di configurare un "Device" che punti ad un file di testo o dbf, ed utilizzare poi le funzioni di Cicode per la gestione dei "Device", tipo "DevOpen" e "DevAppend" per andare ad aggiungere i record delle tue registrazioni.Per configurare un "Device" devi andare nel "Project Editor", menu "System" e trovi "Devices"; guarda l'. di linea per capire come funzionanno e come configurare i Devices, poi sempre nell'. vai a guardarti le Cicode Functions per la gestione dei Devices. (dall'indice naviga fino a Cicode Programming Reference->Cicode Function Categories->Device Functions).ciao...ho provato a seguire le tue indicazioni ma non ho ancora trovato la starda giusta....purtroppo , ripeto,è da poco che ho iniziato ad usare il programma e quindi non lo conosco(io ho la versione vijeo citec 7.10r1 - tradotto in italiano...) ....in piu' il mio inglese è un po' arrugginito...tu non è che potresti scrivermi qualche esempio??saresti molto gentile....graziea presto! Link al commento Condividi su altri siti More sharing options...
pescatori Inserita: 30 aprile 2010 Segnala Share Inserita: 30 aprile 2010 Cerco di farti un riassunto:Punto 1) Configurare un Device nel tuo progetto. Mettiti nella finestra Citect Project Editor e fai System->Devices; si apre la finestra di configurazione dove devi definire le proprietà del Device. In "Name" metti il nome che vuoi dargli, per esempio "MioDev". In "Format" devi definire il formato di un record (riga) del tuo file per esempio scrivi "{DATA,8} {ORA,5} {VALORE,6}"; in pratica ogni colonna è indicata tra {}. In "FileName" metti il percorso dove vuoi salavare il tuo file, se ad esempio scrivi [DATA]:LogFile.txt il file verrà salvato nella directory "Data" dentro VijeoCitect e si chiamerà LogFile.txt. In "Type" selezioni ASCII_DEV. In "No. Files" metti -1 per andare sempre in append. Tutte le altre proprietà le lasci vuote. Alla fine fai "Add" per confermare tutto.Punto 2) Scrivere una funzione che vada a salvare i dati nel nostro file."Create a new Cicode page" ti si apre l'editor. FUNCTION ScriviDati(INT Valore)INT hDev;hDev=DevOpen("MioDev"); // Apertura DeviceDevAppend(hDev); // Appendo un nuovo recordDevSetField(hDev, "DATA", Date(2)); // Scrivo la data nel formato dd/mm/yyDevSetField(hDev, "ORA", Time(0)); // Scrivo l'ora nel formato HH:MMDevSetField(hDev, "VALORE", Valore); // Scrivo il valore che ho passato come parametro della funzioneDevClose(hDev); // Chiusura DeviceEND3) Richiamo della mia funzione, ad esempio in un pulsante, col valore che voglio scrivere. Per esempio se ho una variabile WORD1 posso fare ScriviDati(INT WORD1) e dovrei registrare una riga con data, ora e valore della variabile WORD1Questa è proprio una sintesi minimale di come fare per registrare dei dati in un file. Link al commento Condividi su altri siti More sharing options...
tronco10 Inserita: 1 maggio 2010 Autore Segnala Share Inserita: 1 maggio 2010 grazie Marco!ora provo a fare come mi hai detto e poi ti faccio sapere sei stato veramente molto gentile....io avevo provato a fare con il Cicode :facendo in modo tale che il processo mi andasse a scrivere sul file che avevo aperto ogni 15 min e poi me lo andasse a ricopiare (una volta chiuso) in un'altra cartella;ecco l'esempio:FUNCTION scrivo_file_bl1();INT hDev;INT NoRec;hDev=DevOpen("Dati_BL1",0);NoRec=DevSize(hDev);DevSeek(hDev,NoRec); IF (indice_archiv_curve_bl1<2) THEN DevWriteLn(hdev,"ORARIO"+";"+"TEMP_EST"+";"+"TEMP_BLOCCO"+";"+"GRADORA"+";"+"kWh"+";"+"GIORNO");//scrivo prima linea con le seguenti variabili a formare le colonne ENDDevWriteLn(hdev,Time(1):#########+";"+tempest:##.##+";"+temp_bl1:##.##+";"+grdh_bl1:#####+";"+kwh_bl1:#####+";"+Date(9));//scrivo i valori delle variabiliDevClose(hDev);indice_precedente_bl1=indice_archiv_curve_bl1clock_bl1=0ENDFUNCTION copio_elimino_file_bl1()STRING giorno,mese,anno,ora,minuti,sec,appo; //dichiara variabili stringa giorno=DateDay(TimeCurrent()); //rilevamento del solo giornomese=DateMonth(TimeCurrent()); //rilevamento del solo meseanno=DateYear(TimeCurrent(),1); //rilevamento del solo annoora=TimeHour(TimeCurrent()); //rilevamento della sola oraminuti=TimeMin(TimeCurrent()); //rilevamento dei soli minutisec=TimeSec(TimeCurrent()); //rilevamento dei soli secondiappo="c:\baraclit\storico\dati_bl1"+"-"+giorno+"-"+mese+"-"+anno+"-"+ora+"-"+minuti+"-"+sec+".csv"FileCopy("c:\baraclit\dati_bl1.txt",appo,0);Sleep(5)FileDelete("c:\baraclit\dati_bl1.txt");ENDsecondo te è corretto?(la funzione viene eseguita dal cicode ed io riesco ad avere il file che mi interessa...)con il metodo che mi hai indicato tu posso fargli fare le stesse cose?grazie ancora, sei stato gentilissimo!a presto! Link al commento Condividi su altri siti More sharing options...
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