fanfo Inserito: 16 luglio 2013 Segnala Share Inserito: 16 luglio 2013 Salve, qualche buon uomo sa con certezza questa cosa: Se passo una struttura su un in/out di un blocco FC ed elaboro la struttura internamente al blocco stesso, l'elaborazione viene fatta sulle variabili direttamente dove sono allocate oppure l'elaborazione avviene su delle variabili locali che poi sono ricopiate sulla struttura alla fine dell' FC? Questa domanda perchè ho delle strutture in Db dove devo fare parecchi calcoli in virgola mobile e mi sembra che se li faccio con varibili locali ai blocchi ci possa mettere di meno che elaborare direttamente i dati nei DB. Grazie in anticipo. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 16 luglio 2013 Segnala Share Inserita: 16 luglio 2013 (modificato) I parametri in/out di un FC usano variabili locali, ma ti ricordo che il numero di byte massimo per l'area L di un s7-300 è di 256 bytes totali (per ogni livello di priorità), per ogni blocco sono riservati tanti byte nello stack L a seconda dei locali che esso possiede, quando un blocco viene concluso il suo campo viene nuovamente reso disponibile. P. es. se OB1 occupa 30 bytes puoi richiamare un FC che ne occupa 226 oppure un FC che ne occupa 200 e al suo interno richiama un altro FC che ne occupa 26. Modificato: 16 luglio 2013 da JumpMan Link al commento Condividi su altri siti More sharing options...
cdc Inserita: 17 luglio 2013 Segnala Share Inserita: 17 luglio 2013 Ma cosa succede se superi questa quantità? Ti viene restituito un errore in fase di editazione o in fase di esecuzione la CPU và in STOP? Grazie Link al commento Condividi su altri siti More sharing options...
fanfo Inserita: 17 luglio 2013 Autore Segnala Share Inserita: 17 luglio 2013 Grazie della risposta. Link al commento Condividi su altri siti More sharing options...
JumpMan Inserita: 18 luglio 2013 Segnala Share Inserita: 18 luglio 2013 (modificato) Ma cosa succede se superi questa quantità? Ti viene restituito un errore in fase di editazione o in fase di esecuzione la CPU và in STOP? La CPU va in STOP per "overflow dello stack". Mi sembra di ricordare che da qualche parte si possa vedere la quantità i dati locali utilizzati ma, scrivendo da casa, non ricordo dove... forse sulle proprietà dei blocchi... Modificato: 18 luglio 2013 da JumpMan 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