Vai al contenuto
PLC Forum


Linguaggio Awl - Significato e funzionamento bit \ER


Aldebaran

Messaggi consigliati

Salve a tutti!!

Purtroppo sono nuovo del settore, e dovendo iniziare a programmare PLC siemens s7 300, mi sono gettato nello studio di questo linguaggio di programmazionee.

Ho scaricato un piccolo simulatore di plc per vedere come funzionano le istruzioni awl, ma credo che non funzioni bene.

Ecco l'esempio. Ho un ingresso e una uscita. A seconda del valore dell'ingresso, l'uscita dipende da due blocchi separati. E' come un if-then-else.

Se ingresso=0 allora Uscita dipende da set istruzioni 1

Se ingresso=1 allora Uscita dipende da set istruzioni 2

L' ho realizzato con:

U "Ingresso"

SPBN ciclo2

ON "Condizione1"

ON "Condizione2"

= "Uscita"

SPA fine

ciclo2: U "Condizione3"

= "Uscita"

fine: NOP 0

in cui Condizione1, Condizione2 e Condizione3 sono altri 3 ingressi. Il funzionamento da me voluto è che se l'ingresso è zero, allora l'uscita segue identicamente la condizione3; se ingresso è uno, allora l'uscita è sempre alta a meno che gli ingressi Condizione 1 e 2 non siano contemporaneamente alti.

Pensavo che funzionasse perchè l'istruzione SPBN porta a zero il bit di prima interrogazione, e quindi l'istruzione seguente ON che fa uso normalmente del valore di RLC, in questo caso non fa da or negato con RLC in quanto il bit /ER è zero e legge semplicemente la condizione 2.

Il simulatore anche se condizione 2 e3 sono entrambi alti, continua a dare l'uscita alta (nel ramo di ingresso alto naturalmente). Questo perchè l'istruzione SPBN porta a 1 il valore di RLC e la prima istruzione ON fa l'or negato con RLC=1 e quindi l'uscita non si annulla mai, infischiandosene del \ER=0.

Non è vero che l'istruzione SPBN porta a zero il bit di prima interrogazione, o non è così che funziona /er oppure non funziona il simulatore?

Grazie per chi può chiarirmi.

Link al commento
Condividi su altri siti


Ciao,

è successo anche a me quando ho cominciato a programmare PLc

devi pensare quasi al contrario rispetto a prima per es.

quando programmi in basic o java assegni con := alle variabili valori diversi in diversi punti del programma,

quando programmi un plc devi usare una sola volta nel programma l'istruzione "=" altrimenti il PLC aggiorna l'uscita in base all'ultima "=" che trova

nel tuo caso diventa tipo: (in ladder perche di solito uso omron)

cond1 ingresso uscita

-| |---------||---------()

cond2 |

-||------

cond3 |

-||------

se lavori cosi mantieni il programma semplice da leggere e da controllare

Ciao, Fabrizio

Link al commento
Condividi su altri siti

Il programma di Aldebaran e' corretto in Step 7 (300/400). Probabilmente il "piccolo simulatore" non e' adatto.

D'accordo con fabri che non si dovrebbe mai usare l'assegnazione due volte, ma in questo caso viene eseguita sempre e solo una di esse, percio' funziona.

Link al commento
Condividi su altri siti

io preferisco dopo ogni salto ripartire da zero con le condizioni in questo modo me ne frego del risultato dell'interrogazione del salto!!!!! Soprattutto se le interrogazioni sono poche!!

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