Vai al contenuto
PLC Forum


Ladder: Array E Indici


avafab

Messaggi consigliati

Salve a tutti, in linguaggio Ladder (KOP) è possibile ricavare dinamicamente dati da un array?

mi spiego meglio, è possibile utilizzare la classica struttura Array, dove "i" è un numero variabile che permette di ricavare i dati contenuti nell'indice i-esimo dell'array?

esistono altri metodi o funzioni per fare la stessa cosa? (sempre in ladder)

grazie

Link al commento
Condividi su altri siti


Il KOP o ladder diagram è nato per rifare via SW le logiche combinatorie a relè.

Eseguire operazioni tipiche dei vettori è anche possibile, ma non è il massimo della semplicità. Se puoi dichiarare l'array in KOP, sicuramente potrai fare anche l'operazione di puntare all'iesimo elemento.

Dovessi farlo io farei, al limite, un blocco in AWL richiamabile anche in KOP.

Link al commento
Condividi su altri siti

Ciao se usi la funzione cerca "array" nel forum trovi un sacco di informazioni utili!

Comunque l'accesso all'array è possibile in due modi:

1.Diretto (ES. DB6.pippo[1],DB6.pippo[2],... DB6.pippo[23])

2. Indiretto tramite puntatori

Link al commento
Condividi su altri siti

1.Diretto (ES. DB6.pippo[1],DB6.pippo[2],... DB6.pippo[23])

2. Indiretto tramite puntatori

Al momento sto usando l'accesso diretto (es."DB Recipes".Recipes[1].Fus_grip_pres_order), ma è possibile fare un accesso di tipo indiretto in linguaggio LADDER? (sui forum siemens dicono di no, pare si possa fare solo in linguaggio STL o SCL)

Link al commento
Condividi su altri siti

pare si possa fare solo in linguaggio STL o SCL

Anni fa, quando usvo ancora i PLC lo facevo regolarmente in AWL, magari è un po' più faticoso che in SCL, ma si fa.

Link al commento
Condividi su altri siti

Che io sappia non puoi utilizzare il linguaggio KOP per realizzare quello che vuoi tu, devi andare con l' AWL o al limite con SCL come ti diceva Livio.

Se decidi di utilizzare AWL, non puoi comunque accedere semplicemente con DB_Recipes.Recipes[index].Fus_grip_pres_order assegnando a index il valore dell'elemento dell'array che vuoi andare a leggere/scrivere (come in C e affini per capirci..) Devi comunque utilizzare i puntatori ed i registri di indirizzo

Come ti è già stato suggerito prova a cercare nel forum argomenti come puntatori, array, pointer ecc.. ci sono tantissime discussioni da cui puoi prendere spunto e capire come utilizzarli per il tuo scopo.

Modificato: da suppaman
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...