Vai al contenuto
PLC Forum


Step V5.2 E Variabili Statiche


Messaggi consigliati

Inserito:

Ciao a tutti; dunque, sto utilizzando S7 v5.2 HF3 ed una cpu 318 2DP. In base a richieste del commitente ho dovuto appoggiare parecchie cicliche sui merker e, incredibile ma vero, sono quasi finiti :( !!!

Dunque, l'idea era di apoggiare i merker per testare i fronti di salita (FP o FN) su variabili locali di ambiente. Insomma, tanto per intenderci su quelle variabili che si vedono tirando verso il basso il menù a tendina che è posto sotto il menù nella finestra KOP/AWL/FUP. Il problema è che mentre per gli FB esistono le variabili di tipo STAT (che dovrebbero essere statiche e cioè non si perde il loro contenuto da una scansione alla successiva), per gli FC nulla. E caso vuole che io ho quasi tutti FC :angry: ! Dunque, vorrei capire qualosa in più su come si usano e/o impostano le variabili create tramite tale menù e se è possibile aggirare il mio problema in qualche modo ... almeno per i fronti di salita/discesa.

Grazie a tutti e buon lavoro.


Inserita:

Io utilizzo alcuni FC abbastanza piccoli, e comunque con poche variabili di appoggio,

ed il problema dei fronti e degli appoggi a bit l'ho risolto in questa maniera :

1- dichiari una variabile di tipo INT o DINT nei parametri IN-OUT della FC con un nome a piacere (tipo W_UTILIZZI_VARI)

2- dichiari i tuoi fronti o appoggi a bit nel campo delle variabili TEMP con inizio 0.0

2- Appoggi la word o la dword dichiarata IN-OUT su dati locali nella primo segmento del programma

L #W_UTILIZZI_VARI

T LW 0

3- metti i segmenti del tuo programma

4- nell'ultimo segmento dell'FC appoggi i dati locali su #W_UTILIZZI_VARI

L LW 0

T #W_UTILIZZI_VARI

facendo questa procedura hai praticamente 16 bit con memoria, ovviamente nella dichiarazione IN-OUT

della FC metterai un DBW globale.

Se invece hai bisogno di grandi quantita' di bit ti conviene convertire gli FC in FB

Ciao

wally

Inserita:

Se hai finito i merker perchè non apri una db (ad esempio la Db1) e usi i singoli bit dei Byte, cosicchè ottieni lo stesso risultato dei merker senza tirarti matto con le variabili nei FB o FC.

Ti faccio un esempio banale:

U E 0.0 // Quando questo ingresso va a 1

S DB1.DBX 0.0 // Setti il bit 0 del byte 0 della Db1

R DB1.DBX 0.1 // Resetti il bit 1 del byte 0 della Db1

Ciao e Buon lavoro da Cigognani

Inserita:

Come dice Cigo usi come appoggio per il fronte di salita o di discesa un bit di una DB qualsiasi.

Esempio:

U M1.0

UN DB1.DBX0.0

= DB1.DBX0.1 // questo è il fronte di salita di M1.0

U M1.0

= DB1.DBX0.0

Ti conviene anche azzerare all'accensione del PLC i bit del DB1 utilizzati per i fronti

Ciao

Inserita:

OK, grazie a tutti per le dritte. Forse quella che zzecca di più le mie necessità e richieste cliente è l'idea di "WALLY". Però a questo punto ancora una domandina: le variabili di IN-OUT devono essere azzerate ad ogni riavvio della CPU o si azzerano in automatico ogni volta che il processore transita dallo stato di STOP a RUN?

Grazie a tutti.

Inserita:

Per avere delle FC slegate dai dati globali, cioe' che possono essere utilizzate piu' volte

nello stesso programma e riutilizzabili in impianti diversi, la soluzione migliore e'

lavorare con dati locali. Ovviamente se si vuole usare la programmazione non

a norma IEC 1131, ma la programmazione tradizionale, si possono usare i bit di una

DB globale es. :

U DB10.DBX0.O

FP DB10.DBX0.1 (FP = FRONTE POSITIVO / FN = FRONTE NEGATIVO)

= DB10.DBX0.2

///per jumpier

Se le variabili dichiarate come IN-OUT nella CALL della FC sono delle DB,

le variabili mantengono il valore dell'ultima esecuzione del programma,

non penso comunque che nel tuo caso devi azzerare la variabile, essendo

appoggi di altre variabili (input o marker o uscite)

ciao

wally

Inserita:

Va ricordato che il numero di byte (a parte la cpu 3182dp) dello stack dei dati locali e' di 256 byte. Se si supera questo valore nella somma delle variabili locali delle FC/FB richiamate, la cpu da' problemi (se non erro va in stop). Nella CPU 3182dp e' possibile aumentare questo valore a scapito di altri registri.

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