Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Stack?


Messaggi consigliati

Inserito:

la mia domanda è molto semplice : cos'è lo stack logico nei plc e che funzione ha?

grazie a tutti


Inserita: (modificato)

lo stack logico e' una specie di "area di memoria" o meglio una pila (stack) di registri

dove viene salvato l'RLC (risultato logico combinatorio) ed altri flag presenti nella parola di stato .

L'rlc viene usato a fine segmento o lista di sitruzioni per decidere se eseguire o meno l'assegnazione finale.

Ad ogni istruzione viene aggiornato l'rlc per valere 1 o 0 alla fine quando di deve settare o resettare

o assegnare una bobina o fare delle operazioni .

C'e' anche un altro stack che e' quello delle chiamate , ed e' consultabile nella diagnostica dell'unita'

quando c'e' un problema legato ad una chiamata di un blocco che utilizza una variabile o richiama un altro blocco di codice non caricati nel plc , creando cosi uno stop della cpu se anche l'OB legato a quesot evento non e' presente (sempre nel plc) .

ciao

walter

Modificato: da walterword
Inserita:

grazie, molto esauriente ,ma allora, per essere sicuro di avere compreso, dipende dallo stack quante istruzioni si possono inserire in un ramo?

ed è corretto dire che lo stack memorizza i risultati intermedi di un segmento mentre gli accumulatori lo fanno per i risultati di calcoli?

grazie ancora

Inserita: (modificato)

gli accumulatori , che poi sarebbero i registri principali svolgono tutte le operazioni.

I registri della cpu li memorizzano .

Non ho le conoscenze per poter affermare che la lunghezza di un segmento dipenda dallo stack , ma volendo ragionarci sopra potrebe anche essere ..... <_<

Certo le istruzioni o meglio i controlli inseribili in un ramo sono limitate , la stessa cosa non la posso dire

per le istruzioni awl , teoricamente infinite in quanto l'rlc viene aggiornato alla fine di ognuna di esse .

Per il ladder credo che sia un limite a livello grafico -gestionale delle matrici che vengono poi compilate

in awl.

Ogni linguaggio viene sempre compilato nel "linguaggio macchina " appropriato che nei plc siemens possiamo dire che e' proprio l'awl .

In effetti se paragoni l'awl dei sistemi s7-300/400 con S7-200 noterai delle differenze consistenti .

Nel primo caso si tratta di un "assembly" di basso livello rispetto al secondo .

Per esempio nel primo caso per eseguire un 'addizione devi caricare un operando con l'accumulatore

1 ed automaticamente viene shiftato il suo contenuto nell 'accumulatore 2

Poi dare la string adi operazione e poi trasferire nella ram il valore ottenuto sempre dall'accu 1.

Solo nelle S7 400 ci sono 4 accumulatori , e li puoi gestire con i classici push e pop , ma non ne ho mai avuto le necessita' (personalmente )

Il secondo caso , con microwin , l'addizione la fai scrivendo tutto su una riga ,

ossia operazione da eseguire gli operandi ed il registor dove mettere il risultato .

E' praticamente uguale a molti processori a 32 bit .

Secondo me per quanto riguarda S7-300 /400 la cosa e' abbastanza arcaica , in qanto il ns. lavoro e'

risolvere problemi e progetti di automazione , non di lavorare con il concetto di accumulatore o registri della cpu .

a parita di linguaggio Il , o awl , ci sono delle notevoli differenze tra le diverse marche di plc

Per esempio Premium di schneider e' avanti 50 anni , con questo on voglio dire che sia

migliore o peggiore , in quanto sono felice di essere un programmatore siemens specializzato .

Insomma anche il progetto di puntatori o indici in awl lavorando con dati , tabelle e strutture non e' proprio

il massimo della modernita'.

Pero io uso scl ed il problema e' risolto .

Lavorare con awl ho sempre riscontrato problemi di debug e progettazione con tempi superiori e magiori difficolta nella manutenzione , dopo tutto son abbastanza ignorante ....

Dopo tutte le release e le nuove versioni di step mi sarei aspettato un qualcosa di diverso , piu moderno sopratutto a livello di linguaggi ed awl , ma on e' cambiato praticamente nulla

Sta di fatto che in ladder molte operazioni , soprattuto puntatori , non sono supportate , SCL e' un pacchetto a pagamento a parte mentre altre marche danno tutti i linguaggi gia integrati , compresi i flow chart ect

ma queste sono politiche commerciali che disconstano dal mio ragionamento .

Comunque esistono microcontrollori e microprocessori a 8 bit che supportano linguaggi ad alto livello tipo il C, in casa siemens il linguaggi prediletto e' awl .

In giro per il mondo , lavorando anche con tedeschi , si dice che un bravo programmaotre debba

conoscere bene ed usare solo awl , bruciandosi milioni di neuroni tutti i giorni

BALLE !!!!!!!!!!!!!

Io non ho sposato nessun linguaggio e dopo qualche anno ho saputo apprezzare nei singoli casi ogni tipo di linguaggio e quindi uso ladder , awl ed scl a seconda delle necessita' e urgenze di sviluppo .

Opinioni personali , s'intende

ciao

walter

Modificato: da walterword
Inserita:
la stessa cosa non la posso dire per le istruzioni awl , teoricamente infinite in quanto l'rlc viene aggiornato alla fine di ognuna di esse
In realta' i limiti dello stack li vedi anche in awl, in pratica e' il limite di annidamento delle parentesi.

IMHO raggiungere tale limite e' poco probabile e inoltre vuol dire aver scritto sw inutilmente complicato e ben poco comprensibile, visto che usare merker (o DBX) di appoggio costa cosi' poco :P

Inserita:

penso che annidare le parentesi sia un metodo di "protezione del sw" molto usato ultimamente, in fondo con sie e' facile sia toglire la protezione sul know how che trovare l' eventuale password, allora via con programmi inutilmente complicati .

saluti bellcar

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