Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 946 a 960 (di 4,273 totali)
  • Autore
    Post
  • in risposta a: Driver di comunicazione con CODESYS #60514
    Sergio Bertana
    Amministratore del forum

    Per la connessione con sistemi programmati in CODESYS Weintek ha predisposto driver appositi con gestione sia dell’indirizzamento assoluto che simbolico.

    Il driver funziona con tutti i sistemi programmati in CODESYS.

    Quindi se ti viene visualizzato il messaggio PLC no response significa che hai commesso qualche errore di configurazione. Ti consiglio di realizzare un progetto con un solo pulsante toggle utilizzando l’indirizzamento assoluto e vedere se riesci a farlo funzionare.

    Per la configurazione del protocollo puoi verificare il manuale Guida connessioni PLC.

    in risposta a: Connessione a MySQL con cMT-SVR #60510
    Sergio Bertana
    Amministratore del forum

    Come vedi dalla comparazione delle caratteristiche tra i vari HMI il cMT-SVR supporta le SQL query e naturalmente ha il supporto al Modbus sia RTU che TCP.

    Naturalmente per risolvere il tup problema dovrai lavorare di macro sul pannello, per la gestione delle query SQL puoi dare una occhiata a questo articolo.

    Ti ricordo comunque che EasyBuilderPro permette la completa simulazione del progetto, quindi puoi provare a scrivere il tuo programma e testarlo in simulazione prima di acquistare il cMT-SVR.

    in risposta a: Utilizzo dongle USB 3G con CMT SVR #60441
    Sergio Bertana
    Amministratore del forum

    Weintek ha testato alcuni dongle USB, l’elenco è riportato nel post precedente e sulla pagina descrittiva del prodotto. Naturalmente anche altri dongle possono funzionare ma purtroppo non c’è modo di configurarli, se inserendo il dongle nel cMT questo non viene riconosciuto non si può fare nulla.

    Puoi indagare se il cMT riconosce il dongle tramite le variabili del pannello indicate nella pagina Cellular Data Network (Screenshot).

    Ti consiglio di realizzare una pagina sul pannello in cui visualizzi il valore di tutte le variabili interessate e verificare se il non funzionamento può essere determinato da un tuo errore (Esempio il PIN della SIM). Ma se il cMT non riconosce il dongle come connesso (LW-11379=0) non c’è modo di agire.

    in risposta a: Problemi di connessione a SlimLine #60417
    Sergio Bertana
    Amministratore del forum

    Lo SlimLine Raspberry viene rilasciato con il DHCP attivo e con l’accesso da utility Discover attivo. Quindi è strano che tu non riesca a raggiungerla. Questo potrebbe capitare se hai installato qualche tuo programma o ad esempio il run time di Codesys.

    In questo articolo diamo alcune indicazioni su come raggiungere il modulo. Ma se non riesci in alcun modo puoi sempre usare il metodo nativo, colleghi una tastiera ed un monitor e ci accedi direttamente.

    in risposta a: Scelta colore su immagine custom con EasyBuilder #60412
    Sergio Bertana
    Amministratore del forum

    La funzione di variazione colore su immagine è attiva solo sulle immagini delle librerie di sistema che vengono costruite da Weintek.

    Per tutte le altre immagini caricate dall’utente non c’è questa possibilità.

    in risposta a: Protocollo comunicazione con PIO I2C #60395
    Sergio Bertana
    Amministratore del forum

    Il bus di estensione dei ns sistemi utilizza il protocollo I2C standard è quindi possibile collegare qualsisi dispositivo I2C al bus. Abbiamo previsto la funzione SysI2CWrRd proprio per poter gestire dispositivi I2C standard connessi al bus di estensione.

    Come hai già visto tu il segnale RDYO-N è il segnale di abilitazione ai moduli , normalmente è allo stato logico TRUE (+5Vdc) e si porta a FALSE quando il programma PLC è in esecuzione (LED RDY acceso).

    Guardando il datsheet del MPC23017 vedo che ha un ingresso di RESET negato, quindi devi collegare a questo ingresso il segnale RDYO-N negato. mentre per la gestione dei comandi I2C devi riferti al datasheet del componente al capitolo byte mode and sequential mode.

    In Byte mode puoi scrivere/leggere un solo byte per ogni esecuzione della funzione SysI2CWrRd, in Sequential mode puoi scrivere/leggere più bytes sequenzialmente per ogni esecuzione della funzione SysI2CWrRd. Ecco un esempio di utilizzo

    // Esempio scrittura e lettura di 1 byte in "byte mode".
    
    I2CWrite[0]:=xx; //Device register address
    I2CWrite[1]:=xx; //Data to write
    i:=SysI2CWrRd(Address:=xx, WrBytes:=2, WrBuffer:=ADR(I2CWrite), RdBytes:=0, RdBuffer:=eNULL)
    
    I2CWrite[0]:=xx; //Device register address
    i:=SysI2CWrRd(Address:=xx, WrBytes:=1, WrBuffer:=ADR(I2CWrite), RdBytes:=1, RdBuffer:=ADR(I2CRead ))
    
    // Esempio scrittura e lettura di 4 bytes in "sequential mode".
    
    I2CWrite[0]:=xx; //Device register address
    I2CWrite[1]:=xx; //Data to write
    I2CWrite[2]:=xx; //Data to write
    I2CWrite[3]:=xx; //Data to write
    I2CWrite[3]:=xx; //Data to write
    i:=SysI2CWrRd(Address:=xx, WrBytes:=5, WrBuffer:=ADR(I2CWrite), RdBytes:=0, RdBuffer:=eNULL)
    
    I2CWrite[0]:=xx; //Device register address
    i:=SysI2CWrRd(Address:=xx, WrBytes:=1, WrBuffer:=ADR(I2CWrite), RdBytes:=4, RdBuffer:=ADR(I2CRead ))

    Il bus di estensione può essere utilizzato sia da task in back che slow o fast, l’accesso al bus blocca il task switching, quindi per minimizzare i jitters è preferibile non eseguire scritture/letture sequenziali di più di 4 bytes.

    Nota: Tutto quello cho ho scritto l’ho desunto dal datasheet del PIO quindi fai tu la verifica reale di funzionamento.

    in risposta a: Problemi di connessione a SlimLine #60347
    Sergio Bertana
    Amministratore del forum

    I sistemi SlimLine a partire dalla versione firmware SFW184A910 supportano l’utility Discoverer che ti permette l’impostazione dell’indirizzo IP anche da PC che non appartengono alla stessa classe di rete del sistema (Vedi articolo).

    Ora puoi limitarti al solo cambio di IP oppure puoi aggiornare i sistemi alla nuova architettura XTarget_12 o XUnified (Vedi articolo).

    Se tu apri con LogicLab il tuo progetto .ppjs (Lo puoi usare così o convertirlo nel nuovo formato .plcprj) e potrai collegarti ai vecchi sistemi XTarget_11 perchè già configurato nel progetto. Ma se cerchi di fare un nuovo progetto non troverai più nell’elenco di selezione del sistema i vecchi target e quindi sarai obbligato ad aggiornare il firmware.

    in risposta a: Stringa troncata a 99 caratteri su funzioni stringa #60341
    Sergio Bertana
    Amministratore del forum

    Le funzioni stringa operano sulle stringhe e ritornano l’indirizzo del buffer di memoria che contiene la stringa risultato. Quindi è evidente che DEVONO appoggiare su di un buffer di memoria i dati quindi hanno tutte una dimensione massima. Poi certo su sistemi con molta memoria a disposizione il buffer di appoggio può essere molto grande.

    Nei sistemi SlimLine potendo gestire le operazioni stringa su 3 diverse Tasks concorrenti abbiamo dovuto istanziare 3 diversi buffers di appoggio ed essendo un sistema basato su di un microcontrollore dove la memoria RAM non è molto grande abbiamo posto un limite a queste stringhe.

    Posso essere daccordo con te che il limite di 100 caratteri (99+tappo) è poco ed adesso stiamo vedendo di aumentare il valore, ma non è possibile avere un valore infinito, quindi prima o poi si cozza con la dimensione predefinita.

    Per evitare il limite di dimensione puoi utilizzare funzioni che operano con i puntatori, la CONCAT si può sostituire con la SysVsnprintf, dove passi alla funzione il buffer che contiene il risultato e la sua dimensione.

    in risposta a: Gestione digital I/O su router WL-R220 #60336
    Sergio Bertana
    Amministratore del forum

    Aggiungo il listato di un semplice script per fare lampeggiare l’uscita digitale. Naturalmente prima occorre impostare correttamente l’uscita con i comandi visti precedentemente.

    while true
    do
      echo 1 > /sys/class/gpio/gpio0/value
      sleep 1
      echo 0 > /sys/class/gpio/gpio0/value
      sleep 1
    done

    Salvare il file ad esempio con il nome “Blink” nella cartella “/usr” e poi eseguirlo con il comando “/usr/Blink”.

    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.

Stai visualizzando 15 post - dal 946 a 960 (di 4,273 totali)