Albert82 Inserito: 10 agosto 2010 Segnala Share Inserito: 10 agosto 2010 Salve, mi serve un contatto che si chiuda ad impulso ad ogni secondo, cosi facendo vado ad aumentare di 1 una determinata wordU M10.1 sarebbe l'impulso ad 1 secondoSPNNB _001L MW13 la mia word per il conteggioL 1+IT MW13_001: NOP 0devo fare in modo che il contatto M10.1 abbia una frequenza di chiusura ogni secondo, ed inoltre che nella chiusura non continui ad aggiungere 1 alla MW13 ma solo una volta per il suo fronte si salita.spero di essere stato chiarograzie Link al commento Condividi su altri siti More sharing options...
Infoplc Inserita: 10 agosto 2010 Segnala Share Inserita: 10 agosto 2010 (modificato) Nella CPU si puo impostare un Byte di Clock in questo caso il Byte 10 e il codice dovrebbe essere cosi ON M 10.3 // Bit del Byte di Clock ogni 0.5 secondi che con il bit m127.0 conta ogni 1 secondo O M 127.0 // Bit impulso singolo SPB _001 L MW 13 // Word di Conteggio L 1 +I T MW 13_001: O M 10.3 = M 127.0// Estratto dall'. della CPUA ogni bit del byte di merker di clock è assegnato un periodo/un a frequenza.Bit 7 6 5 4 3 2 1 0Periodo (s): 2 1,6 1 0,8 0,5 0,4 0,2 0,1Frequenza (Hz): 0,5 0,625 1 1,25 2 2,5 5 10 Modificato: 10 agosto 2010 da Infoplc Link al commento Condividi su altri siti More sharing options...
cagliostro Inserita: 10 agosto 2010 Segnala Share Inserita: 10 agosto 2010 (modificato) oppure in alternativa U M 10.5 // Bit del Byte di Clock ogni 1 secondo FP M 127.0 // Bit impulso singolo SPBN _001 L MW 13 // Word di Conteggio INC 1 T MW 13 _001: NOP 0Non hai parlato del reset del contatore o di un suo eventuale suo preset ad un valore di partenza, oppure cosa fare al superamento della max capacità di conteggio che in questo caso è 32767.per questo motivo non ho aggiunto altro codice, se non quello espressamente richiesto nel tuo post. Modificato: 10 agosto 2010 da cagliostro Link al commento Condividi su altri siti More sharing options...
Albert82 Inserita: 10 agosto 2010 Autore Segnala Share Inserita: 10 agosto 2010 provero, non sapevo di questa cosa del clock impostabile, per il reset o altro non è un problema, faccio delle comparazioni di MW10 è poi porto a 0 o cosa mi serve.era il fatto di contare, avevo provato il contatto ad impulso singolo ma non mi funzionavo, ossia rimaneva chiuso non solo per un impulso ma per piu tempo.grazie mille! faro sapere l'esito! Link al commento Condividi su altri siti More sharing options...
tavazzi Inserita: 23 agosto 2010 Segnala Share Inserita: 23 agosto 2010 ahi, ahi, ahi signora Longari (Cagliostro ..) ecc. ecc. : attenzione l'istruzione INC implica un byte e non una word, come indicato dall' . Step7 qui sotto. Niente di grave, ma' ho gia pagato caro personalmente quest'errore, percio' tengo a rilevarlo, salutiINC <numero intero, a 8 bit>Operando Tipo dati Descrizione<numero intero, a 8 bit > Costante (numero intero, 8 bit) Costante che viene sumata a ACCU1-L-L; campo da 0 a 255Descrizione dell'operazioneINC <numero intero, a 8 bit> (Incrementa ACCU 1-L-L) addiziona un numero intero (a 8 bit) al contenuto di ACCU 1-L-L, e memorizza il risultato in ACCU 1-L-L. Gli accumulatori1-L-H, 1-H, e 2 restano inalterati. L’operazione viene eseguita senza considerare o influenzare i bit di stato.AvvertenzaLe suddette operazioni non sono adatte alla matematica a 16 bit o a 32 bit, in quanto non viene effettuato nessun riporto dal byte basso della parola bassa di ACCU 1 al byte alto della parola bassa di ACCU 1. Per la matematica a 16 bit o a 32 bit si deve usare rispettivamente l’operazione +I o l’operazione +D.Parola di statoBIE A1 A0 OV OS OR STA RLC /ERScrive: - - - - - - - - -Esempio AWL SpiegazioneL MB22 //Carica il valore di MB22.INC 1 //Incrementa ACCU 1 (MB 22) di 1, memorizza il risultato in ACCU 1-L-L.T MB22 //Trasferisce nuovamente il contenuto di ACCU 1-L-L (risultato) a MB22. Link al commento Condividi su altri siti More sharing options...
cagliostro Inserita: 23 agosto 2010 Segnala Share Inserita: 23 agosto 2010 (modificato) ......Non posso che prenderne atto.Il tutto va bene per conteggi la cui capacità non vada oltre gli 8 bit (255max).Quindi:U M 10.5 // Bit del Byte di Clock ogni 1 secondo FP M 127.0 // Bit impulso singolo SPBN _001 L MW 13 // Word di Conteggio L 1 +I T MW 13 _001: NOP 0Grazie per la correzione. Modificato: 23 agosto 2010 da cagliostro Link al commento Condividi su altri siti More sharing options...
batta Inserita: 23 agosto 2010 Segnala Share Inserita: 23 agosto 2010 OppureU M 10.5 // Bit del Byte di Clock ogni 1 secondo FP M 127.0 // Bit impulso singolo SPBN _001 L MW 13 // Word di Conteggio + 1 T MW 13 _001: NOP 0 Link al commento Condividi su altri siti More sharing options...
amed Inserita: 24 agosto 2010 Segnala Share Inserita: 24 agosto 2010 Tieni presente che la precisione che ottieni non è "assoluta". Sul tempo di clock scelto c'è un errore di +- un ciclo di scansione. Se vuoi il massimo della precisione devi attivare un interrupt a tempo e mettere la tua istruzione di somma in OB35 (se ricordo bene). Ciao Link al commento Condividi su altri siti More sharing options...
Albert82 Inserita: 28 agosto 2010 Autore Segnala Share Inserita: 28 agosto 2010 ma il merker 127.0 da cosa è attivato? Link al commento Condividi su altri siti More sharing options...
cagliostro Inserita: 28 agosto 2010 Segnala Share Inserita: 28 agosto 2010 (modificato) ma il merker 127.0 da cosa è attivato?Se ti riferisci al codice di esempioU M 10.5 // Bit del Byte di Clock ogni 1 secondo FP M 127.0 // Bit impulso singoloM127.0 è attivato da M10.5L'istruzione FP, rappresenta il rilevamento di un fronte di salita, conosciuto anche con il nome di oneshot.In altre parole quando viene rilevata una transizione del segnale da OFF ad ON di M10.5, il merker M127.0 rimane attivo solamente per la durata di un ciclo scansione programma della CPU, anche con M10.5 che rimane nello stato di ON per un tempo indefinito. L'attivazione di M127.0 per una sola scansione avviene nuovamente, dopo che M10.5 è ritornato ad ON passando per uno stato di OFF. Cioè rilevando il nuovo fronte di salita. Modificato: 28 agosto 2010 da cagliostro 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