bhef Inserito: 11 aprile 2022 Segnala Share Inserito: 11 aprile 2022 Buongiorno a tutti colleghi, Stavo cercando di sviluppare un FB in cui all'interno ho i classici blocchetti di motion by Siemens (MC_Power, MC_Home ecc...) quando ho scoperto che il tipo di dati "TO_Axis" degli oggetti tecnologici non è selezionabile come ingresso all'FB. E' vero che si può risolvere inserendo come ingresso un DB ANY il problema è che così facendo non ho accesso ai tipi di dati all'interno se voglio usarli all'interno dell'FB. Qualcuno può darmi una mano? Vi ringrazio Link al commento Condividi su altri siti More sharing options...
batta Inserita: 11 aprile 2022 Segnala Share Inserita: 11 aprile 2022 (modificato) Non è che non ci sia, è solo che lo devi scrivere per intero, col nome esatto dell'oggetto tecnologico. Esempio: Ovviamente, visto che i dati dell'asse li devi leggere ed anche scrivere, non lo devi mettere come parametri di ingresso, ma come IN/OUT. Tra l'altro, in questo modo risparmi anche, perché viene creato un puntatore, e non tutta la struttura dell'oggetto tecnologico. E, a detta di Siemens, c'è anche un accesso più veloce. Modificato: 11 aprile 2022 da batta Link al commento Condividi su altri siti More sharing options...
bhef Inserita: 12 aprile 2022 Autore Segnala Share Inserita: 12 aprile 2022 Come sempre Batta numero 1. Comunque ho dovuto scrivere il nome dell'oggetto per intero, non vedendo il suggerimento pensavo non si potesse fare. Grazie! Link al commento Condividi su altri siti More sharing options...
beppeconti Inserita: 12 aprile 2022 Segnala Share Inserita: 12 aprile 2022 Il 11/4/2022 alle 11:20 , batta ha scritto: Ovviamente, visto che i dati dell'asse li devi leggere ed anche scrivere, non lo devi mettere come parametri di ingresso, ma come IN/OUT. Io avevo fatto una applicazione un annetto fa e mi ero fatto il mio blocco FB con dentro tutte le funzioni MC_xxx e il parametro dell'asse l'avevo messo come Input. Avevo optato per questa modalità perché avevo visto che tutte le funzioni MC_xxx lo richiedevano come parametro di input. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 12 aprile 2022 Segnala Share Inserita: 12 aprile 2022 (modificato) 3 ore fa, beppeconti ha scritto: Avevo optato per questa modalità perché avevo visto che tutte le funzioni MC_xxx lo richiedevano come parametro di input. All'asse vengono anche inviati comandi, quini la soluzione corretta è IN/OUT. Se funziona anche dichiarandoli solo come Input, non lo so, dovrei provare. Ma, anche se funziona, rimane concettualmente sbagliato. E poi, dichiarandolo come Input, viene replicata l'intera struttura del DB dell'oggetto tecnologico, con inutile dispendio di memoria e di tempo, perché, dichiarato come Input, vengono copiati tutti i dati, anche quelli (e sono la maggior parte) che non servono per le funzioni utilizzate. Dichiarando invece come IN/OUT, viene creato un puntatore (un po' come passare i parametri "byRef" anziché "byVal") e solo i dati veramente usati vengono letti e/o scritti. Modificato: 12 aprile 2022 da batta Link al commento Condividi su altri siti More sharing options...
beppeconti Inserita: 13 aprile 2022 Segnala Share Inserita: 13 aprile 2022 Funzionare funziona, il prototipo su cui ho fatto l'applicazione ha funzionato per alcuni mesi. I comandi all'asse, almeno nel mio caso, non li inviavo io direttamente ma le funzioni MC_xx chiamate nel mio FB. Le funzioni MC_xx prendono tutte il parametro Axis come Input e da li ho pensato fosse corretto usare anche nel mio FB il parametro Axis come Input. Tieni presente che è la prima e unica applicazione che ho fatto utilizzando il Motion integrato nelle CPU del 1500 e quindi è sicuramente migliorabile Link al commento Condividi su altri siti More sharing options...
beppeconti Inserita: 13 aprile 2022 Segnala Share Inserita: 13 aprile 2022 Nel caso degli oggetti tecnologici vengono sempre passati come puntatori anche se dichiarati come input. Non riesco ad allegare la pagina del manuale, comunque è tutto indicato nel manuale del motion "Motion Control Overview" al paragrafo 6.2.3 Link al commento Condividi su altri siti More sharing options...
beppeconti Inserita: 13 aprile 2022 Segnala Share Inserita: 13 aprile 2022 https://efi365-my.sharepoint.com/:i:/g/personal/giuseppe_conti_efi_com/ESAaX-zpVo1Ds1eHb-_9RwUBJzd15DJrfwU1J5hplr_sgw?e=lyoL9h Link al commento Condividi su altri siti More sharing options...
batta Inserita: 13 aprile 2022 Segnala Share Inserita: 13 aprile 2022 Hai perfettamente ragione: nel caso degli oggetti tecnologici, anche passando l'oggetto come Input non viene generata tutta la struttura. Quindi è corretto anche dichiararlo come Input. 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