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




Come Utilizzare Le Udt Nei Parametri In E Out? - C'è qualcosa che mi sfugge!


Messaggi consigliati

Inserito: (modificato)

Cercherò di spiegarmi nel modo più chiaro possibile! :ph34r:

Devo realizzare una FC che mi faccia dei confronti fra numeri, interi o reali non ha importanza, avrò come valori di setpoint "Massimo", "Alto", "Medio", "Basso" e "Minimo" da confrontare con il valore di una analogica in campo.

Per comodità mi sono creato una UDT con le voci sopra elencate e l'ho utilizzata nella dichiarazione delle variabili di "Ingresso" dell'FC che ho scritto.

Fino a qui tutto bene ;) un'altra UDT con le stesse voci, ma tipo di dati diverso l'ho utilizzata nelle dichiarazioni delle variabili di "Uscita" della stessa FC.

Sono riuscito a scrivere normalmente il mio programma (in AWL), ma il problema è sorto quando ho richiamato l'FC scritta in un'altra FC; io mi aspettavo di vedere tutte le voci dichiarate sotto la CALL, ma così non è :blink: , vedo soltanto i due nomi utilizzati quando richiamo le UDT nella dichiarazioni delle variabili.

Ora mi chiedo, sempre se mi sono spiegato bene????, come faccio a parametrizzare l'FC?

Questo è un esempio dell'istruzioni scritte nella FC da richiamare:

L #IN0.PV

L #IN0.MAXIMUM

>=I

= #OUT1.MAXIMUM

Mentre qua sotto è l'FC richiamata:

CALL "Compare"

IN0 :=#TEMP0

OUT1:=#TEMP1

i TEMP sono lo stratagemma ai quali ho dovuto ricorrere, ma non c'è un altro sistema o devo evitare di utilizzare le UDT come variabili IN/OUT delle FC? :unsure:

Grazie a tutti coloro che mi risponderanno

Good Luck, Jake B)

Modificato: da jake

Inserita:

Vedo che nessuno ha ripsosto, credo forse di essermi spiegato non molto bene. :unsure:

provo ad integrare ciò che ho detto prima.

Mentre qua sotto è l'FC richiamata:

CALL "Compare"

IN0 :=#TEMP0

OUT1:=#TEMP1

alla chiamata di questa FC mi aspettavo che venissero fuori i seguenti parametri

CALL "Compare"

PV:= //valore linearizzato dell'analogica INPUT

Massimo:= //come setpoint di tipo Integer o Real INPUT

Alto:=

Medio:=

Basso:=

Minimo:=

Massimo:= //come segnale di valore raggiunto OUTPUT tipo BOOL

Alto:=

Medio:=

Basso:=

Minimo:=

Da come si può vedere nella "Quota", invece non è così perchè utilizzo delle UDT. :angry:

La mia domanda è: posso far apparire la struttura sopra descritta utilizzando delle UDT nella dichiarazione delle variabili o sono costretto a dichiarare una variabile alla volta? :blink:

Al momento la soluzione da me adottata per risolvere questa cosa è simile a ciò che segue:

L DB160.DBW 0

T #TEMP0.PV

L DB160.DBW 2

T #TEMP0.MASSIMO

L DB160.DBW 4

T #TEMP0.ALTO

L DB160.DBW 6

T #TEMP0.MEDIO

L DB160.DBW 8

T #TEMP0.BASSO

L DB160.DBW 10

T #TEMP0.MINIMO

CALL "Compare"

IN0 :=#TEMP0

OUT1:=#TEMP1

Spero ancora di trovare qualcuno che mi illumini :D

Grazie ancora.

Good Luck, Jake B)

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