robfa_1 Inserito: 20 luglio 2016 Segnala Share Inserito: 20 luglio 2016 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 More sharing options...
STEU Inserita: 20 luglio 2016 Segnala Share Inserita: 20 luglio 2016 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 More sharing options...
robfa_1 Inserita: 20 luglio 2016 Autore Segnala Share Inserita: 20 luglio 2016 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 More sharing options...
STEU Inserita: 20 luglio 2016 Segnala Share Inserita: 20 luglio 2016 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 More sharing options...
eddy Inserita: 21 luglio 2016 Segnala Share Inserita: 21 luglio 2016 Credo sia dovuta alla necessità di settare l'RLC, in modo che l'istruzioni elaborate successivamente vengano eseguite correttamente. Link al commento Condividi su altri siti More sharing options...
STEU Inserita: 22 luglio 2016 Segnala Share Inserita: 22 luglio 2016 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 More sharing options...
eddy Inserita: 22 luglio 2016 Segnala Share Inserita: 22 luglio 2016 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 More sharing options...
STEU Inserita: 23 luglio 2016 Segnala Share Inserita: 23 luglio 2016 Il bie vedilo come un bit di appoggio non viene influenzato dai risultati di operazione o confronto Link al commento Condividi su altri siti More sharing options...
TravelMen Inserita: 1 agosto 2016 Segnala Share Inserita: 1 agosto 2016 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 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