Vai al contenuto
PLC Forum


Istruzioni SET e SAVE


robfa_1

Messaggi consigliati

Buongiorno a tutti,

 

Sto lavorando ad un progetto già esistente su una cpu 315 2PN/DP . In molte FC trovo come ultimo segmento le due istruzioni poste in questa sequenza:
 

SET

SAVE

 

L'istruzione SET mi pone l'RLC a 1, mentre il SAVE salva l'RLC nel BIE. Ma il BIE , quando viene usato in maniera esplicita?
 Avrei bisogno di un chiarimento a proposito di questa sequenza.

Link al commento
Condividi su altri siti


Il bie lo puoi utilizzare con l'istruzione

 

U    BIE

 

ma credo che ben poche persone lo utilizzino programmando in AWL, E un bit della parola di stato che il compilatore utilizza per poter visualizzare un programma in KOP in AWL e viceversa, serve per salvare l'RLC  e  , sopratutto in caso di salti, e riproporlo nel caso in cui l'operazione da effettuare all'interno del salto può aver modifica il valore dell'RLC stesso

Se scrivi un segmento in KOP con:

 

Un contatto aperto , in serie una operazione di MOVE e poi assegni una bobina e lo visualizzi in AWL capisci a cosa serve il BIE e come è utilizzato.

Link al commento
Condividi su altri siti

Ciao Steu,

 

Grazie della risposta.

 

Ho le idee leggermente più chiare ma non del tutto. Ho capito a cosa serve il BIE , ma a cosa serve fare le due istruzioni precedenti , se nel mio segmento non ho ne bobine ne altri tipi di contatti?

 

 

Link al commento
Condividi su altri siti

Penso che sia un'esigenza del compilatore, che quando deve deve compilare "UN BOX" sia esso un move , un' operazione un richiamo di un FC etc etc, deve salvare l' RLC prima del BOX e riproporlo dopo il box , essendo un compilatore te lo compila sempre allo stesso modo.  Se non hai contatti,( ho fatto una prova con l'istruzione move ) e ne bobine non prende in considerazione il BIE, infatti lo compila ad esempio

 

l md50

t md100

 

Link al commento
Condividi su altri siti

Non prorio ho fatto delle prove

se tu hai un contatto in serie un box all' ingresso EN con una chiamata ad un fc e poi sell'uscita ENO il bie serve, in questo case,  per per copiare RLC nel ingresso EN nella uscita del BOX ENO.

Link al commento
Condividi su altri siti

Il BIE viene messo a 0 nel caso di un errore di elaborazione, ad esempio un overflow  in un istruzione matematica,  in questo caso,  ENO del box non richiama la eventuale funzione

che vi è connessa ( anche se EN =1).

Link al commento
Condividi su altri siti

  • 2 weeks later...

Ciao

 

se al posto del set ci metti una memoria usata all'interno della tua FC ad esempio:

U M10.0
SAVE

 hai appena creato una OUT della FC sul ramo ENO.

 

Vedila più semplicemente così se hai l'esigenza di mettere più FC una di seguita all'altra, devi essere sicuro che ENO sia sempre a 1, altrimenti FC successiva non verrà elaborata.

 

Vi aggiungo l'estratto del famigerato F1 sul editor siemens:

Quote

CALL_FC (Richiama FC dal box) richiama una funzione (FC). Il richiamo viene eseguito solo se EN =1. Se l'operazione CALL_FC viene eseguita, essa realizza le seguenti funzioni

·    salva l'indirizzo di cui c'è bisogno per ritornare al blocco richiamante

·    sostituisce l'attuale campo di dati locali con il campo di dati locali precedente

·    colloca il bit MA (bit attivo MCR) nello stack di blocco 

·    crea un nuovo campo di dati locali per la funzione richiamata.

Al termine, l'elaborazione del programma continua nella funzione richiamata.
Il bit BIE viene interrogato per verificare lo stato di ENO. A quest'ultimo, l'utente deve assegnare con ---(SAVE) lo stato desiderato (valutazione errore) nel blocco richiamato.
Se si richiama un'FC e la tabella di dichiarazione delle variabili del blocco richiamato dispone di dichiarazioni del tipo IN, OUT e IN_OUT, le variabili verranno visualizzate nel programma del blocco richiamante come lista di parametri formali.

Con il richiamo di una FC è obbligatorio assegnare parametri attuali ai parametri formali nella posizione di richiamo. Eventuali valori iniziali nella dichiarazione FC sono irrilevanti.

 

Saluti

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