Vai al contenuto
PLC Forum


Salto?


luca959697

Messaggi consigliati


Salve

Va bene tutto ma immagino si riferisse al salto di programma , cioè un pezzo di programma che deve essere eseguito solo in certe condizioni altrimenti si salta alle istruzioni sucessive.

A mio avviso , se si utilizza scl è possibile usare altre istruzioni al posto di salto , in AWL lo uso ancora.

Spero di esserti stato utile

Link al commento
Condividi su altri siti

Scusate la mia burla della domenica

Ovviamente come detto da Frank il salto, o meglio 'jump' viene usato per saltare porzioni di codice , di solito condizionatamente ad altri avvenimenti.

Immagina di dover accendere una lampadina col pulsante A , ma vuoi renderlo possibile solo se il selettore B NON è ruotato.

Nel tuo programma scriverai la tua porzione di codice per accendere la lampadina, ma gli anteponi un 'jump' generato dal contatto del selettore B . Ovvero, se B è ad 1, il programma salterà ad una etichetta ( che avrai chiamato es ' Pippo' ) posta dopo il codice della accensione della lampadina. Finchè B resta alto, non solo non ti sarà possibile accendere la lampadina ma il contatto A non verrà interrogato proprio , almeno in quella riga.

Questo in Ladder, Awl ecc, mentre per esempio in Scl esiste il costrutto 'IF..THEN..ELSE' che fa anche questo, pur esistendo l'istruzione jump anche in Scl.

Il codice della lampadina diventerebbe

IF ( B= false) Then

IF (A = true) then

Lampadina:= true;

Else

Lampadina:= false;

End if;

END IF

Credo che nella sezione esempi di programmazione ci sia un esempio per s7 1200 che tratta l' uso dei salti.

Ciao

Matteo

Link al commento
Condividi su altri siti

Giuseppe Signorella

Le etichette di salto, come ti è stato spiegato, servono per saltare da una parte all'altra del programma.

Una volta erano molto utilizzate per ridurre il tempo di ciclo della tua CPU, in quanto le parti di codice che vengono saltate, non vengono eseguite. Quindi meno istruzioni da eseguire=maggiore velocità. Questo quando tutto il programma era scritto in un solo blocco.

Personalmente le utilizzo (in altre CPU) prevalentemente per tornare indietro nel programma, cosa che sarebbe impossibile fare diversamente, o per crearmi dei cicli tipo FOR.

Modificato: da Giuseppe Signorella
Link al commento
Condividi su altri siti

Anche usando linguiggi ad alto livello come, ad esempio, SCL i salti si eseguono normalmente, solo che il programmatore non li vede. A livello codice macchina, che è un poco più basso dello AWL, di salti se ne incontrano parecchi.

Ad ogni decisione corrisponde almeno un salto.

Esempio se devi realizzare la condizione "se A > B alza l'uscita C" il programma alla fine effettuerà la comparazione tra A e B e secondo il risultato eseguirà l'istruzione di alzare l'uscita A oppure salterà questa istruzione.

Link al commento
Condividi su altri siti

  • 4 weeks later...
lupusimprobus

Esempio pratico:

      AN I0.0
      JC j001   // Etichetta a cui saltare "j001"
      L 1
      T MW10
J001: NOP 0      // Arrivo del salto

Se I0.0=Flase il salto viene eseguito e non scrivo 1 in MW10.
Se I0.0=True il salto non viene eseguito e viene scritto 1 in MW10.

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