Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumIniziamo con il dire che le uniche variabili accessibili dal terminale HMI con il protocollo Modbus sono quelle allocate nella DB100.
Storicamente nell’ambiente di sviluppo LogicLab non era permessa la definizione dei bit di una variabile come non era possibile accedervi da programma ed è questa la ragione percui in tutti gli esempi le variabili booleane sono definite di tipo BOOL ed occupano un byte di memoria.
Per acquisire le variabili BOOL il pannello utilizza i comandi Modbus 16#01 Read coil status, 16#02 Read input status, leggendo più stati booleani al minimo 16 consecutivi, il pannello ottimizza l’indirizzamento puntando a cavallo dell’indirizzo reale da leggere. Quindi se si definisce una variabile BOOL ad indirizzi compresi tra 100.0 e 100.7 il pannello invierebbe un comando di lettura di 16 BOOL con indirizzo inferiore a 100.0 e lo SlimLine risponderebbe con un errore di indirizzo. Quindi per correggere questa anomalia nella gestione del protocollo da parte di Weintek tutte le variabili BOOL sono allocate a partire da 100.16.
Per facilitare la connessione dei pannelli al programma LogicLab abbiamo realizzato il tool Symbols converter che permette di esportare le variabili mnemoniche globali (Tags) in un file formato csv che potrà essere importato dall’ambiente di sviluppo dell’HMI collegandole ai relativi simboli grafici.
Volendo utilizzare l’assegnazione a bit occorerà definire nelle variabili globali variabili di tipo MW in DB100 assegnando ad ogni bit della word il relativo valore mnemonico. Queste variabili con al Symbol converter potranno essere poi importate nel pannello che vi accederà con l’operando MW_Bit. Ecco la definizione di alcuni bit in due variabili WORD consecutive.
VAR_GLOBAL W16_Bit00 AT %MW100.16.0 : BOOL; (* Dummy text *) W16_Bit01 AT %MW100.16.1 : BOOL; (* Dummy text *) W16_Bit15 AT %MW100.16.15 : BOOL; (* Dummy text *) W18_Bit00 AT %MW100.18.0 : BOOL; (* Dummy text *) W18_Bit15 AT %MW100.18.15 : BOOL; (* Dummy text *) END_VAR
Ed ecco come saranno esportate nel file di TAGs.csv per il pannello Weintek
W16_Bit15,SlimLine,%MW_Bit,4000815,Dummy text,Bit W16_Bit00,SlimLine,%MW_Bit,4000800,Dummy text,Bit W16_Bit01,SlimLine,%MW_Bit,4000801,Dummy text,Bit W18_Bit15,SlimLine,%MW_Bit,4000915,Dummy text,Bit W18_Bit00,SlimLine,%MW_Bit,4000900,Dummy text,Bit
Come si vede l’indirizzamento delle WORD nel programma LogicLab è a multiplo di 2 mentre nel pannello si definisce l’indirizzo LogicLab diviso per 2 a cui si somma l’offset 40000.
Marzo 9, 2026 alle 12:06 pm in risposta a: Disconnessione da rete LTE su gateway LoRaWAN UG56 Milesight #84794Sergio Bertana
Amministratore del forumIl comando Restart when Dial-up failed interviene solo se il modulo cellulare non si avvia correttamente ma non nel caso di cadute di connessione.
Il riavvio del gateway non fa comunque perdere le chiavi di Join dei dispositivi, si perderebbero quindi solo i messaggi inviati durante il riavvio.
Abbiamo comunque sentito il produttore che ci consiglia di utilizzare Node-RED per la verifica della connessione e per eseguire eventuali riavvii delle sole interfacce di rete. Ci hanno dato il seguente flow come esempio di comando per il riavvio di tutte le interfacce:
[{"id":"d30976a0d3105657","type":"tab","label":"Flow 1","disabled":false,"info":"","env":[]},{"id":"e39d6bf67132db8b","type":"inject","z":"d30976a0d3105657","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":400,"y":200,"wires":[["cd75276c547f5f0a"]]},{"id":"cd75276c547f5f0a","type":"exec","z":"d30976a0d3105657","command":"/etc/init.d/quagga restart","addpay":"","append":"","useSpawn":"false","timer":"","winHide":false,"oldrc":false,"name":"","x":690,"y":200,"wires":[[],[],[]]}]
Ecco lo screenshot della importazione flow in Node-RED.Sergio Bertana
Amministratore del forumSi devi utilizzare lo schema di collegamento indicato nel manuale per acquisire le RTD.
Il valore di Iexc è predeterminato al minimo necessario per eseguire la lettura senza riscaldare l’elemento sensibile dovuto all’effetto Joule per il passaggio di corrente.
Sergio Bertana
Amministratore del forumIl modulo di acquisizione analogica PCB126 come vedi dalle definizioni di Mode del FB SysGetAnInp, può essere impostato per acquisire valori di resistenza con range massimo di 5000 Ohm. Ma vediamo i due problemi principali:
Risoluzione di acquisizione
Come vedi dalle caratteristiche la risoluzione in acquisizione 5000 Ohm è di 20 bits pari a 5.36 milliohm, che sulla acquisizione di una Pt500 corrispondono a circa 2.8 millesimi di grado Celsius. Quindi puoi tranquillamente utilizzarla per le tue necessità.
Linearizzazione valore acquisito
Il valore di temperatura acqiuisito per intervalli ridotti (Tipico 0–100 °C), si può approssimare ricavandolo dalla formula Temperatura=(R-Ro)/(Ro-𝛼). Se vuoi una lettura più precisa per un range da -50 a +250 °C puoi utilizzare la formula: Temperatura=(2*β-α+sqrt(α^2-4*β*(1-R/Ro)))/(2*β)
- R=Resistenza misurata del Pt500 in Ω
- Ro=Resistenza nominale a 0 °C (500 Ω)
- α=Coefficiente di temperatura (0.00385)
- β=Coefficiente quadratico di temperatura (-0.0000005775)
Marzo 9, 2026 alle 9:30 am in risposta a: Ridurre tensioni indotte su cavi accoppiati ai cavi motore #84761Sergio Bertana
Amministratore del forumAggiungo una guida su quando usare ferriti, filtro dv/dt o filtro sinusoidale (OSF) per motori da inverter, così da scegliere la soluzione giusta senza sprechi.
Ferriti (anelli o clamp-on), da usare se
- Cavi motore corti (tipicamente < 20–30 m)
- Problemi di disturbi HF irradiati su sensori, PLC o bus di comunicazione
- Inverter di potenza bassa o media (fino a 7–11 kW)
Come usarle:
- Passare tutte le fasi + PE nello stesso anello
- Mettere vicino all’uscita dell’inverter
- Fare 2–3 spire se possibile
Pro: economiche, facili da montare
Contro: poco efficaci su lunghe distanze o alte potenzeFiltro dv/dt (GDL‑DULxx‑4), da usare se
- Cavo motore medio-lungo (30–230 m)
- Motore non “inverter duty” o vecchio
- Riduzione dei picchi di tensione e EMI
- Problemi di cuscinetti o sensori disturbati
Come usarlo:
- Installare vicino all’inverter
- Cavo motore schermato, schermatura a terra
- Non serve sostituire ferriti, le ferriti possono completare l’effetto
Pro: riduce dv/dt e EMI, protegge motore
Contro: più costoso delle ferriti, aggiunge ingombroFiltro sinusoidale (GDL‑OSF‑xx‑4), da usare se:
- Cavo motore molto lungo (> 230 m)
- Motori vecchi o sensibili a sovratensioni
- Forte disturbo EMC e apparecchiature sensibili nelle vicinanze
- Riduzione rumore acustico e correnti di cuscinetti
Come usarlo:
- Installare vicino all’inverter
- Sempre cavo motore schermato
- Schermatura a terra a 360° su entrambi i lati
Pro: massima riduzione disturbi, trasforma PWM in quasi sinusoide
Contro: costoso, ingombrante, non sempre necessario su impianti cortiMarzo 9, 2026 alle 8:54 am in risposta a: Ridurre tensioni indotte su cavi accoppiati ai cavi motore #84753Sergio Bertana
Amministratore del forumI disturbi elettromagnetici (EMI) sui cavi motore alimentati da inverter sono comuni, l’inverter genera fronti di commutazione molto rapidi (PWM) che irradiano e conducono interferenze. La soluzione più efficace è usare cavi schermati specifici per inverter (VFD cable) che riducono sia le emissioni irradiate che le correnti di modo comune. Questi cavi hanno:
- Schermatura a treccia di rame o nastro+treccia. La schermatura va collegata a terra su entrambi i lati (inverter e motore)
- Conduttore di terra simmetrico
- Isolamento resistente ai picchi di tensione
Ma nel tuo caso visto che non puoi sostituire i cavi motore puoi inserire un anello di ferrite sui cavi motore, l’anello va:
- Posizionato vicino all’uscita dell’inverter
- Occorre passare tutti i conduttori insieme
- Meglio utilizzare un anello grande e far passare più spire di cavo nell’anello
Se il disturbo è molto evidente e su cavi molto lunghi è possibile inserire filtri tra l’uscita inverter ed il motore. Il filtro dv/dt (Su richiesta forniamo il GDL-DULxx-4):
- Filtro con reactor+rete LC che riduce la velocità dei fronti
- Protegge isolamento motore
Il filtro sinusoidale (Su richiesta forniamo il GDL-OSF-xx-4):
- Filtro LC che trasforma l’uscita PWM dell’inverter in una onda quasi sinusoidale prima di arrivare al motore
- Elimina gran parte delle EMI
Sergio Bertana
Amministratore del forumAggiungo un update alla discussione, ho ricevuto da Milesight una versione aggiornata del SDK la 5.0.4 download.
Ho aggiornato il router con la nuova versione SDK (Per aggiornare l’SDK occorre disinstallare quella precedente), poi ho aggiornato il PIP.
ROUTER(Python)# pip install --upgrade pip Requirement already satisfied: pip in /mnt/mmcblk0p1/pysdk/lib/python3.9/site-packages (24.0) Collecting pip Downloading pip-26.0.1-py3-none-any.whl.metadata (4.7 kB) Downloading pip-26.0.1-py3-none-any.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 448.2 kB/s eta 0:00:00 Installing collected packages: pip
Ora ho installato il package PyMySQL.
ROUTER(Python)# pip install PyMySQL Collecting PyMySQL Downloading pymysql-1.1.2-py3-none-any.whl.metadata (4.3 kB) Downloading pymysql-1.1.2-py3-none-any.whl (45 kB) Installing collected packages: PyMySQL Successfully installed PyMySQL-1.1.2
Non ho provato con altri package di gestione MySQL ma penso che ora si ha una maggiore compatibilità.
Marzo 6, 2026 alle 8:42 am in risposta a: Abilitare autenticazione accesso a dispositivo Perseus #84735Sergio Bertana
Amministratore del forumL’autenticazione per l’accesso alla pagina web del sistema Perseus Monitoring, di default è disabilitata, vediamo come procedere (Screenshot).
- Dal menù Security->Users è possibile definire nuovi utenti
- Per ogni utente è possibile definire la password di accesso ed il tipo di accesso
- Dal menù General->Web server è possibile impostare il tipo di autenticazione di accesso
Marzo 5, 2026 alle 10:53 am in risposta a: Installare libreria connessione a DB MySQL su UR32 #84727Sergio Bertana
Amministratore del forumHo provato ad installare pacchetti più leggeri:
pip install PyMySQL, PyMySQL è scritto totalmente in Python, ma anche questa installazione fallisce.
pip install mysqlclient, mysqlclient è un wrapper C per MySQL / MariaDB. Per compilare, pip cerca mysql_config, che fa parte di MySQL/MariaDB development libraries. ma su UR32:
- Non ci sono compilatori C (gcc ecc.)
- Non ci sono librerie di sviluppo MySQL
- Lo spazio e la RAM sono limitati
Quindi credo che non sia possibile gestire la connessione a MySQL direttamente dal router.
Marzo 5, 2026 alle 10:30 am in risposta a: Installare libreria connessione a DB MySQL su UR32 #84721Sergio Bertana
Amministratore del forumStai cercando di installare mysql-connector-python su un UR32 che ha:
- Python 2.7 embedded
- pip 10.0.1
- Risorse limitate (RAM e memoria flash), come mostra il MemoryError
L’installazione fallisce perchè
- mysql-connector-python >= 8.x richiede Python 3.6+ per alcune funzionalità, anche se dice “py2.py3”.
- Il pacchetto è grande (~400 kB) e il router ha memoria limitata, pip non riesce a caricarlo in RAM per l’installazione.
- Con Python 2.7 + pip vecchio + RAM limitata è quasi impossibile installare pacchetti moderni complessi.
- In pratica, l’UR32 non ha abbastanza RAM per compilare/unpackare il pacchetto.
Sergio Bertana
Amministratore del forumQuindi se ho capito riesci a connetterti con EasyAccess al pannello.
Il problema è quando apri cMTViewer che hai l’errore di password.
La psw errata è quella di apertura del progetto o quella di accesso con cMTViewer?
Se quella di cMTViewer hai provato con la classica “111111”?
Febbraio 25, 2026 alle 11:50 am in risposta a: Differenze tra Eastron SMART X96 versione A ed E #84644Sergio Bertana
Amministratore del forumGli analizzatori di energia multifunzione da pannello Eastron serie SMART X9 sono disponibili in molte versioni, attualmente noi distribuiamo solo le versioni A/E che sono certificate MID. Vediamo le differenze:
SMART X96‑5A
- Misura gamma completa di parametri: kWh, kVAh, kW, kVar, corrente (A), tensione (V), frequenza, fattore di potenza e altro con standard MID.
- Supporta armoniche fino al 63° e IHD (Individual Harmonic Distortion).
- Alimentazione interna trifase (self‑powered).
- Supporta configurazioni 1P2W, 3P3W e 3P4W
SMART X96‑5E
- Misura parametri simili (voltaggio, corrente, Watt, energia attiva/reattiva, ecc.) con standard MID.
- Non ha analisi delle armoniche individuali fino al 63°.
- Non dispone di uscite di tensione dedicate o di alcune funzioni avanzate del modello 5A.
- Richiede alimentazione esterna, non ha alimentazione trifase interna come il 5A.
- Spporta solo configurazioni 1P2W e 3P4W e non la configurazione 3P3W.
Entrambi i modelli:
- Hanno RS485 Modbus RTU integrato.
- Dispongono di uscite a impulsi (pulse).
- Includono misura bidirezionale (import/export) di energia.
- Hanno certificazione MID classe C (0.5%), adatta anche per misurazioni di fatturazione nell’UE.
In sintesi: il modello X96‑5A è più completo e adatto a installazioni dove servono armoniche, alimentazione interna e più configurazioni di rete; il modello X96‑5E è una versione più “economica” con funzioni di base, senza analisi armoniche avanzata e con alcune limitazioni di configurazione.
Sergio Bertana
Amministratore del forumQuanto richiesto è sicuramente fattibile con i ns sistemi programmabili, per l’acquisizione Modbus dal PLC sia in seriale Modbus RTU o in ethernet Modbus TCP puoi utilizzare il blocco funzione ModbusMaster.
Acquisito il valore istantaneo dei MC prodotti lo puoi salvare in una variabile di memoria, ogni tempo definito potrai eseguire la differenza con il valore salvato nella lettura precedente calcolando i MC prodotti.
Il valore calcolato lo si può salvare ad esempio utilizando il FB StringToLogFile in un file CSV che potrà essere letto via FTP e/o trasferito sempre via FTP con il FB FTPClient su di un server aziendale, in questo topic è descritta una situazione analoga.
Sergio Bertana
Amministratore del forumConfermo che i 120 metri per una connessione RS485 sono assolutamente normali, ma capisco le tue perplessità in merito a possibili disturbi. Inoltre può essere più conveniente utilizzare la rete ethernet già presente piuttosto di procedere in lavori di cablaggio per estendere la rete RS485.
Nel tuo caso devi realizzare una connessione peer-to-peer tra due convertitori Ethernet/Seriali (Vedi topic) ti posso consigliare l’ATC-1200, puoi configurare una connessione in TCP o in UDP tra di loro. Un convertitore và configurato come server e l’altro come client.
In questo articolo trovi informazioni sulla configurazione del convertitore.
Febbraio 11, 2026 alle 11:45 am in risposta a: Errore caricamento aggiornamento firmware su controllore #84610Sergio Bertana
Amministratore del forumSe esegui l’upload del file upl sul disco C: può essere che non hai spazio sufficente sul disco.
Visto che fai l’aggiornamento e quindi utilizzerai l’ultima versione del sistema operativo per gestire il wear leveling sul disco (Vedi articolo) dovrai eseguire un comando Format C: eliminando tutti i dati presenti sul disco. Se nel disco hai scritto dei tuoi files li puoi trasferire sul PC e cancellarli dal disco per aumentare lo spazio. Li potrai ricopiare sul disco C: dopo la formattazione.
Visto che dorai aggiornare anche le pagine web per aumentare lo spazio sul disco, ti consiglio di eliminare anche la cartella C:/Web. Sia che eseguito l’upgrade esegui la formattazione del disco oppure no dovrai comunque copiare la nuova versione presente nello zip dell’upgrade.
Se hai nel sistema un SDCard puoi eseguire l’upload del file upl sulla SDCard ed eseguire l’aggiornamento. Ma se vuoi utilizzare il wear leveling dovrai comunque formattare il disco C:.
-
AutorePost