arioler Inserito: 15 giugno 2015 Segnala Inserito: 15 giugno 2015 Buongiorno a tutti. Seguo da tempo il vostro forum e ne ho tratto numerosi spunti per trovare soluzioni. Tuttavia mi sono bloccato su una questione spinosa, su cui sono state aperte numerose discussioni ma nessuno sembra aver riscontrato il mio problema. Sto utilizzando una CPU 313 e devo compilare una DB su cui è memorizzata una ricetta ( un array composto di INT;DINT;FLOAT;STRING.) Il problema sono i FLOAT. Ho creato un file Excel: ricetta[0].C016 := "8.000000e+000" // primo parametro FLOAT ricetta[0]C017 := "1.200000e-001 // secondo parametro FLOAT ....... eccetera Che poi vado ad importare con Copia/Incolla direttamente sulla DB Il problema è che i numeri sono sotto forma di TESTO, e risulta estremamente scomodo compilarli manualmente con questo formato; NOTA: devo necessariamente scrivere i numeri FLOAT in questo modo altrimenti non riesco a compilare, Vorrei allegare un file che ho trovato sul web, forse addirittura sul vostro Forum, ormai non so più dove sbattere la testa! Ho cercato ovunque! Grazie in anticipo! Si chiama Create S7DB, noterete che le variabili float sono scritte in formato celle TESTO.
Reverendo bit Inserita: 15 giugno 2015 Segnala Inserita: 15 giugno 2015 Ciao, Allora, io mi sono creato un codice in vba su excel con svariate funzione, tra cui quella di caricare un sorgente .awl di una DB andare a scrivere i valori attuali nei valori iniziali e ricompilare nuovamente un file di testo con estensione .awl pwe poi importarlo su step7 e compilare il db con tutti i valori attuali scolpiti nei valori di ´progetto. Compilo tutti i tipi di dati, float compresi. Che poi vado ad importare con Copia/Incolla direttamente sulla DB. Non capisco cosa intendi. Riusciresti ad postare il sorgente del tuo DB_ Posso provare con il mio excel e magari giratelo, ancora ´in fase beta, ma piu avanti vorrei condividerlo. Saluti.
arioler Inserita: 16 giugno 2015 Autore Segnala Inserita: 16 giugno 2015 Grazie per l'attenzione e disponibilità. Ho caricato lo zip della sorgente della DB, riesci a inserire i FLOAT e compilare il sorgente? Grazie infinite..
Reverendo bit Inserita: 16 giugno 2015 Segnala Inserita: 16 giugno 2015 (modificato) Domani mattina provo e ti faccio sapere. Saluti. Modificato: 16 giugno 2015 da Reverendo bit
walterword Inserita: 16 giugno 2015 Segnala Inserita: 16 giugno 2015 io avevo scritto in vba per excel delle routines che compilavano direttamente file di testo rinominato .awl , con dichiarazione dei dati , assegnazione ect Li importavo come sorgente esterna in step7,compilavo e caricavo
Reverendo bit Inserita: 17 giugno 2015 Segnala Inserita: 17 giugno 2015 Buongiorno arioler, Stamane ho fatto alcune prove sul sorgente da te postato, come pensavo non ho avuto nessun problema ad inserire manualmente dei valori diversi da quelli di progetto ed importarli. Ora le variabili se le scrivi su excel all'interno delle "" non va bene, perchè il file di testo .awl vuole la sua formattazione, che per un folat è ricetta[0].C006 := 1.200000e+001; e non ricetta[0].C006 := "1.200000e+001" Se tu generi un sirgente con questa formattazione per un float, non riuscirai mai a compilarlo. Spero di aver centrato il problema, nel caso contrario fammi sapere. Saluti.
arioler Inserita: 17 giugno 2015 Autore Segnala Inserita: 17 giugno 2015 Innanzitutto grazie a walterword e a Reverendo bit per avermi risposto. Nonostante tutto non sono ancora riuscito a risolvere. Non ho idea del perché ma il sorgente che mi ha caricato mi ha riempito il file di virgolette che impediscono una corretta compilazione. Mi spiego meglio: Se faccio l'assegnazione dei valori iniziali dei FLOAT con il formato 1.50000e-001 oppure 3.00000e+003 (ad esempio) riesco a compilare con successo e generare il sorgente AWL. Tuttavia vorrei fare l'assegnazione direttamente scrivendo 0.15 oppure 3000 e non nel formato 0.00000e+00 (l'unico supportato da S7 per i FLOAT). Il File Excel sarà consegnato ad un operatore macchina poco avvezzo a questo formato 0.0000e+000, (che è davvero ostico). Grazie ancora per la vostra attenzione, so perfettamente che il vostro tempo è prezioso e che lo state impiegando pe aiutarmi, ve ne sono grato.
arioler Inserita: 17 giugno 2015 Autore Segnala Inserita: 17 giugno 2015 (modificato) Questa immagine è come si presenta il sorgente che riesco a compilare. Io vorrei scrivere 0.12345 e non 1.23450e-001. Grazie Modificato: 17 giugno 2015 da arioler
Reverendo bit Inserita: 17 giugno 2015 Segnala Inserita: 17 giugno 2015 (modificato) Come già detto, il sorgente per step7 riconosce solo il formato 0.00000e+000 per i float. Se poi tu vuoi scrivere 0.15 nel file excel, per compilare il sorgente dovrai crearti il codice vba che interpreta il valore e lo trasformi nel formato per step7. Solo così potrai fare quello che tu chiedi. Ma poi una domanda, perché l'operatore dovrà lavorare su excel? Io vorrei scrivere 0.12345 e non 1.23450e-001 Non è possibile Saluti. Modificato: 17 giugno 2015 da Reverendo bit
arioler Inserita: 17 giugno 2015 Autore Segnala Inserita: 17 giugno 2015 Ah caspita.. allora mi farò un corso di VB perché proprio non sono in grado di farlo.. Sarei tentato di chiedere il tuo sorgente e quello di walterword, ma molto probabilmente è giusto che ragioni con la mia testa, anche se il tempo che mi rimane è poco. L'operatore scrive in Excel perché sarebbe meglio se inserisse i valori iniziali da PC, fino ad ora lo faceva da Pannello a mano nel formato 0.0000e+000, sono circa 300 valori. Non oso immaginare quanto ci abbia messo la prima volta (prima del revamping). Grazie ancora. Buona giornata
Reverendo bit Inserita: 17 giugno 2015 Segnala Inserita: 17 giugno 2015 (modificato) Sarei tentato di chiedere il tuo sorgente e quello di walterword Come ti dicevo più avanti magari lo codividerò, per adesso è in fase beta e non è totalmente affidabile, infatti ho trovato un bug propio compilando il tuo di sorgente. Comunque se l'operatore scrive in excel ci dovrà essere una macro che compila un sorgente, e poi come fa l'operatore a caricare i valori nel DB? Per un'operatore scrivere 300 valori su excel o scrivere 300 valori dal pannello, forse è meglio la seconda, e comunque se si tratta di un revamping (quindi presumo che già sai quali sono i valori da impostare) potresti impostarli tu stesso. fino ad ora lo faceva da Pannello a mano nel formato 0.0000e+000 Nel pannello (come anche in una vat) non scrivi 1.5000e+001, ma 15.0 il formato con mantissa ed esponente e quello che vedi solo nel sorgente. Modificato: 17 giugno 2015 da Reverendo bit
arioler Inserita: 18 giugno 2015 Autore Segnala Inserita: 18 giugno 2015 (modificato) I valori li conosce l'operatore, sto seguendo altre commesse e non ho tempo di scrivere i valori per lui; Tuttavia a me è sembrato che lui li inserisse col formato 0.00000e+000, il pannello è un ESAVT585, il programma è WTWIN, molto obsoleto.. non so se centri qualcosa. Grazie ancora..buona giornata! Modificato: 18 giugno 2015 da arioler
arioler Inserita: 22 giugno 2015 Autore Segnala Inserita: 22 giugno 2015 (modificato) Buongiorno a tutti. Premesso che sono un apprendista softwarista alle primissime armi, questa è la soluzione terra terra che ho trovato. Non so perché, ma funziona. Se dovete digitare i valori iniziali di una DB questa è la procedura: Create la Vostra DB e assegnatele un nome simbolico. Create una sorgente AWL con nome a caso. Aprite il file Excel (notate che ci sono 3 fogli di lavoro). Compilate il foglio2 con i valori desiderati. Aprite il foglio1 e fate copia incolla del testo dentro alla sorgente AWL (cambiate il nome della DB in alto col nome simbolico della vostra DB). Salvate e compilate. Dovreste aver ottenuto una DB con i valori desiderati. Modificato: 22 giugno 2015 da arioler
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