Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 586 a 600 (di 4,312 totali)
  • Autore
    Post
  • in risposta a: Gestione cambio pagina in progetto dimostrativo #70111
    Sergio Bertana
    Amministratore del forum

    Intanto allego il progetto per il download anche dal forum così siamo sicuri che sia sempre disponibile.

    Per il cambio pagina si utilizza l’oggetto PLC Control, definendo un nuovo controllo di tipo Change window collegato alla variabile change-window. Al variare del valore della variabile verrà visualizzata la pagina richiesta.

    Da notare che per la variabile change-window è stata scelta una variabile PLW e non una LW, in questo modo il cambio pagina avviene solo sulla istanza cMTViewer da cui si opera.

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

    Il faceplate è un gruppo di oggetti che ne realizzano uno nuovo parametrizzato, è tipico del mondo Siemens, attualmente Weintek non lo gestisce. In una preview hanno annunciato di rendere disponibile qualcosa di simile verso la fine dell’anno 2023.

    Nell’esempio che tu citi, la comunicazione con il robot è in Modbus, la parte js è usata per prelevare il dato mousearea cosi da elaborare il valore Modbus da inviare al robot.

    Sul sito Weintek ci sono alcune demo js per le gesture js.

    in risposta a: Resettare il sistema da programma utente #70095
    Sergio Bertana
    Amministratore del forum

    Per il restart del sistema è possibile utilizzare la funzione SysOSIDValue passando come OSID la definizione OSID_PLC_COMMAND con i valori:

    • reboot: esegue il reboot del sistema.
    • restart: esegue il riavvio del solo programma PLC, tutte le variabili sono azzerate.

    Ecco un programma di esempio (Deve essere eseguito in task Back).

    PROGRAM RebootRestart
    VAR
        i : UDINT; (* Auxiliary variable *)
        Reboot : BOOL; (* Reboot command *)
        Restart : BOOL; (* Restart command *)
    END_VAR
    
        IF (Reboot) THEN
            i:=SysOSIDValue(TRUE, OSID_PLC_COMMAND, ADR('reboot'));
        END_IF;
    
        IF (Restart) THEN
            i:=SysOSIDValue(TRUE, OSID_PLC_COMMAND, ADR('restart'));
        END_IF;
    in risposta a: Accesso a PLC con autenticazione #70088
    Sergio Bertana
    Amministratore del forum

    Dalla versione 6.07.xx di EasyBuilderPro è stata introdotta la possibilità di definire User name e Password per l’accesso al PLC.

    Nelle impostazioni comunicazioni con PLC puoi impostare le credenziali di accesso (Screenshot).

    in risposta a: Interfaccia con RESOL VBus #70064
    Sergio Bertana
    Amministratore del forum

    Ammetto di non aver mai sentito parlare di  RESOL VBus, ho dato una occhiata in Internet e in questo articolo ho trovato sia gli schematici per l’interfacciamento che informazioni sul protocollo.

    Non abbiamo mai affrontato direttamente l’interfacciamaento con questo BUS, può essere che qualche ns cliente lo abbia affrontato. In teoria realizzato l’hardware di interfaccia è possibile con le funzioni di gestione strems di comunicazione implementare il protocollo.

    Probabilmente è più facile utilizzare la libreria Java resol-vbus su di un sistema SlimLine Raspberry.

    in risposta a: Suggerimenti su automazione serra di floricoltura #70053
    Sergio Bertana
    Amministratore del forum

    Vediamo i vari punti.

    1. La serie cMT-2008X è sicuramente la scelta migliore, le 2 porte LAN ti permettono di separare la rete utente con connessione Internet dalla rete di automazione con i PLC.
    2. Per il modulo CPU dovendo gestire connessione in RS485 con i sensori e RS232 con il Modem mi indirizzerei su MPS054. Tra l’altro questo modulo dispone anche di interfaccia 1-Wire nativa.
    3. I moduli di espansione locali li puoi scegliere in base alle tue esigenze.
    4. Per i sensori temperatura/umidità in RS485 li trovi qui, ma puoi anche utilizzare queste soluzioni wireless molto più adatte all’utilizzo in serre. In 1-Wire abbiamo solo il sensore di temperatura.
    5. Per l’invio di SMS/Chiamate puoi utilizzare un modem con la sua libreria di gestione.

    Aggiungo che se c’è connessione Internet puoi gestire invio di eMail direttamente da terminale o con il FB EMailSend su SlimLine, con il FB Telegram puoi  inviare/ricevere messaggi Telegram.

    Per quanto riguarda il datalogging, lo puoi gestire da terminale o con il FB StringToLogFile da SlimLine e con il FB FTPClient puoi anche gestirne l’invio automatico su di un server FTP. Ricordo inoltre la possibilità di gestire l’invio di dati nel cloud a portali di monitoraggio come da esempio Beebotte.

    Per le future espansioni potrai aggiungere moduli estensione di I/O locali, oppure aggiungere I/O remoti o altri moduli CPU SlimLine interconnessi in rete Ethernet con il FB DataTransfer.

    in risposta a: Connessione inverter fotovoltaico in Ethernet/WiFi #70045
    Sergio Bertana
    Amministratore del forum

    Se hai un segnale RS485 e puoi stendere un cavo twistato tra l’inverter ed il misuratore di energia puoi andare direttamente in RS485 (La specifica prevede fino a 1200mt di distanza).

    Non capisco la domanda ” L’ATC-1200 potrebbe funzionare a tale distanza”, l’ATC-1200 è un convertitore Seriale /Ethernet e quindi per mettere in comunicazione i due apparati devi utilizzare 2 convertitori (Uno server e l’altro client) ed interconnetterli in Ethernet (La specifica Ethernet prevede fino a 100mt).

    Discorso diverso invece se vuoi instradare la connessione Ethernet tra i due dispositivi su una connessione WiFi esistente, in tal caso è sicuramente fattibile, come dici tu connetti un convertitore ad un access point e l’altro ad una station che riceve il segnale WiFi. Naturalmente i due convertitori avranno indirizzi IP diversi nella stessa classe della rete WiFi.

    in risposta a: Come utilizzare il FB Average #70025
    Sergio Bertana
    Amministratore del forum

    Il FB Average per calcolare il valore mediato sul valore di ingresso utilizza al suo interno una variabile di appoggio che simula il comportamento di una grossa capacità. Sicuramente nel momento in cui il valore di ingresso ha raggiunto valori molto alti per un certo tempo ha “caricato” la “capacità” interna del FB che poi alla ricomparsa del valore corretto impiegherà un certo tempo per “scaricarsi”.

    Il modulo di acquisizione analogica su errore acquisizione (Esempio rottura  sonda) oltre a generare errore, ritorna come valore REAL lo stato NaN acronimo di Not a Number. Non sò che versione hai tu del FB Average (Tasto destro sul FB puoi visualizzarne le proprietà), dalla versione Sfr054d160 è stato introdotto il controllo sul valore di ingresso se NaN o INF viene azzerato il valore della “capacità”. Da quello che dici sembrerebbe che tu stai utilizzando una versione precedente.

    Comunque come dici giustamente tu se si azzera il valore di Coefficent il FB copia immediatamene il valore in ingresso sulla “capacità” interna e quindi in uscita. Quindi è corretto su Fault acquisizione azzerare Coefficent, ma affinchè abbia effetto devi anche eseguire il FB, nel tuo programma su errore non viene più eseguito. Ecco come potresti modificarlo.

        IF ANA_IN_2.Fault THEN
            ALR_SENS_HEATER:=TRUE; //Sensor alarm
            AV_IN_2.Coefficient:=0.0;
        ELSIF ANA_IN_2.Done THEN
            AV_IN_2(Value:=ANA_IN_2.Value);
            AV_IN_2.Coefficient:=125.0;
            AN_TEMP_HEATER:=AV_IN_2.Average; //Temperature (°C)
        END_IF;

    Non occorre invece fare alcuna operazione sul modulo analogico che provvede a ripristinare il funzionamento alla soluzione del guasto.

    in risposta a: Dubbi sulla funzione SwapData #70020
    Sergio Bertana
    Amministratore del forum

    Ho realizzato un semplice programma che testa lo swap su variabili REAL, naturalmente per vedere il risultato dello swap ho dovuto appoggiare i valori dopo lo swap su variabili DWORD perchè i numeri REAL non essendo più nel formato corretto non sono più visualizzabili. Ecco il risultato:

    PROGRAM MyProgram
    VAR
        i : BOOL;  (* Auxiliary variable *)
        DWData : ARRAY[0..3] OF DWORD; (* DWord data example *)
        RLData : ARRAY[0..3] OF REAL; (* Real data example *)
    END_VAR
    
        RLData[0]:=1234.567;
        DWData[0]:=eGetDWORD(ADR(RLData[0])); //16#449A5225
    
        i:=SwapData(ADR(RLData[1]), ADR(RLData[0]), DWORD_TYPE, SWAP_HALF);
        DWData[1]:=eGetDWORD(ADR(RLData[1])); //16#5225449A
    
        i:=SwapData(ADR(RLData[2]), ADR(RLData[0]), DWORD_TYPE, SWAP_VARS);
        DWData[2]:=eGetDWORD(ADR(RLData[2])); //16#449A5225
    
        i:=SwapData(ADR(RLData[3]), ADR(RLData[0]), DWORD_TYPE, SWAP_ENDIAN);
        DWData[3]:=eGetDWORD(ADR(RLData[3])); //16#25529A44
    
    // [End of file]
    in risposta a: Comparazione programmi PLC #70012
    Sergio Bertana
    Amministratore del forum

    Non esiste un comando di comparazione ma se è stato eseguito l’upload del programma sorgente nel dispositivo (Vedi articolo) è possibile eseguirne il download e dopo averlo aperto con LogicLab ci si ritrova con il file di progetto plcprj relativo al programma presente nel dispositivo.

    Utilizzando un semplice programma di comparazione file di testo si possono vedere le differenze. Certo è tutto molto chiaro per i programmi testuali (Linguaggi IL ed ST) per i programmi grafici si vede la differenza ma non è facile capire quale sia.

    in risposta a: Campo di testo compilabile da utente #70006
    Sergio Bertana
    Amministratore del forum

    Puoi inserire nella pagine degli oggetti introduzione ascii, puoi appoggiare i dati inputati su variabili LW o su RW se vuoi mantenere il dato allo spegnimento.

    Per ogni riga puoi definire il numero di word (Ogni word sono 2 caratteri), naturalmente se vuoi scrivere su più righe dovrai inserire un oggetto di introduzione per ogni riga. Il testo non può scorrere tra i vari oggetti.

    in risposta a: Configurazione impulsi misura su Eastron SDM630 #69996
    Sergio Bertana
    Amministratore del forum

    Contatore di energia trifase SDM630 pur disponendo di una uscita Modbus da cui è possibile acquisire tutte le misure, per i ns sistemi SlimLine esiste un blocco funzione apposito gestisce comunque due uscite impulsive per la misurazione dell’energia attiva e reattiva.

    L’uscita 2 non è configurabile, è impostata per la misurazione dell’energia attiva, e genera 400 impulsi/kWh, la larghezza dell’impulso è 100mS.

    L’uscita 1 può essere impostata dal menu di configurazione con i parametri:

    • Pulse output, energia misurata, potenza totale (attiva kWh, reattiva kVarh), import potenza (attiva kWh, reattiva kVarh), export potenza (attiva kWh, reattiva kVarh).
    • Pulse rate, quantità di energia per ogni impulso (0.01/0.1/1/10/100 kWh/kVarh).
    • Pulse duration, durata impulso 200mS (Solo per dispositivi non MID), 100mS (Default), 60mS.

    La tua domanda, “avrei necessità di ottenere 60ms per 1000 impulsi”, puoi avere impulsi di durata 60mS ed impostando pulse rate a 0.01 avrai 100 impulsi ad ogni kWh.

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

    In fondo al secondo post c’è il link al download, era un progetto realizzato con una vecchi versione di EasyBuilder quindi va convertito.

    L’operazione di conversione la esegue direttamente EasyBuilderPro basta aprirlo dal menù File. Terminata la conversione viene chiesto di definire il modello di pannello scegliere un modello da 4.8″.

    Ecco comunque il progetto CnnTest modificato per un pannello MT8051iP.

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

    Certamente un sensore RS485 è più “robusto” elettricamente, nella nostra gamma di sensori abbiamo i sensori combinati temperatura, umidità, CO2 e VOC con il relativo blocco funzione di acquisizione.

    Una alternativa più costosa ma che permette anche l’impostazione è di utilizzare il  sensore temperatura e umidità ambiente con display, anche per questo c’è il suo blocco funzione di gestione.

    Se non vuoi stendere cavi puoi utilizzare i sensori wireless della Aranet.

    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.

Stai visualizzando 15 post - dal 586 a 600 (di 4,312 totali)