ExergyAndrea Inserito: 21 agosto 2018 Segnala Share Inserito: 21 agosto 2018 Buongiorno, sto cercando di generare in sorgente AWL da Excel per la compilazione di un FC dove richiamo una serie di FB (con DB di istanza). Il risultato è questo: ----------------------------------------------------------------------------------------------------------------------------- FUNCTION FC152 : VOID TITLE = AUTHOR : PROJECT VERSION : 0.0 //This FC has been autogenerated via Source file 'FC_TRANSFER_Source.awl' BEGIN NETWORK TITLE = NETWORK TITLE = Buffer Tank 030TNK01 --> Buffer Tank 030TNK01 U "Alw_off"; // = DB150.Alarm // U DB150.Alarm // = DB150.Interlock // RECIPE FUNCTION BLOCK // CALL FB6 , DB250 // Trasf_Running := DB150.Running // Trasf_Idle := DB150.Idle_Step // Trasf_Alarmed := DB150.Alarmed // Trasf_Suspended := DB150.Suspended // Abilita_Range_Orario := // Interlock := DB150.Interlock // Alarm := // EN_Recupero_Cicli := // Ciclo_Trasf_Completato := // Trasf_Running_Recipe := // Partenza_Ritardata := // Transf_OP_Mode := DB150.OP_Mode // Peso_in_Tonnellate := // Dose_Giornaliera := // Numero_Cicli := // Ora_Attuale := // Minuti_Attuali := // Ora_Start := // Minuti_Start := // Ora_Start_Range := // Ora_Stop_Range := // Porzione_Ciclo := DB150.SP_m3 // Abilita_Ricetta := // Richiesta_Trasf := DB150.Start_Recipe // Ora_Prossimo_Scarico := // Minuti_Prossimo_Scarico:= // Tempo_Ciclo := // Cicli_Fatti := // Cicli_da_Fare := END_FUNCTION ----------------------------------------------------------------------------------------------------------------------------- Una volta compilato tolgo i commenti e il risultato è questo: ----------------------------------------------------------------------------------------------------------------------------- U M 0.0 = DB150.Alarm U DB150.Alarm = DB150.Interlock // RECIPE FUNCTION BLOCK CALL FB 6 , DB250 Trasf_Running := Trasf_Idle := Trasf_Alarmed := Trasf_Suspended := Abilita_Range_Orario := Interlock := Alarm := EN_Recupero_Cicli := Ciclo_Trasf_Completato := Trasf_Running_Recipe := Partenza_Ritardata := Transf_OP_Mode := Peso_in_Tonnellate := Dose_Giornaliera := Numero_Cicli := Ora_Attuale := Minuti_Attuali := Ora_Start := Minuti_Start := Ora_Start_Range := Ora_Stop_Range := Porzione_Ciclo := Abilita_Ricetta := Richiesta_Trasf := Ora_Prossimo_Scarico := Minuti_Prossimo_Scarico:= Tempo_Ciclo := Cicli_Fatti := Cicli_da_Fare := // Trasf_Running := DB150.Running // Trasf_Idle := DB150.Idle_Step // Trasf_Alarmed := DB150.Alarmed // Trasf_Suspended := DB150.Suspended // Abilita_Range_Orario := // Interlock := DB150.Interlock // Alarm := // EN_Recupero_Cicli := // Ciclo_Trasf_Completato := // Trasf_Running_Recipe := // Partenza_Ritardata := // Transf_OP_Mode := DB150.OP_Mode // Peso_in_Tonnellate := // Dose_Giornaliera := // Numero_Cicli := // Ora_Attuale := // Minuti_Attuali := // Ora_Start := // Minuti_Start := // Ora_Start_Range := // Ora_Stop_Range := // Porzione_Ciclo := DB150.SP_m3 // Abilita_Ricetta := // Richiesta_Trasf := DB150.Start_Recipe // Ora_Prossimo_Scarico := // Minuti_Prossimo_Scarico:= // Tempo_Ciclo := // Cicli_Fatti := // Cicli_da_Fare := ----------------------------------------------------------------------------------------------------------------------------- Praticamente non mi compila i parametri ma li duplica. Qualcuno ha già provato un cosa simile e ha per caso una soluzione. L'alternativa sarebbe generare una sorgente non commentato ma dono trovando la DB di istanza il compilatore mi da una serie di errori. Grazie Link al commento Condividi su altri siti More sharing options...
batta Inserita: 21 agosto 2018 Segnala Share Inserita: 21 agosto 2018 Ma non fai prima a scrivere la FC direttamente in Step7? Trasformare un blocco in sorgente risulta comodo per l'esportazione, ma scrivere direttamente il sorgente, mi pare un po' da masochisti. Nel codice richiami variabili di DB150, con un indirizzamento misto assoluto/simbolico. Perché non generi anche il DB150, gli dai un nome e usi indirizzamento simbolico? Link al commento Condividi su altri siti More sharing options...
ExergyAndrea Inserita: 21 agosto 2018 Autore Segnala Share Inserita: 21 agosto 2018 1 minuto fa, batta scrisse: Ma non fai prima a scrivere la FC direttamente in Step7? Trasformare un blocco in sorgente risulta comodo per l'esportazione, ma scrivere direttamente il sorgente, mi pare un po' da masochisti. Nel codice richiami variabili di DB150, con un indirizzamento misto assoluto/simbolico. Perché non generi anche il DB150, gli dai un nome e usi indirizzamento simbolico? Per rispondere alla prima osservazione ho creato un foglio EXCEL per la configurazione dell'impianto (gli impianti che devo gestire sono abbastanza ripetitivi). Una volta compilato il foglio EXCEL con delle macro genero tutti i sorgenti per: 1) Simbolico PLC 2) Parti di programma PLC per acquisizione I/O digitali e analogici 3) Parti di programma PLC per la gestione dei Motori e Valvole 4) Variabili SCADA 5) Strutture dati per SCADA Praticamente già adesso risparmio un sacco di tempo e ho ridotto in modo sensibile eventuali errori di battitura. Sto cercando di aggiungere a questa parte già perfettamente funzionante una seconda parte per la gestione di alcune sequenze. La seconda osservazione è corretta ma prima di aggiornare il simbolico e le altre DB volevo far funzionare questa parte altrimenti è lavoro inutile, il fatto che non funziona è indipendente da come richiamo le variabili in quanto non funziona neanche con indirizzi di merker assoluti e con parametri non compilati. Grazie. 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