84paolo Inserito: 2 aprile 2020 Segnala Share Inserito: 2 aprile 2020 Buongiorno a tutti. In questo periodo di Home Working mi sto dedicando alla conversione di un vecchio software dal 300 al 1500. Il programma a sua volta era già stato convertito 20 anni fa dall'S5 quindi immaginate come può essere ordinato. Ora oltre alla conversione sto anche cercando di rendere più leggibili alcune parti di codice. Ma veniamo al mio problema. Nel software in Step 7 ci sono alcuni richiami ad FC con il passaggio di parametri solo di Input. Ma magicamente sul 300 anche se tu passi il parametro come solo input e nell'FC lo modifichi, fuori dall'FC ti trovi il parametro modificato. Ho provato questa cosa con il simulatore perchè non ci credevo ed effettivamente funziona. Lo stesso software invece convertito in TIA come parametro di input non ti porta all'esterno le modifiche e infatti per farlo funzionare ho dovuto spostare i parametri come IN/OUT. A voi risulta questa cosa che sul vecchio 300 (o anche S5) anche se passi i parametri come input li puoi modificare lo stesso? Non sono fatti in altre parti di programma, perchè ho fatto un programma nuovo solo con quel blocco di codice.. Grazie Link al commento Condividi su altri siti More sharing options...
elettrix01 Inserita: 5 aprile 2020 Segnala Share Inserita: 5 aprile 2020 (modificato) L'unico caso in cui mi viene in mente che un parametro passato come ingresso a un fc del 300 possa essere modificato è se viene passato attraverso un puntatore. Questo perchè non viene modificato il parametro passato (che è l'indirizzo nell'area di memoria), ma ciò che è contenuto nell'area di memoria Modificato: 5 aprile 2020 da elettrix01 Link al commento Condividi su altri siti More sharing options...
batta Inserita: 5 aprile 2020 Segnala Share Inserita: 5 aprile 2020 Trovo molto sensato ciò che dice Elettrix01. In ogni caso, ritengo la cosa più corretta sia controllare come sono gestiti questi parametri all'interno delle funzioni. Se vengono anche scritti, era sbagliato dichiararli come parametri in input, e la cosa più corretta sarebbe quindi farli diventare in/out. 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