Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 4,006 a 4,020 (di 4,373 totali)
  • Autore
    Post
  • in risposta a: Acquisizione modulo A/D da terminale touch screen #36722
    Sergio Bertana
    Amministratore del forum

    Per acquisire il valore da un sistema SlimLine tramite protocollo Modbus, si rimanda a questo post.

    in risposta a: Strano comportamento function block eTOF allo startup #36720
    Sergio Bertana
    Amministratore del forum

    Ho provato il tuo programma, effettivamente non è un problema tuo ma è un bug del blocco funzione eTOF, ho provveduto a correggerlo, allego il programma con la nuova FB corretta per il download. Allego anche sorgente blocco funzione eTOF così hai una idea di come funziona.

    FUNCTION_BLOCK eTOF

        VAR_INPUT
        IN : BOOL; { DE:”Timer input” }
        PT : UDINT; { DE:”Preset time value (mS)” }
        END_VAR

        VAR_OUTPUT
        Q : BOOL; { DE:”Delayed output” }
        ET : UDINT; { DE:”Executing time (mS)” }
        END_VAR

        VAR_EXTERNAL
        SysTime : UDINT; { DE:”System time (mS)” }
        END_VAR

        VAR
        TimeBf : UDINT; { DE:”Time buffer” }
        END_VAR

        { CODE:ST }
        IF (IN) THEN
            ET:=0; (* Executing time (mS) *)
            Q:=TRUE; (* Delayed output *)
            TimeBf:=SysTime; (* Time buffer *)
            RETURN;
        END_IF;

        IF NOT(Q) THEN RETURN; END_IF;

        ET:=SysTime-TimeBf; (* Executing time (mS) *)
       
        IF (ET >= PT) THEN
            ET:=PT; (* Executing time (mS) *)
            Q:=FALSE; (* Delayed output *)
        END_IF;

    END_FUNCTION_BLOCK

    in risposta a: Standard utilizzato per calcoli in virgola mobile (floating) #36719
    Sergio Bertana
    Amministratore del forum

    Il formato di rappresentazione dei numeri in virgola mobile (floating) delle variabili di tipo REAL nei sistemi Slim Line segue lo standard IEEE 754-1985 in singola precisione a 32 bit (I numeri sono rappresentati su 32 bit, 4 bytes).
     
    Per maggiori informazioni sul formato IEEE 754 si rimanda alla descrizione riportata da Wikipedia.
    Su Internet è possibile trovare ottimi convertitori di numeri in floating.

    in risposta a: Acquisizione modulo A/D da terminale touch screen #36718
    Sergio Bertana
    Amministratore del forum

    Il modulo di acquisizione 8 canali A/D TRP-C68 nella sua configurazione di default utilizza per il ritorno dei dati un formato che prevede un byte in più rispetto allo standard modbus, ed è questa la causa del problema di comunicazione. Per utilizzarlo con dispositivi modbus standard (Terminale operatore) occorre impostare il formato dati di ritorno nel modo a complemento 2  ed occorre definire acquisizione in modo Fast (Bit 5 attivo). Per l’impostazione del modo occorre riferirsi al comando modbus
    Set up the module’s configuration. La stringa di comando è: ID 46 06 00 BD 00 TT 00 DF 00 00 (CRC) BD: Baud-Rate (06: 9600 baud) TT: Analog Input type (08: +/- 10V)DF: Data format (22: Fast, 2’s Complement HEX Format) Quindi su un modulo configurato di default (Indirizzo 01) dovremo inviare il comando: 01 46 06 00 06 00 08 00 22 00 00 EC B8, il modulo risponde con: 01 46 06 00 00 00 00 00 00 00 00 CB 73.
    Il comando di set up, una volta inviato rimane residente nel modulo che continuerà a funzionare in base alla impostazione effettuata.
    Per l’invio delle stringhe modbus al modulo da PC è possibile utilizzare la nostra utility Toolly.

    in risposta a: Acquisizione celle di carico e velocità esecuzione ciclo FOR #36717
    Sergio Bertana
    Amministratore del forum

    Il modulo di espansione I/O analogico che dispone di ingressi diferenziali con acquisizione a 23 bit verrà a breve aggiornato con un nuovo firmware per la lettura anche di strain gauge. Anche se visto l’elevato numero di bits del convetitore,è già possibile acquisire i valori analogici in uscita dal ponte di misura ed acquisire il valore di peso.

    Per quanto riguarda il filtraggio del valore di peso acquisito è possibile realizzare l’algoritmo di filtro da linguaggio ST. Abbiamo alcuni esempi di filtro che possiamo fornire su richiesta.

    Per quanto riguarda il ciclo FOR, 35000 cicli sono parecchi, ma se non è possibile effettuare algoritmi di semplificazione gioco forza è realizzare il numero di cicli richiesto. Ho realizato un semplice programma ST che esegue 40000 cicli con tre somme ed un confronto all’interno, tutto su variabili a 32 bits, ed il tempo di esecuzione è 56 mSec.

    PROGRAM ST

        VAR
        i : UINT; { DE:”Auxiliary counter” }
        AddArray : ARRAY[ 0..3 ] OF UDINT; { DE:”Adding array” }
        END_VAR

        FOR i:=0 TO 40000 DO
            AddArray[0]:=AddArray[0]+1;
            AddArray[1]:=AddArray[1]+1;
            AddArray[2]:=AddArray[2]+1;
            IF (AddArray[2] = AddArray[3]) THEN AddArray[3]:=AddArray[3]+1; END_IF;
        END_FOR;

    END_PROGRAM

    in risposta a: Connessione modem GSM ai moduli Poseidon #36716
    Sergio Bertana
    Amministratore del forum

    Se da utility Flash setup viene attivata la gestione modem (Vedi foto), viene attivato il controllo del modem e gestita la sua inizializzazione. Abilitando il modem Siemens T35I (I nuovi modelli MC52i/MC55i sono perfettamente compatibili) e spiando i comandi inviati al modem e le relative risposte sulla porta seriale (I parametri di comunicazione di default sono 115200, n, 8, 1) avremo:
     
    AT OK
    AT+CFUN=1 OK
    AT+CMEE=2 OK
    AT+CPIN? +CPIN: READY
    OK
    AT+CMGF=0 OK
    AT+CSCA? +CSCA: “+393359609600”,145

     
    Come si vede viene testato se la SIM ha il PIN sbloccato (Deve essere una SIM con codice PIN disabilitato) e viene richiesto il numero del centro messaggi (Nell’esempio TIM).
     
    A questo punto è possibile impostare un numero di telefono a cui inviare l’SMS e agendo sul pulsante Send Test SMS, verrà inviato un messaggio di test.

    in risposta a: Aggiornamento I/O tramite FB o su immagine di processo #36715
    Sergio Bertana
    Amministratore del forum

    Per quanto riguarda la gestione degli I/O analogici occorre utilizzare le apposite FB. E’ possibile inserire le FB indifferentemente in tutte le tasks, ma se non per casi eccezzionali, il mio consiglio è di inserirne la chiamata nella task back.

    E’ possibile anche acquisire un ingresso e/o gestire una uscita su un modulo analogico in una task ed acquisire un’altro ingresso e/o gestire un’altra uscita dallo stesso modulo in un altra task.

    Se un valore analogico in ingresso è utilizzato in più tasks, si acquisisce nella task eseguita piu velocemente e si utilizza il valore acquisito nell’altra task, senza eseguire nuovamente la FB.

    in risposta a: Aggiornamento I/O tramite FB o su immagine di processo #36714
    Sergio Bertana
    Amministratore del forum

    La domanda è interessante e dà modo di chiarire come il sistema Slim Line aggiorna gli I/O.

    Tutti i moduli di I/O logici connessi al modulo CPU sono aggiornati automaticamente (Immagine di processo) e mappati nella tabella %IX e %QX nella task slow. Gli ingressi sono acquisiti prima e le uscite sono gestite dopo, l’esecuzione del programma utente. Quindi l’immagine dello stato di un I/O è valida per tutta l’esecuzione della task slow.

    Per la task back, viene creata una immagine di processo “parallela” che riporta lo stato degli ingressi prima della esecuzione e gestisce le uscite dopo l’esecuzione del programma utente, anche questa “immagine” dello stato di un I/O è valida per tutta l’esecuzione della task back. Attenzione! la gestione della stessa uscita logica sia nella task slow che back crea disallineamenti tra le due tasks ed è da evitare.

    Nella task fast se si vuole gestire gli I/O alla velocità di esecuzione della task, occorre acquisirne il valore e gestirne l’attivazione con le apposite FB. Se si utilizza quelli mappati nella tabella %IX e %QX essi saranno aggiornati comunque alla velocità di esecuzione della task slow. Attenzione! l’esecuzione della task fast interrompe l’esecuzione della task slow, quindi agendo sulle variabili %IX e %QX “sporco” l’immagine di processo della task slow.

    L’utilizzo delle FB di gestione I/O come dicevi tu permette di acquisire e gestire direttamente i moduli di I/O indipendentemente dalla immagine di processo. Attenzione! la gestione di un modulo di uscita và fatta considerando che la task slow ne gestirà l’immagine di processo, quindi potrebbe settare nelle uscite un valore diverso da quello settato dalla FB provocando un lampeggio delle uscite.

    in risposta a: Differenze su connettori RJ11 e RJ12 nei sensori 1-Wire #36713
    Sergio Bertana
    Amministratore del forum

    Intanto facciamo chiarezza sui connettori RJ, la sigla stà per “Registered Jack”.

    Gli standard RJ11 e RJ12 sono strettamente correlati ed in effetti sembrano identici gli uni agli altri, entrambi usano lo stesso connettore a 6 poli. L’unica differenza tra questi due è nel modo in cui sono cablati ed il numero dei fili che vengono utilizzati.

    Sul connettore RJ11 sono previsti due tipi di cablaggio, 6P2C (6 poli 2 conduttori) solo i 2 fili centrali collegati, 6P4C  (6 poli 4 conduttori), (In alcuni casi viene identificato con la sigla RJ14), solo i 4 fili centrali collegati.

    Sul conettore RJ12 è previsto un solo tipo di cablaggio 6P6C (6 poli 6 conduttori) tutti i 6 poli del connettore sono cablati.

    I sensori 1-Wire usano i 4 poli centrali del connettore RJ11 e possono essere utilizzati su tutti i prodotti HwGroup della serie Poseidon. che dispone di una porta a 6 poli RJ12.

    in risposta a: Come realizzare una rete wireless con repeaters WDS #36712
    Sergio Bertana
    Amministratore del forum

    I dispositivi Ubiquiti non sono progettati per l’handover, cioè il passaggio di “cella”, ma configurando tutti gli access point in modalità bridge (Li fai lavorare in layer 2), è possibile riuscire ad ottenere un passaggio di “cella” indolore.

    Probabilmente una telefonata cadrà ma per servizi piu lenti come la navigazione, non dovrebbero esserci problemi.

    in risposta a: Riportare alle impostazioni di default su ATC2000 #36710
    Sergio Bertana
    Amministratore del forum

    Certamente il prodotto può risolvere il suo problema, non è chiaro se i dati in arrivo dal pannello fotovoltaico devono andare in un PC oppure in un altra apparecchiatura.

    Se vanno in un PC basterà installare il software virtual COM per avere una porta seriale virtuale che è la porta del convetitore ATC-2000. Se invece deve ritrovarsi con una linea seriale copia di quella del pannello fotovoltaico dovrà utilizzare due ATC-2000 configurati in modalita Server e Client.

    Attenzione! il passaggio su rete wireless potrebbe rallentare di molto il flusso dei dati, quindi il programma che acquisisce i dati potrebbe generare errori di timeout comunicazione, occorre accertarsi che sia possibile definire i tempi di timeout.

    in risposta a: Connessione pannello operatore con PLC diversi #36708
    Sergio Bertana
    Amministratore del forum

    Si certo, è possibile configurare ogni porta seriale del pannello per comunicare con un certo protocollo indipendentemente dalle altre.

    Quindi è possibile avere un PLC di un vendor con un certo protocollo connesso ad una porta seriale ed un PLC di un’altro vendor con un altro protocollo su un’altra porta seriale e così via. Inoltre si possono connettere altri tipi di PLC sulla interfaccia ethernet.

    Gli oggetti grafici a video saranno poi connessi con le variabili desiderate dei vari PLC senza nessuna limitazione, è anche possibile con il data transfer trasferire ciclicamente variabili da un PLC di un vendor ad un PLC di un’altro vendor con protocolli diversi.

    in risposta a: Telecontrollo via radio per gestione di elettropompa #36706
    Sergio Bertana
    Amministratore del forum

    La soluzione più semplice se non si ha dimestichezza con programmazione web è l’impiego di un terminale operatore touch screen. Con una semplice programmazione grafica ad oggetti è possibile definire  sul pannello pulsanti, lampade, bargraph, strumenti a lancetta virtuali, che riportano lo stato dell’impianto e ne permettono il comando. La versione dotata di porta ethernet dispone di un server VNC, basta definire in un web browser l’indirizzo IP del terminale e viene automaticamente aperto il client VNC in Java che permette di operare virtualmente sul pannello come se ci si trovasse di fronte (Vedi screenshot). Più utenti possono aprire la connessione in contemporanea. Se l’impianto e già realizzato con un PLC basterà connettere il pannello al PLC (Sono supportati i protocolli con i PLC più diffusi), se il pannello è elettromeccanico occorrerà inserire un sistema in grado di acquisire gli ingressi e gestire le uscite (Esempio un sistema SlimLine) e poi collegare il pannello al sistema.

    in risposta a: Progetto di startup per connessione HMI a SlimLine #36704
    Sergio Bertana
    Amministratore del forum

    Aggiungo una nota al post precedente, come si nota dal progetto dimostrativo, le variabili presettabili da terminale sono allocate nello SlimLine a partire da DB100.2048 (Indirizzo 41024 su terminale).

    Infatti da indirizzo 2048 l’area della DB100 è tamponata, questo permette di impostare i valori da terminale e di mantenere il valore impostato anche in assenza di alimentazione.  Altra nota importante, l’architettura ARM dello SlimLine, richiede che:

    Le variabili WORD devono essere allocate ad indirizzi divisibili per 2, quindi 100.16 (40008), 100.18 (40009), ecc.

    Le variabili DWORD e REAL devono essere allocate ad indirizzi divisibili per 4, quindi 100.16 (40008),  100.20 (40010), ecc.

    in risposta a: Progetto di startup per connessione HMI a SlimLine #36703
    Sergio Bertana
    Amministratore del forum

    Collegare un pannello touch screen allo SlimLine è semplicissimo, il protocollo modbus gestito da sistema operativo. Basta definire nel programma del pannello un nuovo dispositivo. Se la connessione è in seriale un dispositivo di tipo MODBUS RTU con parametri di comunicazione 115200, e, 8, nodo modbus 1. Se la connessione è in ethernet un dispositivo di tipo MODBUS TCP/IP (Ethernet) definendo l’indirizzo IP dello SlimLine e la porta 502 nodo modbus 1.

    Nel programma HMI basterà inserire gli oggetti grafici desiderati indicando la variabile SlimLine a cui l’oggetto fà riferimento. Ricordo che da modbus è possibile accedere alla DB100 dello SlimLine, gli indirizzi da definire negli oggetti iniziano da 40000.

    Una variabile BOOL allocata nella DB100.16, nell’oggetto sul terminale andrà definita con indirizzo tipo 0x address 40016 (Non è possibile accedere a variabili BOOL allocate prima dell’indirizzo 100.16).

    Una variabile WORD allocata nella DB100.16, nell’oggetto sul terminale andrà definita con indirizzo tipo 3x address 40008 (Gli indirizzi di allocazione delle WORD devono essere divisi per 2).

    Allego per il download un il progetto HMIStartUp con un programma SlimLine ed un programma HMI che gestisce variabili BOOL e DWORD. Ricordo che il software EasyBuilder permette la completa simulazione del funzionamento del terminale a PC, quindi è possibile aprire il progetto, collegare lo SlimLine in seriale e/o Ethernet con il PC e testare il funzionamento, oltre a poter fare test modificando il programma.

    Nel progetto HMI sono state definite le Tags in formato mnemonico, consiglio di utilizzare sempre il formato mnemonico per una più facile manutenzione del programma in caso di variazione allocazione variabili sullo SlimLine.

Stai visualizzando 15 post - dal 4,006 a 4,020 (di 4,373 totali)