Vai al contenuto
PLC Forum


Istruzione Di Stack


pelino

Messaggi consigliati

Ciao a tutti,

il mio problema riguarda l'ipostazione di un area di Stack.

L'area che ho riservato va da D100 a D115.

I valori che ho inserito sono i seguenti:

D100 = 0001

D101 = 000F

D102 = 0001

D103 = 0068

A questo punto lancio SSET D100 &16 e successivamente, solo su un fronte, PUSH D100 D120

dove in D120 ho caricato un valore.

Fatto questo i valori da D100 a D103 si modificano in:

D100 = 0073

D101 = 0001

D102 = 0068

D103 = 0001

e non viene caricato alcun valore nel buffer.

Link al commento
Condividi su altri siti


Mi pare corretto. Se vedi pag 669 (cap 3-17-2) del manuale W340-IT-11, la push aggiorna le prime 4 word (D100-103) con i nuovi puntatori, e sono corretti:

infatti in D100 hai #73 (pari a 115, cioè l'ultima word dello stack che hai definito con la SSET) e in D102 hai #68 (pari a 104, cioè la word dove hai parcheggiato il tuo valore messo con la PUSH). Verifica che in quest'ultima hai il valore immesso con la push.

Modificato: da Ctec
Link al commento
Condividi su altri siti

Grazie Ctec,

ho provato, si il valore viene inserito correttamente nella D104 e successivamente

la D102 si modifica in #69 ( puntatore su D105 ).

Quando ritento l'inserimento di un nuovo valore, che dovrebbe a questo punto trovarsi

nella D105 mi trovo ancora modificata la D104, questa in pratica viene sovrascritta, il valore D102 resta sempre #69

E' corretto far ciclare i due blocchi per un solo ciclo macchina ?

Link al commento
Condividi su altri siti

Uhm... Strano... Non è che riesegui la SSET, vero? Questa reinizializza lo stack, per cui va usata solo una volta, a meno di non voler svuotare il buffer.

Ho appena fatto una simulazione, e ad ogni push mette il valore giusto e punta al successivo, come previsto.

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...