Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumPossiamo fornire i sensori Comet nella fattispecie il T3511, che però non ha le uscite logiche per i contatti di allarme. Per poter gestire le 4 uscite di allarme abbiamo 2 possibilità.
- Abbinare al sensore Comet T3511 un modulo SlimLine che connesso in rete Ethernet acquisisce dal sensore gli allarmi e gestisce di conseguenza le uscite logiche. Questa soluzione permette di avere sul sensore Comet il display con l’indicazione locale della temperatura e di umidità.
- Utilizzare un sensore combinato di temperatura ed umidità connesso direttamente al modulo SlimLine.
In entrambi i casi sul dispositivo SlimLine andrà sviluppato un programma che acquisirà i valori è gestirà le uscite logiche. Vediamo come.
- Lo SlimLine acquisirà con il FB ModbusMaster via Modbus TCP o con il FB SNMPManager via protocollo SNMP gli allarmi è gestirà le uscite.
- Lo SlimLine acquisirà con il FB SysGetAnInp i valori di temperatura ed umidità direttamente dal sensore e gestirà le soglie con le relative uscite. In questo caso non si avrà più la visualizzazione su display dei valori e bisognerà sviluppare sullo SlimLine una pagina web per l’impostazione delle soglie.
Abbinando un pannello operatore si può gestire tutto dal pannello senza dover realizzare la pagina web. Un solo pannello può gestire entrambi i sistemi SlimLine unificando in un solo punto le impostazioni.
Sergio Bertana
Amministratore del forumNon ho mai trovato un manuale specifico, se cerchi in rete trovi moltissimi stralci di manuali dei vari costruttori di PLC che riportano alcune indicazioni.
Comunque nel manuale di LogicLab c’è una abbastanza dettagliata descrizione della sintassi del linguaggio ST con esempi.
Sergio Bertana
Amministratore del forumIntanto i pannelli Weintek che supportano CODESYS hanno un costo maggiore e comunque l’abbinamento con i relativi I/O inciderebbe ancora di più sul costo.
Vediamo invece se utilizzando i nostri PLC SlimLine riusciamo ad avvicinarci al tuo budget. Ecco i prodotti che ti consiglio:
- MPS056A110 SlimLine Modulo CPU Cortex M7 Compact Ethernet LLab Base Relè
- PCB126C170 SlimLine Modulo esp. I/O Analog. 5In/4Out + RS232
- PCB126C110 SlimLine Modulo esp. I/O Analogico 5In + RS232
- HWP8051IP1 MT8052iP Terminale Touch screen 4.3″ TFT
- SWPWTKEA2C RZACEA020 EasyAccess 2.0 Activation Card (Licenza perpetua)
Ai vari link troverai le informazioni sul prodotto ed il relativo costo, la somma al momento è di poco superiore al tuo budget. Fa lievitare il costo il grande numero di sonde Pt100 che obbliga ad utilizzare 2 moduli di acquisizione analogica. Se si potessero sostituire le sonde Pt100 con sonde 1-Wire basate su DS18B20 come questa, si potrebbero acquisire tutte dal modulo CPU utilizzando un modulo con ingresso 1-Wire.
Febbraio 26, 2024 alle 6:06 pm in risposta a: Protocollo Modbus TCP su dispositivi Poseidon e Damocles #76267Sergio Bertana
Amministratore del forumI dispositivi Poseidon2 e Damocles2 supportano il protocollo Modbus TCP. Dal menù General setup è possibile abilitare il protocollo impostando la porta in ascolto (Default 502) (Screenshot).
Per un riferimento agli indirizzi dei vari registri rimando alla pagina del fornitore.
Per il test è possibile utilizzare il nostro programma Toolly attivando l’utility ModbusMaster, ecco il manuale on-line.
Febbraio 26, 2024 alle 5:09 pm in risposta a: Realizzazione funzione con più variabili in uscita #76258Sergio Bertana
Amministratore del forumLe funzioni a differenza dei blocchi funzione per definizione hanno una sola uscita, ecco un esempio:
FUNCTION OneReturn: REAL VAR_INPUT InA : REAL; (* Input A *) InB : REAL; (* Input B *) END_VAR OneReturn:=InA+InB; //Function result
Se ti necessita realizzare una funzione che ritorni più di una uscita devi passare nei parametri di ingresso l’indirizzo delle variabili che vuoi utilizzare come uscite, ecco un esempio:
FUNCTION TwoReturns: BOOL VAR_INPUT InA : REAL; (* Input A *) InB : REAL; (* Input B *) RetA : @REAL; (* Return A *) RetB : @REAL; (* Return A *) END_VAR @RetA:=InA+InB; //Return A @RetB:=InA*InB; //Return B TwoReturns:=TRUE; //Function result
Ed ecco come sono eseguite da programma. Come vedi per la funzione che prevede due ritorni ho passato nei parametri l’indirizzo delle due variabili che conterranno il risultato della funzione.
PROGRAM MyProgram VAR ORFunction : REAL; (* One return function *) TRFunction : BOOL; (* Two returns function *) Operands : ARRAY[0..1] OF REAL := [5.0, 10.0]; (* Operands *) Results : ARRAY[0..1] OF REAL; (* Function results *) END_VAR ORFunction:=OneReturn(Operands[0], Operands[1]); //One return function TRFunction:=TwoReturns(Operands[0], Operands[1], ADR(Results[0]), ADR(Results[1])); //Two returns function
Sergio Bertana
Amministratore del forumMantenendo la App di EasyAccess attiva sul telefono è possibile ricevere notifiche push dal pannello.
A tal proposito rimando ad una nota applicativa di Weintek. Ecco cosa riporta la nota:
As long as EasyAccess 2.0 remains running at least in the background and the user remains logged in, when an event occurs, the device will receive push notification. For Apple’s iOS device, push notification goes through Apple Push Notification Service, whereas Android devices’ goes through Google Cloud Messaging.
Sergio Bertana
Amministratore del forumTutti 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 Bertana
Amministratore 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 Bertana
Amministratore 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 Bertana
Amministratore 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 Bertana
Amministratore 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 Bertana
Amministratore 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 Bertana
Amministratore 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 Bertana
Amministratore 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 Bertana
Amministratore 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.
-
AutorePost