Vai al contenuto
PLC Forum


Istruzione OLD AWL


del_user_239149

Messaggi consigliati

del_user_239149

Buongiorno a tutti e scusate la mia domanda che può sembrare alquanto sciocca. Da pochissimo mi sto interfacciando con la programmazione PLC, la mia domanda viene appunto dalla mia inesperienza in materia. 

Ho le seguenti istruzioni:

LDB=    VB2101, 21

AN        V0.0

LD        V0.0

A          V1501.0

OLD

A          M30.4

AN       M30.0

A          M31.0

AN       M30.6

AN       M1.2

S         M30.0, 1

S         M10.0, 1

S         M10.1, 1

 

L'istruzione OLD esegue la funzione OR tra le istruzioni precedenti e successive ad essa? o tra le istruzioni 

 

LDB=    VB2101, 21

AN        V0.0

 

 

LD        V0.0

A          V1501.0

 

Qualcuno può spiegarmi meglio? Grazie.

Link al commento
Condividi su altri siti


Ciao,

se ricordo bene, OLD mette in parallelo i 2 rami che iniziano con LDx, quindi, come hai scritto tu

B= VB2101, 21 in serie negato V0.0

parallelo

V0.0 in serie con V1501.0

segue tutto il resto

C'è un modo molto semplice per verificarlo: apri MicroWin e imposti la visualizzazione in AWL (Visualizza->AWL); copi le istruzioni così come sono in un segmento, poi imposti la visualizzazione in KOP (Visualizza->KOP).

Link al commento
Condividi su altri siti

del_user_239149

Quando provo a cambiare linguaggio non fa la conversione su tutti i segmenti. Alcuni hanno un messaggio di errore. comunque si, la spiegazione che mi hai dato è corretta. Grazie. 

Link al commento
Condividi su altri siti

del_user_239149

scusa puoi darmi una mano con queste istruzioni. 

Di nuovo l'OLD ma questa volta davvero non lo capisco anche perchè una delle due istruzioni precedenti all'old contiene un'assegnazione e quindi?

poi che senso ha fare un and tra un registro e lo stesso registro negato?quel ramo non si ecitterà mai. 

LD     V22.0
AN     V22.2
A      M30.3
OW<>   VW950, +0
CALL   SBR23
LD     V22.1
AN     V22.7
OW<>   VW950, +0
CALL   SBR15
LDN    V22.2
CALL   SBR18
LD     I0.4
=      V22.3
LD     Q0.2
AN     I0.4
A      I0.4
OLD
TON    T219, +3000
LD     T219
=      V22.7

 

Immagine.jpg

Link al commento
Condividi su altri siti

Secondo me quel segmento va suddiviso nel seguente modo; primo:

 

LD     V22.0
AN     V22.2
A      M30.3
OW<>   VW950, +0
CALL   SBR23

 

Secondo:

 

LD     V22.1
AN     V22.7
OW<>   VW950, +0
CALL   SBR15

 

Terzo:

 

LDN    V22.2
CALL   SBR18

 

Quarto:

 

LD     I0.4
=      V22.3
LD     Q0.2
AN     I0.4
A      I0.4
OLD
TON    T219, +3000

 

Ultimo:

 

LD     T219
=      V22.7

 

Detto questo, il quarto segmento non torna, sia perchè se il V22.3 ed il timer fossero in parallelo, risulterebbe:

 

LD     I0.4
LD     Q0.2
AN     I0.4
A      I0.4
OLD
=      V22.3
TON    T219, 3000

 

e non come è scritto ora, quindi quell'istruzione OLD secondo me è un errore di battitura oppure una dimenticanza; inoltre, come giustamente hai fatto notare, mettere in serie il contatto di un ingresso con il contatto negato dello stesso ingresso significa che quel ramo non potrà mai attivarsi, di conseguenza il timer non potrà mai "contare".

Secondo me, nella suddivisione, il quarto segmento diventerebbe:

 

LD     I0.4
=      V22.3

 

a cui ne segue un quinto che, come abbiamo detto, è del tutto ininfluente:

 

LD     Q0.2
AN     I0.4
A      I0.4
TON    T219, +3000

 

e finalmente l'ultimo con il contatto del timer che pilota V22.7.

Vedi se riesci a capire a cosa serve effettivamente quel timer T219 e la memoria V22.7 (ipotesi: scatena un evento dopo che l'uscita Q0.2 rimane attiva per 5 minuti ?); solo così riuscirai a venirne a capo ...

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