Jump to content
PLC Forum


Sign in to follow this  
ExergyAndrea

Generazione sorgenti AWL

Recommended Posts

ExergyAndrea

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

 

Share this post


Link to post
Share on other sites

batta

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?

Share this post


Link to post
Share on other sites
ExergyAndrea
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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...