southofsanity Inserito: 29 gennaio Segnala Inserito: 29 gennaio (modificato) Salve a tutti , ho una periferica che mi ha 40 byte in ingresso e 40 in uscita, indirizzati nella configurazione hardware. in questi byte ci sono molti booleani di segnalazione. Dato che non posso prendere i singoli bit dagli indirizzi devo spostarli su una DB per poterli elaborare singolarmente. esiste una funzione per spostare tutto il blocco indirizzi in nella db? non vorrei spostare byte per byte o word dword che sia. grazie spero di essermi spiegato.. Modificato: 29 gennaio da southofsanity
southofsanity Inserita: 30 gennaio Autore Segnala Inserita: 30 gennaio Yes , è quello che cercavo.... Grazie mille
southofsanity Inserita: 22 ore fa Autore Segnala Inserita: 22 ore fa Ciao, ho provato con sfc 14/15 e anche con sfc20 ma mi da errore, i dati li ho confrontati sono lunghi uguale, quanlcuno ha qualche idea ? , allego foto hardware ( sono 36 non 40 per varie prove eseguite ). Grazie a tutti
drn5 Inserita: 19 ore fa Segnala Inserita: 19 ore fa 2 ore fa, southofsanity ha scritto: mi da errore Quale? Sembrerebbe un errore di area di destinazione non abbastanza grande. Comunque guarda qui la BLKMOV dove trovi tutte le info che ti servono e anche il link per tracciare eventuali errori.
southofsanity Inserita: 5 ore fa Autore Segnala Inserita: 5 ore fa L'SFC 14 mi da 80B1 La lunghezza dell'area di destinazione indicata non è uguale alla lunghezza dei dati utili progettata con STEP 7. L'SFC 20 mi da 8x22 Errore di dimensione nella lettura di un parametro. Ma le aree di lettura e scrittura erano entrambe di 36, nelle varie prove ho anche fatto una DB dedicata di 36 byte ma nulla , l'errore sparisce solo se leggo 1 solo byte mi e venuto il dubbio che nell' hardware lo step 7 voglia la periferia con i byte in sequenza 1350....1385
drn5 Inserita: 3 ore fa Segnala Inserita: 3 ore fa 1 ora fa, southofsanity ha scritto: con i byte in sequenza Non capisco cosa intendi nella configurazione hw in sequenza... vuoi dire che sono sparsi un po' qui e un po' là? Comunque si, le funzioni di copia leggono e scrivono locazioni di memoria consecutive. Se devi leggere/scrivere 36 bytes, gli stessi devono essere "uno dietro l'altro". Se non lo sono, copia quelli consecutivi con i BLKMOV e gli "sparsi" con dei semplici MOVE.
84paolo Inserita: 2 ore fa Segnala Inserita: 2 ore fa ma uno screen di come hai impostato la funzione?
southofsanity Inserita: 14 minuti fa Autore Segnala Inserita: 14 minuti fa Si attualmente lavora tutto con il move, ho trasferito Di DW in DW, ma non mi piace, per byte in sequenza intendevo questo ( vedi immagine ) La funzione SFC20 e impostata P#E1350.0 byte 36 in ingresso e P#DB250.DBX0.0 Byte 36 in scruttura Nella SFC14 ho messo l'indirizzo IN 16# in ingresso uguale alla sfc20 in uscita, non c'è molto da scrivere penso , la db e comopsta nei primi 36 byte da una Struttura di booleani interi e byte in base alle esigenze, comunuqe on funziona nemmeno con una DB di 36 byte puliti con le periferie configurate come nell'immagine funziona bene... forse e un limite di step7 e volevo capire, se c'era un'alternativa ai move boh.. grazie.
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