thesla Inserito: 18 luglio 2014 Segnala Inserito: 18 luglio 2014 buongiorno a tutti, ho una db con svariati bit, ho la necessita di comandarli a zero, tutti insieme o in gruppo per un istante. ma non resettarli, successivamente dovranno essere comandati ad 1 dal programma e/o parte del programma. come faccio? grazie saluti
coquinati Inserita: 18 luglio 2014 Segnala Inserita: 18 luglio 2014 A parer mio:quando questi bit devono andare a zero? Se riguarda un ingresso o un merker puoi permetterti di fare questo tranquillamente .Mi ricordo che una volta sono riuscito a resettare un intero db , attraverso un loop e usando il registro ar 1 ,che ogni loop lo incrementavo di un bit. Spero di essere stato d'aiuto ciao Inviato dall'app. Mobile di PLC Forum da iPhone6,2
thesla Inserita: 22 luglio 2014 Autore Segnala Inserita: 22 luglio 2014 Grazie coquinati, potresti spiegarmi meglio come impiegare questa funzione ar1. in tanto ho utilizato l'sfc20 BLKMOVE e una db di 8 Byte con tutti i bit a zero, li sposto dove mi servono per mettere temporaneamante a zero i bit di altre db che impiego nel programma. ciao
coquinati Inserita: 22 luglio 2014 Segnala Inserita: 22 luglio 2014 (modificato) in tanto ho utilizato l'sfc20 BLKMOVE già anche quello può andare:)ma personalmente ritengo più pratico l'uso del registro AR1 potresti spiegarmi meglio come impiegare questa funzione ar1. ecco il codice:(scritto prima e testato su una cpu fisica) per ora l'ho limitato a 5 bit, basta solo cambiare il numero loop per resettare quanti bit si vogliono. U M 70.0 //RESET MERKER SPBN END1 // ALTRIMENTI SALTA A FINE AUF "DBX DB" // DB DA RESETTARE L P#DBX 0.0 // CARICO OFFSET VARIABILE AR1 LAR1 // ADESSO SU AR1 HO IL MIO INDIRIZZO DB30.DBX0.0 L 5 // NUMERO DI LOOP E DI BIT DA RESETTARE A001: T #CONTEGGIO_LOOP_RESET // VARIABILE NUMERO DI LOOP R [AR1,P#0.0] // RESET BIT +AR1 P#0.1 //OGNI LOOP MI RESETTI IL BIT SUCCESSIVO L #CONTEGGIO_LOOP_RESET // CONTEGGIO LOOP LOOP A001 // DECREMENTA IL CONTEGGIO LOOP END1: NOP 0 //NESSUNA OPERAZIONE chiaramente con questo li resetti, poi quando devi portarli ad uno puoi portarli cosi: U M 70.1 //SET MERKER SPBN END1 // ALTRIMENTI SALTA A FINE AUF "DBX DB" // DB DA RESETTARE L P#DBX 0.0 // CARICO OFFSET VARIABILE AR1 LAR1 // ADESSO SU AR1 HO IL MIO INDIRIZZO DB30.DBX0.0 L 5 // NUMERO DI LOOP E DI BIT DA RESETTARE A001: T #CONTEGGIO_LOOP_SET // VARIABILE NUMERO DI LOOP S [AR1,P#0.0] // SET BIT +AR1 P#0.1 //OGNI LOOP MI RESETTI IL BIT SUCCESSIVO L #CONTEGGIO_LOOP_SET // CONTEGGIO LOOP LOOP A001 // DECREMENTA IL CONTEGGIO LOOP END1: NOP 0 //NESSUNA OPERAZIONE spero di essere stato d'aiuto Modificato: 22 luglio 2014 da coquinati
coquinati Inserita: 23 luglio 2014 Segnala Inserita: 23 luglio 2014 Figurati quando riesco cerco di dare qualche consiglio anche io Penso che l'sfc20 occupa più memoria di lavoro per il motivo che utilizza dei dati di tipo ANY.Comunque vedi te ciao Inviato dall'app. Mobile di PLC Forum da iPhone6,2
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