Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,901 a 3,915 (di 4,318 totali)
  • Autore
    Post
  • in risposta a: Lunghezza massima cavo RS 485 per convertitore ATC-850 #36790
    Sergio Bertana
    Amministratore del forum

    Le specifiche dell’interfaccia RS485 prevedono una connessione di lunghezza massima di 1200 mt (1.2 Km), quindi le specifiche sono corrette. Unica accortezza a cui prestare attenzione è che il cavo utilizzato sia twistato, cioè una coppia di fili attorcigliati uno con l’altro ed il cavo và terminato (Tramite inserimento resistenza da 120 Ohm) da entrambe le estremità (Vedi nota tecnica).

    in risposta a: Utilizzo ripetitori in reti ZigBee con radiomodem ATC-3200 #36789
    Sergio Bertana
    Amministratore del forum

    In merito al ripetitore occorre comprendere il funzionamento della comunicazione ZigBee di questo dispositivo.

    La configurazione della rete avviene impostando il valore di PANID del modulo master sui vari moduli slaves ad esso connessi. In pratica nel pacchetto radio che il radiomodem trasmette è indicato il PANID di riferimento, e solo i radiomodems configurati per ricevere questo PANID riceveranno i pacchetti.

    Se chiamiamo (a) la rete principale di radiomodem e (b) il ripetitore, sul punto del ripetitore dovremo installare un radiomodem Slave(a) connesso ad un radiomodem Master(b) in seriale, il quale via radio potrà comunicare con uno o più radiomodem Slave(b).

    Master(a) ~~[Radio]~~ Slave(a) –[Seriale]– Master(b) ~~[Radio]~~ Slave(b)

    Si potrà selezionare canali diversi per le reti (a) e (b).

    in risposta a: Come eseguire un concatenamento di stringhe #36788
    Sergio Bertana
    Amministratore del forum

    Lo standard IEC61131 per il concatenamento di stringhe prevede l’utilizzo di una funzione CONCAT. Passando alla funzione due stringhe essa ritorna una terza stringa risultato della concatenazione della prima stringa con la seconda.

    Tra i miei programmi tempo fà ho realizzato una funzione di concatenamento simile alla strcat del linguaggio C, alla stringa di destinazione viene concatenata la stringa sorgente. Riporto di seguito il listato della funzione ed allego un programma di test per il download.

    FUNCTION eStrCat : BOOL

        VAR_INPUT
        Dest : @USINT; { DE:”Destination pointer” }
        Source : @USINT; { DE:”Source pointer” }
        END_VAR

        VAR
        Len : INT; { DE:”String length” }
        i : INT;  { DE:”Auxiliary counter” }
        END_VAR

        { CODE:ST }(* FUNZIONE “eStrCat(@USINT Dest, @USINT Source)” *)

        Dest:=Dest+eLEN(Dest); (* Destination pointer *)
        Len:=eLEN(Source); (* String length *)

        FOR i:=0 TO Len DO
            @Dest:=@Source;
            Source:=Source+1; (* Source pointer *)
            Dest:=Dest+1; (* Destination pointer *)
        END_FOR;

        eStrCat:=TRUE;
    END_FUNCTION

    in risposta a: Operatività su pannello HMI da remoto tramite smartphone #36784
    Sergio Bertana
    Amministratore del forum

    Per attivare il server VNC sul pannello operatore, occorre attivare il menù impostazioni, freccia in basso a destra sul display. Toccare l’icona con il simbolo dell’ingranaggio, definire la password di accesso, di default 111111.

    Si aprirà il menù settaggi di sistema e dal tab VNC server settings è possibile attivare/disattivare il servizio e definire la password di accesso, vedi screenshot

    in risposta a: Operatività su pannello HMI da remoto tramite smartphone #36783
    Sergio Bertana
    Amministratore del forum

    Come hai riportato correttamente nel tuo post, i pannelli operatore della Weintek, supportano il VNC server, quindi è possibile accedere al pannello da qualunque client VNC sia su PC che su smartphone. In applicazioni sia industriali che domotiche, è possibile visualizzare una immagine virtuale del pannello ed operare su di esso usando viewer VNC. Ne esistono per tutti i sistemi operativi, per windows si può utilizzare RealVNC. E’ anche possibile utilizzare un viewer in Java (Basta mettere l’indirizzo IP del pannello nel proprio browser). Per gli smartphone esistono molti viewer gratuiti, io personalmente ho utilizzato androidVNC, su di uno smartphone della HTC con sistema operativo Android. E’ impagabile la comodità di accedere tramite rete WiFi e/o UMTS al pannello operatore dallo smartphone, ed agire su di esso stando comodamente seduti sul divano di casa od al bar, eseguendo tutte le operazioni che si è soliti fare sul pannello stesso.

    in risposta a: Valori errati su visualizzazione registri SAP Selema #36782
    Sergio Bertana
    Amministratore del forum

    Aggiungo la segnalazione di un bug software, il programma EasyBuilder 8000 (Versione 4.4.1 multilingua) pur definendo i valori corretti nel protocollo, limitando a 0 pacchetti ed a 2 words i comandi di lettura e scrittura, continua ad ottimizzare le interrogazioni.

    Se tu hai installato questa versione di programma, ti consiglio di eseguire un downgrade alla versione di EasyBuilder 8000 (Versione 3.4.5 Italiano), disponibile per il download dal sito.

    Il bug verrà risolto dalle versioni succesive del programma.

    in risposta a: Valori errati su visualizzazione registri SAP Selema #36781
    Sergio Bertana
    Amministratore del forum

    Allora per risolvere il problema occorre impedire al terminale di ottimizzare la comunicazione, forzandolo ad eseguire interrogazioni modbus singole (Una interrogazione per ogni oggetto grafico). In questo modo per ogni oggetto verrà inviata una richiesta modbus specifica con indicazione dell’indirizzo del registro e del numero di registri modbus da leggere (1 se registro a 16 bits, 2 se registro a 32 bits).

    Nel menù Edit -> Parametri di sistema -> Dispositivo, scegliendo il protocollo Modbus RTU (Adjustable), occorre definire intervallo pacchetti “0“, e Max comando lettura e scrittura “2“, vedi screenshot.

    in risposta a: Valori errati su visualizzazione registri SAP Selema #36779
    Sergio Bertana
    Amministratore del forum

    Ho dato una occhiata all’estratto della documentazione Selema che mi hai mandato ed ho notato che utilizza registri a 32 bits, quindi ogni registro occupa lo spazio di indirizzamento di due registri Modbus (Modbus usa registri a 16 bits).

    Registro 10 profile_acceleration, Indirizzo: 0x800A, Range: [0,…,0x7FFFFFFF]
    Registro 11 profile_deceleration, Indirizzo: 0x800B, Range: [0,…,0x7FFFFFFF]
    Registro 12 profile_velocity, Indirizzo: 0x800C, Range: [0,…,0x7FFFFFFF]

    Il pannello Weintek può gestire registri a 32 bits sia come doppia word sia come variabile float, però quando si utilizza l’indirizzamento a 32 bits vengono letti due registri modbus consecutivi. Ora il problema stà nel fatto che Selema probabilmente per mantenere la compatibilità con il suo formato standard di comunicazione S-Net ha previsto l’indirizzamento dei registri ad indirizzi consecutivi, e non utilizzando solo indirizzi pari (Saltando ciòè un indirizzo per mantenere l’indirizzamento a 16 bits tipico del modbus).

    Se inserisci più oggetti di visualizzazione in una pagina del terminale, il software del terminale per ottimizzare la comunicazione raggruppa le interrogazioni eseguendo una sola interogazione di più registri consecutivi. Ma il registro 0x800B (32779) per il terminale usa metà valore del registro 0x800A (32778), e questo ti crea il problema.

    La prova più semplice è quella di inserire un solo oggetto di visualizzazione in una pagina e verificare che funzioni correttamente, essendoci un solo oggetto non vengono effettuate ottimizzazioni in lettura quindi se visualizzi il registro 0x800A il terminale richiederà due registri modbus a partire da indirizzo 32778.

    in risposta a: Utilizzo orologio su terminali MT6050i/MT8050i #36778
    Sergio Bertana
    Amministratore del forum

    Aggiungo una ottimizzazione su quanto detto in merito alla possibilità di gestire una sorgente di real time clock esterna al terminale. In alternativa al trasferimento dati ciclico è possibile definire nel menù Edit -> Parametri di sistema -> Modello, nella voce Tempo una sorgente esterna di clock (Vedi screenshot).

    Per gestire correttamente la sorgente esterna di clock è importante che i dati del real time clock siano allocati nel dispositivo esterno su 6 word consecutive, riporto estratto manuale.

    [External device] means the time signal comes from external device. To correctly set source address of time signal is necessary. Take the illustration below as an example: It indicates the source of time signal is from “TV” of the “Local PLC”. The source address “V” starts from address 0 contains 6 consecutive words and each of them contains the following information:

    TV 0: Second (the limited range: 0~59)
    TV 1: Minute (the limited range: 0~59)
    TV 2: Hour (the limited range: 0~23)
    TV 3: Day (the limited range: 1~31)
    TV 4: Month (the limited range: 1~12)
    TV 5: Year (the limit range: 1970~2037)

    Ricordo che se il PLC è uno SlimLine basterà definire l’indirizzo 100 cosi come riportato nello screenshot.

    in risposta a: FB di comunicazione con inverter Aurora Power One (ABB) #36777
    Sergio Bertana
    Amministratore del forum

    A titolo dimostrativo ho scritto un semplice programma in ST che esegue la lettura di tutti i registri da un inverter Aurora e li memorizza in un array di REAL, ecco il sorgente ed programma per il download.

        (* Eseguo gestione comunicazione con inverter. *)

        RdReg(Enable:=TRUE, Start:=AcqOn, File:=Fp, Address:=1); (* Lettura registro *)
        AcqOn:=FALSE; (* Acquisizione attiva *)
        IF (RdReg.Done) THEN RegsValue[RegIDx]:=RdReg.Value; END_IF;
       
        (* Gestione comando di acquisizione, si attiva su fine esecuzione lettura. *)

         IF ((RdReg.Done) OR (RdReg.Fault) OR (SysFirstLoop)) THEN
            AcqOn:=TRUE; (* Acquisizione attiva *)
            RegIDx:=RegIDx+1; (* Register index *)
            IF (RegIDx > 37) THEN RegIDx:=0; END_IF;

            CASE (RegIDx) OF
                0:RdReg.Measure:=1; (* Grid Voltage (For three-phases systems is the mean) *)
                1:RdReg.Measure:=2; (* Grid Current (For three-phases systems is the mean) *)
                2:RdReg.Measure:=3; (* Grid Power (For three-phases systems is the mean) *)
                3:RdReg.Measure:=4; (* Frequency (For three-phases systems is the mean) *)
                4:RdReg.Measure:=5; (* Vbulk (For Inverter with more Bulk is the sum) *)
                5:RdReg.Measure:=6; (* Ileak (Dc/Dc) *)
                6:RdReg.Measure:=7; (* Ileak (Inverter) *)
                7:RdReg.Measure:=21; (* Inverter Temperature *)
                8:RdReg.Measure:=22; (* Booster Temperature *)
                9:RdReg.Measure:=23; (* Input 1 Voltage (Input Voltage for single channel module) *)
                10:RdReg.Measure:=25; (* Input 1 Current (Input Current for single channel module) *)
                11:RdReg.Measure:=26; (* Input 2 Voltage (Input Voltage for single channel module) *)
                12:RdReg.Measure:=27; (* Input 2 Current (Input Current for single channel module) *)
                13:RdReg.Measure:=28; (* Grid Voltage (Dc/Dc) *)
                14:RdReg.Measure:=29; (* Grid Frequency (Dc/Dc) *)
                15:RdReg.Measure:=30; (* Isolation Resistance (Riso) *)
                16:RdReg.Measure:=31; (* Vbulk (Dc/Dc) *)
                17:RdReg.Measure:=32; (* Average Grid Voltage (VgridAvg) *)
                18:RdReg.Measure:=33; (* VbulkMid *)
                19:RdReg.Measure:=34; (* Power Peak *)
                20:RdReg.Measure:=35; (* Power Peak Today *)
                21:RdReg.Measure:=36; (* Grid Voltage neutral *)
                22:RdReg.Measure:=37; (* Wind Generator Frequency *)
                23:RdReg.Measure:=38; (* Grid Voltage neutral-phase *)
                24:RdReg.Measure:=39; (* Grid Current phase r *)
                25:RdReg.Measure:=40; (* Grid Current phase s *)
                26:RdReg.Measure:=41; (* Grid Current phase t *)
                27:RdReg.Measure:=42; (* Frequency phase r *)
                28:RdReg.Measure:=43; (* Frequency phase s *)
                29:RdReg.Measure:=44; (* Frequency phase t *)
                30:RdReg.Measure:=45; (* Vbulk + *)
                31:RdReg.Measure:=46; (* Vbulk – *)
                32:RdReg.Measure:=47; (* Supervisor Temperature *)
                33:RdReg.Measure:=48; (* Alim. Temperature *)
                34:RdReg.Measure:=49; (* Heat Sink Temperature *)
                35:RdReg.Measure:=61; (* Grid Voltage phase r *)
                36:RdReg.Measure:=62; (* Grid Voltage phase s *)
                37:RdReg.Measure:=62; (* Grid Voltage phase t *)
            END_CASE;
         END_IF;

    in risposta a: Versione normale e PoE del termometro IP “STE” #36776
    Sergio Bertana
    Amministratore del forum

    I due prodotti sono esteticamente, dimensionalmente e funzionalmente identici, la versione PoE si differenzia per il fatto che può accettare l’alimentazione oltre che dall’apposito alimentatore fornito a corredo anche dal cavo ethernet.

    La presenza del circuito di alimentazione da PoE è un circuito aggiuntivo nel prodotto e quindi ne fà lievitare il costo.

    Pertanto se non è necessario alimentarlo da cavo ethernet (PoE), ma si può utilizzare l’alimentatore a corredo, consiglio di scegliere il modello senza PoE.

    in risposta a: Storicizzazione dati su chiave USB #36775
    Sergio Bertana
    Amministratore del forum

    Per la conversione dei dati scaricati da FTP ricordo che puoi utilizzare il programma di conversione EasyConverter di cui è possibile il download dal nostro sito nella pagina del terminale nella sezione download.
     
    Oppure puoi attivare il pulsante Conversione eventi dati, dalla finestra principale del programma EasyManager. Attivando il convertitore dovrai scegliere il file dati da convertire (Esempio 20110607.dtl) e premendo Ok verrà visualizzato un elenco di tutti i dati presenti (Vedi screenshot). Con il tasto di conversione in Excel i dati verranno esportati in un file Excel.

    in risposta a: Acquisizione encoder e gestione del valore di quota #36774
    Sergio Bertana
    Amministratore del forum

    Per gestire valori di quota con valori superiori a 16 bits, occorre gestire il contagiri dell’encoder, in pratica ad ogni roll-over della lettura quota encoder occorre aggiungere o sottrarre il valore di 65536.

    Attualmente non vi è un FB specifico, ma ne ho realizzato uno appositamente per questa richiesta, il FB oltre a gestire il contagiri, permette anche di effettuare su comando logico il preset di un valore di quota. Riporto il sorgente ST del blocco funzione ed il programma completo per il download.

        VAR_INPUT
        Preset : BOOL; { DE:”Preset command” }
        EQuote : UINT; { DE:”Encoder quote” }
        PQuote : UDINT; { DE:”Preset quote” }
        END_VAR

        VAR_OUTPUT
        Quote : UDINT; { DE:”Quote” }
        END_VAR

        VAR
        QMemo : UINT; { DE:”Quote memo” }
        Space : INT; { DE:”Spazio percorso” }
        END_VAR

        { CODE:ST }
        (* Calcolo spazio percorso in tacche. *)

        Space:=TO_INT(EQuote-QMemo); (* Spazio percorso *)
        QMemo:=EQuote; (* Quote memo *)
        IF (Space > 16#4000) THEN Space:=0-Space; END_IF;

        (* Comando preset, su attivazione quota è impostata al valore di preset. *)

        IF (Preset) THEN Space:=0; Quote:=PQuote; END_IF;
        Quote:=Quote+TO_UDINT(Space); (* Quote *)

    in risposta a: Comunicazione wireless con inverter Power One #36773
    Sergio Bertana
    Amministratore del forum

    Tra la gamma di radiomodem ZigBee abbiamo recentemente inserito il modello ATC-3200 che ha ottime caratteristiche radio offerte ad un prezzo molto competitivo. Il radiomodem dispone di connessioni RS232/422/485 pertanto è adatto a tutti i tipi di inverter. La comunicazione ZigBee ad elevata velocità di scambio dati lo rende sicuramente adatto alla comunicazione con qualsiasi inverter. E’ possibile configurare l’identificativo di rete PAN ID, dei vari radiomodem, in questo modo più reti di radiomodem possono operare contemporaneamente nella stessa zona.

    in risposta a: Come interfacciare SlimLine con programmi in .NET #36772
    Sergio Bertana
    Amministratore del forum

    Per quanto riguarda il router WiFi consiglio un prodotto Ubiquiti, puoi scegliere tra la Picostation o la NanoStation Loco.

    Per il trasferimento dei dati dallo SlimLIne al PC centrale è possibile utlizzare il protocollo Modbus Over IP nativo nel prodotto, in questo caso devi sviluppare il master modbus nel PC.

    In alternativa puoi usare una semplice connessione UDP (Vedi post).

Stai visualizzando 15 post - dal 3,901 a 3,915 (di 4,318 totali)