Vai al contenuto
PLC Forum


Realizzare in AWL un contatore di un fronte di Salita


nicco5858

Messaggi consigliati

Salve, sono un novellino riguardo il linguaggio AWL, poiché sto cercando piano piano di impararlo;

volevo realizzare in AWL un contatore che mi contasse la variazione di stato logico (0,1) di un RLC sul fronte di salita;

chiunque abbia consigli su come realizzarlo scriva qua; grazie in anticipo a tutti.

Link al commento
Condividi su altri siti


U E 0.0 // ingresso da testare

FP M 0.0// aux fronte di salita

= M 0.1 // fronte di salita

 

a questo punto dove vuoi tu nel programma .......

UN M 0.1

SPZ END

L MW100

I 1

T MW100

END:NOP 0

Link al commento
Condividi su altri siti

Ti ringrazio già per la risposta, ma potresti spiegarmi passo passo le funzioni che hai applicato nel programma?

Essendo alle prime armi non e' tutto comprensibile per me... 

Link al commento
Condividi su altri siti

1 ora fa, pigroplc scrisse:

UN M 0.1

SPZ END

L MW100

I 1

T MW100

END:NOP 0

Premetto che uso il mnemonico tedesco, ma " I 1 " esiste?

Intendevi forse " + 1 " ?

 

Un alternativa potrebbe essere @nicco5858

U E0.0			// Controllo l'ingresso E0.0
FP M0.0			// Fronte di salita quando E0.0 = 1
SPBN END		// Se non ho il fronte, salto all'etichetta END
L MW10			// Carico la mword 10
+ 1			// Sommo 1 al contenuto di MW10
T MW10			// Trasferisco il risultato in MW10
END: NOP 0		// Etichetta di salto

 

Link al commento
Condividi su altri siti

Buongiorno, attualmente si' sto utilizzando un S5; c'e' molta differenza

fra quanto avete scritto fino ad ora ed un programma per S5?

Grazie a tutti!

Link al commento
Condividi su altri siti

La differenza è che in S5 non esiste l'istruzione per rilevare il fronte di salita, e dovrai quindi fartela tu, usando un merker di appoggio.
Il resto rimane uguale.

Link al commento
Condividi su altri siti

@batta Potresti darmi maggiori delucidazioni? 

Nel senso, se hai tempo, potresti postare il programma o anche solamente un pezzetto, dove mi commenti le funzioni?

Grazie già' per le risposte. Buona giornata a tutti!

Link al commento
Condividi su altri siti

U "Segnale"			// Questo è il merker del quale vuoi rilevare il fronte di salita
U "AuxFronteSalita"		// Questo è un merker di appoggio per rilevare il fronte di salita.
				// In pratica, è ON se nella precedente scansione "Segnale" era OFF
= "FronteSalita"		// Questo merker rimane alto per una scansione quando "Segnale" passa da OFF a ON

UN "Segnale"			// In queste due righe imposto lo stato del merker di appoggio per
= "AuxFronteSalita"		// il rilevamento del fronte di salita

UN "FronteSalita"		// Se NON ho il fronte di salita, salto all'etichetta _000
SPB _000			// Le istruzioni seguenti vengono elaborate solo se "FronteSalita" è ON (non ho fatto il salto)
L "MiaVar"			// Carico il valore attuale della variabile da incrementare
L 1				// Carico il valore dell'incremento
+I				// Sommo i due valori
T "MiaVar"			// Scrivo il risultato dell'operazione nella variabile da incrementare, che aasume così il nuovo valore
_000: NOP 0

 

Link al commento
Condividi su altri siti

Ciao, buongiorno,

Volevo chiederti una cosa riguardo al programma sul fronte di salita che hai postato;

volevo sapere se il merker di cui voglio rilevare il fronte di salita, deve esser indicato come Input(E) oppure no;

se hai altri consigli per me scrivimi pure.

Grazie

 

Link al commento
Condividi su altri siti

È indifferente, vale per qualsiasi variabile booleana.
Può essere un ingresso, una uscita, un merker, un bit di un DB.

Link al commento
Condividi su altri siti

Ultima cosa... Potresti farmi un esempio

con degli indirizzi applicati al programma che hai postato?

 

Ti ringrazio molto per la tua disponibilità.

Link al commento
Condividi su altri siti

Se posso permettermi..

Non sei un novellino in awl, ti mancano proprio le basi in generale.

Fossi in te cercherei prima di studiare gli elementi che compongono un programma, per poi capire come strutturare un programma.

 

2 ore fa, nicco5858 scrisse:

Scusami, un'altra domanda...Cosa ci va inserito in "FronteSalita"?

 

Questo che sia awl fup kop è indifferente, devi usare un bit di un merker (o se proprio vuoi, il bit di una db)

Link al commento
Condividi su altri siti

@DesmoGiec Gli elementi che compongono un programma, come dici te, me li sono un po' visti,

ma il problema e' che trovando pochissimi esempi ed avendo un' esperienza in AWL pari a zero risulta difficile

per me interpretare tali programmi.

@pt1957Ti ringrazio

Link al commento
Condividi su altri siti

Quello che intendo dire..

Chiedi cosa bisogna mettere in "frontesalita", ma non è una cosa che riguarda l'awl, è una nozione generale di programmazione.

Devi prima capire cosa sono merker, db e simili prima di poter capire come/dove/quando usarli.

Ciao! :)

 

Link al commento
Condividi su altri siti

U  E 0.0        // Questo è il merker del quale vuoi rilevare il fronte di salita
U  M 0.0"        // Questo è un merker di appoggio per rilevare il fronte di salita.
                    // In pratica, è ON se nella precedente scansione "Segnale" era OFF
=  M 0.1        // Questo merker rimane alto per una scansione quando "Segnale" passa da OFF a ON

UN E 0.0        // In queste due righe imposto lo stato del merker di appoggio per
=  M 0.0        // il rilevamento del fronte di salita

UN M 0.1        // Se NON ho il fronte di salita, salto all'etichetta _000
SPB _000        // Le istruzioni seguenti vengono elaborate solo se "FronteSalita" è ON (non ho fatto il salto)
L MW 50            // Carico il valore attuale della variabile da incrementare
L 1                 // Carico il valore dell'incremento
+I                   // Sommo i due valori
T MW 50           // Scrivo il risultato dell'operazione nella variabile da incrementare, che aasume così il nuovo valore
_000: NOP 0

Link al commento
Condividi su altri siti

Scusate se faccio il pignolo ma, visto che le basi di nicco5858 mi sembrano praticamente nulle, volevo fare una piccola correzione: nell'AWL di S5 la somma di due interi non è +I ma +F.

Ciao.

 

Massimo

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