Vai al contenuto
PLC Forum


Uscita ENO su FC parametrizzato


Reverendo bit

Messaggi consigliati

Ciao a tutti,
ho un problema con un FC Parametrizzato, in pratica  è un semplice selettore per due misure analogiche, con tre ingressi:
Abil - per abilitare ka selezione
In1 - ingresso ananalogico 1
In2 - ingresso analogico 2
out - uscita analogica.
il mio problema è che avevo messo due di questi fc in cascata,  ma mi sono accorto che il blocco, se ha l'ingresso Abil=1 allora ENO=1 altrimenti ENO  mi  sta a 0 , e non mi elabora il  successivo. 
La mia domanda e , ma  l'uscita ENO , non dovrebbe essere attiva fin quando il blocco non viene eseguito correttamente? 

grazie
Revendo.

Link al commento
Condividi su altri siti


Dal manuale in linea di Step7:

Descrizione dell'operazione

SAVE salva RLC nel bit BIE. Il bit di prima interrogazione/ER non viene resettato.
Per questo motivo, con una combinazione logica AND, anche lo stato del bit BIE viene combinato nel prossimo segmento.
L'impiego di SAVE e una successiva interrogazione del bit BIE nello stesso blocco o in blocchi sottostanti sono sconsigliati in quanto il bit BIE potrebbe subire una modifica dovuta alle numerose operazioni intermedie. È invece opportuno utilizzare l'operazione SAVE prima di abbandonare un blocco poiché, in questo modo, l'uscita ENO (=bit BIE) viene impostata sul valore del bit RLC permettendo all'utente di annettere una gestione degli errori del blocco.

 

In sostanza, se vuoi tenere attiva l'uscita ENO, prima di abbandonare il blocco devi scrivere (in AWL):

SET

SAVE

Link al commento
Condividi su altri siti

Ciao Batta,

Grazie per la risposta, il blocco è scritto in SCL, indagherò per verificare se la sintassi è la stessa.

Saluti.

Reverendo.

Link al commento
Condividi su altri siti

In SCL basta che prima dell'end_function scrivi 
OK:=true;

è un flag di sistema che imposta l'ENO del blocco, prima devi però modificare un'impostazione nel compilatore SCL, strumento->impostazioni->compilatore->attiva flag ok

Link al commento
Condividi su altri siti

  • 1 year later...
ifachsoftware

Ho realizzato delle modifiche ai miei blocchi per le DWORD per poter mettere i blocchi in cascata , ma vedo che funziona come da esempio solo parzialmente.

 

FUNCTION "DW>" : Bool
TITLE = DWORD A > B
{ S7_Optimized_Access := 'FALSE' }
AUTHOR : CR
VERSION : 0.1
   VAR_INPUT 
      A : DWord;
      B : DWord;
   END_VAR

   VAR_TEMP 
      TmpA : DInt;
      TmpB : DInt;
   END_VAR


BEGIN
NETWORK
TITLE = 
      L #A;
      AD DW#16#0FFF_FFFF;
      T #TmpA;

      L #B;
      AD DW#16#0FFF_FFFF;
      T #TmpB;

      L #TmpA;
      L #TmpB;
      >D;
      JC AAA;

// CHECK LAST BYTE

      L #A;
      AD DW#16#F000_0000;
      SRD 28;
      T #TmpA;


      L #B;
      AD DW#16#F000_0000;
      SRD 28;
      T #TmpB;


      L #TmpA;
      L #TmpB;
      >D;
      JC AAA;

      SET;
      R #"DW>";
      JU ESCI;

AAA:      SET;
      S #"DW>";

ESCI:      SET;
      SAVE;
      BE;

END_FUNCTION

 

Sapete dirmi dove sbaglio ?

 

Grazie

Cattura.PNG

Link al commento
Condividi su altri siti

ifachsoftware

Credo di aver capito , è un problema di visualizzazione del simulatore del TIA Portal ; se appoggio i valori in una DB e controllo i risultati , vedo che variano correttamente , anche se a video la linea è grigia anzichè verde .....

 

Grazie lo stesso

Link al commento
Condividi su altri siti

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