Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,136 a 3,150 (di 4,254 totali)
  • Autore
    Post
  • in risposta a: Gestione della connessione TCP/IP con modem #37812
    Sergio Bertana
    Amministratore del forum

    Ma la soluzione proposta con la FB ModemHTTPGet funziona anche su reti nattate, anzi è fatta apposta, infatti è il modem che si connette ad un server HTTP con indirizzo IP pubblico. Nel mio esempio infatti mi appoggio ad un servizio gratuito offerto da Altervista, sul sito Altervista ho caricato una pagina web scritta in PHP ed il modem invia alla pagina i dati in GET.

    Diverso è il problema delle telecamere IP, dove l’unica soluzione al NAT è l’utilizzo di un router (Vedi Conel) che gestisce una VPN con un server (Che si trova su di un IP pubblico, meglio se statico). Tramite la VPN è possibile raggiungere tutti i dispositivi connessi al router (Ogni dispositivo avrà un IP statico all’interno della VPN).

    in risposta a: Software virtual COM per convertitore ATC-1000 #37810
    Sergio Bertana
    Amministratore del forum

    Personalmente non ho mi utilizzato il software Communicator ma in questo topic si trovano esempi di utilizzo dei convertitori Ethernet/Seriale in connessione TCP/IP (Eliminando quindi il software Virtual COM). I programmi di virtualizzazione porta seriale sono comunemente venduti ad un costo rilevante, ecco quindi che tutti i costruttori di convertitori Ethernet/Seriale abbinano al prodotto una versione semplificata del software.

    Abbiamo molti clienti che utilizzano i convertitori ATC-1000 con il software Virtual COM e non ho notizie di grave lacune di funzionalità. Nel caso di comunicazioni a pacchetto (Come nel Modbus o nel protocollo Aurora) consiglio di configurare una connessione UDP in alternativa alla TCP e una connessione che utilizza meno banda.

    Nel tuo caso poi che disponi di due convertitori, puoi anche collegare i due convertitori tra di loro in modalità Client-Server, lasciando un convertitore configurato in RS485 connesso all’inverter e l’altro connesso in RS232 all porta seriale del PC eliminando quindi il software di virtualizzazione, con il costo del software compri 3 convertitori.

    in risposta a: Gestione della connessione TCP/IP con modem #37808
    Sergio Bertana
    Amministratore del forum

    Il blocco funzione ModemHTTPGet esegue esattamente la stessa operazione che hai fatto svolgere al tuo PC con le pagine web in auto refresh. Per la visione in tempo reale puoi utilizzare il web server dello SlimLine visualizzando all’interno di pagine dinamiche i valori desiderati (Vedi post).

    Naturalmente per la visualizzazione delle pagine web dello SlimLine da remoto devi gestire un indirizzo IP pubblico con le opportune regole di routing, mentre TeamViewer by-passa il problema utilizzando un proprio server e gestendo la comunicazione sulla porta HTTP. 

    in risposta a: Gestire I/O remoti con connessione via radiomodem #37806
    Sergio Bertana
    Amministratore del forum

    Ottima soluzione la scelta del convertitore per onde convogliate, così hai anche la connessione ethernet in garage che puoi rendere anche wireless con un access point WiFi.
     
    Visto che hai utilizzato una soluzione ethernet, mi permetto di consigliare per una espansione della rete o per altri lettori di questo topic, l’utilizzo come sistemi I/O di due dispositivi già provvisti di connessione ethernet eliminando i due ATC-1000. Se la connessione è solo tra due punti, si può utilizzare i moduli di I/O-Ethernet.
     
    Se invece è tra più punti o se si vuole avere una programmabilità locale puoi utilizzare i sistemi SlimLine oppure il NetLog III. Esistono blocchi funzione specifici per la comunicazione UDP tra diversi sistemi (Vedi post), inoltre il Web server integrato permette di gestire pagine di comando integrate nel prodotto stesso (Vedi post).

    in risposta a: Gestione della connessione TCP/IP con modem #37804
    Sergio Bertana
    Amministratore del forum

    La FB ModemHTTPGet opera solo su di un modem, si appoggia alla FB ModemCore_v2 per gestire i comandi AT verso il modem ed utilizzare lo stack TCP/IP presente nel modem. SlimLine attualmente può solo agire come server TCP/IP non è gestita la connessione come client oltre a non gestire il DNS. Se vuoi connettere un web service ad uno SlimLine via ethernet hai due soluzioni.

    Connessione TCP, lo SlimLine agisce come server TCP ed accetta la connessione da un client, puoi utilizzare il protocollo Modbus che è nativo oppure sviluppare un tuo protocollo (Vedi post, post).

    Connessione UDP, lo SlimLine può gestire connessioni in ingresso (Server) e/o in uscita Client, ma non potendo gestire il DNS devi sempre utilizzare indirizzi IP (Vedi post).

    in risposta a: Gestione della connessione TCP/IP con modem #37803
    Sergio Bertana
    Amministratore del forum

    In effetti le librerie attualmente vengono inserite nella distribuzione del pacchetto LogicLab, non abbiamo sul sito una sezione per il download delle versioni aggiornate. Normalmente il cliente richiede la versione aggiornata e viene spedita per email. Nel tuo caso avendo postato la richiesta sul forum provvedo ad allegare la libreria eModemLib per il download.

    in risposta a: Riconoscere da programma utente i moduli di espansione #37800
    Sergio Bertana
    Amministratore del forum

    Si certo, la variabile di sistema SysModulesReady di tipo UINT indica quali moduli di estensione sono connessi al sistema. Ogni bit indica la presenza del rispettivo modulo, quindi bit 0: Modulo con indirizzo 0, bit 1: Modulo con indirizzo 1 e così via fino a bit 15 Modulo con indirizzo 15.

    Esiste poi la funzione SysPhrInfos che ritorna il codice del modulo e l’eventuale versione del software installato sul modulo, sono due stringhe da 10 caratteri. Quindi un programma del tipo

    FOR i:=0 TO 15 DO
      IF (VBitTest(SysModulesReady, i)) THEN
        ABf:=SysPhrInfos(i, 0, MInfos[i].Code); (* Codice modulo *)
        ABf:=SysPhrInfos(i, 1, MInfos[i].SVersion); (* Software version *)
      END_IF;
    END_FOR;

    Permette di valorizzare un array di strutture dati con i codici prodotto e le versioni software. Allego programma di esempio (Stampa e Download sorgente).

    in risposta a: Trasferire valori tra variabili in linguaggio IL #37799
    Sergio Bertana
    Amministratore del forum

    Ho realizzato un semplice programma che esegue quello di cui tu hai bisogno (Stampa, Download sorgente). Come vedi l’ingresso DI00 del modulo CPU (%IX255.0) gestisce il conteggio dei colpi macchina con il counter SCounter.

    Ogni 60 secondi il timer TBase termina la temporizzazione e viene eseguito il trasferimento del valore del contapezzi nella variabile velocità macchina MSpeed. Nello stesso istante viene eseguito il reset del counter di conteggio colpi macchina.

    in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37798
    Sergio Bertana
    Amministratore del forum

    Tra i vari posts del forum c’è sicuramente qualche esempio di utilizzo della funzione SysVarsnprintf, in ogni caso ecco di seguito come visualizzare due variabili REAL sul display. La variabile LCDMessage di tipo STRING viene poi visualizzata sul display.

    (* Real 1:xxx.xxx *)
    (* Real 2:xx.x     *)

    i:=SysVarsnprintf(ADR(LCDMessage), 16+1, ‘Real 1:%7.3f ‘, REAL_TYPE, ADR(RVar[0]));
    i:=SysVarsnprintf(ADR(LCDMessage)+16, 16+1, ‘Real 2:%4.1f ‘, REAL_TYPE, ADR(RVar[1]));

    Come vedi la prima chiamata alla funzione scrive il testo seguito dal valore della variabile RVar[0] su 3 cifre intere e 3 cifre decimali. La seconda chiamata alla funzione scrive il testo seguito dal valore della variabile RVar[1] su 2 cifre intere e 1 cifra decimale. Sfrutto comunque la domanda per postare un programma (Stampa, Download sorgente), che visualizza ciclicamente (Ogni 2 secondi) 3 diversi messaggi:

    Un messaggio di solo testo.
    Un messaggio con le 2 variabili REAL.
    Un messaggio con il valore di data ed ora.

    in risposta a: Come gestire motori passo/passo con i vostri prodotti #37796
    Sergio Bertana
    Amministratore del forum

    In questo post una soluzione con driver gestito dall’uscita PWM di un modulo CPU.

    in risposta a: Gestire motori passo passo con un sistema SlimLine #37795
    Sergio Bertana
    Amministratore del forum

    I moduli SlimLine CPU ARM7 IEC61131-3, dispongono di una uscita PWM hardware (Out 0), che può generare segnali ad onda quadra con un limite di 1 Khz. Tramite il blocco funzione SysSetPWMOut, set PWM output (Estratto manuale), è possibile impostare sia la frequenza di uscita che il duty cycle.

    In realtà in generatore PWM può essere programmata per generare frequenze molto maggiori, ma l’OptoMOS di uscita taglia la frequenza. Il valore di 1 Khz è garantito, ma regolando il valore di Duty-Cycle in modo da compensare la differenza tra il tempo di ON ed il tempo di Off dell’OptoMOS si può raggiungere anche valori supuriori ai 2 Khz.

    Se si collega l’uscita Out0 con l’ingresso Inp0 utilizzando il blocco funzione SysGetCounter get counter, è possibile utilizzare il counter hardware per conteggiare gli impulsi in uscita ed in questo modo poter gestire anche il loop di posizionamento dello stepping motor.

    In questo post un’altra soluzione possibile.

    in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37794
    Sergio Bertana
    Amministratore del forum

    Sono contento che il display funzioni, per la visualizzazione delle variabili puoi utilizzare la funzione SysVarsnprintf, variable print to string, ti componi una stringa con il testo ed il valore delle variabili e poi la trasferisci sul display. In merito all’indirizzamento del display sul bus I2C, ho fatto riferimento al datasheet dove è riportato.

    Four 7-bit slave addresses (0111100, 0111101, 0111110 and 0111111) are reserved for the Controller. The least significant bit of the slave address is set by connecting the input SA0 (DB0) and SA1 (DB1) to either logic 0 (VSS) or logic 1 (VDD).

    Nel mio circuito entrambi i segnali SA0 e SA1 sono connessi a VSS, quindi l’indirizzo è 16#3C.

    in risposta a: Utilizzo tipi dati definiti da utente nelle funzioni e FB #37789
    Sergio Bertana
    Amministratore del forum

    Hai ragione ho fatto un semplice programma che evidenzia il problema (Stampa, Download), ho segnalato alla Axel il problema ed in attesa di una sua soluzione, ti propongo come Workaround di utilizzare una FB al posto della Function.

    Se proprio vuoi utilizzare la Function puoi passare l’indirizzo della struttura dati come parametro alla funzione anziché definire la variabile al suo interno, così come ho fatto in questo programma (Stampa, Download).

    in risposta a: Comando in frequenza di inverter Power-One per eolico #37787
    Sergio Bertana
    Amministratore del forum

    I moduli SlimLine CPU ARM7 IEC61131-3, dispongono di una uscita PWM hardware (Out 0), che può generare segnali ad onda quadra con un limite di 1 Khz. Tramite il blocco funzione SysSetPWMOut, set PWM output (Estratto manuale), è possibile impostare sia la frequenza di uscita che il duty cycle.

    Aggiungendo al modulo CPU un modulo di acquisizione analogica è possibile acquisire il valore analogico di comando ed un semplice programma in ST può agevolmente gestire la tua applicazione. In merito all’interfacciamento con l’inverter, l’uscita è realizzata con un Opto-MOS quindi se utilizzi una sola uscita delle due presenti (Si ha un unico comune per entrambe le uscite) puoi direttamente collegarla all’inverter senza nessuna interfaccia aggiuntiva.

    in risposta a: Protezione su funzionamento librerie #37786
    Sergio Bertana
    Amministratore del forum

    Il MAC address è una informazione di sistema, viene gestita esclusivamente dal sistema operativo, non esiste nessun modo per conoscerlo da programma utente.

Stai visualizzando 15 post - dal 3,136 a 3,150 (di 4,254 totali)