Vai al contenuto
PLC Forum


Richiamo blocchi


Dragonfly

Messaggi consigliati

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.

Link al commento
Condividi su altri siti


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.

Link al commento
Condividi su altri siti

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 ?

Link al commento
Condividi su altri siti

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"

 

 

Link al commento
Condividi su altri siti

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

Link al commento
Condividi su altri siti

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.

Link al commento
Condividi su altri siti

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!

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