Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 721 a 735 (di 4,379 totali)
  • Autore
    Post
  • in risposta a: Selezione variabili da visualizzare sul display #68857
    Sergio Bertana
    Amministratore del forum

    Il parametro P07.05 permette di selezionare la variabile visualizzato sul display quando l’inverter è in marcia (Vedi topic). Se vengono selezionate più variabili, ad esempio impostando il valore 0x0035 verranno visualizzate le variabili:

    BIT00: frequenza di marcia (Hz acceso)
    BIT03: tensione di uscita (V on)
    BIT04: corrente di uscita (A attivata)
    BIT05: velocità di rotazione corrente (rpm on)

    La visualizzazione delle variabili selezionbate avverrà in modo ciclico, e i 3 LEDs posti a lato del display daranno indicazione della variabile visualizzata secondo la tabella:

    • Frequenza di marcia (LED Hz acceso)
    • Tensione di uscita (LED V acceso)
    • Corrente di uscita (LED A acceso)
    • Velocità di rotazione (LED RPM, quindi LEDs Hz e A accesi)
    in risposta a: Utilizzare Alarm Class di Bacnet #68852
    Sergio Bertana
    Amministratore del forum

    No purtroppo questa operazione non è possibile.

    in risposta a: Errore allo start del modulo ser2net – router WL-R220 #68791
    Sergio Bertana
    Amministratore del forum

    Ma hai provato ad eseguirlo da riga di comando da accesso SSH?

    Perchè nelle mie prove dando il comando:

    ser2net -C 1000:telnet:100:/dev/ttyUSB2:115200,8DATABITS,NONE,1STOPBIT,-XONXOFF

    Direttamente da linea di comando,  poi connettendomi con un terminale Telnet (Io utilizzo l’utility terminal di Toolly) alla porta 1000 inviando i comandi AT il modem mi risponde corettamente.

    Riguardo al messaggio che vedi nel log del sistema, un messaggio analogo appare anche a me, ma visto che tutto funziona, sinceramente non capisco a cosa si riferisca.

    Sergio Bertana
    Amministratore del forum

    Il problema molto probabilmente è dovuto ad un BUG nella nostra libreria eLLabCommonLib, scarica la versione aggiornata dal nostro sito.

    Sostituisci la vecchia libreria presente nella cartella di installazione di LogicLab in modo che quando creerai un nuovo progetto venga utilizzata la nuova versione.

    Ricorda poi di aggiornare la libreria nel tuo progetto.

    in risposta a: Import/Export variabili globali di progetto #68625
    Sergio Bertana
    Amministratore del forum

    Per quanto riguarda import/export delle variabili è già previsto (Screenshot), puntando un gruppo di variabili con il tasto destro del mouse è possibile richiamare il menù con la voce Export le variabili verranno salvate su di un file in formato xml da cui è possibile con la funzione Import reimportarle (Selezionando quelle desiderate) in un nuovo progetto. Inoltre se si seleziona la modalità vista a lista è possibile copiare ed incollare in modo testo da un progetto all’altro.

    Anche l’aggiornamento automatico delle TAGs in tutto il progetto è una funzionalità già prevista (Screenshot), puntando una variabile con il tasto destro del mouse è possibile richiamare il menù con la voce Refactoring, verrà visualizzata una finestra con l’elenco dei POUS dove la variabile è utilizzata, definendo un nuovo TAG con il tasto Refactor verrà sostituito il nome in tutte le occorrenze del progetto.

    in risposta a: Utilizzo GPS su router WLink WL-R200L #68599
    Sergio Bertana
    Amministratore del forum

    I routers WLink WL-R200L e WL-R210L possono essere forniti con un ricevitore GPS integrato.

    Per l’acquisizione delle stringhe NMEA occore abilitare il router in modalità server TCP (Screenshot) definendo la porta su cui il server è in ascolto (Nell’esempio la 40001).  Il valore di Socket Timeout è espresso in secondi ed indica il tempo di chiusura socket se non vi è connessione (Impostare 5 S).

    Ora connettendosi in telnet sulla porta definita (Potete utilizzare Toolly) si riceveranno le stringhe NMEA.

    Se utilizzate i ns sistemi SlimLine esiste una libreria specifica per la gestione delle  stringhe NMEA (Vedi articolo).

    Sergio Bertana
    Amministratore del forum

    Con il tipo IN_OUT si intendono variabili il cui valore è passato in ingresso ad un blocco funzione per essere elaborato al suo interno ed ottenere un valore modificato in uscita.

    Se non è selezionata la voce VAR_IN_OU by reference, nelle opzioni di progetto occorre valorizzare la variabile prima di eseguire il FB e poi ricopiarne il valore modificato dopo l’esecuzione. Se per esempio scriviamo un FB che incrementa il valore di una variabili IN_OUT avremo:

    FUNCTION_BLOCK MyFB
    VAR_IN_OUT
        FBVar : UDINT; (* FB variable *)
    END_VAR
    
        FBVar:=FBVar+1; //FB variable
    // [End of file]

    Ora vediamo nel programma seguente come utilizzare il FB senza selezionare l’opzione e poi selezionandola:

    PROGRAM MyProgram
    VAR
        Counter : UDINT; (* Counter *)
        FBUse : MyFB; (* FB instance *)
    END_VAR
    
        // Here an example of use without VAR_IN_OUT by reference.
    
        FBUse.FBVar:=Counter;
        FBUse();
        Counter:=FBUse.FBVar;
    
        // Here an example of use with VAR_IN_OUT by reference.
    
        FBUse(FBVar:=Counter);
    // [End of file]

    Come si vede selezionando l’opzione il programma risulta più compatto e con un risparmio sia di memoria codice che di memoria dati. In pratica al FB viene passato l’indirizzo della variabile Counter ed il FB opera direttamente sulla sua locazione di memoria.

    in risposta a: Supporto a MySQL server #68583
    Sergio Bertana
    Amministratore del forum

    Cosa intendi per lista che non viene scaricata…

    in risposta a: Supporto a MySQL server #68579
    Sergio Bertana
    Amministratore del forum

    La connessione a server SQL è gestita solo sui pannelli della serie cMT, puoi vedere i pannelli che lo supportano dall’Appendice A.

    Per un esempio di utilizzo puoi fare riferimento a questo articolo.

    in risposta a: Listbox e gestione ricette su EasyBuilder 8000 #68575
    Sergio Bertana
    Amministratore del forum

    Per illustrare il funzionamento dell’oggetto Recipe Weintek fornisce un progetto dimostrativo Recipe Transferring (Screenshot). Insieme al progetto viene fornita una spiegazione su come è stato realizzato (Download manuale) ed il progetto.

    in risposta a: ModbusMaster_v2(55) – error S1305: Unknown function #68569
    Sergio Bertana
    Amministratore del forum

    Posso capire la difficoltà nel passare dalla programmazione di un sistema come il LOGO che ha macrooggetti predefiniti, alla programmazione standard IEC61131 dove si può spaziare tra 5 linguaggi diversi 3 grafici e 2 testuali che sono molto più potenti ma sicuramente più ostici dei linguaggi grafici. Di nostro abbiamo realizzato dei videocorsi dove cerchiamo di dare il più possibile informazioni (Ecco il link) inoltre è possibile accedere ad un supporto on-line per richieste specifiche (Link).

    Il manuale unico, è un retaggio del passato eccolo, lo abbiamo abbandonato perchè in un mondo che evolve velocemente preferiamo avere un manuale accessibile via Internet che modifichiamo e correggiamo giorno per giorno, link. In ogni oggetto (Funzione o FB) è riportata una serie di esempi in linguaggio ST che con un semplice Taglia/Incolla (Link) si possono portare in LogicLab ed utilizzare.

    Venendo al tuo problema tutti gli oggetti sono forniti in librerie, esiste la libreria eLLabMdbDevsLib che contiene il FB ModbusMaster_v2, per poterlo utilizzare in un programma occorre importare la libreria o l’oggetto (Vedi link). Il tuo errore deriva dal fatto che l’oggetto non è presente nel tuo progetto, quindi basterà importarlo per risolvere il problema.

    in risposta a: Conversione di una variabile INT in String #68564
    Sergio Bertana
    Amministratore del forum

    Si proprio la funzione SysVsnprintf è quello che devi utilizzare, visto che hai esperienza di programmazione in linguaggio C la funzione si comporta come la snprintf() del C. Unica differenza che gli argomenti non possono essere variabili ma deve sempre essere un unico argomento di cui occorre definirne il tipo.

    Venendo alla tua necessità se cerchi nel manuale troverai molti esempi di utilizzo di questa funzione ma ecco un esempio per la tua esigenza.

    PROGRAM MyProgram
    VAR
        i : UDINT; (* Auxiliary variable *)
        Counter : ARRAY[0..1] OF UINT := [10, 20]; (* Counter value *)
        Message : STRING[ 32 ]; (* Final message *)
    END_VAR
    
        // Esempio di concatenazione stringhe con funzioni.
    
        i:=SysVsnprintf(ADR(Message), SIZEOF(Message), ADR('Counter[0]: %d'), UINT_TYPE, ADR(Counter[0])); //'Counter[0]: 10'
        i:=SysCVsnprintf(ADR(Message), SIZEOF(Message), ADR(', Counter[1]: %d'), UINT_TYPE, ADR(Counter[1])); //'Counter[0]: 10, Counter[1]: 20'
    
        // Esempio di concatenazione stringhe con operatori di conversione.
    
        Message:=CONCAT('Counter[0]: ', TO_STRING(Counter[0])); //'Counter[0]: 10'
        Message:=CONCAT(Message, ', Counter[1]: '); //'Counter[0]: 10, Counter[1]: '
        Message:=CONCAT(Message, TO_STRING(Counter[1])); //'Counter[0]: 10, Counter[1]: 20'
    
    // [End of file]

    Come vedi ho ottenuto lo stesso risultato utilizzando le funzioni o gli operatori di conversione in stringa. Nell’esempio ho anche visualizzato come realizzare una concatenzione di valori, la funzione snprintf() del C ti avrebbe permesso di fare tutto in una unica riga di codice:

        i=snprintf(Message, SIZEOF(Message), "Counter[0]: %d, Counter[1]: %d", Counter[0], Counter[1]);
    in risposta a: Gestione ricette con SlimLine #68512
    Sergio Bertana
    Amministratore del forum

    L’argomento ricette con SlimLine è stato trattato in questo topic, ed in questo topic.

    In questa Knowledge c’è un esempio.

    Più in generale puoi anche scrivere dati su di un file in formato CSV che puoi poi leggere per estrarne i dati di ricetta. Il vantaggio di utilizzare un file CSV è che lo puoi anche valorizzare/consultare utilizzando Excel.

    Il programma ST_DataLoggerOnCSVFile è un esempio di scrittura dati su file CSV, il programma TagFinder è un esempio di lettura dati da file CSV.

    in risposta a: Missing the “SysGetSysTime” function #68466
    Sergio Bertana
    Amministratore del forum

    In questo periodo come è ben noto a tutti c’è una estrema difficoltà nel reperire i componenti elettronici, quindi siamo stati costretti a sostituire il processore CortexM7 utilizzato nei nostri sistemi con una nuova versione.

    Per rendere il prodotto perfettamente compatibile con i prodotti realizzati con la precedente versione di processore abbiamo dovuto realizzare una nuova versione di sistema operativo.

    in risposta a: Missing the “SysGetSysTime” function #68460
    Sergio Bertana
    Amministratore del forum

    Con la nuova versione di Logiclab sono stati introdotti gli operatori di gestione Data/Ora, quindi ne abbiamo rivisto la gestione. La funzione SysGetSysTime è stata sostituita dalle nuove funzioni di gestione tempo di sistema, che sono disponibili solo se esegui l’upgrade  del sistema operativo.

    Per compilare i progetti esistenti che utilizzano la funzione SysGetSysTime ed altre funzioni di gestione Data/Ora abbiamo realizzato la libreria eLLabDTimeAdjLib che deve essere aggiunta al progetto.

    Per il tuo problema sulla funzione ModbusMaster_v2, tu hai aggiornato la funzione utilizzando l’ultima versione rilasciata, ma non hai aggiornato il sistema operativo dello SlimLine, e quindi non sono presenti le nuove funzioni di gestione tempo di sistema a cui fanno riferimento tutte le nuove librerie.

Stai visualizzando 15 post - dal 721 a 735 (di 4,379 totali)