Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,741 a 1,755 (di 4,381 totali)
  • Autore
    Post
  • in risposta a: Acquisizione telecamera su HMI #45205
    Sergio Bertana
    Amministratore del forum

    Tramite l’oggetto Video In è possibile visualizzare sullo schermo del terminale il segnale proveniente da una telecamera (Sono gestite telecamere USB, IP e segnale da ingresso video) vedi la tabella comparazione per la scelta del modello corretto.

    L’oggetto non solo visualizza il segnale della telecamera ma permette anche di salvarlo su disco per poterlo visualizzare in seguito con l’oggetto Picture View proprio come un NVR.

    Utilizzando un client VNC (Topic) è possibile interagire con il pannello da PC, Tablet o Smartphone visualizzando lo schermo ed agendo sui comandi. Con EasyAccess (Topic) è possibile accedere al pannello in VNC anche da remoto via Internet.

    Se nella schermata del pannello è visualizzata la telecamera anche da remoto potrò visualizzare l’immagine che arriva dalla telecamera. Naturalmente se il pannello ha uno schermo molto grande (Tu ipotizzavi un 12 pollici) e lo visualizzi su uno schermo ridotto tutte le immagini saranno scalate.

    in risposta a: Connessione a router Conel UR5I v2 in TCP per gestione SMS #45200
    Sergio Bertana
    Amministratore del forum

    Riguardo all’errore, nel progetto hai incluso tutta la liberia o solo gli oggetti (FB) che utilizzi, ricordo che la libreria eModemLib_F000 và inclusa nel progetto. La variabile ModemID và comunque appoggiata su di una variabile UDINT.

    Il FB ModemHttpGet non è utilizzabile con il router, se devi fare connessioni HTTP puoi usare i FBs SysTCPClient e HTTPClient, usando il router per la connessione Internet via Ethernet (Dovrai definirne l’IP come Gateway).

    Dallo spionaggio vedo che il numero a cui inviare l’SMS non è compreso tra apici (“nnnnnn”), probabilmente non hai impostato il tipo 1 nel parametro Type del FB ModemCore_v5. Il router Advantech (Ex Conel) a differenza dei modem standard vuole che il numero a cui inviare l’SMS sia compreso tra apici.

    in risposta a: Connessione a router Conel UR5I v2 in TCP per gestione SMS #45193
    Sergio Bertana
    Amministratore del forum

    Il supporto ai routers ex Conel ora Advantech è disponibile dalla libreria eModemLib_Fo00 che puoi scaricare dal ns sito. Tutto quello che hai fatto mi sembra corretto, ma per capire meglio il problema ti consiglio di attivare lo spionaggio (SpyOn:=TRUE) sulla ModemCore.

    Con lo spionaggio attivo potrai verificare se il router risponde ai comandi inviati dalla FB ModemCore e comunque avere utili informazioni per capire la natura del problema. In questo topic è indicato come eseguire un test di invio SMS tramite connessione TCP, i comandi utilizzati sono gli stessi che utilizza la FB ModemCore.

    in risposta a: Realizzare DataLogger con storicizzazione su server FTP #45171
    Sergio Bertana
    Amministratore del forum

    L’ultima versione della FTPClient_v1 si trova nella libreria networking eLLabNetworkLib_B000, scaricabile dal sito. La nuova versione v1 rispetto alla precedente gestisce l’allocazione dinamica dei buffer di memoria  (Usando la funzione RMalloc). In questo modo è possibile dimensionare a piacere i pacchetti TCP scambiati con il server (Il massimo è 1500 bytes).

    L’errore 10063030 indica che non è stata definita la dimensione del buffer (Parametro DBSize), probabilmente hai usato un progetto realizzato con la precedente versione e non hai definito il parametro. Dai una occhiata all’estratto del manuale e vedi l’esempio riportato.

    in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45164
    Sergio Bertana
    Amministratore del forum

    Il problema capita solo se attivo lo spionaggio, c’è un bug nella gestione dello spionaggio del frame trasmesso. Ho corretto il bug e tra poco sarà disponibile una nuova versione della libreria eLLabNetworkLib_B100 .

    in risposta a: Acquisizione di un flussometro #45157
    Sergio Bertana
    Amministratore del forum

    Giusta osservazione, per calcolare la velocità di rotazione di un asse si possono utilizzare due metodi.

    Contare gli impulsi generati da un generatore posto sull’asse, come nel tuo caso e contando il numero di impulsi in un certo tempo si può determinare la velocità dell’asse. Questa soluzione è adatta quando la velocità di rotazione è elevata (Molti impulsi nel tempo di campionamento). Se la velocità è lenta ci sono pochi impulsi nel tempo e quindi si ha una acquisizione imprecisa.

    Misurare il tempo che intercorre tra un impulso e l’altro, questa soluzione è adatta quando la velocità di rotazione è lenta. Se la velocità è elevata il tempo tra gli impulsi è molto poco e quindi difficile da acquisire.

    Conclusioni, se vuoi spaccare il capello in 4 puoi gestire entrambi i modi di acquisizione, passando da uno all’altro in base alla velocità di rotazione.

    in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45153
    Sergio Bertana
    Amministratore del forum

    Visto il problema, in effetti non veniva inizializzato il buffer che contiene il nome del topic. Ho provveduto a correggere il FB ed a rilasciare la nuova versione di libreria eLLabNetworkLib_B000 scaricabile dal sito.

    in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45146
    Sergio Bertana
    Amministratore del forum

    Si se la dimensione del messaggio ricevuto da un topic ha lunghezza pari a 0 o superiore alla dimensione del buffer definito per contenerlo (Parametro VBLengthRxD) il messaggio viene scartato segnalando errore 10067288.

    in risposta a: Rilasciato FB MQTTClient per gestione protocollo MQTT #45143
    Sergio Bertana
    Amministratore del forum

    Si certo è possibile sottoscriversi a tutti i topics che si desidera, ma venendo al tuo problema, se ho ben capito con TopicRxD tu intendi la variabile stringa il cui indirizzo è passato in:

    MQTT.VBufferRxD:=ADR(TopicRxD); (* Value buffer (Received) *)

    Quindi nella stringa tu vedi la ricezione del valore pubblicato da qualcuno su quel topic (Nel tuo caso la app sullo smartphone). Bene ho provato esattamente la tua situazione (Utilizzando il programma IOOnMQTT scaricabile da questa knowledge) e non noto alcun problema, io uso la app MyMQTT per i test.

    Non è che sia l’app ad inviare insieme al dato anche il nome del topic?

    in risposta a: Gestire un contatore con valore ritentivo #45138
    Sergio Bertana
    Amministratore del forum

    La risposta è nell’errore, la funzione ValueScale ha più operandi

    Input (REAL) Valore in ingresso da scalare.
    ILow (REAL) Limite minimo del valore in ingresso da scalare.
    IHigh (REAL) Limite massimo del valore in ingresso da scalare.
    OLow (REAL) Limite minimo del valore in uscita scalato.
    OHigh (REAL) Limite massimo del valore in uscita scalato.

    E tu non li hai messi. Devi scrivere ad esempio se vuoi trasformare un ingresso 4-20 mA in 10-50 PSI:

    LD Sensore (* Input, Valore in ingresso da scalare *)
    ValueScale 4.0, 20.0, 10.0, 50.0
    ST Pressione

    in risposta a: Gestire un contatore con valore ritentivo #45135
    Sergio Bertana
    Amministratore del forum

    La risposta alla tua domanda è nel manuale di LogicLab, con LogicLab vi sono due manuali, uno è quello che spiega il funzionamento del programma (F1 su una qualunque finestra del programma) è l’altro è quello con i riferimenti a tutte le funzioni e FB fornite con i nostri prodotti (F1 su un nome di funzione o FB).

    Ma venendo alla tua domanda per eseguire una funzione da IL basta metterne il nome come primo operando di una riga di programma. Occorre ricordare che il primo parametro alla funzione è passato tramite l’accumulatore, mentre gli altri vanno posti in linea alla definizione. Il risultato della funzione è ritornato in accumulatore. Ecco lo screenshot con un esempio.

    in risposta a: Utilizzo FB HTTPClient per scambio dati in JSON #45128
    Sergio Bertana
    Amministratore del forum

    Non ti serve la libreria, se scarichi il programma del post ti trovi all’interno tutto quello che ti serve. Se poi vuoi utilizzare il FB HTTPClient in altri progetti lo potrai semplicemente importare da questo progetto.

    Comunque metto in linea la nuova versione della libreria per poterla scaricare dal sito.

    in risposta a: Gestire un contatore con valore ritentivo #45124
    Sergio Bertana
    Amministratore del forum

    Per non dover copiare la variabile, l’unico modo è di passarne l’indirizzo alla funzione o al blocco funzione visto che utilizzi il linguaggio IL ecco come scrivere il programma che utilizza il FB ILRetainCtr. Ho dichiarato nel programma la variabile Counter di tipo ILRetainCtr.

    VAR
    Counter : ILRetainCtr;
    END_VAR

    Ed ecco semplice listato IL, come vedi l’ingresso Di00CPU è connesso al clock del counter, ed a Value è passato l’indirizzo della variabile Counters[0] che è di tipo RETAIN.

    LD Di00CPU
    ST Counter.Clk
    ADR Counters[0]
    ST Counter.Value
    CAL Counter

    Allego il progetto LogicLab per il download.

    in risposta a: SIM dati M2M da utilizzarsi per soluzioni di telecontrollo #45116
    Sergio Bertana
    Amministratore del forum

    Ti rispondo da autodidatta, non sò esattamente come i gestori trattino le comunicazioni dati in dial-up, a quanto ne sapevo e come ho più volte scritto ritenevo fose necessario avere SIM per comunicazione M2M (Con numerazione dedicata) e che le normali SIM telefoniche non funzionassero.

    Ora tu mi dici che 2 SIM normali funzionano… hai distrutto una mia certezza… poi a che piano telefonico si aggancino è un mistero…

    Per quanto riguarda altri operatori, credo che alcuni non gestiscano comunicazioni dati in dial-up, ormai si tende a comunicare via TCP/IP in GPRS/3G/4G ed in questo caso la tariffazione è la classica tariffazione dati Internet.

    in risposta a: Acquisizione segnali digitali ed analogici #45113
    Sergio Bertana
    Amministratore del forum

    L’errore è che istanzi il FB, lo parametrizzi, ne utilizzi il valore, ma non lo esegui… Devi aggiungere dopo la parametrizzazione:

    AI_Wind(); (* Eseguo acquisizione valore analogico *)

Stai visualizzando 15 post - dal 1,741 a 1,755 (di 4,381 totali)