DesmoGiec Inserito: 29 luglio Segnala Share Inserito: 29 luglio Ciao! tia portal per certi versi mi è ancora sconosciuto, spero possiate aiutarmi. Dunque, con i 300 (e step7 vecchio), in un fc con input any, richiamando l'fc e passando, ad esempio, db80.dbw126, riuscivo ad accedere ad any e a recuperare sia db che indirizzo della variabile passata. Allego esempio: L P##PrimoDatoDB1 // <--- any LAR1 L W [AR1,P#4.0] T #i_DBn[0] L B [AR1,P#6.0] T #w_HW1 L B [AR1,P#7.0] T #w_HW2 L B [AR1,P#8.0] T #w_LW1 L B [AR1,P#9.0] T #w_LW2 L #w_HW1 SLD 8 L #w_HW2 SLD 8 L #w_LW1 SLD 8 L #w_LW2 OD L L#8 /D T #i_SrcMove CALL "BLKMOV ANY" DB_SOURCE :=#i_DBn[0] ADDRESS_SOURCE :=#i_SrcMove COPY_LENGHT :=#LunghezzaConfrontoInByte DB_DESTINATION :=#i_DBn[1] ADDRESS_DESTINATION:=#i_DestMove RET_VAL :=#rtvl Non ho messo il codice intero, ma tanto basta. In questo modo riesco a dinamicizzare le operazioni passando a suddetto FC una word effettiva, con il proprio commento, anzichè passare degli int che rendono "poco capibile" il codice. Come posso replicare la stessa cosa in tia? Non posso accedere direttamente ad any come facevo col vecchio step7. Ho provato a capire come poter usare peek, ma non saprei come dinamicizzare i parametri. in dbnumber e offset mi richiede dei dint, che però dovrei recuperare in qualche modo dall'any.. conoscete qualche metodo simile? Link al commento Condividi su altri siti More sharing options...
drn5 Inserita: 29 luglio Segnala Share Inserita: 29 luglio Mah...così su due piedi direi che usando le strutture (UDT) il codice risulterebbe chiaro. Il tuo esempio col 300 se me lo dovessi trovare davanti, oggi, per farci delle modifiche mi farebbe diventare matto... Forse 20 fa aveva senso...oggi no. Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 29 luglio Segnala Share Inserita: 29 luglio Su una FC del tia se fai click con il destro e togli la spunta "Accesso ottimizzato" puoi usarle tranquillamente le variabili Any. A me capita su vecchi software convertiti in TIA di usarli Link al commento Condividi su altri siti More sharing options...
batta Inserita: 29 luglio Segnala Share Inserita: 29 luglio Dovrei provare ma, se lavori con blocchi non ottimizzati e AWL, dovresti poter fare la stessa cosa. Hai provato a fare la migrazione da Simatic Manager e S7-300 in TIA e S7-1500 del codice in questione? Bisogna chiedersi però se non ci sia un modo più efficiente per ottenere lo stesso risultato. Link al commento Condividi su altri siti More sharing options...
DesmoGiec Inserita: 30 luglio Autore Segnala Share Inserita: 30 luglio (modificato) 16 ore fa, drn5 ha scritto: Mah...così su due piedi direi che usando le strutture (UDT) il codice risulterebbe chiaro. Il tuo esempio col 300 se me lo dovessi trovare davanti, oggi, per farci delle modifiche mi farebbe diventare matto... Forse 20 fa aveva senso...oggi no. Vero, ma quell'fc non fa parte del programma principale, è una semplice fc che richiamo, che non è oggetto di modifiche "logiche". 16 ore fa, 84paolo ha scritto: Su una FC del tia se fai click con il destro e togli la spunta "Accesso ottimizzato" puoi usarle tranquillamente le variabili Any. A me capita su vecchi software convertiti in TIA di usarli 16 ore fa, batta ha scritto: Dovrei provare ma, se lavori con blocchi non ottimizzati e AWL, dovresti poter fare la stessa cosa. Hai provato a fare la migrazione da Simatic Manager e S7-300 in TIA e S7-1500 del codice in questione? Bisogna chiedersi però se non ci sia un modo più efficiente per ottenere lo stesso risultato. Il blocco non era ottimizzato, avevo già letto di questa cosa, eppure mi dava errore. Oggi, riaprendo il progetto per fare altri test... magia, funziona tutto. Eppure avevo fatto pure la compilazione.. Sarà che l'ho fatta non chiudendo l'fc? Scusate, alla fine funziona tutto per come l'avevo impostato, quindi accedendo ad any come solito. Grazie comunque a tutti Modificato: 30 luglio da DesmoGiec 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