Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumDal fatto che mi citi il codice di errore ritengo che per l’acquisizione stai utilizzando un nostro sistema SlimLine con il FB OWRdIdentifier. Intanto verifica di avere l’ultima versione della libreria eLLab1WireLib, la puoi scaricare dal sito.
Non mi dici però se è connesso alla porta 1-Wire nativa del modulo CPU MPS054 o se utilizzi il convertitore DS9097U connesso alla porta seriale. Se utilizzi l’esempio ST_OWRdIdentifier riportato nel manuale la lettura del codice deve funzionare. Stai solo attento alle impostazione della porta seriale.
Sp.COM:=ADR('PCOM255.0'); //Connettore 1-Wire nativo Sp.COM:=ADR('COM0'); //Definizione porta COM se DS9097U Sp.Baudrate:=9600; //Baudrate Sp.Parity:='N'; //Parity Sp.DataBits:=8; //Data bits Sp.StopBits:=1; //Stop bitsSergio Bertana
Amministratore del forumSe riesci a leggere gli altri registri vuol dire che la comunicazione è corretta come corretto è l’indirizzamento. Perchè di solito il primo problema che si incontra nelle comunicazioni Modbus è l’offset 1 sull’indirizzamento (Aggiungere o togliere 1 all’indirizzo del registro).
Ora i tuoi 2 registri sono degli unsigned long, quindi utilizzerai una lettura 4x di una variabile 32-bit Unsigned. per leggere la variabile vengono letti 2 registri a 16 bits. Siccome il protocollo Modbus non specifica l’endianness dei dati, potrebbe verificarsi una inversione di endianness e quindi leggi un dato completamente sballato. Per correggere il problema nella finestra di impostazione del protocollo puoi selezionare l’inversione della endianness (Screenshot).
Sergio Bertana
Amministratore del forumOgni display ha le sue impostazioni, intanto devi controllare come impostare i parametri nel comando “Function set” nell’esempio è settato DL, N, F”, 8 bits, 2 lines, 5*7 dots devi vedere come vuole le impostazioni il controller del tuo display.
Sergio Bertana
Amministratore del forumPurtroppo al momento l’unica soluzione che abiamo di di “tirare” le orecchie ad Axel che è la società che sviluppa LogicLab.
Il problema della stampa dei programmi grafici è conosciuto, e ne sono al corrente, la promessa è che sarà risolto nella prossima versione di LogicLab… Ma escono nuove versioni ed il problema continua a persistere.
Posso consigliare di mandare una eMail al supporto di Axel e fare presente il problema così che facendo sentire più voci magari si decidono a mettere mano al problema.
Sergio Bertana
Amministratore del forumNon so dare una risposta precisa il parametro P00.00 definisce il tipo di controllo velocità motore, riporto le informazioni del manuale:
- P00=0, Vettoriale: Adatto per applicazioni che richiedono bassa frequenza, coppia elevata per grande precisione della velocità di rotazione e controllo della coppia. Rispetto alla modalità 1, è più adatto per applicazioni di piccola potenza.
- P00=1, Vettoriale: Adatto per alte prestazioni con il vantaggio di alta accuratezza della velocità di rotazione e della coppia.
- P00=2, SVPWM: Adatto se non richiesta grande accuratezza di controllo, esempio ventilatori e pompe. Un inverter può controllare più motori in parallelo.
Nei modi 0 e 1 viene eseguito il controllo vettoriale che lavora sul flusso di tensione e fornisce più coppia a bassi giri, in questi due modi è obbligatorio avere il motore collegato, e durante il funzionamento l’inverter esegue dei controlli sul motore e si adegua per assicurarne la corretta rotazione. In questi modi è richiesta l’esecuzione dell’autotuning del motore.
Il modo 2 è il più semplice in quanto, senza considerare alcune funzioni attive e legate al controllo, in base ai dati motore inseriti l’inverter calcola la curva tensione/frequenza da applicare e l’uscita lavora indifferentemente che il motore sia collegato oppure no.
Ora ritornando alla tua situazione, definendo modo 1 sicuramente l’inverter ha acquisito i dati del motore in autotuning e può essere che implementando il controllo vettoriale riesca a gestire meglio la rotazione.
Sergio Bertana
Amministratore del forumConosco la tua applicazione e sò che trattandosi di un banco di collaudo ti viene comodo avere un unica taglia di inverter per tutta la gamma di motori che andrai a testare. E naturalmente un inverter può pilotare motori di potenza inferiore alla sua nominale.
INVT non dà un range di utilizzo per i suoi inverter, quindi teoricamente con un unico inverter puoi pilotare tutta una gamma di motori. Ma è logico pensare che la struttura di potenza di un inverter da 55kW, in particolare il sensore di corrente, quando deve monitorare un motore da 7kW che oltretutto gira a vuoto potrebbe avere problemi di risoluzione.
Questi problemi di risoluzione potrebbero portare ad una instabilità della regolazione del motore stesso che possono dare origine a vibrazioni. A corroborare questa tesi è che nel caso dell’inverter da 22kW i problemi di vibrazione sono quasi del tuto trasurabili.
Aprile 22, 2022 alle 4:06 pm in risposta a: EasyBuilderPro problema con PC in modalità Dark mode #65048Sergio Bertana
Amministratore del forumNon ho mai avuto segnalazione di un problema analogo.
Puoi provare ad eseguire il programma “DisplaySetting.exe” che si trova nella cartella di installazione di EasyBuilderPro ed attivare la selezione Software render.
Sergio Bertana
Amministratore del forumAggiungo una nota molto importante i motori da collegare a inverter in parallelo devono sempre essere stessa taglia. Ad esempio 1kW+1kW o 2kW+2kW e l’inverter dovrà essere della potenza sufficente a pilotare il totale della potenza dei motori (ovviamente vanno poi impostati i dati motore P02 tenendo conto del totale).
Sergio Bertana
Amministratore del forumNon sò dove hai preso le informazioni sull’utilizzo della funzione INPORT, ma la tua macro và scritta in questo modo:
macro_command main() char Response[20] = "" short RLength = 20 //Receive length short CRecvd = 0 //Received characters //FILL(Response[0],0,RLength) INPORT(Response[0], "Free Protocol Server (Ethernet)", RLength, CRecvd) if CRecvd >= 4 then TRACE(" CRecvd = %d", CRecvd) SetData(Response[0], "Local HMI", LW, 0 , 20) end if end macro_commandIn pratica definisci la quantità massima di caratteri da leggere in RLength, mentre in CRecvd viene ritornato il numero di caratteri letti.
Sergio Bertana
Amministratore del forumHW-group da marzo 2022 ha cambiato le policy sui servizi cloud (Vedi articolo), il portale SensDesk è rimasto gratuito per 3 dispositivi per aggiungere dispositivi occorre acquistare una licenza.
E’ stato aperto il nuovo portale HWg-cloud gratuito che permette di collegare fino a 20 dispositivi senza limiti di sensori ma con storico dati di soli 10 giorni.
Nel tuo caso occorre valutare se ti bastano i servizio offerti dal portale HWg-cloud puoi migrare tutti i dispositivi sul nuovo portale.
Marzo 24, 2022 alle 8:37 am in risposta a: Gestione variabili tamponate in area utente MX100.2048 #64645Sergio Bertana
Amministratore del forumIntanto ti rimando alla lettura questi topic, topic dove sono riportate informazioni sull’avvio in Cold e Warm del sistema.
Nelle variabili RETAIN (O nelle DB100 ritentive) non devi definire un valore di init, perchè questo verrà copiato nella variabile sul Cold restart del sistema.
Se vuoi preconfigurare le varibili con tuoi valori di default, ti conviene scrivere un programma che le valorizza, potrai attivare il programma con un qualche comando di reset sistema.
Sergio Bertana
Amministratore del forumNo purtroppo il formato di registrazione è predefinito e non modificabile.
Se vuoi piena libertà di gestire datalogging su file formato CSV puoi utilizzare un nostro modulo SlimLine con il FB StringToLogFile, in fondo alla pagina del manuale trovi già un esempio.
Nel capitolo Datalogger con trasferimento automatico file su server FTP, in questo articolo c’è un esempio di programma che oltre a realizzare il file di log lo scarica in automatico su di un server FTP.
Utilizzando il datatransfer del pannello puoi facilmente prendere i dati da uno o più PLC ed inviarli al sistema SlimLine per lo storage.
Sergio Bertana
Amministratore del forumIl fornitore garantisce 10 anni sulla durata della batteria, ma purtroppo abbiamo visto che la batteria non è di qualità eccelsa…
Purtroppo è sempre più difficile trovare subcomponenti affidabili, sui ns prodotti basati su Cortex abbiamo rivisto lo stampato ed utilizziamo un’altro RTC e montiamo noi la batteria.
Sui sistemi Raspberry è possibile al momento montare solo quel tipo di RTC che ci viene fornito con batteria saldata. Quindi non è possibile cambiare la batteria ma occorre cambiare l’intero RTC.
Il prodotto di ricambio è reperibile anche sul mercato, non lo abbiamo messo a listino ma possiamo fornirlo su richiesta (Costo di listino 10€).
Sergio Bertana
Amministratore del forumMolto probabilmente hai la batteria del RTC che si è scaricata, purtroppo non c’è un comando di test per verificarla.
Occorre ritornarci il prodotto per la sostituzione.
Sergio Bertana
Amministratore del forumNon mi dici che modello di modulo CPU stai utilizzando. Sul modulo MPS055 basato su Raspberry puoi da LogicLab definire dei brakpoints (Screenshot).
Quando l’esecuzione del programma arriva al punto definito l’esecuzione si arresta e tutto rimane congelato. Potrai con i comandi Step e Run eseguire passo/passo il programma oppure ripartire con l’esecuzione continua dal punto di arresto.
Ma attenzione durante l’arresto il clock interno continua a funzionare quindi tutte le temporizzazioni quando il programma riparte terranno conto del tempo trascorso.
Sui moduli CPU ARM7 e CortexM7 questa funzione non è disponibile. Se non vuoi eseguire parti di programma puoi saltarle con istruzioni condizionate IF oppure non eseguire interi programmi inserendo un RETURN condizionato in testa al programma.
In questo modo il programma continuerà ad essere eseguito ma tutte le logiche resteranno congelate. Anche in questo caso attenzione alle temporizzazioni, quando riprenderai l’esecuzione il clock interno sarà avanzato.
-
AutorePost