Porto Inserito: 21 settembre 2012 Segnala Share Inserito: 21 settembre 2012 Buona sera. Vorrei chiedere agli utenti molto più ferrati nella programmazione in Siemens di quanto non lo sia io, a cosa serve il bit BIE della word di stato, e sopratutto gli svantaggi nell'usare i salti che NON AGGIORNANO IL BIE. Mi spiego meglio e faccio anche un esempio per tentare di farmi capire: ogni volta che passo da KOP ad AWL, il compilatore in automatico traduce le operazioni che hanno una logica combinatoria e le associa a dei salti, in particolare, quando passo da KOP ad AWL, vengono usati i salti SPBNB. Vi posto un esempio di un banale confronto C'è un errore, lo so: l'operazione è di confronto con double, ma gli operandi sono interi.... A parte l'errore di distrazione.... esempio 1) U "M0.0" U( L DB13.DBW20 L DB13.DBW22 <=I ) SPBNB _007 L 0 T DB13.DBW22 _007: NOP 0 questa è la traduzione in AWL del confronto fatto in KOP. Se io ora al posto delle istruzioni succitate, andassi a scrivere: esempio 2) L DB13.DBW20 L DB13.DBW22 <=I SPMZ JMP L 0 T DB13.DBW22 JMP: NOP 0 oppure esempio 3) L DB13.DBW20 L DB13.DBW22 <=I SPBN JMP L 0 T DB13.DBW22 JMP: NOP 0 cosa cambierebbe? Sono scritture intercambiabili? La differenza starebbe che con le istruzioni dell'esempio 2 e 3 non viene copiato il bit RLC in BIE. A quanto ho capito, il bit BIE serve per abilitare il bit EN0 in uscita ai blocchi e tra l'altro solo ed esclusivamente in linguaggio KOP. Se a me non interessasse poter riconvertire una sezione di programma da AWL a KOP e viceversa, potrei usare indistintamente le operazioni di salto con e senza la copia di RLC in BIE? La domanda mi è sorta perché, solitamente in azienda si programma in KOP, però, sopratutto quando devo fare una serie di operazioni, magari con confronti per abilitare o meno le operazioni in funzione del valore degli operandi, mi viene molto facile usare tutte le operazoini di salto che Siemens mette a disposizione, invece di solo SPBNB. Immaginiamo ora che io abbia tutta una serie di operazioni e confronti da fare, tutte all'interno di un FB o FC. Userò SPZ, SPN, SPP, SPM, SPPZ, SPMZ, SPU, ma nessun SPBB o SPBNB. Basterà che alla fine usi la combinazione di istruzioni SET SAVE CLR per non incorrere in problemi nel caso un'istruzione all'interno del blocco dovesse generare un errore, giusto? Grazie. Spero di essermi spiegato in maniera comprensibile... Buona sera. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 23 settembre 2012 Segnala Share Inserita: 23 settembre 2012 (modificato) La differenza starebbe che con le istruzioni dell'esempio 2 e 3 non viene copiato il bit RLC in BIE. A quanto ho capito, il bit BIE serve per abilitare il bit EN0 in uscita ai blocchi e tra l'altro solo ed esclusivamente in linguaggio KOP. Se a me non interessasse poter riconvertire una sezione di programma da AWL a KOP e viceversa, potrei usare indistintamente le operazioni di salto con e senza la copia di RLC in BIE? La domanda mi è sorta perché, solitamente in azienda si programma in KOP, però, sopratutto quando devo fare una serie di operazioni, magari con confronti per abilitare o meno le operazioni in funzione del valore degli operandi, mi viene molto facile usare tutte le operazoini di salto che Siemens mette a disposizione, invece di solo SPBNB. Immaginiamo ora che io abbia tutta una serie di operazioni e confronti da fare, tutte all'interno di un FB o FC. Userò SPZ, SPN, SPP, SPM, SPPZ, SPMZ, SPU, ma nessun SPBB o SPBNB. Basterà che alla fine usi la combinazione di istruzioni SET SAVE CLR per non incorrere in problemi nel caso un'istruzione all'interno del blocco dovesse generare un errore, giusto? Sì. Modificato: 23 settembre 2012 da batta Link al commento Condividi su altri siti More sharing options...
Porto Inserita: 19 ottobre 2012 Autore Segnala Share Inserita: 19 ottobre 2012 Grazie Batta, sempre cortese e professionale! 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