Jump to content
PLC Forum


db e address da any input


DesmoGiec
 Share

Recommended Posts

DesmoGiec

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 to comment
Share on other sites


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 to comment
Share on other sites

84paolo

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 to comment
Share on other sites

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 to comment
Share on other sites

DesmoGiec
Posted (edited)
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 :)

Edited by DesmoGiec
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...