Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 991 a 1,005 (di 4,309 totali)
  • Autore
    Post
  • in risposta a: Gestione digital I/O su router WL-R220 #60335
    Sergio Bertana
    Amministratore del forum

    Il router dispone di 2 ingressi ed 1 uscita digitale (Vedi schema elettrico), prestare attenzione alla connessione, sono segnali a 3.3 Volt.

    L’accesso in SSH al device è possibile oltre che da seriale anche da porta Ethernet, eseguita l’autenticazione (Default user:root nessuna password)  è possibile accedere ai comandi del sistema operativo OpenWRT. La gestione degli I/O è possibile tramite lo pseudo file system sysfs, i due ingressi sono connessi ai segnali GPIO_1 e GPIO_2 mentre il digital output è connesso al GPIO_0. Per accedere al GPIO_0 di uscita digitale occorre dare i comandi:

    echo 0 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio0/direction

    Il primo comando esporta il GPIO_0 nello spazio utente, mentre il secondo lo imposta come uscita, se il comando viene eseguito correttamente verrà creato il link al device virtuale gpio0 nella cartella “/sys/devices/virtual/gpio/”. Ora sarà possibile settarne il valore con i comandi:

    echo 1 > /sys/class/gpio/gpio0/value
    echo 0 > /sys/class/gpio/gpio0/value

    Il primo comando forza ad 1 l’uscita, che essendo di tipo open collector si chiude a GND. Il secondo forza a 0 l’uscita che si porterà tramite la resistenza interna di pull-up a 3.3 volt.

    in risposta a: Caricamento programma senza utilizzare LogicLab #60330
    Sergio Bertana
    Amministratore del forum

    La soluzione è già nelle tue mani… anzichè utilizzare il caricatore LLC.exe del LogicLab Loader puoi utilizzare direttamente quello della versione di LogicLab che stai utilizzando per compilare il programma. Esempio

    "C:\Program Files (x86)\Elsist\LogicLab\LogicLab5\LLC.exe"  "PERCORSO_FILE.rsm" /D /DR /WRU /F:"ModbusTCP:1,1000,M#TCPIP:192.168.0.122/502,5000"
    in risposta a: Come utilizzare gli I/O logici presenti su terminale Picoface #60325
    Sergio Bertana
    Amministratore del forum

    Sul terminale Picoface oltre ai 2+2 I/O logici galvanicamentre isolati è presente anche una porta 1-Wire ed una porta seriale RS232/RS485. Il terminale è disponibile in 2 versioni una base da collegare direttamente al bus di espansione dei sistemi SlimLine ed una full dotata di alimentazione indipendente da collegare in seriale RS232/RS485 ai sistemi SlimLine.

    Per la gestione del Picoface ti consiglio di utilizzare il FB HMIAInOnePicoface, che permette di gestire il terminale sia connesso al bus che connesso in seriale.  Agendo sulle variabili del FB potrai gestire tutti i segnali di I/O del terminale, tasti, LED e I/O digitali come desideri dal tuo programma PLC, in qualunque linguaggio.

    Sull’uscita OneWireData sono ritornati i dati letti da un dispositivo 1-Wire connesso al terminale potendo così gestire lettori di TAG, sensori di temperatura, ecc…

    Se il terminale è connesso al bus di espansione (quindi la porta seriale è disponibile) è possibile utilizzarla da programma LogicLab.

    in risposta a: Lettura oggetto JSON da file #60324
    Sergio Bertana
    Amministratore del forum

    Da quello che dici immagino tu stia leggendo da un file su disco, quindi ho provato a fare il semplice programmino JSONFRead (Ecco il download) per verificare la tua situazione. Ma intanto il contenuto del file che tu hai indicato è 236 caratteri e non 279.  Ecco il programma che ho realizzato.

    // *****************************************************************************
    // PROGRAM "JSONFRead"
    // *****************************************************************************
    // Read JSON object from file.
    // -----------------------------------------------------------------------------
    
        // -------------------------------------------------------------------------
        // FILE READ
        // -------------------------------------------------------------------------
        // Wait for a "Read" command.
    
        IF NOT(Read) THEN RETURN; END_IF;
        Read:=FALSE; //Read command
    
        // Open the file, exit on error.
    
        Fp:=SysFfopen(ADR('D:/JSONObj.json'), ADR('r')); //File pointer
        IF (Fp = eNULL) THEN RETURN; END_IF;
    
        // Read data from file.
    
        i:=Sysmemset(ADR(JSONObj), 0, SIZEOF(JSONObj));
        RChars:=Sysfread(ADR(JSONObj), TO_INT(SIZEOF(JSONObj)), 1, Fp); //Number of characters read
        i:=SysWrSpyData(SPY_ASCII, 0, 16#00000001, ADR('JSONFRead'), ADR(JSONObj));
        i:=Sysfclose(Fp); //Close file
    
    // [End of file]

    Siccome non mi dici come hai fatto a vedere la stringa letta che era corrotta (Posso immaginare che l’hai vista in dfebug da LogicLab) ma essendo molto lunga io ho preferito ritornarla con una SysWrSpyData e visualizzarla nella console di spionaggio ed il mio programma funziona correttamente. Per decodificare l’oggetto JSON letto puoi utilizzare il FB JSONDecode.

    Nota che prima di leggere i dati dal file con Sysfread ho eseguito l’azzeramento dell’intera stringa risultato con Sysmemset perchè la prima volta che esegui il programma la stringa è inizializzata a “0” ma dopo aver letto al suo interno si trovano dei dati e se una successiva lettura legge meno dati di quelli presenti non avendo messo il codice tappo “0” di fine stringa tu vedrai i dati letti seguiti dai dati che seguono presenti nella stringa.

    in risposta a: Verifica funzionamento macchine tramite rete WiFi #60321
    Sergio Bertana
    Amministratore del forum

    Se devi solo acquisire i 2 ingressi logici il 600693 SD-2xIN può fare al caso. Questo prodotto dispone di supporto per fissaggio su guida DIN da armadio, però se lo vuoi connettere in WiFi dovrai provvedere una antenna esterna perchè chiuso in un armadio metallico potrebbe avere problemi di ricezione.

    Ma a differenza del STE2 non può inviare eMail direttamente, può solo inviare dati al portale SensDesk. Potrai poi configurare sul portale l’invio di una eMail su attivazione/disattivazione degli ingressi.

    Il portale SensDesk è gratuito è possibile monitorare qualsiasi numero di sensori ma un massimo di 3 dispositivi. Per aumentare il numero di dispositivi occorre installare un proprio servizio SensDesk nel cloud.

    Se puoi connettere il dispositivo via Ethernet (O eventualmente puoi aggiungere un access point WiFi) puoi utilizzare un Poseidon 3266 che oltre a darti la possibilità di gestire fino a 8 sensori 1-Wire gestisce 4 ingressi digitali e può inviare direttamente l’eMail, essere gestito da PDMS e collegarsi a SensDesk.

    in risposta a: Verifica funzionamento macchine tramite rete WiFi #60318
    Sergio Bertana
    Amministratore del forum

    Potrei consigliarti lo STE2, il dispositivo permette tramite connessione Ethernet o WiFi l’acquisizione di fino a 5 sensori 1-Wire per la lettura di grandezze fisiche come temperatura, umidità, CO2,  ecc oltre ad acquisisre 2 contatti logici.

    In questo modo potrai non solo acquisire lo stato di 2 eventi ma potrai anche monitorare la temperatura dei frigoriferi.

    Puoi impostare l’invio diretto di eMail sullo stato degli ingressi o su soglie impostabili di temperatura. Potrai connetterti al portale cloud SensDesk e monitorare lo stato sia degli ingressi che dele grandezze fisiche direttamente nel cloud.

    Con il programma PDMS potrai memorizzare su database tutte le informazioni in questo modo avrai un archivio storico dei dati.

    in risposta a: Disabilitazione connessione con dispositivo #60313
    Sergio Bertana
    Amministratore del forum

    Rispondo subito alla domanda sulla terminazione, non è presente nessuna resistenza di terminazione. Solitamente non viene inserita ma se si desidera terminare il bus RS485 è possibile saldare la resistenza sul connettore.

    Per quanto riguarda invece la possibilità di escludere i nodi non presenti riferirsi ai registri interni del pannello.

    LB-9152 Auto. connection for device 3 (COM 3) (when On), default is On

    Resettando il bit il pannello non esegue più l’auto connessione sulla porta RS85 COM3, ora agendo sui registri:

    LB-9800~LB-10055 device 3 status (SN0~255, COM 3), set on to retry connection, default is Off

    è possibile settare solo i bit relativi al nodo presente connesso alla COM3 (Esempio LB-9805 per il nodo 5, LB-10055 per il nodo 255). In questo modo il terminale si connetterà solo con i nodi il cui bit è settato.

     

    in risposta a: Impostare indirizzo nodo Modbus su meter SDM120 #60302
    Sergio Bertana
    Amministratore del forum

    Ho aggiunto il programma dimostrativo SDM120SetUp il cui programma sorgente è riportato in questo articolo.

    Tramite questo programma è possibile da uno SlimLine leggere e scrivere qualsiasi registro del meter SDM 120. Il programma permete quindi di eseguire la configurazione del meter (Indirizzo di nodo, parametri di comunicazione, rapporto trasformatore amperometrico, ecc) in modo molto semplice impostando i valori da debug con LogicLab.

    in risposta a: Configurazione energy meter eastron SDM120CT-M #60299
    Sergio Bertana
    Amministratore del forum

    Rimando a questo topic per l’impostazione dell’indirizzo di nodo Modbus.

    in risposta a: Impostare indirizzo nodo Modbus su meter SDM120 #60290
    Sergio Bertana
    Amministratore del forum

    Da buon esperto dei ns prodotti Marcello ha indicato la strada utilizzando un modulo CPU SlimLine, ma vediamo come impostarlo utilizzando il programma Toolly. L’elenco dei registri Modbus si evince da questo documento, naturalmente occorre premere il tasto sul frontale ed attendere la scritta -SEt-.

    Il registro di impostazione indirizzo è indicato come 40021 Meter ID, l’indirizzo Modbus è 20 (16#0014), ricordo che Modbus ha offset -1. Il valore di nodo è in formato float IEE754 per il calcolo del valore in floating point, puoi usare un convertitore in linea come questo.

    Il valore di default è 1 (16#3F800000). Per impostare l’indirizzo 2 dovrai scrivere il valore 16#40000000, l’indirizzo 3 ha valore 16#40400000… Ecco uno screenshot di Toolly con la lettura dell’indirizzo di nodo di default 01 e la scrittura dell’indirizzo 02.

    Similarmente alla impostazione del nodo Modbus è possibile eseguire l’impostazione delle altre opzioni, rimando a questo topic per l’impostazione del rapporto del trasformatore TA.

     

    in risposta a: Creare un progetto multifile con LogicLab #60289
    Sergio Bertana
    Amministratore del forum

    Per abilitare il salvataggio dei vari POUs in file specifici (Un file per ogni POU) devi abilitare la flag Multiple files project dal menù Progetto->Opzioni in LogicLab (Screenshot).

    In questo modo all’interne della cartella di progetto verrà creata una ulteriore cartella (Denominata src) al cui interno si troveranno tutti i files di progetto.

    in risposta a: Domande su licenza EasyAccess #60221
    Sergio Bertana
    Amministratore del forum
    1. La licenza EasyAccess è legata ad un solo pannello, alcuni modelli di pannello hanno già la licenza preinstallata (Vedi come attivarla), per gli altri modelli và acquistata la Activation card di attivazione (Vedi come attivarla). La licenza dura per tutta la vita del pannello garantendo una banda minima garantita da 100Kb/s fino ad  1Gb di traffico al mese (Vedi topic).
    2. Se ti ricordi il dominio associato dal sito Weintek ti puoi fare reinviare le credenziali. Se non ti ricordi il dominio puoi realizzare un progetto vuoto con la sola pagina 76 richiamata, se il terminale è connesso ad Internet puoi vedere il dominio nel quale è registrato il dispositivo e quindi richiedere il rinvio delle credenziali (Nel momento che richiedi il reinvio potrai vedere anche l’indirizzo eMail a cui verranno inviate). Poi seguendo le informazioni in questo post potrai spostare il terminale da un dominio ad un’altro.
    in risposta a: Decodifica stringa json con array a “matrice” #60170
    Sergio Bertana
    Amministratore del forum

    L’utilizzo de FB JSONDecode rende l’operazione di decodifica molto più semplice ma puoi comunque utilizzare le funzioni SysStrFind e SysVsscanf per acquisire i valori dalla stringa JSON.

    Questo era il metodo che utilizzavo prima del FB apposito e comunque il FB utilizza al suo interno queste funzioni per effettuare la decodifica.

    in risposta a: Acquisire da webserver dati in una pagina HTML #60167
    Sergio Bertana
    Amministratore del forum

    Certo che esiste…

    Puoi utilizzare il FB HTTPClient, lo dovrai inizializzare nel modo.

    HTTPRq.RMethod:=0; //Request method, GET
        HTTPRq.HostAddress:=ADR('xxx.xxx.xxx.xxx'); //IP inverter
        HTTPRq.HostName:=HTTPRq.HostAddress; // Hostname
        HTTPRq.HostPort:=80; //Server port
        HTTPRq.Page:=ADR('/raw_data'); //Web page
        HTTPRq.Request:=eNULL; //Request string
        HTTPRq.Header:=eNULL; //HTTP header
        HTTPRq.DBSize:=512; //Data buffer size
        HTTPRq.Timeout:=10000; //Execution timeout

    Se copi l’esempio della pagina di manuale dimensionando apportunamente la stringa Page, ti troverai all’interno la pagina ritornata dall’inverter.

    Poi sarà un gioco da ragazzi con le funzioni SysStrFind e SysVsscanf acquisire i valori ritornati.

    in risposta a: Decodifica stringa json con array a “matrice” #60162
    Sergio Bertana
    Amministratore del forum

    Purtroppo il FB JSONDecode può decodificare solo variabili array ma non array a matrice come nel tuo caso.

Stai visualizzando 15 post - dal 991 a 1,005 (di 4,309 totali)