Risposte nei forum create
-
AutorePost
-
Sergio BertanaAmministratore del forum
Tutti i nostri prodotti programmabili della famiglia SlimLine sono programmabili con LogicLab un ambiente di sviluppo realizzato in Italia da Axel.
Nel costo del prodotto è inclusa la licenza di programmazione quindi è possibile utilizzare gratuitamente LogicLab. Con l’ambiente di programmazione forniamo una serie di librerie con moltissime funzioni e blocchi funzioni per automazione e per IoT (Vedi manuale).
A differenza degli altri prodotti il Modulo CPU SlimLine Raspberry PI IEC61131-3 viene proposto senza licenze di sviluppo, è possibile acquistare separatamente la licenza Run-time per utilizzare LogicLab direttamente dal ns sito, mentre per la licenza CODESYS occorre fare riferimento al sito CODESYS.
Sergio BertanaAmministratore del forumTutte 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.
Febbraio 22, 2024 alle 8:59 am in risposta a: Visualizzazione ora:minuti:secondi con scalatura a macro #76135Sergio BertanaAmministratore del forumLa 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.
Sergio BertanaAmministratore del forumSe 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.
Febbraio 21, 2024 alle 11:08 am in risposta a: Monitoraggio temperatura olio su centraline idrauliche #76106Sergio BertanaAmministratore del forumAbbiamo 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.Febbraio 21, 2024 alle 10:05 am in risposta a: Visualizzazione ora:minuti:secondi con scalatura a macro #76093Sergio BertanaAmministratore del forumL’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
Sergio BertanaAmministratore del forumSoluzione 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.Sergio BertanaAmministratore del forumAl 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
Febbraio 19, 2024 alle 8:45 am in risposta a: Messaggio Invalid arguments con simulatore Siemens #76068Sergio BertanaAmministratore del forumNon 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.
Sergio BertanaAmministratore del forumIntanto 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).
Sergio BertanaAmministratore del forumHai 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.
Sergio BertanaAmministratore del forumPer 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.
Febbraio 16, 2024 alle 10:29 am in risposta a: Telecamere IP compatibili con terminale cMT-2108X2 #76049Sergio BertanaAmministratore del forumWeintek 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.
Febbraio 13, 2024 alle 10:42 am in risposta a: Supporto a comandi simultanei su pannelli multitouch #75918Sergio BertanaAmministratore del forumI 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.
Sergio BertanaAmministratore del forumSe 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.
-
AutorePost