Scaram Inserito: 7 giugno 2012 Segnala Share Inserito: 7 giugno 2012 (modificato) Salve, vorrei un consiglio per lo sviluppo di uno shift register(SR) piuttosto corposo per trasportare dei dati lungo tutta la linea di un impianto, la quale è piuttosto ampia diciamo. Lo SR però non è di quelli classici, ovvero Ciclo di clock 0 : SR = 0000 0001 Ciclo di clock 1 : SR = 0000 0010 Ciclo di clock 2 : SR = 0000 0101 Ciclo di clock 3 : SR = 0000 1010 ... Questo andrebbe bene per trasportare lungo la linea 1 dato singolo. A me invece servirebbe poterne portare più di uno, diciamo almeno una decina contemporaneamente. Escludendo l'opzione di creare uno Shift Register per ogni dato (troppo onerosa in fatto di risorse durante ogni shift, data la lunghezza della linea e il fatto che ogni shift in realta' rappresenta 10cm) quali altre soluzioni sono consigliabili? Va anche tenuto conto, secondo me, il fatto che i dati all'interno dello shift register non vengono inseriti tutti all'inizio della linea e poi trasportati attraverso le varie sezioni che la compongono ma inseriti man mano da ciascuna stazione e portati avanti. Rifacendosi all'esempio di prima del dato singolo, potremmo avere una situazione del genere: Ciclo di clock 0 : SR = 0000 0001 Ciclo di clock 1 : SR = 0000 0010 Ciclo di clock 2 : SR = 0100 0100 Ciclo di clock 3 : SR = 1000 1000 Questo perchè lo stesso tipo di bit (scarto prodotto) può essere generato da più stazioni per essere poi letto dalla stazione di scarto. La CPU è una 317T-2 DP della Siemens, il linguaggio di programmazione è KOP con qualche funzione AWL. Io avevo pensato di creare un DB100 contentene questi dati, DB formato da 100 UDT (100 per ora e'messo li'in maniera indicativa finchè non saprò le misure precise della linea) ognuna delle quali rappresenta l'insieme dei dati in un certo punto della linea. Per capirsi, in un ciclo di clock abbiamo che: DB100.DBW0 contiene tutti i dati nel punto 0 DB100.DBW1 contiene tutti i dati nel punto 0 + 10cm DB100.DBW2 contiene tutti i dati nel punto 0 + 20cm ... Nel ciclo di clock successivo ovviamente ogni word N conterrà i dati che la word N-1 conteneva nel ciclo di clock precedente. Il problema è che non saprei come organizzare lo shift alla fine di ogni ciclo di clock... Grazie a tutti. Modificato: 7 giugno 2012 da Scaram Link al commento Condividi su altri siti More sharing options...
fedesara Inserita: 8 giugno 2012 Segnala Share Inserita: 8 giugno 2012 (modificato) il dato di cui parli è davvero una word sola? (ovvero UDT è una word?) se hai la possibilità di utilizzare SCL dovresti riuscire a scrivere facilmente quanto dici altrimenti bisogna giocare un po con gli indirizzamenti indiretti in AWL... cervellotico ma fattibile Ciao! Modificato: 8 giugno 2012 da fedesara Link al commento Condividi su altri siti More sharing options...
dott.cicala Inserita: 8 giugno 2012 Segnala Share Inserita: 8 giugno 2012 in una 315t fare un sr come l'hai descritto è quasi un reato... Orientati verso la scrittura indicizzata all'interno di un DB e dovrai solo incrementare l'indice ed eseguire un block move senza scomodare AR, per "trasportare i dati".... In base al valore dell'indice saprai anche a che punto è il ciclo e dove stai scrivendo/leggendo, mentre con un sr puoi solo immaginarlo. Link al commento Condividi su altri siti More sharing options...
Scaram Inserita: 12 giugno 2012 Autore Segnala Share Inserita: 12 giugno 2012 il dato di cui parli è davvero una word sola? (ovvero UDT è una word?) se hai la possibilità di utilizzare SCL dovresti riuscire a scrivere facilmente quanto dici altrimenti bisogna giocare un po con gli indirizzamenti indiretti in AWL... cervellotico ma fattibile Ciao! Si' è una sola Word ripetuta "n" volte nel DB diciamo, è sicuramente una soluzione infattibile e pesante... Molto meglio l'indirizzamento indiretto anche se cervellotico in una 315t fare un sr come l'hai descritto è quasi un reato... Orientati verso la scrittura indicizzata all'interno di un DB e dovrai solo incrementare l'indice ed eseguire un block move senza scomodare AR, per "trasportare i dati".... In base al valore dell'indice saprai anche a che punto è il ciclo e dove stai scrivendo/leggendo, mentre con un sr puoi solo immaginarlo. La CPU e' una 317T ma non credo cambi granchè in questo caso Mi diletterò con gli indici dunque e vi farò sapere com'e' andata. Grazie ad entrambi!! 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