Vai al contenuto
PLC Forum


Richiamo blocchi


Messaggi consigliati

Inserito:

Buon giorno a tutti ragazzi.Volevo chiedervi un aiuto visto che sto imparando adesso.Se io devo leggere per esempio 4 ingressi analogici,tipo non so,4 pt 100.Chiamo dal ob1 l'fc1 per non sviluppare in ob.In fc1 chiamo fc105 per una sonda di temperatura.Le altre 3 sonde di temperatura come faccio a chiamarle e dove?Scusate la confusione.Grazie in anticipo.


Inserita:

Semplicemente richiami altre 3 volte l'fc 105.

Ogni chiamata è a sé.

 

Inserita:

Con fc 105 intendi FC105 SCALE?

Per le altre sonde, richiami sempre FC105, collegando in ingresso ed in uscita le variabili relative alle altre sonde.

Attenzione però che, nel caso di sonde di temperatura collegate a moduli per TC e per RTD, leggi la temperatura direttamente in decimi di grado, quindi non devi fare scalature.

Inserita:

Scusate sempre l'ignoranza.Partendo da zero.ob1 chiamo fc1,fc1 chiamo fc105 e poi cosa devo fare?creo un ob2 che chiama fc2 che chiama fc105? E così via o come ?

Inserita:

No no no, calma.

Da ob1 richiami tutti i vari sottoprogrammi.

Quindi, da ob1 chiami fc1.

Chiamando fc1, esegui le istruzioni al suo interno, call ad altri fc inclusi.

Concluso l'fc1, torni ad ob1, il quale eseguirà l'istruzione successiva al call di fc1. e così via finchè non hai completato le istruzioni di ob1.

L'fc 105 lo richiami sempre da fc1 (od ovunque tu voglia).

Non hai necessità di dover creare un "ob2"

 

 

Inserita:

Cioè chiamo tutto in fc1?e se io volessi per esempio chiamare fc1 temperatura magazzino-fc2 temperatura garage ecccome li richiamereinel programa?

Inserita:

Quindi in ob1 dovrei scrivere:

uc fc1

uc fc2

uc fc3

ecc...

Inserita:

Puoi nidificare come vuoi.

Ob1 tienilo come costante, tu sai che in ob1 ci tornerai sempre per eseguire le istruzioni.

 

X8AyF7K.png

 

Questa è una porzione di ob1 che ho su una macchina.

Ob1 eseguirà fc1005.

Una volta eseguite le istruzioni di fc1005, il plc tornerà ad ob1 e chiamerà fc99

Finito fc99, torna in ob1 ed eseguirà l'sfc15

 

E via così..

 

Ipotizziamo tu abbia ob1, fc1 e fc2.

In ob1 chiami fc1.

Fc2 puoi metterlo sotto al call di fc1 in ob1, oppure puoi fare il call di fc2 direttamente dentro fc1.

Quello che ti cambia è l'azione temporale.

Se lo chiami in ob1, chiamerai fc2 solo dopo aver eseguito totalmente fc1.

Se lo chiami in fc1, magari al segmento 15 su 30 segmenti totali di istruzioni, chiamerai fc2 a metà esecuzione di fc1.

Finito l'fc2, tornerai ad fc1, finito fc1 tornerai ad ob1.

Inserita:

Ok quindi tipo:

ob1

uc fc1

fc1

segmento1

call fc105 scale

segmento 2

uc fc2

fc2

call fc105

e giusto?

 

Inserita:

Giusto è giusto, ma fc105 puoi richiamarlo anche 30 volte consecutive sempre da fc1.

Se invece, per "pulizia" di codice è meglio chiamarlo in fc2, si, va bene anche così.

Idem l'fc2, puoi chiamarlo, come hai fatto, in fc1, ma anche in ob1.

Poi vedrai tu come sarà meglio fare per te, per lasciare il programma più "comprensibile"

 

Ciao!

Inserita:

Perfetto.Grazie mille ancora ragazzi siete veramente gentili e pazienti.Buon proseguimento

 

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