Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumLa gamma degli inverter GD20 con ingresso monofase raggiunge al massimo la potenza di 2.2Kw.
Però anche con GD20 è possibile alimentare il modello trifase 230V come monofase, questo comporta un calo della massima corrente in uscita non quantificato da INVT.
Solitamente si suggerisce almeno una taglia sopra, se il motore viene utilizzato mediamente al 60% la sua potenza, magari può essere sufficiente l’inverter da 7,5kW (sarebbe quasi il doppio del motore), ma personalmente non ho dati alla mano per confermarlo.
Riguardo al parametro P11.00 si può impostare a 0 per disabilitare tutti i controlli sulla mancanza fase.
Sergio Bertana
Amministratore del forumTutti i convertitori Ethernet/Seriale hanno la possibilità di realizzare una rete point-to-point, in pratica occorre configurare un convertitore come Server e l’altro come Client.
Nella configurazione del Client occorre indicare l’indirizzo IP del convertitore Server a cui deve collegarsi. In questo modo i dispositivi seriali connessi ai convertitori potranno comunicare come se fossero connessi via cavo.
Naturalmente la conversione Seriale/Ethernet introduce ritardi nella comunicazione specie se la rete LAN è molto trafficata. Questi ritardi sono solitamente accettati da tutti i protocolli (Sicuramente lo sono nel protocollo Modbus), ma può essere che alcuni dispositivi come le centrali di allarme verifichino la latenza della comunicazione e vadano in blocco.
Per limitare i ritardi si può optare per una comunicazione UDP anzichè TCP, il protocolo UDP non prevede acknowledge sulle trasmissioni e quindi riduce il traffico ed i tempi.
Sergio Bertana
Amministratore del forumSe hai la necessità di conoscere l’indirizzo IP pubblico con il quale il tuo sistema SlimLine esce su Internet hai due possibilità.
Tutti i router supportano la registrazione presso servizi di Dynamic DNS, quindi puoi registrarti e poi eseguendo il FB DNSRequest effettuare la richiesta di risoluzione URL.
Ma se non vuoi appoggiarti a servizi di DNS dinamico puoi connetterti a siti che offrono gratuitamente il servizio di segnalazione indirizzo IP, ad esempio ipify.org. Inviando una richiesta API al sito ti verrà inviato in risposta una stringa con il tuo indirizzo IP pubblico, ecco il listato del programma HTTPIPIfy che esegue la richiesta. Attivando da debug la variabile Request nel buffer Page ti verrà ritornato il tuo indirizzo IP pubblico.
PROGRAM HTTPIPIfy VAR i : UDINT; (* Auxiliary variable *) Request : BOOL; (* Request command *) FlipFlop : BOOL; (* Program Flip/Flop *) Errors : UDINT; (* Execution errors *) Page : STRING[ 64 ]; (* Page buffer *) TCPClient : SysTCPClient; (* TCP client management *) HTTPRq : HTTPClient_v4; (* HTTP client *) END_VAR // ***************************************************************************** // PROGRAM "HTTPIPIfy" // ***************************************************************************** // The program send an API request to "api.ipify.org" and receive back the own // public IP address. // ----------------------------------------------------------------------------- // ------------------------------------------------------------------------- // INITIALIZATIONS // ------------------------------------------------------------------------- // Program initializations. IF (SysFirstLoop) THEN // Set TCPClient parameters. TCPClient.PeerAdd:=ADR('api.ipify.org'); //Peer address TCPClient.PeerPort:=80; //Peer port TCPClient.LocalAdd:=ADR('0.0.0.0'); //Local address TCPClient.LocalPort:=0; //Local port TCPClient.FlushTm:=50; //Flush time (mS) TCPClient.LifeTm:=20; //Life time (S) TCPClient.RxSize:=512; //Rx buffer size TCPClient.TxSize:=512; //Tx buffer size // Set HTTPClient parameters. HTTPRq.RMethod:=0; //Request method, GET HTTPRq.SpyOn:=TRUE; //Activate the spy HTTPRq.HostName:=TCPClient.PeerAdd; // Hostname HTTPRq.Page:=ADR(''); //Web page HTTPRq.Request:=eNULL; //Request string HTTPRq.Header:=eNULL; //HTTP header HTTPRq.DBSize:=512; //Data buffer size HTTPRq.Timeout:=10.0; //Execution timeout END_IF; // ------------------------------------------------------------------------- // MANAGE CONNECTION // ------------------------------------------------------------------------- // Manage the connection. TCPClient(Connect:=HTTPRq.Connect); //TCPClient management HTTPRq(File:=TCPClient.File); //HTTP client IF (HTTPRq.Fault) THEN Errors:=Errors+1; FlipFlop:=FALSE; END_IF; // ------------------------------------------------------------------------- // PROGRAM SEQUENCIES // ------------------------------------------------------------------------- // Program sequencies. IF NOT(FlipFlop) THEN // --------------------------------------------------------------------- // Wait for request command. HTTPRq.Enable:=FALSE; //HTTP enable HTTPRq.Send:=FALSE; //Send request IF NOT(Request) THEN RETURN; END_IF; Request:=FALSE; //Request command // Initialize buffers and enable client. i:=Sysmemset(ADR(Page), 0, SIZEOF(Page)); //Empty page buffer HTTPRq.Enable:=TRUE; //HTTP enable HTTPRq.Send:=TRUE; //Send request FlipFlop:=TRUE; //Program Flip/Flop ELSE // --------------------------------------------------------------------- // Page data are received from server by chunked. When a chunk has been // received DBChars returns its length. The API service sends back your // public IP address on a text string like: "xxx.xxx.xxx.xxx". IF ((HTTPRq.DBChars <> 0) AND (HTTPRq.HPSelector)) THEN IF ((Sysstrlen(ADR(Page))+HTTPRq.DBChars) < SIZEOF(Page)) THEN i:=Sysmemmove(ADR(Page)+Sysstrlen(ADR(Page)), HTTPRq.DBAddress, HTTPRq.DBChars); END_IF; END_IF; // On Done it's possible to test if page has been loaded. IF (HTTPRq.Done) THEN IF NOT(HTTPRq.PLoad) THEN Errors:=Errors+1; FlipFlop:=FALSE; RETURN; END_IF; // Here your public IP address is in the page buffer. FlipFlop:=FALSE; //Program Flip/Flop END_IF; END_IF; // [End of file]Sergio Bertana
Amministratore del forumGrazie alle funzioni avanzate di backup & restore è possibile appogiandosi su di un server FTP eseguire l’aggiornamento automatico dei sistemi.
A questo scopo puoi fare riferimento a questo articolo in cui illustriamo una tecnica di aggiornamento FOTA, o firmware over-the-air dei sistemi.
Sergio Bertana
Amministratore del forumSe vuoi il tastierino personalizzato secondo le tue esigenze puoi partire da quello di sistema e modificarlo.
Sergio Bertana
Amministratore del forumTutte le tastiere del terminale in realtà sono pagine costruite con gli oggetti a disposizione in EasyBuilder. Se tu guardi nell’elenco pagine troverai le pagine 50-58 con tutte le tastiere numeriche e le pagine 60-65 con tutte le tastiere ASCII.
Quindi puoi tranquillamente crearti una tua pagina di tastiera modificando una di queste pagine oppure creando ex-nuovo una tua tastiera sia come dimensione che come formato.
Creata la tua tastiera, per attivarla nella definizione degli oggetti Numeric Object, ASCII object, ecc. nel TAB DataEntry dovrai definire la pagina di tastiera da visualizzare e la posizione in cui il pop-up dovrà apparire.
Marzo 13, 2023 alle 3:42 pm in risposta a: Come eseguire backup e restore di variabili ritentive #70849Sergio Bertana
Amministratore del forumCi sono 2 possibilità:
Accesso telnet al sistema, il comando PLCCommand esegue il backup/restore da file dell’intera area RETAIN della DB.100. Questo comando può solo operare sulla DB100.
- PLCCommand -pmbku File: Trasferisce nel File indicato tutta l’area ritentiva (DB 100) (Solo se programma PLC in stop)
- PLCCommand -pmres File: Trasferisce il contenuto del File nell’area ritentiva (DB 100) (Solo se programma PLC in stop)
Utilizzando il FB FileMemoryDump, in questo caso devi metterne la gestione nel tuo programma, questa soluzione ti permette la libertà di gestione della memoria su cui operare.
Sergio Bertana
Amministratore del forumCominciamo con l’errore, se vai alla pagina Elenco errori ed inserisci il numero di errore troverai questa indicazione:
10056084 Indici FIFO non sono corretti file viene ricreato FIFOFile
L’errore stà ad indicare che gli indici del registro FIFO non sono corretti, il fatto che non siano corretti mi fà pensare che in qualche parte del programma vengano sporcati, esempio da puntatori spuntati o da array fuori dimensione. Ora partendo dall’ipotesi degli indici corrotti posso costruire una teoria su cosa succede al file “REST.bin”.
Come in tutt i file systems i dati sul disco non sono mai cancellati ma si opera a livello di FAT, ora quando un nuovo file viene creato questo và a posizionarsi sul disco in una posizione libera, ma quella posizione poteva prima essere stata occupata da un’altro file (magari txt). Il FB FIFOFile scrive i suoi dati dall’inizio del file consecutivamente (Ma per sua natura alloca comunque lo spazio che gli è stato definito). Quindi se guardi il file con un editor vedrai i dati FIFO all’inizio e poi dopo l’ultimo record salvato vedrai il precedente contenuto del disco in quella posizione (magari parti txt di un vecchio file).
La scrittura sul file FIFO è consecutiva quindi tra record FIFO corretti non può esserci il precedente contenuto del disco, ma se gli indici FIFO sono sporcati la scrittura sul disco viene frammentata ed allora anche tra i record FIFO potresti trovarti parti del precedente contenuto del disco.
Marzo 10, 2023 alle 3:10 pm in risposta a: Realizzare grafici con i files storici generati dal pannello #70831Sergio Bertana
Amministratore del forumNon esistono tools per la modifica del file dtl, in alternativa nell’oggetto visualizza dati in formato tabellare è possibile abilitare abilitare l’editazione in modo da modificare i registrati (Screenshot).
Allego la struttura del file dtl così se vuoi puoi agire direttamente sul file:
Data log (data sampling) overhead for each record storage. Header=20 byte + data channelx8byte + channel name Entry(each) = 5bytes + sizeof(record) +------------------------------------+--------------+ | Content | Length(Byte) | +------------------------------------+--------------+ | Header | 20 | +------------------------------------+--------------+ | Data format of the 1st channel | 8 | +------------------------------------+--------------+ | Data format of the 2nd channel | 8 | +------------------------------------+--------------+ | ... | ... | +------------------------------------+--------------+ | Text "name" | 4 | +------------------------------------+--------------+ | The name length of the 1st channel | 2 | +------------------------------------+--------------+ | The name of the 1st channel | n | +------------------------------------+--------------+ | The name length of the 2nd channel | 2 | +------------------------------------+--------------+ | The name of the 2nd channel | n | +------------------------------------+--------------+ | The time of the 1st data | 4 | +------------------------------------+--------------+ | The time to record the 1st data | 1 | +------------------------------------+--------------+ | The 1st data of the 1st channel | n | +------------------------------------+--------------+ | The 2nd data of the 1st channel | n | +------------------------------------+--------------+ PS: 1. n : depends on the data. 2. The actual recording time is [the time to save the first record] multiples by 10.
Sergio Bertana
Amministratore del forumCredo di avere capito il motivo della nostra incomprensione, io faccio le prove su un pannello serie iE che permette la sovrapposizione degli oggetti “Touch” mentre tu stai probabilmente operando con un pannello serie cMT che non ne permette la sovrapposizione.
Allora nel tuo caso l’unico modi è di usare l’oggetto Text/Comment con le String Table (Vedi screenshot). In questo modo non potrai definire le stringhe dinamicamente ma dovrai definre nella tabella stringhe le varie stringhe da visualizzare associate al relativo numero di indice dinamico.
Sergio Bertana
Amministratore del forumHo cercato queste informazioni nella documentazione ma non ho trovato questo dato. L’unico dato che sono riuscito a trovare è quello relativo ai morsetti connessione segnale Mosbus.
The electrical interface is 2-wire RS485, via 2 screw terminals. Connection should be made using twisted pair screened cable (Typically 22 gauge Belden 8761 or equivalent).
Ho chiesto informazioni al fornitore, ma nell’attesa ho fatto una foto dei morsetti sperando possa dare una idea della dimensione.
Sergio Bertana
Amministratore del forumPer la risposta sulla storicizzazione dati in Excel ti ho già risposto, se utilizzi i ns sistemi SlimLine per la lettura dei dati di consumo puoi utilizzare il FB EastronSDM120 per il monofase e il FB EastronSDM630 per la trifase connessi ai relativi meters.
Per la lettura dei metri puoi utilizzare un ingresso counter o encoder connesso ad un trasduttore sulla macchina.
Per la connessione WiFi abbiamo dispositivi Ubiquiti (Esempio il Bullet), ma non sono interoperabili con reti WiFi standard, quindi puoi solo creare una tua rete WiFi con i tuoi dispositivi. Forse è meglio che ti orienti verso dispositvi commerciali, hai solo l’imbarazzo della scelta.
Sergio Bertana
Amministratore del forumOccorre fare una precisazione, i pannelli serie cMT tramite l’App cMTViewer possono essere visualizzati fino ad un massimo di 10 utenti in contemporanea.
A differenza di una visualizzazione in VNC dove tutti gli utenti condividono la stessa visualizzazione, cMTViewer permette di gestire visualizzazioni diverse utente per utente. Per poter gestire questa diversità di visualizzazione sono state introdotte le variabili PLW. Queste variabili a differenza delle LW sono dedicate all’utente, quindi la stessa PLW ha valori diversi utente per utente.
Ora per la gestione lingua occorre agire sulla LW-9134, ma agendo su questa si opera sulla lingua visualizzata sul pannello, mentre per la selezione lingua visualizzata su cMTViewer occorre agire sulla PLW-9134. In questo modo ogni utente che si connette potrà scegliere la propria lingua.
Marzo 7, 2023 alle 3:31 pm in risposta a: Lampeggio LED ALAM su convertitore Seriale/Fibra ATC-277MM #70716Sergio Bertana
Amministratore del forumIl LED ALAM quando lampeggia indica che la fibra connessa al connettore Rx non è connessa al connettore Tx dell’altro convertitore.
Verifica la corretta intestazione e connessione delle fibre.
Consiglio di utilizzare un cavo patch fibra ottica multimodale ST/ST e fare le prove a banco prima di collegare il tutto in campo.
Sergio Bertana
Amministratore del forumMa hai fatto come nel mio esempio il pulsante molto più grande del campo ASCII?
Comunque se nell’oggetto ASCII disabiliti il tick Allow input anche se copre interamente il pulsante è sempre possibile premerlo. Almeno questo è quello che vedo io in simulazione in EAsyBuilderPro utilizando un pannello serie iE.
-
AutorePost