niky Inserito: 19 gennaio 2010 Segnala Share Inserito: 19 gennaio 2010 -Come prima cosa ho inizializzato il DB20 creandomi dalla DW0-------->DW16-dopo di che ho creato un FB12scrivendo questo codice la memoria si incrementa di continuo senza che tiene conto dello stato di M0.0: :U M0.0 :SPB =M001 M001:L DW0 LKF +1 +F T DW0anche scrivendo questo non cambia nulla: :U M0.0 :SPB =M001 :BEA M001:L DW0 LKF +1 +F T DW0chi mi aiuta sembra semplice ma Link al commento Condividi su altri siti More sharing options...
zanellatofabio Inserita: 20 gennaio 2010 Segnala Share Inserita: 20 gennaio 2010 UN M0.0SPB =M001L DW0LKF +1+FT DW0M001: NOP 0L' SPB è un salto condizionato dall' RLC e viene eseguito se RLC=1 .Fintanto che M0.0 ha lo stato 0 , RLC=1 e il salto viene eseguito .Quando M0.0 è 1 allora RLC=0 e il programma elabora la somma .M0.0 dovrebbe eesere un fronte di salita altrimenti con M0.0 a 1esegue la somma ad ogni ciclo del programma .Che anni quelli dello step 5 .... Link al commento Condividi su altri siti More sharing options...
niky Inserita: 20 gennaio 2010 Autore Segnala Share Inserita: 20 gennaio 2010 grazie della risposta ma mi devi spegare una cosa.Se SPB salta solo se RLC=1 perchè allora il mio primo esempio non funziona?daltronte ho scritto nella mia sintassi che se M0.0 è a 1 quindi RLC = 1 salta all'etichetta M001 ed esegui la somma....non capisco la differenza tra il mio esempio e il tuo.nonostante dovrebbe saltare solo quando c'è M0.0 , quando ho provato il software nel PLC mi somma sempre.....grazie della disponibilità Link al commento Condividi su altri siti More sharing options...
bellcar Inserita: 20 gennaio 2010 Segnala Share Inserita: 20 gennaio 2010 se la condizione è falsa l' istruzione di salto condizionato SPB anziche' saltare passa alla istruzione successiva, che nel tuo caso è sempre quella M001:ldw0quindi salto o non salto esegue sempre quella sequenza di istruzioni, se non vuoi fare come consigliato da Zanellatofabio, aggiungi sotto a SPB=M001 l' istruzione SPA=M002 poi aggiungi alla fine una istruzione M002: nop 0:UM0.0:SPB=M001SPA=M002M001:LDW0:LKF+1+FTDWOM002:NOP0comunque è un contatore sui generis, perchè se m0.0 è on ad ogni ciclo macchina incrementi la DW con il risultato di ottenere un numero quasi casuale.Se vuoi contare quante volte va on m0.0 allora devi fare un fronte e usare il fronte nella interrogazione.saluti bellcar Link al commento Condividi su altri siti More sharing options...
niky Inserita: 20 gennaio 2010 Autore Segnala Share Inserita: 20 gennaio 2010 grazie credo di aver capito....perchè giustamente se l'istruzione è falsa comunque il ciclo deve continuare e di conseguenza elabora le istruzioni successive a differenza dell'esempio di bellcar che quando è falsa salta a nop 0 e quindi il conteggio non viene incrementato.....comunque avevo già previsto il fronte di salita, questo sigrazie e 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