IlFincoITA Segnala abuso Inserito il: Gennaio 17 Ciao! avrei bisogno di sapere se un contatore veloce, uno di quelli a bordo della CPU 1214C, sta incrementando il suo valore o no. In pratica per osservare se una ruota sta effettivamente girando. Avevo pensato a dei timer che vedono se il sensore è attivo o no in un certo tempo. Però dovrei rilevare se è ferma o no anche per tempi estremamente brevi. Da qui l'uso del contatore veloce che mi produce un gran numero di conteggi anche per spostamenti veramente minimi. Mi suggerireste come pensare ad una funzione per questo impiego? Condividi questa discussione Link discussione Condividi su altri siti
alessandropa Segnala abuso Inserito il: Gennaio 17 Potresti verificare, 1 sec o mezzo secondo dopo l'attivazione dell uscita del motore, se la variabile dove salvi il conteggio è cambiata o no se no sai che non ha girato Condividi questa discussione Link discussione Condividi su altri siti
leleviola Segnala abuso Inserito il: Gennaio 17 Dovrebbe bastare verificare ad ogni scansione di programma se il valore di conteggio è cambiato rispetto alla scansione precedente, basta che appoggi il valore in una variabile e alla scansione dopo verifichi il valore a cui lo hai appoggiato precedentemente, verifichi l'eventuale variazione e risposti il valore di conteggio nella medesima variabile, alla scansione dopo ripeti..... e così via all'infinito. Questo in maniera abbastanza banale, non so se però esiste comunque un registro diagnostico del PLC che certifica la variazione del contatore, di sicuro dovrebbe esserci un registro diagnostico che verifica la rotazione in avanti o indietro non so se c'è anche quello di verifica di movimento effettivo scansione per scansione di programma Condividi questa discussione Link discussione Condividi su altri siti
acquaman Segnala abuso Inserito il: Gennaio 17 Imposta il contatore veloce per calcolare la velocità, se è 0 non si muove. Condividi questa discussione Link discussione Condividi su altri siti
step-80 Segnala abuso Inserito il: Gennaio 17 Io farei cosi: IF FirstScan //Aggiorno variabile al primo ciclo per evitare che alla prima scansione con encoder fermo si verifichi comunque quanto descritto nell'IF seguente AppoggioValContatore := ValContatore; END_IF; //Eseguito ad ogni scansione IF ValContatore <> AppoggioValContatore Fai questo....ecc ELSE Fai quest'altro...ecc END_IF AppoggioValContatore := ValContatore; //aggiornamento variabile appoggio ma se hai la possibilità di fare come dice acquaman credo sia la soluzione migliore. Condividi questa discussione Link discussione Condividi su altri siti
leleviola Segnala abuso Inserito il: Gennaio 17 1 ora fa, step-80 scrisse: ma se hai la possibilità di fare come dice acquaman credo sia la soluzione migliore. Infatti mi pare sia la soluzione migliore, se la velocità è diversa da zero... Condividi questa discussione Link discussione Condividi su altri siti
IlFincoITA Segnala abuso Inserito il: Gennaio 17 Ciao! Grazie delle idee... ma quindi usando ad esempio la funzione CTRL_HSC_EXT che dovrebbe riguardare direttamente i contatori veloci della CPU? Condividi questa discussione Link discussione Condividi su altri siti
step-80 Segnala abuso Inserito il: Gennaio 17 (editato) Non conosco la funzione in questione, il mio esempio era generale...io per esempio uso spesso codice simile per eseguire in automatico istruzioni che invece richiederebbero un execute ...tipo l'operatore inserisce un dato di accelerazione di un asse diverso dal precedente ma per renderlo effettivo bisognerebbe lanciare un istruzione...ecco che allora dentro l'IF metto l'execute , in questo modo in automatico viene lanciato il blocco al variare del dato. Credo comunque che acquaman si riferisse alla configurazione del tuo contatore. Se lo configuri come 'conteggio frequenza', o qualcosa di simile, probabilmente dentro qualche word di stato ti butterà un dato relativo alla velocità alla quale il tuo encoder sta girando. Non conoscendo il plc in questione però, le mie sono soltanto ipotesi. Messaggio editato Gennaio 17 da step-80 Condividi questa discussione Link discussione Condividi su altri siti
acquaman Segnala abuso Inserito il: Gennaio 17 Devi parametrizzare il tuo ingresso veloce per restituirti la frequenza, che non è altro che la velocità. Condividi questa discussione Link discussione Condividi su altri siti
IlFincoITA Segnala abuso Inserito il: Gennaio 18 Grazie a tutti e grazie acquaman... in effetti è bastato configurare correttamente il contatore veloce per avere quello che mi serviva. Condividi questa discussione Link discussione Condividi su altri siti
batta Segnala abuso Inserito il: Gennaio 18 Mi associo ad Acquaman. È la soluzione più semplice e più razionale. Condividi questa discussione Link discussione Condividi su altri siti