Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 601 a 615 (di 4,313 totali)
  • Autore
    Post
  • in risposta a: Realizzare programma a macchina a stati #69979
    Sergio Bertana
    Amministratore del forum

    Non capisco cosa intendi per “in caso di fluttuazione della tensione di linea tutto il ciclo riparte”, se il problema si manifesta perchè il PLC si riavvia o se sono altri componenti dell’impianto che si riavviano.

    Il PLC ha un controllo sulla tensione minima di alimentazione e comunque se c’è un “buco” di alimentazione certamente si riavvia. Ma questo è facilmente risolvibile con una batteria di emergenza sull’alimentazione, puoi usare un alimentatore UPS serie DRC.

    Se invece la tua necessità è di gestire le sequenze di impianto a stati puoi dare una occhiata a questo topic, in pratica si utilizza una variabile numerica per gestire gli stati macchina, nei linguaggi LD o FBD utilizzi l’operatore di comparazione per abilitare le operazioni nei vari stati, in linguaggio ST utilizzi l’operatore CASE.

    Se vuoi mantenere traccia dello sato in cui si trova l’impianto allo spegnimento basterà rendere ritentiva la variabile numerica che gestisce gli stati. Inoltre modificando il numero è possibile passare facilemente da uno stato all’altro.

    in risposta a: Comunicazione seriale su cavo ethernet #69969
    Sergio Bertana
    Amministratore del forum

    Utilizzando due convertitori ATC-1200 uno impostato come server e l’altro come client connessi entrambi alla stesa rete ethernet, non importa se in mezzo ci sono dei ripetitori WiFi che riportano la rete tu puoi avere una connessione seriale trasparente.

    Naturalmente la conversione seriale/Ethernet introduce sicuramente ritardi che possono andare da pochi mS fino a 100 mS e più (Dipendono anche dall’intasamento della rete Ethernet). Ma siccome mi dici trattarsi di un Modbus RTU gli eventuali ritardi sono sicuramente tollerabili e gestiti dal sistema.

    Molte volte mi viene chiesto se è possibile utilizzare questi convertitori Seriale/Ethernet per collegare centraline antifurto o centrali antincendio, ecco in questi casi il protocollo seriale è proprietario e può succedere che il sistema controlli i tempi di latenza generando errori di comunicazione.

    in risposta a: Ancora idee per applicazione domotica #69961
    Sergio Bertana
    Amministratore del forum

    Sono in molti ad utilizzare sistemi PLC per il controllo domotico in questo articolo diamo alcune informazioni in merito.

    “In caso del guasto del PLC” questo evento con i nostri prodotti non può succedere… Però capisco la tua apprensione e quindi và bene utilizzare il relè passo-passo, per leggerne lo stato ti conviene utilizzare dei relè a due contatti, uno per attuare il comando a 220V è l’altro per la segnalazione a 24V. Magari puoi prevedere anche il comando della bobina da PLC in parallelo al pulsante in modo da poter gestire automazioni sui comandi.

    • Quando inserisci l’antifurto spegni automaticamente tutte le utenze non utili.
    • Accendi ad orari prestabiliti o da remoto alcune utenze.
    • Crei scenari automatici sulle luci, per simulare presenza in casa.
    • Spegni utenze energivore al superamento della soglia di energia disponibile per evitare lo sgancio del contatore.

    Per acquisire il consumo di energia consiglio l’utilizzo del contatore di energia monofase SDM120 con il suo blocco funzione dedicato.

    Per l’acquisizione delle temperature è una buona idea l’utilizzo di sensori 1-Wire basati su DS18B20 come questo. Puoi collegarli tutti in parallelo ed acquisirli direattamente dall’interfaccia 1-Wire del modulo CPU.

    in risposta a: Colorazione definizione address TAGs interne #69950
    Sergio Bertana
    Amministratore del forum
    1. Le TAGs riportate con colore rosso indica che sono usate da qualche parte nel progetto.
    2. La visualizzazione della griglia indirizzi si attiva d al menù View selezionando Address Grid (Screenshot).
    3. Dovrai allocare le tue stringhe in un area libera, quindi cerca delle zone libere contigue adatte a contenere le stringhe.
    4. Per scrivere il dimostrativo sono partito da un esempio di Weintek, può essere che mi sia rimasta dentro qualche dicitura originale.
    in risposta a: Progetto di esempio “Demo_SQLQuery” #69947
    Sergio Bertana
    Amministratore del forum

    Si l’esempio Demo_SQLQuery è contenuto nel link che hai trovato, nel file zip ci sono anche alcuni esempi presi dal sito Weintek.

    Riguardo al MariaDB non so se tutti gli elementi siano supportati ma per quello che vedo direi di si.

    in risposta a: System registers, differenza registri LB-9153 e LB-10100 #69933
    Sergio Bertana
    Amministratore del forum

    Informazioni sull’utilizzo dei system registers relativi alla comunicazione con il PLC le puoi trovare in questo topic.

    Però è strano che se il PLC è on-line tu abbia questi problemi di comunicazione, hai impostato nel protocollo un tempo di timeout sufficente, ed eventualmente un numero di retries prima di generare errore (Screenshot).

    Sei sicuro che non vi siano oggetti che puntano ad indirizzo errato sul PLC, prova a fare un progetto con un unico oggetto switch e metti il programma in test per verificare se anche con un solo oggetto hai problemi di comunicazione.

    in risposta a: Accedere con cMTViewer a pannello cMT-2008X #69741
    Sergio Bertana
    Amministratore del forum

    L’accesso al pannello da cMTViewer è sempre attivo, è possibile connettere fino a 9 client cMTViewer in contemporanea oltre alla visualizzazione sul display del pannello.

    Il numero di connessioni contemporanee è impostabile da EasyBuilderPro nelle impostazioni di progetto (Screenshot).

    Attivando l’App cMTViewer sul PC o sul tablet/smartphone ed agendo sul tasto di ricerca dispositivi in rete (Screenshot), se il pannello è nella stessa rete verrà visualizzato nell’elenco e selezionandolo sarà possibile accedervi. Nel tuo caso visto che non trovi il pannello farei questi controlli:

    • Accertarsi che sia raggiungibile in rete, provando a fare un ping.
    • Verificare di non avere indirizzi IP sovrapposti tra pannello ed un’altro dispositivo.
    in risposta a: Visualizzare lista variabili con riferimento dove sono utilizzate #69727
    Sergio Bertana
    Amministratore del forum

    Aggiungo che comunque esiste la possibilità di avere un elenco di Cross reference completo al termine della compilazione del progetto.

    Dal menù Project->Options->Cross Reference occorre abilitarne la generazione, terminata la compilazione del progetto con il tasto Cross reference window è possibile aprire la finestra  di visualizzazione.

    Definendo in Name il nome della variabile verranno visualizzati tutti i punti dove è stata utilizzata (Screenshot).

    in risposta a: Visualizzare lista variabili con riferimento dove sono utilizzate #69710
    Sergio Bertana
    Amministratore del forum

    Il metodo che io utilizzo è il comando di ricerca nel progetto (Find in project), si attiva con la combinazione di tasti Ctr+F.

    Selezionando la variabile da cercare, con la combinazione di tasti Ctr+F si attiva la funzione che darà come risultato tutti i punti dove viene utilizzata la variabile (Screenshot).

    Un doppio click sui vari punti posizionerà l’editor direttamente sul punto per l’eventuale modifica.

    in risposta a: Dubbi post aggiornamento LogicLab #69696
    Sergio Bertana
    Amministratore del forum

    Ogni upgrade di programmi porta a delle modifiche ma abbiamo fato notevoli sforzi per evitare problemi ai clienti. In questo articolo spero di avere spiegato in forma chiara come comportarsi con l’upgrade di LogicLab.

    Quindi come detto con la nuova versione di LogicLab è possibile compilare i vecchi programmi senza fare modifiche. Naturalmente se le librerie nel vecchio progetto sono state linkate alla apertura LogicLab vi chiederà se volete aggiornarle e se le aggiornate certo vi troverete con librerie nuove che fanno riferimento alla nuova architettura XUnified.

    Nel tuo caso senza aggiornare le librerie puoi tranquillamente compilare il vecchio progetto mantenendo la ModbusMaster_v1, certo se vuoi trasferire il vecchio progetto su di un nuovo modulo CPU (Che ha architettura XUnified) devi includere  nel tuo progetto la libreria eLLabXUnifiedAdjLib come indicato in questo articolo. In alternativa è possibile eseguire l’upgrade ad XUnified od il downgrade ad XTarget di tutti i nostri moduli CPU sia ARM che Cortex.

    Per quanto riguarda il tuo modulo CPU come detto prima puoi decidere di continuare ad utilizzarlo come XTarget o upgradarlo a XUnified in base alle tue esigenze. Ricordo che le librerie per poter utilizzare i programmi tra le due architetture sono la eLLabXTargetAdjLib e la eLLabXUnifiedAdjLib.

    La libreria eLLabDTimeAdj serve nel caso di compilazione di progetti già con architettura XUnified che fanno ancora riferimento a Data/Ora, con la nuova versione di LogicLab sono stati introdotti peratori specifici di Data/Ora conformi alle specifiche IEC-61131.

    in risposta a: Visualizzare variabili indicizzate su pagina modello #69686
    Sergio Bertana
    Amministratore del forum

    Devi utilizzare i registri indice, quando utilizzi una visualizzazione numerica o Ascii puoi definire che la associ ad  un registro indice (Screenshot), poi variando l’indice andrai ad utilizzare l’indirizzo della variabile con l’offset definito nel registro indice.

    Ora al cambiare del numero di serbatoio dovrai solo impostare il valore del registro indice utilizzato per operare con le variabili del serbatoio.

    in risposta a: Errore in macro non modifica valore di variabile #69674
    Sergio Bertana
    Amministratore del forum

    Ho provato la tua macro, e anzi l’ho riscritta in base a quanto credo ti serva ottenere, ecco la mia versione

    macro_command main()
    bool Pulse //One shot memory
    bool Alarm=0 //Alarm flag
    int APage=0 //Alarm page
    
    //GetData(AL, "CODESYS V3 (Ethernet)", "Application.GVL.Allarme_Attivo", 1)
    GetData(Alarm, "Local HMI", LB, 0, 1)
    
    if (Alarm <> Pulse) then
        Pulse=Alarm //One shot memory
        
        if not(Alarm) then
            APage=10 //Alarm page
        end if
        
        if (Alarm) then
            APage=20 //Alarm page
        end if
       
        SetData(APage, "Local HMI", LW, 2000, 1)
    end if
    end macro_command

    Naturalmente per poterla testare ho gestito il set della condizione di allarme tramite una variabile pannello LB 0 anzichè dal PLC. Quando è presente un allarme LB0 set viene forzata la visualizzazione della pagina 20. Quando l’allarme si resetta si ritorna alla pagina 10.

    Da notare che la variabile Pulse deve mantenere il suo stato su esecuzioni successive della macro, quindi non è possibile inizializzarla e questo genera una warning in compilazione. Per evitare la warning occorrebbe eseguire un GetData ed un SetData di appoggio su variabile LB.

    in risposta a: Utilizzo programma eLLabUpdater per aggiornare le librerie #69654
    Sergio Bertana
    Amministratore del forum

    Abbiamo deciso di eliminare i download delle singole librerie a favore di un repository dove il programma eLLabUpdater ne esegue il download per permettere un più agevole upgrade delle stesse.

    Un unico comando sul programma permette di verificare le versioni delle singoile librerie e nel caso di nuove versioni decidere di eseguirne l’upgrade.

    Per quanto riguarda la domanda, siccome il programma eLLabUpdater è indipendente dalla installazione di LogicLab è possibile installarlo su qualsiasi PC connesso in rete. Basterà definire la cartella in cui sono presenti le librerie (Al limite anche su PenDrive) ed eseguendo l’upgrade tutte le librerie verranno trasferite nella cartella. Se si usa un PenDrive si potrà facilmente trasferirle su PC di lavoro dove c’è LogicLab.

    in risposta a: Autenticazione locale/remota su pannelli cMT #69643
    Sergio Bertana
    Amministratore del forum

    Sui pannelli cMT siccome è possibile connettere fino a 9 cMTViewer remoti più l’accesso da pannello locale viene gestita l’autenticazione separata per ogni accesso. A tal proposito si utilizzano le variabili PLW e non le LW, in sostanza:

    • Variabili LW condivise tra utenti, una variazione del valore fatta da un utente è visibile da tutti.
    • Variabili PLW propritarie dell’utente, ogni utente può variarle a sua discrezione.

    Detto questo per quanto riguarda l’autenticazione se vuoi gestirla anche da remoto tramite connessione cMTViewer devi selezionare le PLW e non le LW (Screenshot). Puoi cambiare tipo di selezione in qualsiasi momento e poi ricompilare il progetto.

    in risposta a: Errore in macro non modifica valore di variabile #69640
    Sergio Bertana
    Amministratore del forum

    Sicuramente la variabile PAGINA va dichiarata come short e non int.

    Poi eventualmente si può inserire oggetti visualizzazione numerica appoggiando le variabili per la visualizzazione in modo da verificare a video il risultato.

    Puoi anche inserire nella macro la funzione TRACE che ti permette di visualizzare tramite il debugger i passaggi intermedi di funzionamento.

Stai visualizzando 15 post - dal 601 a 615 (di 4,313 totali)