Vai al contenuto
PLC Forum


Reset Hsc0 In S7-224


Messaggi consigliati

Inserito:

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" :lol: )

come risolvo l'eliminazione del ponticello ???

grazie

Walter64


Inserita: (modificato)

Per dire

Metti 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: da dago_
Inserita:

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.... ma

non 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

Inserita:
... 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.

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...