Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Scl


southofsanity

Messaggi consigliati

southofsanity
Inserito:

Sul nuovo step7 v11 per mia gioia c'è l'scl derivato dal pascal.... una cosa volevo chiedere.....

nel programma in pascal perciò penso anche scl, decido io quando avviare il programma e quando terminarlo con i vari loop.

Essendo il plc in loop di suo, il programma scritto da me in SCL, verra eseguito ciclicamente o no ?

esempio banale:

faccio il classico

IF "pippo" = 100

THEN add "x" ;

ELSE sub "y" ;

END_IF

normalmente se non è all'interno di un loop viene eseguito una sola volta,

nello step 7 v11 dato che il programma plc è ciclico ?


Inserita:

Viene eseguito una sola volta, fino al richiamo successivo.

Voglio dire, tu crei un blocco di programma (FC o FB).

Il fatto però che tu abbia generato questo blocco non è condizione sufficiente per l'esecuzione del blocco stesso, ma dovrai programmarne il richiamo da qualche parte.

Se il richiamo è ciclico (ad esempio in OB1), ad ogni scansione verrà eseguito una volta.

Il fatto che il blocco sia creato utilizzando l'SCL piuttosto che il KOP, non modifica minimamente la modalità di esecuzione.

Inserita:

Cioè vorresti scrivere direttamente l'OB1 in SCL?

In quel caso, le istruzioni verrebbero eseguite ciclicamente.

Questa soluzione però non mi farebbe solo storcere il naso, ma addirittura inorridire.

E' buona norma programmare in OB1 solo i richiami ai vari blocchi di programma, ed eventualmente solo poche e semplici istruzioni.

Quindi, anche se utilizzi l'SCL per l'OB1, utilizza lo stesso l'OB1 solo per i richiami.

Anche ipotizzando un programma molto semplice, che richiede una sola FC, scrivi il programma in questa FC e in OB1 limitati a richiamare l'FC.

Inserita:

perchè dici che non è buona norma scrovere piccoli programmi direttamente nel ob1? io non l'ho mai fatto ma non mi sono mai chiesto perchè

Inserita: (modificato)

OB1 è l'equivalente della funzione main di un programma scritto in "C". In questo blocco dovrebbero essere effettuati solo test e richiamo ad funzioni e/o blocchi di programma.

Modificato: da Livio Orsini

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