Vai al contenuto
PLC Forum


Istruzioni Step per creare delle piccole sequenze


Antonio80

Messaggi consigliati

Salve a tutti ho un problemino.

Utilizzo le istruzioni step per creare delle piccole sequenze. Mi succede una cosuccia che non capisco.

Provo a spiegarvi.

Per semplicità abbiamo 2 step, step1 e step2. Dentro a step1 esiste un contatto X dichiarato su fronte di discesa collegato a istruzione SNXT step2. Step2 ha un contatto Y collegato a istruzione SNXT step1.

E già qui spero che qualcuno ci sia ancora.

Del tipo

-----------------------------------------Step1-

-|↓|-------------------------------------SNXT

X Step2

-----------------------------------------Step2-

-| |-------------------------------------SNXT

Y Step1

Sono dentro a Step2.

Ora quando X da ON passa ad OFF salto da Step2 a Step1.

Ora sono su Step1.

Supponiamo che passi un po' di tempo intanto X è sempre OFF.

Ad un certo momento va alto Y, questo mi fa passare a Step2 e in teoria dovrei

stare dentro a Step2 fino a che non si ripresenta un fronte di discesa di X.

Eh.....in teoria.....

A me succede che entro in Step2 e esco subito ritornando a Step1!

Non è che abbia molto senso.

Ho pensato come del resto lo state pensando anche voi, è stata fatta una cazz. da qualche altra parte e

li si vedono le conseguenze e basta.

Allora dopo svariati tentativi e mal di testa ho modificato il codice così, a mo di test:

-----------------------------------------Step1-

-| |-------|↓|---------------------------++L

P_Step X D3000

-|↓|-------------------------------------SNXT

X Step2

-----------------------------------------Step2-

-| |-------------------------------------SNXT

Y Step1

in questo modo resto dentro lo Step1!

Non ne ho capito niente!

D3000 assume valore 1 quando passo da Step2 a Step1, è come se il valore di -|↓|- X si sia congelato,

poi lo leggo una volta e assume valore OFF.

Ho provato con il simulatore e questo risponde correttamente.

Ho provato con fronte di salita al posto del fronte di discesa e va, ma con fronte di discesa niente.

Qualcuno ha qualche idea??????

Link al commento
Condividi su altri siti


Aspettate,

così funziona:

-----------------------------------------Step1-

-|↓|-------------------------------------SNXT

X Step2

-----------------------------------------Step2-

-| |-------------------------------------SNXT

Y Step1

, vi ho ridotto all'osso lo step per semplificarvi la vita ma così funziona,

in realtà è:

---------------------------------------------------Step1-

------------|↓|-------------------------------------SNXT

| X1 | Step2

| |

|--|↓|--|

X2

---------------------------------------------------Step2-

-| |-----------------------------------------------SNXT

Y Step1

è in parallelo con un altro contatto X2 e se anche tutti e due sono OFF

quando passo da Step2 a Step 1 mi ritorna direttamente in Step2.

Link al commento
Condividi su altri siti

---------------------------------------------------Step1-

-|X1↓| OR |X2↓|--------------------------SNXT(Step2)

---------------------------------------------------Step2-

-|Y|---|X1/|---|X2/|----------------------SNXT(Step1)

Anche con questo stratagemma niente, da Step2 passo a Step1 e poi ritorno a Step2 senza fermarmi in Step1

Bo!????

Link al commento
Condividi su altri siti

---------------------------------------------------Step1-

-|P_Step/|---|X1↓| OR |X2↓|------------SNXT(Step2)

---------------------------------------------------Step2-

-|Y|---|X1/|---|X2/|----------------------SNXT(Step1)

Questo va ma non è corretto!! Uso P_Step negato,

per obbligarlo a non considerare ciò che trova

la prima volta che entra in Step1, dalla 2a in poi lo condidera e resta dentro a Step1.

Qui c'è qualcosa che non va.

O sono io che non vado.

Tanti ho visto che leggono la discussione, ma nessuno risponde perchè?

E' perchè scrivo male o perchè vi ho fatto pensare?

Link al commento
Condividi su altri siti

Livio Migliaresi
Tanti ho visto che leggono la discussione, ma nessuno risponde perchè?

E' perchè scrivo male o perchè vi ho fatto pensare?

FAQ

.........................

I motivi del perche' nessuno ha risposto, possono essere diversi.

Per esempio:

- nessuno conosce l'argomento

- chi conosce l'argomento non ha letto la tua domanda

- chi conosce l'argomento non ha avuto tempo di rispondere (ti ricordo che nessuno posta in PLC Forum per lavoro...)

- chi conosce l'argomento non ha voglia di scrivere (ebbene si, ogni tanto capitano giornate storte a chiunque...)

- ...[mille altri motivi]

Link al commento
Condividi su altri siti

Io quelle istruzioni non le ho mai usate. Ho visto questo manuale che le spiega mi semba approfonditamente:

W340-IT2-11+CS(J)+RefManual.pdf

cIAO

Link al commento
Condividi su altri siti

Direi che hai dimenticato l'ultima istruzione STEP senza operando, che serve a chiudere il ciclo.

Ho fatto una simulazione col seguente programmino e funziona perfettamente:

-|↓0.1|----SNXT[w0.0] [lancio step 1]

-STEP[w0.0] [inizio step 1]

-|CF102|---(10.0) [lampeggio...]

-|0.2|----SNXT[w0.1] [lancio step 2]

-STEP[w0.1] [inizio step 2]

-|CF102|---(11.0) [lampeggio...]

-|0.3|---SNXT[w0.2] [lancio step 3 di fine ciclo]

-|0.3|---RSET[0.3] [azzera flag controllo]

-|0.3|---RSET[w0.2] [azzera flag di ciclo]

-STEP [step senza operando per indicare fine area step

Boh, spero sia chiaro...

Link al commento
Condividi su altri siti

Grazie per le risposte,

e mi scuso se ho usato un tono non appropriato! La frustrazione era tanta, in ogni modo ho capito, l'errore come supponevamo era dell'uomo.

In particolare un errore di calcolo, non avevo considerato che i fronti di discesa potessero presentarsi entrambi lo stesso ciclo di scansione e non avevo gestito il caso correttamente.

Grazie per il tempo.

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