jake Inserito: 27 settembre 2005 Segnala Inserito: 27 settembre 2005 (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 è , 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.MAXIMUMMentre qua sotto è l'FC richiamata: CALL "Compare" IN0 :=#TEMP0 OUT1:=#TEMP1i 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? Grazie a tutti coloro che mi risponderannoGood Luck, Jake Modificato: 27 settembre 2005 da jake
jake Inserita: 1 ottobre 2005 Autore Segnala Inserita: 1 ottobre 2005 Vedo che nessuno ha ripsosto, credo forse di essermi spiegato non molto bene. provo ad integrare ciò che ho detto prima.Mentre qua sotto è l'FC richiamata:CALL "Compare"IN0 :=#TEMP0OUT1:=#TEMP1alla chiamata di questa FC mi aspettavo che venissero fuori i seguenti parametriCALL "Compare"PV:= //valore linearizzato dell'analogica INPUTMassimo:= //come setpoint di tipo Integer o Real INPUTAlto:=Medio:=Basso:=Minimo:=Massimo:= //come segnale di valore raggiunto OUTPUT tipo BOOLAlto:=Medio:=Basso:=Minimo:=Da come si può vedere nella "Quota", invece non è così perchè utilizzo delle UDT. 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? 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.MINIMOCALL "Compare"IN0 :=#TEMP0OUT1:=#TEMP1Spero ancora di trovare qualcuno che mi illumini Grazie ancora.Good Luck, Jake
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora