Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 601 a 615 (di 4,379 totali)
  • Autore
    Post
  • in risposta a: Alimentazione monofase su inverter trifase #71020
    Sergio Bertana
    Amministratore del forum

    La 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.

    in risposta a: Comunicazione seriale su rete LAN #70983
    Sergio Bertana
    Amministratore del forum

    Tutti 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.

     

    in risposta a: Come conoscere il proprio indirizzo IP pubblico #70975
    Sergio Bertana
    Amministratore del forum

    Se 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]
    in risposta a: Aggiornamento automatico programma PLC #70898
    Sergio Bertana
    Amministratore del forum

    Grazie 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.

    in risposta a: Disponibilità tastiera numerica CEI EN 60948 #70868
    Sergio Bertana
    Amministratore del forum

    Se vuoi il tastierino personalizzato secondo le tue esigenze puoi partire da quello di sistema e modificarlo.

    in risposta a: Disponibilità tastiera numerica CEI EN 60948 #70862
    Sergio Bertana
    Amministratore del forum

    Tutte 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.

    in risposta a: Come eseguire backup e restore di variabili ritentive #70849
    Sergio Bertana
    Amministratore del forum

    Ci 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.

    in risposta a: File REST su disco C corrotto #70836
    Sergio Bertana
    Amministratore del forum

    Cominciamo 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.

    in risposta a: Realizzare grafici con i files storici generati dal pannello #70831
    Sergio Bertana
    Amministratore del forum

    Non 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.
    in risposta a: Etichetta dinamica su pulsante #70826
    Sergio Bertana
    Amministratore del forum

    Credo 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.

    in risposta a: Dimensione morsetti connessione SDM120 #70819
    Sergio Bertana
    Amministratore del forum

    Ho 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.

    in risposta a: Realizzare un datalogger in formato Excel #70755
    Sergio Bertana
    Amministratore del forum

    Per 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.

    in risposta a: Visualizzazione traduzioni da remoto su cMTViewer #70736
    Sergio Bertana
    Amministratore del forum

    Occorre 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.

    in risposta a: Lampeggio LED ALAM su convertitore Seriale/Fibra ATC-277MM #70716
    Sergio Bertana
    Amministratore del forum

    Il 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.

    in risposta a: Etichetta dinamica su pulsante #70715
    Sergio Bertana
    Amministratore del forum

    Ma 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.

Stai visualizzando 15 post - dal 601 a 615 (di 4,379 totali)