Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 286 a 300 (di 4,272 totali)
  • Autore
    Post
  • in risposta a: Informazioni su operando bit shift #76144
    Sergio Bertana
    Amministratore del forum

    Tutte le informazioni sugli operatori definiti all’interno dell’ambiente LogicLab sono reperibili sul manuale utente. Nella fattispecie l’help dell’operatore SHL riporta:

    • Descrizione: Shift a sinistra di input#0 per il numero di bit indicato da input #1 con riempimento di zero a destra.
    • Numero di operandi: 2
    • Tipo di dato input: Qualsiasi tipo numerico, Qualsiasi tipo numerico
    • Tipo di dato output: Lo stesso di input #0
    • Esempi: OUT := SHL( IN := 16#1000CAFE, 16 );  // OUT = 16#CAFE0000

    In pratica eseguire lo shift a sinistra di un valore equivale a moltplicarlo per 2.

    in risposta a: Visualizzazione ora:minuti:secondi con scalatura a macro #76135
    Sergio Bertana
    Amministratore del forum

    La soluzione più semplice è definire nell’oggetto numerico visualizzazione/impostazione tempi la visualizzazione a 2 interi e 2 decimali di una variabile 16-bit Unsigned (Screenshot). In questo modo devi accettare che il separatore hh.mm sia il punto decimale che è anche presente nella tastiera virtuale di impostazione valore.

    Naturalmente non potrai impostare i limiti sulla impostazione per impedire di impostare orari inesatti, l’operatore potrà impostare infatti qualsiasi valore tra 0.00 e 23.99. Siccome la variabile viene sia scritta che letta dal PLC basterà realizzare una routine di controllo valori nel programma PLC e correggere gli eventuali errori di impostazione. Ecco un esempio di programma PLC.

    PROGRAM TimeCheck
    VAR
        Hour : USINT; (* Hour *)
        Minutes : USINT; (* Minutes *)
        CheckStrobe : TON; (* Check strobe *)
        SetTime AT %MW100.2048 : UINT; (* %MW 41024] Set time from HMI *)
    END_VAR
    
    // *****************************************************************************
    // PROGRAM "Timecheck"
    // *****************************************************************************
    
        // -------------------------------------------------------------------------
        // TIME CHECK
        // -------------------------------------------------------------------------
        // Time check strobe.
    
        CheckStrobe(IN:=NOT(CheckStrobe.Q), PT:=T#1s);
        IF NOT(CheckStrobe.Q) THEN RETURN; END_IF;
    
        // Time check.
    
        Hour:=TO_USINT(SetTime/100); //Minutes
        Minutes:=TO_USINT(SetTime-(Hour*100)); //Minutes
    
        IF (Minutes > 59) THEN
            Minutes:=59; //Minutes
            SetTime:=(Hour*100)+Minutes; //Set time from HMI
        END_IF;
    
    // [End of file]

    Per evitare il controllo ad ogni loop di programma ho gestito un timer che comanda il controllo ad ogni secondo. Il limite sull’ora è già controllato dal pannello operatore che non accetta valori superiori a 23.99, quindi il programma controlla solo i minuti e se sono fuori range li reimposta al valore massimo 59.

    in risposta a: Impostazione polling time TAG da PLC #76129
    Sergio Bertana
    Amministratore del forum

    Se vuoi rallentare la comunicazione tra l’HMI ed il PLC puoi agire sulle impostazioni del protocollo di comunicazione, impostando il parametro Turn around delay. In questo caso come cita il manuale rallenterai la comunicazione con tutte le TAGs.

    While sending the next command to the device, HMI will delay the sending according to the time interval set in [Turn around delay]. This may influence the efficiency of the communication between HMI and the device.

    Se invece vuoi agire s olo su di una TAG puoi attivare un trasferimento ciclico con il tempo che desideri della TAG dal PLC al pannello e visualizzare la TAG del pannello. Puoi anche utilizzare una macro cilcica con un GET SET su tag di appoggio per la visualizzazione.

    in risposta a: Monitoraggio temperatura olio su centraline idrauliche #76106
    Sergio Bertana
    Amministratore del forum

    Abbiamo diverse soluzioni per soddisfare la tua esigenza sia wired che wireless, tra le tante soluzioni quella che mi sento di proporti è basata su sensori LoRaWAN. Tutti questi sensori operano in wireless connettendosi ad un gateway di gestione come ad esempio l’UG56, utilizzando la frequenza 868Mhz in tecnlogia LoRaWAN permettono comunicazioni a lunga distanza (Fino ad 1Km all’interno di edifici) con un bassissimo consumo.

    Per la lettura della temperatura posso consigliare il TS30x (Datasheet) alimentato a batteria con display e sonda Pt100 tipo AF10-125-150 adatta fino a 120°C, naturalmente non potrai immergerla direttamente nell’olio ma dovrai utilizzare un pozzetto adeguato.

    Per la gestione dei dati, il gateway ha nativo un broker MQTT in grado di pubblicare i dati ricevuti dai sensori, inoltre essendo programmabile in Python o Node-RED è possibile gestire i dati ricevuti in base alle proprie necessità. Per la visualizzazione dei dati e la gestione degli allarmi hai diverse soluzioni.

    Pagina web sul gateway
    Come dicevo il gateway è programmabile in Node-RED, un ambiente di sviluppo web che permette la realizzazione di pagine grafiche di visualizzazione dati con visualizzazione numerica, gauge, bar graph, trend grafico. Inquesto modo puoi realizzare direttamente sul gateway il programma di visualizzazione e gestione allarmi. Inoltre grazie al supporto SQL potrai anche salvare i dati su di un database in ottica 4.0.

    Terminale operatore
    Utilizzando un dispositivo con display integrato o con monitor esterno puoi interfacciarti al gateway per l’acquisizione dei dati dei sensori e gestirne la visualizzazione numerica, gauge, bar graph, trend grafico. Il terminale può gestire la storicizzazione dei dati ed alcuni modelli supportano la connessione SQL. EasyAccess permette di accedere al panello da remoto garantendone la completa interoperabilità via Internet, tutte queste caratteristiche lo rendono conforme alla Industry 4.0.

    Supporto con PLC
    Utilizzando i nostri sistemi programmabili SlimLine è possibile acquisire i dati via MQTT direttamente dal gateway e gestirli all’interno di un programma PLC per una completa flessibilità. Abbiamo blocchi funzione già predisposti per l’interfaccia ed utilizzando la libreria di oggetti disponibili in ottica Industry 4.0 è possibile salvare dati storici e trasferirli su server FTP nel cloud. Inoltre il PLC semplifica notevolmente il passaggio dati dal gateway al pannello operatore.

    in risposta a: Visualizzazione ora:minuti:secondi con scalatura a macro #76093
    Sergio Bertana
    Amministratore del forum

    L’utilizzo della macro per la scalatura valori è stato già trattato in questo topic, una idea su come potresti agire per ottenere quello che desideri è riportata in questo screenshot.

    Numeric Object
    Per la visualizzazione devi definire nelle proprietà dell’oggetto il tipo Customized impostando il numero di cifre totali (Nell’esempio 8) ed il formato di visualizzazione (Nell’esempio ****:**:**).  Nello scaling definire il metodo Macro subroutine definendo la macro di scalatura che andrai a scrivere (Nell’esempio TimeScale).

    Macro TimeScale
    La macro riceve in ingresso il valore UDINT (unsigned int 32 bits) dal PLC e lo elabora ritornando un valore opportunamente scalato in modo da avere sui 2 digit più bassi i secondi, poi a seguire 2 digits di minuti ed infine le ore. Riporto il listato della macro.

    sub unsigned int TimeScale(unsigned int Value)
    unsigned int VSecs=0, VMins=0, VHour=0, VResult=0
    
    VSecs=Value%60
    VMins=(Value/60)%60
    VHour=Value/3600
    VResult=(VHour*10000)+(VMins*100)+VSecs
    return VResult
    end sub
    in risposta a: Monitoraggio temperatura frigoriferi #76082
    Sergio Bertana
    Amministratore del forum

    Soluzione wired
    Utilizzando il prodotto Poseidon 2 4002, il dispositivo può acquisire fino a 16 sonde di temperatura 1-Wire ad esempio questa. Il funzionamento del dispositivo è visibile on-line a questo indirizzo. Come si vede è possibile impostare il range di temperatura per ogni sensore ed attivare l’uscita digitale  su condizione di allarme.

    Il sistema può anche inviare messaggi eMail su allarme temperatura e sul rientro dall’allarme. Collegando il dispositivo al portale cloud SensDesk vs HWg-cloud è possibile monitorare le temperature sul cloud. Sul portale SensDesk è possibile avere un salvataggio storico dei dati con report personalizzati adatti a soddisfare le richieste della normativa HACCP.

    Soluzione Wireless
    Utilizzando il Gateway industriale LoRaWAN UG56 è possibile acquisire sensori LoRaWAN distribuiti, nel tuo caso se il frigorifero non è completamente di metallo (Tale da schermare la comunicazione radio) puoi utilizare  dei sensori di temperatura ed umidità EM300-TH-868M direttamente posizionati all’interno del frigorifero.

    Il gateway è programmabile utilizzando Phyton o Node-RED ed è quindi possibile realizzare pagine web di visualizzazione valori e/o pulsanti per abilitare/disabilitare i controlli nel caso il frigorifero sia in sbrinamento.

    Abbinamento a PLC
    Abbinando ai prodotti indicati un ns sistema programmabile SlimLine e/o utilizzandolo direttamente per l’acquisizione delle sonde di temperatura è possibile gestire uscite logiche ed aggiungere funzionalità, come memorizzare file storici CSV ed inviarli automaticamente su di un server FTP. Inviare eMail o messaggi Telegram, inviare i dati a portali cloud via MQTT o REST. Naturalmente il sistema và programmato e per questo possiamo fornire un supporto in teleassistenza.

    in risposta a: Utilizzare il pannello come browser web #76075
    Sergio Bertana
    Amministratore del forum

    Al momento gli unici pannelli che supportano l’oggetto PLC Web Browser sono come detto nel post precedente i pannelli Cloud HMI Serie cMT-3000X Advanced. In questa famiglia il modello più piccolo è:

    HWPC3072XH cMT-3072XH 7″ Wide/Quad Core/1024X600 IPS/CMT Client + Server/2ETH/OPC U

    in risposta a: Messaggio Invalid arguments con simulatore Siemens #76068
    Sergio Bertana
    Amministratore del forum

    Non ho idee al riguardo, l’unica cosa che mi viene in mente e che il simulatore non sia chiuso correttamente o che rimanga aperto un servizio che al successivo avvio generi l’errore.

    Solitamente il simulatore del pannello in EasyBuilderPro viene utilizzato connesso direttamente al PLC reale in quanto lo scopo è proprio quello di testare il programma HMI evitando i tempi di trasferimento del progetto sul pannello.

    Nonho feedbacks di clienti che lo utilizzino unitamente al simulatore PLC.

    in risposta a: “Usura” variabili ritentive su SlimLine #76060
    Sergio Bertana
    Amministratore del forum

    Intanto veniamo alla memoria FRAM, nello SlimLine si utilizza la FM25V02A della Cypress che da datasheet garantisce:

    • High-endurance 100 trillion (10^14) read/writes
    • 151-year data retention

    Ma nella tua applicazione specifica giustamente è inutile allocare in memoria di backup variabili che non hanno la necessità di essere mantenute, quindi puoi allocarle proprio nella DB100 nel range da 0 a 2047. Infatti l’area DB100 è suddivisa in due parti da 2048 bytes, la prima parte da 0-2047 non è tamponata, la seconda parte da 2048-4095 viene tamponata in FRAM.

    Le variabili globali si allocano manualmente in DB100 solo se devono essere gestibili da Modbus (Esempio pannello operatore), altrimenti si possono definire Auto delegando a LogicLab la loro allocazione. Anche le variabili Auto possono essere mantenute allo spegnimento, basta dichiararle RETAIN, ed anche in questo caso verranno appoggiate su FRAM.

    Le variabili RETAIN a differenza di quelle allocate nella DB100 pur mantenendo il loro valore allo spegnimento del sistema, al caricamento di un nuovo programma vengono inizializzate (Vedi topic).

    in risposta a: VNC viewer non permette il controllo #76055
    Sergio Bertana
    Amministratore del forum

    Hai verificato che nelle impostazioni del pannello controllato (Il cMT3108XH) nel menù System Parameters -> Remote non sia posto il tick sulla voce VNC server -> Monitor mode.

    Se questa voce e attiva da VNC non è possibile dare comandi ma solo visualizzare il pannello.

    Puoi testare il funzionamento del VNC eseguendo un VNC client da un PC e verificando se i comandi hanno effetto.

    in risposta a: Problema connessione server MySQL #76050
    Sergio Bertana
    Amministratore del forum

    Per verificare il funzionamento classicamente consiglio l’accesso con password standard evitando qualsiasi crittografia che solitamente è la fonte dei problemi.

    Verificato che senza crittografia tutto funziona è possibile abilitarla cercando di risolvere gli eventuali problemi.

    Eventualmente disattivare il firewall sul server per vedere che non sia lui a bloccare la connessione.

    in risposta a: Telecamere IP compatibili con terminale cMT-2108X2 #76049
    Sergio Bertana
    Amministratore del forum

    Weintek non fornisce una lista di telecamere compatibili.

    Dalla mia esperienza se la telecamera supporta ONVIF standard ed è settabile come frame/risoluzione ecc…  quasi certamente è compatibile.

    in risposta a: Supporto a comandi simultanei su pannelli multitouch #75918
    Sergio Bertana
    Amministratore del forum

    I comandi simultanei sono possibili su tutti i modelli HMI con schermo capacitivo.

    In alternativa lo puoi gestire su tutti i modelli cMT utilizzando la App cMTViewer su un dispositivo con schermo capacitivo esempio smartphone o tablet.

    in risposta a: Telegram errore connessione server #75874
    Sergio Bertana
    Amministratore del forum

    Se per reboot intendi il comando di Reboot dato da Telnet, equivale allo spegnere e riaccendere il sistema. Diverso è il comando di Stop/Run programma in questo caso non funziona.

    Ma lo strano è quando dici che anche dopo uno spegnimento/accensione del sistema non funzioni… L’errore che vedi in spionaggio è sempre: HTTPClient:Er|Cannot connect to server, perchè questo non devrebbe più succedere. Il fatto che dici:

    L’unica cosa che ho visto funzionare è interrompere la comunicazione prima del download, attendere che FB Telegram abbia terminato l’esecuzione del comando.

    Avvalora la tesi che il problema sia effettivamente quello indicato ed allora il reboot del sistema deve risolverlo. Ricordo che su tutti i sistemi non Linux è possibile avere una sola istanza del FB SysTLSClient.

    in risposta a: Telegram errore connessione server #75866
    Sergio Bertana
    Amministratore del forum

    Il FB Telegram si appoggia al FB SysTLSClient per la gestione della crittografia sulla comunicazione IP e la verifica dei certificati.

    A differenza di tutte la funzioni di sistema che sono state interamente sviluppate da Elsist, in questo caso ci siamo avvalsi di una libreria acquistata da terze parti. La gestione della crittografia necessita di una grande quantità di memoria RAM che purtroppo nei microcontrollori è difficile da avere, il FB utilizza memoria rilocabile che alloca all’inizio della comunicazione e disalloca al termine.

    Se l’esecuzione del programma PLC viene interrotta (Esempio con un comando di stop, o con il caricamento di un nuovo programma) mentre la comunicazione è in corso la libreria non disalloca la memoria e quando il programma viene rieseguito il sistema non ha più memoria libera da assegnare e quindi ecco che non và a buon fine la connessione al server.

    La soluzione in questi casi è il riavvio del sistema, possibile sia da comando reboot che spegnendolo e riaccendendolo.

Stai visualizzando 15 post - dal 286 a 300 (di 4,272 totali)