BatCloud Inserito: 22 febbraio 2008 Segnala Inserito: 22 febbraio 2008 Ho urgente bisogno di aiuto su gli allarmi in Citect SCADA 6.10.Ho creato un progetto nel quale devo fare in cambio delle impostazioni degli allarmi analogici direttamente quando il RUNTIME è avviato. non devo passare dal Project Editor, perchè non voglio che l'utente possa combinare disastri.Ho trovato la funzione "AlarmSetThreshold" che dovrebbe permettere di modificare il campo degli allarmi dove metto la soglia x HIGH HIGH, HIGH, LOW ecc... Per fare ciò, ho usato un bottone dove, con la funzione Input, inserisco il valore che devidero impostare nell'allarme. ora, devo inizialmente capire cosa va messo nel campo VALUE della funzione perchè sia inserendo un intero che una stringa non funziona. Idem con la funzione "AlarmSetDelay". vi prego è urgente come cosa.Se qualcuno ha qualche idea, lo ringrazio anticipatamente!
pescatori Inserita: 22 febbraio 2008 Segnala Inserita: 22 febbraio 2008 Ciao,guardando l'. della funzione AlarmSetThreshold(Type,Value) per esempio si capisce che ti permette di modificarne una certa soglia. Leggendo si capisce che la funzione ha effetto sull'allarme sul quale sei posizionato col cursore; in pratica andrebbe usata nella pagina degli allarmi ed in base all'allarme che hai selezionato ti modifica la soglia. Se invece devi poter impostare le soglie in qualunque momento il modo migliore è quello di definire, quando crei un'allarme, non un valore numerico bensì usare delle variabili per ciascuna soglia e poi creare uno spazio in cui l'operatore possa impostarne il valore.
pescatori Inserita: 22 febbraio 2008 Segnala Inserita: 22 febbraio 2008 Ciao scusa ma ho scritto una castroneria,si può accedere alle proprietà di un allarme (e quindi nel caso di un allarme di tipo analogico anche alle varie soglie) utilizzando la sintassi :AlarmTag.Propertydove AlarmTag è il nome con cui hai salvato l'allarme nel database di configurazione e Property è la proprietà che vuoi modificare:Esempio:Ho creato un allarme chiamato ALLARMI_T1 di tipo analogico. In runtime posso gestire le varie soglie come se fossero delle tag ALLARMI_T1.LowLowALLARMI_T1.LowALLARMI_T1.HighALLARMI_T1.HighHighALLARMI_T1.DeadbandALLARMI_T1.HHDelayetc.Scusa se prima ti ho dato indicazioni sbagliate.
BatCloud Inserita: 25 febbraio 2008 Autore Segnala Inserita: 25 febbraio 2008 Grazie per l'aiuto ma volevo anche chiederti se posso applicare questo formato AlarmTag.propriety solo nel CiCode oppure anche nel Graphics Builder perchè, se lo metto nel graphics, mi da un errore sul "." dicendo che si aspetta un operando. grazie ancora in anticipo
pescatori Inserita: 25 febbraio 2008 Segnala Inserita: 25 febbraio 2008 Ciao,scusa ma non ho capito bene il problema che ti si presenta. Comunque certo che puoi usare la sintassi indicata anche nel Graphics Builder, per esempio se vuoi visualizzare una soglia di allarme a video scriverai TagAllarme.Low. Io ho fatto una prova e non mi da nessun errore in compilazione.
BatCloud Inserita: 27 febbraio 2008 Autore Segnala Inserita: 27 febbraio 2008 Questo è il messaggio di errore che mi viene sempre fuori."Bottone2" è il nome dell'allarme. Devo cambiare i valori dal runtime ma niente, non me lo finisce, ovviamente, di compilare.Non so più cosa fare...
pescatori Inserita: 27 febbraio 2008 Segnala Inserita: 27 febbraio 2008 Non si usa il nome dell'allarme, ma quella che è definita "Alarm Tag"
BatCloud Inserita: 27 febbraio 2008 Autore Segnala Inserita: 27 febbraio 2008 Hai ragione scusa, ho sbagliato a scrivere. Ho scritto nel graphics builder come mi hai detto ma niente, mi da sto errore di operand expeted.non esiste un altro modo x modificarli che tu sappia?? perchè con questo metodo proprio non riesco ad ottenere risultati.. sarò incapace io ma ho seguito le tue istruzioni e mi si blocca sempre lì. scusa se ti faccio perdere tempo.
pescatori Inserita: 27 febbraio 2008 Segnala Inserita: 27 febbraio 2008 Scusa,ma secondo me l'errore che ti da non è dovuto alla sintassi della soglia di allarme, ma ad altro.Dove è che hai inserito quella riga che da errore e cosa vorresti fare? Perché usi StrToValue e cos'è minimo?Se devi solo avere un campo di I/O basta che imposti:Appearance->Display Value->Numeric Expression e ci metti Bottone2.Lowe sotto Input->Keyboard Commands crei una sequenza ##### ENTER e le associ Bottone2.Low=Arg1;
BatCloud Inserita: 28 febbraio 2008 Autore Segnala Inserita: 28 febbraio 2008 Allora ti spiego: io voglio creare un bottone che, una volta premuto, faccia apparire una tastierina numerica (visto che in questo progetto l'utente non avrà a disposizione una tastiera reale). Il valore di questa tastiera deve diventare il nuovo valore nel campo LOW oppure HIGH a seconda di quale bottone premo. mi funziona la tastierina numerica ma non riesco a utilizzare la sintassi AlarmTag.Propriety=Arg1; ho provato questa associazione sia richiamando una funzione dal CiCode che direttamente quando premo il tasto "INVIO" sulla tastierina da me creata ma, in entrambi i casi, ottengo solo un errore di "OPERAND EXPECTED".Non riesco a capire se questo valore dev'essere una stringa, un intero, un valore reale ecc... Se Provo a usare "AlarmSetThreshold(Type, Value)", che sarebbe la funzione giusta x questo mio progetto stando a quanto c'è scritto nell'., non mi cambia il valore.Spero di averti dato le informazioni che ti servivano anche se sono sicuro che il tuo metodo funziona alla grande, ma non so xkè con me non va.. Boh ormai sn alla frutta.. Grazie ancora per l'aiuto e per la pazienza
pescatori Inserita: 28 febbraio 2008 Segnala Inserita: 28 febbraio 2008 Se vuoi usare un tastierino per impostare un valore numerico c'è la funzione "FormNumPad".Crei un pulsante e sotto "Input" scrivi il codice:Bottone2.Low=FormNumPad("Soglia minima", Bottone2.Low, 4);Se guardi l'. della funzione capirai meglio il significato dei parametri della funzione.
BatCloud Inserita: 28 febbraio 2008 Autore Segnala Inserita: 28 febbraio 2008 Fatto ma siamo alle solite conclusioni.. non è che devo dichiarare anche il nome dell'allarme nei variable tags? ormai dubito di tutto...
pescatori Inserita: 28 febbraio 2008 Segnala Inserita: 28 febbraio 2008 Ciao,forse ho capito dove potrebbe essere il problema: per gestire le prorietà di un allarme come se fossero delle tag, devi definire un Alarm I/O Device specifico:Name: Alarm_Device (puoi mettere quello che vuoi, basta che sia univoco)Number: 12 (puoi mettere quello che vuoi, basta che sia univoco)Address: lascia vuotoProtocol: ALARM (deve essere per forza questo)PortName: ALARM (deve essere per forza questo)L' Alarm I/O Device funzionerà solo se il computer sarà definito come Alarm Server e I/O Server!
BatCloud Inserita: 28 febbraio 2008 Autore Segnala Inserita: 28 febbraio 2008 GRRRRRRRRRRRRRRRRRRRRRRAZIE!!!! ECCO COSA MANCAVA X LA COMPLETA ILLUMINAZIONE SPIRITUALE DEL MIO PROGRAMMA!! ORA FUNZIONA TUTTO!! ERA SL X QUEL MALEDETTO DEVICE!!! GRAZIE MILLE DAVVERO, NON SO COME RINGRAZIARTI
pescatori Inserita: 28 febbraio 2008 Segnala Inserita: 28 febbraio 2008 Felice di esserti stato d'aiuto.Buona continuazione.Ciao.
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