Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 1,861 a 1,875 (di 4,505 totali)
  • Autore
    Post
  • in risposta a: Comunicazione DAT3014 con Weintek mt8050 Modbus #45334
    Sergio Bertana
    Amministratore del forum

    Se il terminale visualizza PLC no response significa che non riceve risposta al comando Modbus che invia al dispositivo, solitamente per un errore di indirizzo. La documentazione del dispositivo non è chiarissima e sopratutto non c’è un esempio di frame Modbus.

    Ti consiglio di provare con un programma di simulazione modbus su PC (Esempio Modbus Master Simulator) per cercare di capire che comandi Modbus il prodotto accetta.

    Se conosci bene il protocollo Modbus puoi anche tentare con il nostro programma Toolly che permette di inviare stringhe binarie  su seriale ed ha nelle utilità anche un pratico calcolatore di CRC/LRC per protocollo Modbus (Vedi l’ultimo post di questo topic).

    in risposta a: Comunicazione DAT3014 con Weintek mt8050 Modbus #45309
    Sergio Bertana
    Amministratore del forum

    Il protocollo Modbus standard ha offset 1, tu hai scelto la modalità zero base addressing e quindi hai eliminato l’offset. Molti dispositivi comunque lavorano senza offset (Puo darsi che anche il DAT3014 sia così) ma l’offset al limite ti sfalsa di 1 l’indirizzamento (Basta sommare o sottrarre 1 all’indirizzo per sistemarlo).

    Il fatto che i Coils funzionano però significa che l’indirizzamento è corretto, ora per quanto riguarda i registri WORD leggendo il manuale mi sembra che il comando 4x operi sui registri banco 3xxxx che sono lo specchio dei registri 4xxxx. Quindi io proverei ad usare l’indirizzo 30015 al posto del 40015.

    Per l’acquisizione analogica di Pt100/1000 specie se hai molti punti ti consiglio di dare una occhiata al nostro sistema modulare SlimLine con il suo modulo di espansione I/O analogico.

    in risposta a: Verifica degli operatori disponibili #45213
    Sergio Bertana
    Amministratore del forum

    Sui modem BGS2 è disponibile anche il comando AT^SNMON=”INS”, 2 (Funziona anche senza SIM) che forza il modem ad una scansione della rete alla ricerca di tutti gli operatori presenti. Il comando ritorna i dati degli operatori trovati con le seguenti indicazioni.

    ^SNMON: “INS”,<mode>,<rb>,<rat>,<cid>,<lac>,<plmn>,<arfcn>,<rssi>

    Ecco la scansione eseguita nel nostro ufficio.

    ^SNMON: “INS”,0,1,3,34480,14703,”22288″,106,27
    ^SNMON: “INS”,0,1,3,34480,11068,”22210″,48,23
    ^SNMON: “INS”,0,1,3,56196,14703,”22288″,115,19
    ^SNMON: “INS”,0,2,3,34319,14703,”22288″,704,18
    ^SNMON: “INS”,0,1,3,12128,5,”22201″,10,16

    Il campo plmn è il codice dell’operatore (Vedi post precedente) il campo rssi indica il livello del segnale, ecco la corrispondenza in dBm. Come si vede il segnale migliore è quello di una delle 3 cellule Wind.

    0: -113 dBm or less
    1: -111 dBm
    2..30: -109… -53 dBm
    31: -51 dBm or greater
    99: Not known or not detectable

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

    Guardando il filmato sembra che la gestione avvenga su semplice chiamata telefonica, quindi devi utilizzare SIM per traffico voce, non puoi utilizzare SIM per comunicazioni M2M.

    In riferimento all’antenna, certo è preferibile averla all’esterno del cassone che sicuramente attenua il segnale. Una verifica comunque potresti farla collegando la seriale del Modem ad un emulatore di terminale e utilizzando i comandi AT provare ad eseguire una chiamata dal modem e/o utilizzare il comando AT+CSQ per vedere il livello del segnale.

    Puoi dare una occhiata a questo topic per la verifica della funzionalità ed a questo topic per le informazioni sugli operatori ricevuti dal modem.

    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.

Stai visualizzando 15 post - dal 1,861 a 1,875 (di 4,505 totali)