Piero Azzoni Inserito: 16 ottobre 2006 Segnala Inserito: 16 ottobre 2006 cercando ho trovato parecchi link, anche su questo stesso sito, che spiegano la struttura del codice graynon ho trovato da nessuna parte invece le routines di conversione da gray a binariospecifico che non posso tabellarle essendo un codice a 25 bit per cui un valore variabile da zero a 67.108.863esiste un modello matementico di conversione ?
accacca Inserita: 16 ottobre 2006 Segnala Inserita: 16 ottobre 2006 (modificato) Qui fa un esempio a quattro bit con iterazione dello XOR (pagina 4)Penso che si possa applicare un algoirtmo iterativo per arrivare a 23 bitIo lavoro con micro non con PLC e per me la routine è fattibile. Ripeto non so se ti aiuta con un plcaltro link Modificato: 16 ottobre 2006 da accacca
Piero Azzoni Inserita: 16 ottobre 2006 Autore Segnala Inserita: 16 ottobre 2006 grazieil primo e' piu' completo ma il secondo e' di una chiarezza ineccepibile
TRC Inserita: 23 ottobre 2006 Segnala Inserita: 23 ottobre 2006 Caro Piero se vuoi ti mando io l'esempio, ce l'ho in ladder, l'ho usata parecchio tempo fa ed è un programma che allunghi e accorci in funzione del numero di bit, praticamente è una serie mi merker in serie e parallelo
Matteo Montanari Inserita: 23 ottobre 2006 Segnala Inserita: 23 ottobre 2006 (modificato) volendo questo è "molto" più elegante che utilizzare una serie mi merker in serie e parallelo L #Gray SRW 1 L #Gray XOW T #Binario(questo è per 16bit, volendolo trasformare a 32bit occorre sostituire le operazioni da Intero a DoppioIntero (o DoppiaWord) ) Modificato: 23 ottobre 2006 da keosmm
Piero Azzoni Inserita: 23 ottobre 2006 Autore Segnala Inserita: 23 ottobre 2006 (modificato) se mi ricordo bene xow e' l'exclusive_or a 16 bitsrw cos'e' ?-----ti ringrazio trc, il codice in ladder l'ho gia' scritto e testato come da indicazioni del secondo link di accacca, volevo anch'io lavorare per svolgerlo in meno passaggi in word, devo capire bene le indicazioni di keosmm Modificato: 24 ottobre 2006 da Piero Azzoni
oiuytr Inserita: 23 ottobre 2006 Segnala Inserita: 23 ottobre 2006 srw cos'e' ?Scorre a destra di (n) posizioni i bit della word caricata nell'accumulatore (Shift Right Word), i bit "liberati" a sinistra vengono messi a zero
Matteo Montanari Inserita: 24 ottobre 2006 Segnala Inserita: 24 ottobre 2006 la risposta è stata data da Francesco.scusa ma ho preso il codice scritto per PLC Siemens, pensando erronamente che il linguaggio AWL (almeno per quello che riguarda le operazioni matematiche) fosse compatibile con altri PLC.
Piero Azzoni Inserita: 24 ottobre 2006 Autore Segnala Inserita: 24 ottobre 2006 c'e' qualcosa che non mi tornanella conversione gray --> binario il risultato non e' lo xor tra il digit gray attuale e il digit di un peso piu' altoe' lo xor tra il digit attuale ed il risultato dello xor precedentela maschera di keosmm funziona solo per il bit piu' high e quello subito successivo, poi non fonziona piu'in fatti il passaggio in ladder, pur complesso, funziona perche' ad ogni spostamento della mascera di un bit verso destra si riferisce oltre cha al bit gray, al risultato precedenteoppure non ho capito qualcosa
Matteo Montanari Inserita: 25 ottobre 2006 Segnala Inserita: 25 ottobre 2006 la maschera di keosmm funziona solo per il bit piu' high e quello subito successivo, poi non fonziona piu'io ho testato nuovamente la funzione ma non mi ha dato nessun problema (PLC Siemens).di seguito ti riporto i dati riferiti alle operazioni:SRW Fai scorrere parola a destra (a 16 bit)FormatiSRWSRW <numero>Operando <numero>Tipo dati Numero intero, senza segnoDescrizione Numero di bit, nella misura del quale si opera lo scorrimento; area da 0 a 15Descrizione dell'operazione SRW (Fai scorrere parola a destra) fa scorrere solo il contenuto dell'accumulatore 1-L verso destra, bit per bit. Le posizioni dei bit che risultano vuote in seguito all'operazione di scorrimento, vengono alimentate con zeri. Il bit traslato per ultimo viene caricato nel bit di stato A1. Il numero di bit nella misura del quale operare lo scorrimento viene indicato dall'operando <numero> oppure da un valore specificato nell'accumulatore 2-L-L.SRW <numero>: il numero di bit nella misura del quale operare lo scorrimento viene indicato dall'operando <numero>. Sono consentiti valori compresi tra 0 e 15. I bit di stato A0 e OV vengono resettati a "0", se <numero> è maggiore di zero. Se il numero di scorrimento è "0", l'operazione di scorrimento viene elaborata come un'operazione NOP.SRW: il numero di bit nella misura del quale operare lo scorrimento viene indicato dal valore riportato nell'accumulatore 2-L-L. Sono consentiti valori compresi tra 0 e 255. I numeri di scorrimento > 16 producono sempre il medesimo risultato: ACCU 1 = 0, A1 = 0, A0 = 0, OV = 0. Se 0 < numero di scorrimento <= 16, i bit di stato A0 e OV vengono resettati a "0". Se il numero di scorrimento è "0", l'operazione di scorrimento viene elaborata come un'operazione NOP.Esempi prima dell'esecuzione di SRW 6 0101 1111 0110 0100 0101 1101 0011 1011 dopo l'esecuzione di SRW 6 0101 1111 0110 0100 0000 0001 0111 0100 XOW R esclusivo a parola (a 16 bit) Formati XOW XOW <costante> Operando <costante> Tipo dati WORD, costante (a 16 bit) Descrizione Configurazione binaria da combinare a ACCU 1-L mediante OR esclusivo. Descrizione dell'operazione XOW (OR esclusivo a parola) combina il contenuto dell'accumulatore 1-L con il contenuto dell'accumulatore 2-L, oppure con una costante (a 16 bit), bit per bit, secondo l'operazione logica combinatoria OR esclusivo. Il bit della parola di risultato è "1" se almeno uno dei corrispondenti bit delle parole da combinare è "1". Il risultato viene memorizzato nell'accumulatore 1-L. Gli accumulatori 1-L e 2 (e per le CPU con quattro accumulatori ACCU 3 e ACCU 4) rimangono inalterati. Il bit di stato A1 viene settato conformemente all'esito dell'operazione (A1 = 1, se il risultato è diverso da zero). I bit di stato A0 e OV vengono resettati a "0". È possibile utilizzare la funzione OR esclusivo anche più volte di seguito. Il risultato logico combinatorio condiviso sarà pertanto "1", se un numero dispari di operandi interrogati dà come risultato dell'interrogazione "1". XOW: combina il contenuto degli accumulatori 1-L e 2-L. XOW <costante>: combina il contenuto dell'accumulatore 1-L ad una costante (a 16 bit). Esempi ACCU 1 prima dell'esecuzione di XOW 0101 0101 0011 1011 ACCU 2-L o costante (a 16 bit): 1111 0110 1011 0101 Risultato (ACCU 1) dopo l'esecuzione di XOW 1010 0011 1000 1110
antowery Inserita: 11 febbraio 2009 Segnala Inserita: 11 febbraio 2009 Questo codice gira su tutti i forum come conversione GRAY->BINARIO: L #Gray SRW 1 L #Gray XOW T #Binarioio l'ho testato con s7 300 ma ho tutta l'impressione che converta BINARIO->GRAY e non GRAY->BINARIO-fatemi sapere se mi sbaglio -infatti se inseriamo #Gray = 0000 0000 0000 1001 il risultato binario è #Binario=0000 0000 0000 1101 invece dovrebbe essere 0000 0000 0000 1110mentre 0000 0000 0000 1001 in binario e 0000 0000 0000 1101 in grayposto questo codice (meno elegante) funzionante per encoder assoluti con codifica graydove in MW100 viene trasferito il codice GRAYe in MW112 viene restituito il codice BINARIOfacendo l'esempio precedente con 0000 0000 0000 1001 in MW100 il risultato in MW112 è appunto 0000 0000 0000 1110questo è quello che si trova sul sito siemens su GRAY e BINARIOlibreria GRATUITA siemens X S7 200 conversione GRAY->BINARIO e viceversaEsempio Siemens x S7 300-400 a pagamento per conversione GRAY->BINARIO e viceversa (SUPPORT CARD) U M 100.1 = M 112.1 UN M 100.0 U M 112.1 O U M 100.0 UN M 112.1 = M 112.0 UN M 101.7 U M 112.0 O U M 101.7 UN M 112.0 = M 113.7 UN M 101.6 U M 113.7 O U M 101.6 UN M 113.7 = M 113.6 UN M 101.5 U M 113.6 O U M 101.5 UN M 113.6 = M 113.5 UN M 101.4 U M 113.5 O U M 101.4 UN M 113.5 = M 113.4 UN M 101.3 U M 113.4 O U M 101.3 UN M 113.4 = M 113.3 UN M 101.2 U M 113.3 O U M 101.2 UN M 113.3 = M 113.2 UN M 101.1 U M 113.2 O U M 101.1 UN M 113.2 = M 113.1 UN M 101.0 U M 113.1 O U M 101.0 UN M 113.1 = M 113.0
antowery Inserita: 11 febbraio 2009 Segnala Inserita: 11 febbraio 2009 devo aver sbagliato il link x l'S7 200 scusate lo ripostoLibreria GRATUITA x microwin S7200 conversione GRAY->BINARIO e viceversa
batta Inserita: 12 febbraio 2009 Segnala Inserita: 12 febbraio 2009 Se vi interessano funzioni S7-300/400 aperte e gratuite per la conversione da Gray a binario e viceversa, le trovate QUI
antowery Inserita: 14 febbraio 2009 Segnala Inserita: 14 febbraio 2009 (modificato) grazie batta ora abbiamo la certezza, visto il tuo codice, che le istruzioni indicate da matteo e consigliate anche in altre discussioni di questo forum: L #Gray SRW 1 L #Gray XOW T #Binarioconvertano BINARIO->GRAY e non viceversa quindi: L #Binario SRW 1 L #Binario XOW T #Grayla domanda di questa discussione era:non ho trovato da nessuna parte invece le routines di conversione da gray a binarioe qui si da lo stesso consiglio ERRATOovviamente mi riferisco all'inizio della discussione dove viene chiestoHo bisogno di convertire il codice gray (9 bit) fornito da un encoder assoluto in codice binario mediante plc siemens s7-300.Mi potete aiutare?e come consioglio viene data un istruzione per convertire binario in gray Modificato: 14 febbraio 2009 da antowery
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