southofsanity Inserito: 19 agosto 2019 Segnala Share Inserito: 19 agosto 2019 Buongiorno, Ho svariate periferiche uguali collegate al plc e le gestisco direttamente tramite l'indirizzo configurato nell'hardware. Per esempio se e indirizzata come 100 nell hardware, la periferica mi restituisce i dati letti in %ID100 poi vedro come gestirli. Dato che sono tante volevo fare una Fb dove indicizzo l'indirizzo, con step 7 usavo i puntatori Con Tia devo Usare POKE/PEEK ? Ci ho dato uno sguardo ma sembra che indicizzi le Db Link al commento Condividi su altri siti More sharing options...
batta Inserita: 19 agosto 2019 Segnala Share Inserita: 19 agosto 2019 Con il 1500, in awl, puoi usare i puntatori come in Simatic Manager. Indicizzare la periferia, però, non aiuta certo il debug. Sei sicuro che non ci sia un altro sistema? Magari creando dei tipi di dati, e leggere/scrivere da/verso la periferia con un semplice MOVE. Link al commento Condividi su altri siti More sharing options...
southofsanity Inserita: 19 agosto 2019 Autore Segnala Share Inserita: 19 agosto 2019 (modificato) Forse L'ho fatta un po troppo semplice per non entrare nel dettaglio %ID100 e il primo valore che leggo in totale ho 32 byte da gestire con varie informazioni. Inoltre devo anche scrivere, in base ad eventi, alcuni Byte nelle Q. Praticamente vorrei inserire fuori dalla Fb un offset/indirizzo, per esempio 100, e poi dentro all Fb andare a gestire ed estrapolare quanto mi serve. Ho bisogno del byte 25 allora vado a puntare 25+offset, e così via. Anche per il futuro , volevo capire se c'era un modo per indicizzare l'indirizzo da usare nella fb senza usare l'awl e i puntatori. Modificato: 19 agosto 2019 da southofsanity Link al commento Condividi su altri siti More sharing options...
batta Inserita: 19 agosto 2019 Segnala Share Inserita: 19 agosto 2019 1 ora fa, southofsanity scrisse: Forse L'ho fatta un po troppo semplice per non entrare nel dettaglio %ID100 e il primo valore che leggo in totale ho 32 byte da gestire con varie informazioni. Inoltre devo anche scrivere, in base ad eventi, alcuni Byte nelle Q. La struttura è sempre uguale? Potresti creare due "Tipi di dati", uno per gli ingressi (es. IN_DataType), ed uno per le uscite (es. OUT_DataType). In questi tipi di dati crei la struttura dei dati che scambi col dispositivo. Nella tabella delle variabili inserisci, per esempio, IN_Device_1. Come tipo di dati, inserisci il nome del tipo di dati (IN_DataType per seguire l'esempio). Come indirizzo, assegni l'indirizzo di inizio dell'area (es. I100.0). La stessa cosa la fai per le uscite. Ripeti questi passi per ogni dispositivo. Nella FB inserisci come IN/OUT una variabile per gli ingressi (come tipo di dati selezioni I_DataType), e una per le uscite (OUT_DataType). Quando richiami la funzione, ti basta collegare il nome simbolico che avevi assegnato nella tabella delle variabili. In questo modo con due parametri colleghi alla FB tutti i dati che devi scambiare con la periferia e, a differenza della soluzione con indicizzazione, puoi trovare le variabili nei riferimenti incrociati. Anche lo sviluppo della FB diventa più comodo, perché usi direttamente i simboli che hai assegnato nei "Tipi di dati", senza dover fare calcoli di offset o altre cose poco intuitive. Se provi, vedrai che ci vuole più tempo a spiegarlo che a farlo. Link al commento Condividi su altri siti More sharing options...
southofsanity Inserita: 20 agosto 2019 Autore Segnala Share Inserita: 20 agosto 2019 Si Si la struttura e' sempre uguale.. ora provo, Grazie Link al commento Condividi su altri siti More sharing options...
ken Inserita: 20 agosto 2019 Segnala Share Inserita: 20 agosto 2019 Sempre spunti interessanti Batta, Grazie sto usando questo sistema per provare a leggere il peso da 3 bilance profinet. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 20 agosto 2019 Segnala Share Inserita: 20 agosto 2019 2 ore fa, ken scrisse: sto usando questo sistema per provare a leggere il peso da 3 bilance profinet. Vedrai che ti troverai bene. Molto più comodo di DPRD_DAT/DPWR_DAT o altri sistemi per leggere/scrivere dati dalla periferia. Link al commento Condividi su altri siti More sharing options...
step-80 Inserita: 20 agosto 2019 Segnala Share Inserita: 20 agosto 2019 Senza contare il tempo ,le risorse e le imprecazioni che @batta avrà sudato per arrivare a queste soluzioni che poi con assoluta disinvoltura ci ‘regala’ sul forum. Un grazie anche da parte mia che non uso Siemens ma che spesso fra i tuoi post ho trovato spunti e soluzioni eleganti e funzionali per i miei progetti. Link al commento Condividi su altri siti More sharing options...
ken Inserita: 20 agosto 2019 Segnala Share Inserita: 20 agosto 2019 (modificato) 2 ore fa, batta scrisse: Vedrai che ti troverai bene. Molto più comodo di DPRD_DAT/DPWR_DAT o altri sistemi per leggere/scrivere dati dalla periferia. il problema era che la bilancia in questione deve scambiare 30 byte e per ottenerli devi inserire più linee per arrivare a 30. ci sono i classici 2,4,8,16,e 32, quindi più hardware id. con DPRD_DAT non avrei saputo come fare. chiudo l'ot e aggiungo che spero di sdebitarmi un giorno! (basta aprire una bottiglia buona...) Modificato: 20 agosto 2019 da ken 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