Vai al contenuto
PLC Forum


Indirizzamento indiretto con FB


STEU

Messaggi consigliati

Buongiorno

 

sono appena passato a Tia Poeta cnn un PLC 1500 e chiedo scusa se la domanda può sembrare banale.

se ho un parametro in un FB (Ad esempio PIPPO come input bool)

 

con STEP 7 potevo scrivere :

 

L P##PIPPO

LAR 1

 

in TIA portal versione 13 mi dice che_

 

L P##PIPPO

 

non è corretta in quanto non si può puntare ad un parametro di ingresso.

 

Qualcuno sa come posso ovviare senza caricare in AR1 l'indirizzo in maniera fissa:

 

Es    L     P#DIX0.0

 

grazie

Link al commento
Condividi su altri siti


se lavori con gli array e con db ottimizzati non ti serve più indicizzare con i puntatori ma puoi usare un numero che punta dritto al numero dell'array.

prova a cercare in rete o nell'.. puntatori array.

anche io oggi stavo convertendo alcune funzioni vecchie s7 in tia dove dovevo controllare alcuni dati inseriti in un blocco dati attraverso hmi. prima lavoravo in awl con i puntatori e avevo strutturato il db per facilitare le cose.

ora ho ribaltato il tutto. il db è strutturato ad array e con una piccola funzione in scl ho fatto la stessa cosa

 

esempio pratico ho 40 righe con n dati per riga, tutti ugiali

in s7 300 avevo il blocco dati strutturato a righe e ogni riga era uno struct (perciò 40) dove avevo n dati da verificare. con i puntatori leggevo le variabili e confrontavo

ora in tia faccio un array per ogni dato percio avrò:

 "Blocco dati hmi" che contiene dato 1 - array [1..40] of int; dato 2 - array [1..40] of string etc etc

voglio leggere uno di questi int? scritto in awl

 l "Blocco dati hmi".dato 1[variabile] dove variabile è il numero da 1 a 40 del mio array

 

praticamente col tia bisogna rivedere alcune cose per poterlo sfruttare bene. la bellezza di questo modo di lavoro è che puoi benissimo usare i puntatori anche in kop

Link al commento
Condividi su altri siti

Grazie Ken

domani provo, quello che non volevo fare era proprio non dover convertire alcuni blocchi fatti in AWL che con 10 righe do codice ti fanno quello che in SCL una volta compilato è lungo 5 volte di più, cosa probabilmente forse non importante visto le dimensioni delle memori del 1500

 

Link al commento
Condividi su altri siti

Quote

quello che in SCL una volta compilato è lungo 5 volte di più,

Quote

strano, scl è nettamente più snello

Nel 300/400 tutto quello che si scrive in altri linguaggi (KO, FUP, SCL) viene convertito in AWL. Le stesse cose scritte in SCL generavano un codice AWL molto più complesso.
Con il 1200/1500 non è più così.

 

Link al commento
Condividi su altri siti

Nell' immagine vedete il programma che devo tradurre

gli input sono 4 booleani, e l' uscita è un integer

il programma serve per darmi come risposta il numero considerando che i 4 input sono peso 1,2,4,8.

Andare a scomodare SCL oppure farlo a contatti mi sembra una cosa esagerata, questo è veramente un fc da 5 righe di codice

 

Cattura.JPG

Link al commento
Condividi su altri siti

Sarà meno elegante, ma potresti fare così:

 

      L     0
      T     #tmpCodice

      U     #Input_1
      =     #tmpCodice.%X0
      U     #Input_2
      =     #tmpCodice.%X1
      U     #Input_3
      =     #tmpCodice.%X2
      U     #Input_4
      =     #tmpCodice.%X3

      L     #tmpCodice
      T     #Codice

 

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...