Walter64 Inserito: 1 dicembre 2006 Segnala Inserito: 1 dicembre 2006 Come posso il problema del reset in un contatore veloce HSC0 senza farlo fisicamente ???Spiego meglio:Agli ingressi 0.0 0.1 (contatore veloce HSC0 modalità 10) è applicato il segnale proveniente da encoder A+B che regolamente conteggia e segue alla perfezione un semplice programmino per poi attivare a quota raggiunta un'uscita...attualmente per resettare il contatore applico all'ingresso 0.2 un 24 V proveniente da pulsante (appunto reset), o in alternativa questo reset viene eseguito da interupt che pilota uscita Q e con ponticello (fisicamente !!!) all'ingresso 0.2 trovo tutto quello che ho realizzato funzionante ma ..... molto ridicolo !!!anche perchè và contro la "logica programmabile" (infatti ho realizzato "una logica cablata" )come risolvo l'eliminazione del ponticello ???grazieWalter64
dago_ Inserita: 1 dicembre 2006 Segnala Inserita: 1 dicembre 2006 (modificato) Per direMetti caso che questa è la sub per l'attivazione di un encoder a caso EncoderRobot LD Sempre_on MOVB 16#FC, Ctrl_HSC0 //Imposta bit di controllo: conta in avanti; velocità semplice; abilitato; MOVD dSetPosizioneRobot, VA_HSC0 //Carica il VA HDEF 0, 9 //Carica il VP ENI HSC 0 Se, per dire, vuoi azzerare o modificare il valore corrente dell'encoder fai acossi, ad esempio, da qualche parte scrivi: LD Mettichequestaèlacondizioneperazzerarelencoder MOVD +0, dSetPosizioneRobot AENO CALL EncoderRobot se al posto di +0 muovi +1500 nella variabile...vedrai che ridere! Modificato: 1 dicembre 2006 da dago_
Walter64 Inserita: 2 dicembre 2006 Autore Segnala Inserita: 2 dicembre 2006 OK risolto .....ovviamente ho provato anche la variabile a ..... 1500 !!!ma ho un'altro quesito....sul manuale insegna come collegare i vari ingressi con le uscite attraverso la programmazione.... manon spiega eventuali errori che si possono commettere anche banali .... solo dopo il test su CPU si scopre l'inghippo, o meglio esempio:se io in un segmento utilizzo un ingresso I0.0 (in questo caso pulsante di reset) per pilotare Q0.0 dove a sua volta ho collegato il terminale di reset di un visualizzatore (esterno alla CPU) di pezzi ......in un'altra parte del programma (altri segmenti) ho una serie di contatori e temporizzatori che dopo l'esecuzione della logica, mi devono nuovamente pilotare (sempre in modo impulsivo) l'uscita Q0.0 .... questo non avviene , è come se, a differenza degli ingressi che si possono richiamare + volte,questo richiamo non possa essere fatto per le uscite !!! a meno che siano anticipate da merker vari a cui non riesco a fare l'esecuzione del tipo impulsivo.Ciao a tutti e buon weekend Walter64
Livio Orsini Inserita: 2 dicembre 2006 Segnala Inserita: 2 dicembre 2006 ... questo non avviene , è come se, a differenza degli ingressi che si possono richiamare + volte,...Le uscite puoi anche leggerle, non solo richiamarle, solo che non è corretto lavorare direttamente sulle uscite su più parti del programma. Se un'uscita può assumere valori diversi in funzione di combinazioni logiche diverse contenute in subroutines differenti, è più corretto usare un bit di memoria per ogni uscita. L'ultima istruzione di OB1 richiama una sub che copia l'ultimo stato delle memorie immagini nelle uscite fisiche. E' una quasi duplicazione del registro immagine, ma in questo modo la programmazione è più lineare e si evita di commettere errori e dimenticanze.
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