Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Febbraio 22, 2023 alle 3:47 pm in risposta a: Lettura bitwise di varaibile WORD da CODESYS v3 #70514
Sergio Bertana
Amministratore del forumIl protocollo CODESYS v2 era completamente assoluto quindi immagino avessi definito tu le TAGs simboliche nel progetto EasyBuilder. Come quasi tutti i protocolli simbolici si può puntare ai bits di una WORD.
Il CODESYS v3 lavora in simbolico, ed in simbolico (tranne pochissimi) l’accesso alla variabile è come la si crea nel programma PLC quindi se la TAG è a word non si può puntare ai suoi bit.
Come workaround puoi configurare un Data Transfer su variabili LW locali del pannello su cui puoi accedere con operandi LW_Bit.
Febbraio 22, 2023 alle 2:49 pm in risposta a: Utilizzare terminale MITOS come semplice visualizzatore #70508Sergio Bertana
Amministratore del forumPer utilizzare il terminale MITOS come semplice visualizzatore devi impostare la Modalità trasparente.
Attiva il menù di configurazione premendo simultaneamente gli ultimi 3 tasti a destra alla accensione del terminale. Poi con i tasti freccia puoi spostarti nelle varie opzioni, il tasto STOP/RESET esce dal menù.
Attivando la modalità trasparente è anche possibile disabilitare sull’inverter il controllo sull’errore di comunicazione con il terminale. Sia su GD20 che su GD350 occorre impostare il parametro:
P14.05=1, Transmission error processing (1: No alarm and continue running)
Sergio Bertana
Amministratore del forumProbabilmente c’è qualche problema di comunicazione tra il terminale Mitos e l’inverter, in caso di errore di comunicazione l’inverter si blocca. Come soluzione potresti operare su 2 parametri:
- P14.04 Communication timeout period: Impostandolo a “0” si disabilita il controllo timeout comunicazione Modbus.
- P14.05 Transmission error processing: Ipostandolo a 1 anche in caso di errore di comunicazione l’inverter continua a funzionare.
Nota: Alla accensione il terminale Mitos imposta automaticamente il parametro P14.04 a 2 secondi, quindi per disabilitare il controllo agisci su P14.05.
In alternativa se accendi l’inverter senza il terminale Mitos connesso, l’inverter non lo rileva e quindi funziona senza problemi.
Febbraio 22, 2023 alle 2:11 pm in risposta a: Comunicazione Modbus RTU con Energy meter SDM120 #70500Sergio Bertana
Amministratore del forumIl modo più intuitivo di realizzare quello che ti serve è utilizzare più istanze del FB ModbusMaster connesse in cascata (Vedi articolo).
Il modo più da programmatore e che utilizza meno risorse è di utilizzare il FB ACModbus, definendo un array di variabili ACMODBUS_DATA_V2 con i parametri dei vari registri da gestire sul meter.
Sergio Bertana
Amministratore del forumAttualmente la funzione di Cerca/Sostituisci funziona solo definendo precisamente la TAG.
Sergio Bertana
Amministratore del forumL’operazione che ti serve la puoi ottenere con il Data Transfer (Screenshot), come vedi puoi definire sia la sorgente che la destinazione oltre al numero di word da trasferire.
Per il backup selezioni sorgente RW e destinazione EMx, mentre per il restore esegui la selezione inversa.
Come vedi nei parametri di sistema alla voce Extended Memory, puoi definire sia il supporto da utilizzare per le varie EMx (SDCard o USB disk) ed il nome da assegnare al file relativo.
Sergio Bertana
Amministratore del forumNon ho sottomano un esempio, ma visto che può essere utile ad altri ho scritto una macro che ottiene quello che hai richiesto.
macro_command main() int EBVersion=0, SLength=0 short Day=0, Month=0, Year=0 short Hour=0, Minute=0, Second=0 char Result[16]="" // Read compiled informations. GetDataEx(EBVersion, "Local HMI", LW, 9120, 1) //EasyBuilder version GetDataEx(Day, "Local HMI", LW, 9124, 1) //Project compiled time [Day] GetDataEx(Month, "Local HMI", LW, 9123, 1) //Project compiled time [Month] GetDataEx(Year, "Local HMI", LW, 9122, 1) //Project compiled time [Year] GetDataEx(Hour, "Local HMI", LW, 11440, 1) //Project compiled time [Hour] GetDataEx(Minute, "Local HMI", LW, 11441, 1) //Project compiled time [Minute] GetDataEx(Second, "Local HMI", LW, 11442, 1) //Project compiled time [Second] // Trace the data read. TRACE("Date %d", EBVersion) TRACE("Date %d/%d/%d", Day, Month, Year) TRACE("Date %d/%d/%d", Hour, Minute, Second) // Set local variables that can be displayed on terminal. SetData(EBVersion, "Local HMI", LW, 10, 1) SetData(Day, "Local HMI", LW, 20, 1) SetData(Month, "Local HMI", LW, 21, 1) SetData(Year, "Local HMI", LW, 22, 1) SetData(Hour, "Local HMI", LW, 23, 1) SetData(Minute, "Local HMI", LW, 24, 1) SetData(Second, "Local HMI", LW, 25, 1) // Create a DDMMYYYY Ascii string and set local variable. DEC2ASCII(Day, Result[0], 2) SLength=StringLength(Result[0]) DEC2ASCII(Month, Result[SLength], 2) SLength=StringLength(Result[0]) DEC2ASCII(Year, Result[SLength], 4) SetData(Result[0], "Local HMI", LW, 30, 8) end macro_command
Come vedi ho appoggiato i dati di compilazione su variabili LW locali per essere visualizzate sul pannello. I dati sono anche ritornati in trace nella finestra di output dell’EasyDiagnoser.
Febbraio 20, 2023 alle 3:52 pm in risposta a: Refresh variabili lento in configurazione OPC-UA server #70362Sergio Bertana
Amministratore del forumHai provato a cambiare Client OPC, io utilizo OPC Expert per i test…
Febbraio 20, 2023 alle 10:05 am in risposta a: Registrazione dati produzione su file giornaliero #70350Sergio Bertana
Amministratore del forumI pannelli non possono creare file pdf, ma per la tua esigenza credo sia molto meglio creare un file csv che ha il vantaggio di essere gestibile da Excel. Non ho ben capito cosa intendi per “registrare dei dati di produzione su un file giornaliero generato con richiesta da parte dell’operatore”.
Per la registrazione dati devi utilizzare la funzione registrazione dati (Vedi topic) Il pannello puo registrare dati sia a tempo che a trigger su comando operatore. Ma se vuoi un report giornaliero credo tu debba registrare i dati a tempo.
Poi mi sembra di capire che quando l’operatore preme un tasto sul pannello tu vuoi salvare un file con i dati registrati fino a quel momento, per fare questo utilizza l’oggetto Backup in cui dovrai definire il file di log da cui prendere i dati e come output il Pen Drive USB, definendo il formato di uscita come csv.
Ora agendo sul tasto di backup verrà creato sul Pen Drive il file csv che tramite accesso FTP potrà essere letto dal server (Vedi topic).
Febbraio 20, 2023 alle 8:40 am in risposta a: Refresh variabili lento in configurazione OPC-UA server #70345Sergio Bertana
Amministratore del forumNon so come hai sviluppato il programma ma il refresh tipicamente è a secondi, non può essere a minuti.
Hai verificato se la lentezza è tra il client OPC-UA ed il cMT-G01 oppure tra il cMT-G01 ed il pannello in Modbus-TCP ?
Non è che hai indirizzato TAGs nel pannello in modo errato così da mandare in timeout la comunicazione e quindi creare ritardi.
Sergio Bertana
Amministratore del forumSi come hai scritto, l’uscita video del cMT-FHDX-820 è una classica HDMI quindi non ci sono problemi di compatibilità con qualsiasi video commerciale.
Un problema di compatibilità potrebbe verificarsi con il driver dello schermo touch, i drivers forniti dal dal fornitore del monitor sono caricabili dalla pagina web del cMT (Screenshot).
Ma occorre accertarsi che si carichino e che siano compatibili, se ci invii il file del driver del monitor possiamo inviarli in Weintek in modo che possano vedere se vengono elaborati dal loro OS.
Anche vista la compatibilità c’è sempre un minimo rischio di funzionamento irregolare, per garantire il funzionamento la soluzione migliore è sempre collegare il monitor al cMT-FHDX e testarlo praticamente.
Sergio Bertana
Amministratore del forumNell’area delle TAGS di sistema esistono TAGs apposite con il report delle informazioni di progetto (Screenshot).
Sergio Bertana
Amministratore del forumLe variabili LW e LW_Bit lavorano sulla stessa variabile, (LW_Bit indirizza un bit della variabile LW).
Come verifica si può vedere l’uso delle tag in “Griglia indirizzo” (Screenshot):
- In rosso indirizzo utilizzato come word
- In giallo indirizzo utilizzato parzialmente (Bit di LW).
Sergio Bertana
Amministratore del forumIl pannello può eseguire più macro in contemporanea in modalità asincrona.
Naturalmente essendo l’esecuzione asincrona non si può sapere in che punto si trova l’esecuzione di una macro rispetto all’altra.
Sergio Bertana
Amministratore del forumSembra esserci un problema sul chip del Real Time Clock, consiglio di compilare l’RMA e di ritornarci in riparazione il prodotto.
-
AutorePost