Colonial54 Inserito: 22 maggio 2015 Segnala Share Inserito: 22 maggio 2015 Salve a tutti Ho dovuto convertire un sw da S5 a S7; Mi trovo a dovere gestire dei trasferimenti DB-DB tramite l'struzione TNB; Apparentemente trasferisce 40 word (80 byte S7) da DB6 a DB56; Ovviamante devo tradurlo in S7; quello che non mi e' chiaro e' l'offset del'inizio trasferimento; Posto il codice: L KH400 //Indirizzo DB0 L KF+12 //Offset per DB6 +F LIR 0 //Carica forse il valore precedente in qualche registro? ADD KF +59 //??? T MW240 L KH400 //Indirizzo DB0 L KF+112 //Offset per DB56 +F LIR 0 // ??? ADD KF +59 //Boh? L MW240 TNB 40 //Trasferisce pacchetto di 40 word Le istruzioni LIR 0 e il valore KF59 non mi sono chiari per niente; Qualcuno sa come decrittare questo codice? Ringrazio anticipatamente. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 23 maggio 2015 Segnala Share Inserita: 23 maggio 2015 (modificato) In questo manuale trovi spiegazioni su LIR/TIR/TNW/TNB https://support.industry.siemens.com/cs/document/1085940?dti=0&lc=en-WW Io non le ho mai usate non ne ho sentito il bisogno, sono comunque istruzioni che permettono di agire liberamente su qualsiasi locazione di memoria del PLC, se non erro era possibile anche modificare istruzioni del programma e renderlo illeggibile da eventuali upload pur mantenendo il corretto funzionamento. Modificato: 23 maggio 2015 da JumpMan Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 24 maggio 2015 Segnala Share Inserita: 24 maggio 2015 (modificato) Bisogna specificare alcune cose: nei PLC S5 esisteva una locazione di memoria che era funzione del tipo di CPU dove venivano aggiornati gli indirizzi di partenza di tutte le DB presenti nell'applicativo. infatti LIR 0 significa "carica il valore della cella di memoria indirizzata nell'accumulatore 1" cioè hai l'indirizzo di partenza della DB 6. Infatti se sovrascrivi la DB 6 il valore nella MW 240 lo troverai cambiato. L'addizione del puntatore 59 vuol dire che vai a fondo del pacchetto e poi trasferisci i 40 bytes precedenti. Sto andando a braccio, sono oramai più di 20 anni che non tocco più questa roba....... ma a me sembra che vada a copiare dalla 59 word (oppure byte non ricordo) per i precedenti 40 bytes). non mi ricordo quale tipo di CPU partiva dall'indirizzo esadecimale 400 a mappare le DB (veniva chiamata infatti DB0 da non confondere con l'indicizzazione della aperture delle DB). Era per caso il 115U? Modificato: 24 maggio 2015 da pigroplc Link al commento Condividi su altri siti More sharing options...
Colonial54 Inserita: 25 maggio 2015 Autore Segnala Share Inserita: 25 maggio 2015 Si, una 115 CPU943B; Quindi siccome TNB trasferisce partendo dal fondo, 59 e' dove effettuo il primo trasferimento, poi gli altri a scalare per 40 word, fino a 19. O sbaglio? Il vero problema e' che si tratta di un programma che e' stato modificato da una schiera di programmatori, e quasi nessuno ha mai sentito la necessita' di inserire ne una riga di commento e in molti casi non hanno neppure definito i simbolici. Link al commento Condividi su altri siti More sharing options...
STEU Inserita: 25 maggio 2015 Segnala Share Inserita: 25 maggio 2015 La maggior parte delle volte l'istruzione TNB , serviva per trasferire in una particolare locazione di memoria il tempo base di interrup per l'OB a tempo della CPU, Esempio se scrivi 20 nella locazione giusta l'OB ad interrup (che non ricorda quale è) viene richiamato ogni 20 msec. (Un utilizzo tipico era la lettura delle schede analogiche IP) Chiaramente può essere utilizzato anche per altre cose, però è veramente passato tanto tempo che dovrei andare a rileggere il manuale del 115, che è nel link di Jump man a pag 390 del PDF Link al commento Condividi su altri siti More sharing options...
pigroplc Inserita: 25 maggio 2015 Segnala Share Inserita: 25 maggio 2015 SI hai capito bene. Praticamente viene utilizzata come l'equivalente della SFC20 Blockmove solo che il puntatore è diverso. Io la utilizzavo per operazioni di trasferimento ricette, aggiornamento informazioni dei bancali nel magazzino automatico (quando facevo magazzini) ecc. Bei tempi ...... Siccome TNB trasferisce partendo dal fondo ...... 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