Vai al contenuto
PLC Forum


Reset Delle Variabili Assegnate Dal Compilatore [fp Winpro]


yupanqui

Messaggi consigliati

Di molte variabili che ho utilizzato nel programma non conosco l'indirizzo fisico visto che è il compilatore ad assegnarlo in automatico.

ora mi viene un dubbio.

quando esco dall'emergenza e voglio fare un general reset iniziale come faccio a resettare queste memorie.

c'è magari una funzione che mi butta a zero tutte le memorie interne?

grazie.

Modificato: da silver
Link al commento
Condividi su altri siti


Roberto Gioachin

Non puoi "buttare a zero" le memorie interne a caso, e tu non hai idea quali siano quelle che ti servono.

Quindi hai due possibilità, azzerare i singoli bit uno per uno, oppure dichiarare un array ed utilizzate i singoli bit di questo array.

In questo modo puoi azzerare tutti i bit che vuoi con una sola istruzione, in quanto i bit hanno una posizione conosciuta.

Ciao

Roberto

Link al commento
Condividi su altri siti

Intanto grazie per la risposta.

Ho capito quello che dici però è un po laboriosa la cosa.

Considera che non mi interessa mantenere a uno nessun bit.

Il general reset iniziale per me è come spegnere e riaccendere la macchina quindi se ci fosse una funzione che mi resetta tutte le memorie ma proprio tutte sarebbe la soluzione piu semplice. :rolleyes:

chiaramente tutte le memorie non ritentive.

c'è una funzione che rersetta tutto?

Link al commento
Condividi su altri siti

grazie della risposta roberto ma neanche la funzione copy non mi è utile.

Con la funzione copy posso copiare il contenuto di una WORD in una area di memoria delimitata da una word di inizio e una di fine.

Non appena inserisco il nome della word finale nella funzione "cioè WR62" è come se dichiarassi che tutte le R sono assegnate a me e non al compilatore.

Quindi non potendo scrivere indirizzi di word assoluti non posso resettare tutto.

Le R che dichiaro io le resetto come e quando voglio ma quelle lasciate al compilatore non posso controllarle. :(

Link al commento
Condividi su altri siti

Roberto Gioachin

Io credo che se usi un ambiente di sviluppo che esegue una compilazione, avrai sempre questo tipo di problema, ma forse la soluzione sta nel cambiare modo di programmare.

Questo non per dire che il tuo modo sia sbagliato, peraltro neanche lo conosco, ma con ambienti di sviluppo di questo tipo ti devi adattare al suo modo di lavorare.

Io utilizzo entrambi i software della panasonic, e comprendo bene questo tipo di problemi, sono convinto che per ogni vantaggio che si ottiene si deve sempre pagare un piccolo scotto.

Con Fpwin-gr hai il massimo di libertà nell'utilizzare le variabili che siano a bit o a parole, ma è anche vero che è più facile commettere errori. Inoltre non si possono creare e riutilizzare le "function", e questo la dice lunga.

In pratica, prova a ideare un diverso modo di programmare, magari non utilizzando le istruzioni di set e reset, magari ottieni anche altri vantaggi.

Non credo di esserti stato molto di aiuto, ma come dicevo prima per ogni vantaggio si deve pagare qualcosa, e questa è una di quelle.

Ciao

Roberto

Link al commento
Condividi su altri siti

del_user_56966

Non capisco in quale caso devi azzerare delle variabili in consegna al compilatore!

Se su queste variabili ti serve il controllo completo non fai prima a dichiararle come globali e quindi statiche ???

Sinceramente non mi risulta che questo sia un problema, le funzioni di sicurezza possono essere tranquillamente statiche

senza problemi non penso che tutte quelle del programma siano sottoposte a questo azzeramento!?

In ogni caso il compilatore le utilizza in maniera diretta tramite l'alias assegnato quindi se azzeri questo ottieni direttamente il reset della stessa

indistintamente dal suo indirizzo fisico!

Link al commento
Condividi su altri siti

Roberto Gioachin
In ogni caso il compilatore le utilizza in maniera diretta tramite l'alias assegnato quindi se azzeri questo ottieni direttamente il reset della stessa

indistintamente dal suo indirizzo fisico!

Certo questo è vero, ma la richiesta era su come si poteva azzerarle tutte con una sola istruzione e non singolarmente.

Devi considerare comunque che i diversi modi di programmare hanno diverse necessità.

Si dovrebbe analizzare la tecnica di programmazione di "silver" per capire il motivo di tale necessità.

Ciao

Roberto

Link al commento
Condividi su altri siti

del_user_56966
Si dovrebbe analizzare la tecnica di programmazione di "silver" per capire il motivo di tale necessità.

Si è vero!

ma una volta capito come, è il programmatore che si adatta al sistema non viceversa... :blink:

Modificato: da alen
Link al commento
Condividi su altri siti

Allora vi spiego.

Io programmo macchine sequenziali quindi ho scelto di programmarle a passi.

parto dal passo uno e se ho le condizioni per andare avanti setto il passo 2 e resetto il passo 1.

in questo modo posso crearmi il flow chart del programma su carta e in qualsiasi momento mi è facile apportare modifiche.

In questo modo però quando la macchina va in emergenza devo per forza di cose resettare il passo che è rimasto settato.

se il mio programma è fatto di 500 passi comincia a essere un impresa.

Ora non stò qui a discutere se il mio modo di programmare è il modo migliore o meno.

Ovvio che come dice alen è il programmatore che si adatta all'hardware e al software che ha a disposizione.

però non conoscendo questi plc e considerato che finora ho programmato plc della GE della SIEMENS e HB allo stesso modo, pensavo di non incontrare problemi.

è anche vero che è la prima volta che lascio al compilatore il compito di assegnare gli indirizzi fisici alle mie variabili quindi questo cambia le cose.

Di conseguenza credo che se voglio sfruttare questa bella possibilità di lasciare al compilatore l'assegnazione degli indirizzi dovrò per forza di cose cambiare modo di programmare.

Qualsiasi altro suggerimento o consiglio è ben accetto.

Grazie ragazzi.

Link al commento
Condividi su altri siti

Roberto Gioachin

Adesso è più chiaro quello che devi fare, e mi trovi daccordo sul fatto che il problema è di non facile soluzione.

Hai "Beccato" un punto in cui Fpwin-pro "cede" rispetto Fpwin-gr.

Infatti Fpwin-pro non utilizza tutte le istruzioni disponibili sui plc della serie FP, una di queste è proprio l'istruzione "SCLR" , che permette di cancellare tutti gli step attivi fornendogli come informazione il numero del primo e il numero dell'ultimo.

Proprio per il fatto che Fpwin-pro atribuisce alias a tutte le variabili, compresi gli step, non è in grado di utilizzare il numero di step per il suo azzeramento.

L'unica possibilità che si ha con questa versione è quella di cancellare gli step uno per uno.

Naturalmente stiamo parlando di progammazione a passi usando le specifiche istruzioni, e non utilizzando dei comuni bit di memoria ®, e quindi per Fpwin-pro utilizzare il linguaggio SFC.

Naturalmente Fpwin-pro offre un discreto tool grafico per realizzare le sequenze operative di una macchina, migliorando la comprensione e il debug della macchina stessa.

La soluzione che dovresti adottare per risolvere il tuo problema è la seguente.

In ognuno degli step verifichi se serve considerare la condizione di emergenza per uscire, e quindi decidi se proseguire o interrompere la sequenza, in questo modo metti molte più transizioni, ma controlli bene il tuo programma.

Non è la stessa cosa che facevi con altri plc, ma Fpwin-pro lavora sul simbolico e non sugli indirizzi, quindi ti devi adattare a questo modo di lavorare.

Ciao

Roberto

Link al commento
Condividi su altri siti

del_user_56966
il linguaggio SFC.

Non uso normalmente questo linguaggio, ma penso che la soluzione sia comunque gestibile,

solo che sono quelle classiche cose dove oltre conoscere come lavora l'ambiente ci vuole il programma, un pò di tempo,

e fare una serie di prove....

Link al commento
Condividi su altri siti

Roberto Gioachin

Io uso abitualmente il linguaggio SFC, per chi deve gestire sequenze è un prezioso supporto.

Le ho senpre fatte con il linguaggio specifico (SSTP, NSTL, NSTP, CSTP) anche quando l'ambiente di sviluppo lavorava sotto DOS.

Ho trovato non particolarmente performante la versione Fpwin-pro rispetto alle eccellenti potenzialità del plc proprio nel linguaggio SFC.

Se qualcosa si può contestare ad un software eccellente come Fpwin-pro, è proprio su questo linguaggio, SFC appunto.

Di certo altre aziende anche più famose della Panasonic sono messe anche peggio, a volte molto peggio.

Posso capire le problematiche di silver, e sono convinto che difficilmente una volta iniziato ad usare questo linguaggio può farne a meno.

Credo che la migliore delle soluzioni sia quella di sollecitare la panasonic a modificare il software per migliorare proprio questa parte.

Ciao

Roberto

Link al commento
Condividi su altri siti

In effetti ho provato ad utilizzare il linguaggio SFC.

Ho anche aperto un altro post in questa sezione perche essendo la prima volta che lo uso ho trovato diverse difficoltà.

Il mio problema principale è il tempo.

In questo momento devo realizzare il programma in fretta e non ho l'opportunità di capire bene certe cose.

Quando avrò un po di tempo farò le mie prove e sono sicuro che come dice Roberto Gioachin poi non potro piu fare a meno dell'SFC.

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