Vai al contenuto

Sergio Bertana

Risposte nei forum create

Stai visualizzando 15 post - dal 3,046 a 3,060 (di 4,264 totali)
  • Autore
    Post
  • in risposta a: Test funzionamento FB di gestione PID su simulatore PLC #37968
    Sergio Bertana
    Amministratore del forum

    l controllo Proporzionale-Integrale-Derivativo, è un sistema in retroazione negativa ampiamente impiegato nei sistemi di controllo, la FB PIDMng acquisisce in ingresso un valore da un processo PValue, e lo confronta con un valore di riferimento SetPoint. La differenza, il cosiddetto segnale di errore, viene quindi usata per determinare il valore della variabile di uscita Out, che è la variabile di gestione del processo. Il PID regola l’uscita in base a 3 azioni:

    Azione proporzionale (P): Il valore del segnale di errore.
    Azione integrale (I): I valori passati del segnale di errore.
    Azione derivativa (D): Quanto velocemente il segnale di errore varia.

    Da quanto esposto è evidente che l’uscita può variare tra +/-100%, il segno o polarità dell’uscita sarà positiva se SetPont>PValue o negativa nel caso contrario. Tramite l’ingresso Reverse è possibile invertire la polarità. Ho adattato l’esempio precedente per poterlo simulare con il nuovo ambiente SimuLab, ecco lo screenshot del progetto in simulazione (Download programma).

    Il valore di uscita della FB andrà poi opportunamente scalato per la gestione del processo, può essere ad esempio utilizzato per gestire una modulazione PWM su di un riscaldatore e/o come nel tuo caso una uscita in corrente, ed in questo caso è evidente che i valori inferiori allo 0 sono da considerarsi uguali a 0.

    in risposta a: Connessione SlimLine a router per programmazione a distanza #37966
    Sergio Bertana
    Amministratore del forum

    Internet è basata sul protocollo TCP/IP quindi occorre conoscere l’indirizzo IP pubblico per poter accedere ad un dispositivo su Internet. Nelle reti locali si utilizzano indirizzi IP privati (Classi di indirizzi IPv4, definite nella RFC 1918, riservate alle reti locali), questo allo scopo di ridurre le richieste di indirizzi pubblici.

    In pratica in ogni rete locale si utilizzano indirizzi IP che possono essere replicati all’interno delle varie reti, ma su Internet l’indirizzo deve essere univoco. Solitamente le connessioni Internet sia ADSL che GPRS/UMTS utilizzano indirizzi IP pubblici di tipo dinamico, questo vuol dire che possono cambiare ad ogni connessione. Quindi è evidente che non conoscendo l’indirizzo IP della connessione in Internet non posso raggiungere il dispositivo.

    I servizi come DynDNS permettono di aggirare l’ostacolo, in pratica il dispositivo (Nel caso in router) che si connette ad Internet si registra al servizio DynDNS e gli comunica l’indirizzo IP dinamico assegnato dal gestore alla connessione. Il servizio DynDNS associa un DNS a questo indirizzo IP che sarà quindi raggiungibile definendone il nome (Esempio MioImpianto.DynDNS.org).

    in risposta a: Programmare dispositivi Compact su rete RS485 #37964
    Sergio Bertana
    Amministratore del forum

    A partire dalla versione SFW184A800 del sistema operativo è stata introdotta la funzione SysSpyData che permette se abilitata di spiare da connessione Telnet dati di programma utente, è utilizzata in alcuni FB e funzioni. Nel tuo caso specifico è utilizzata nel FB ModbusMaster per spiare i dati in transito sullo stream di comunicazione. Quindi per eliminare l’errore devi eseguire l’upgrade del sistema operativo ed anche del LogicLab eseguendo il download dell’ultima versione 2.2.0 (Codice  PCK033H200).Per quanto riguarda la compatibilità di comunicazione sulla stessa rete Modbus utilizzando sia il protocollo RTU che OverIP, non dovrebbero esserci problemi, entrambi i protocolli sono binari. Il protocollo OverIP inizia con un campo a 16 bits definito Transaction identifier. proprio per permettere questa coesistenza il FB ModbusMaster invia l’MSB del campo Transaction identifier con il valore 16#00. Siccome questo è il primo dato inviato dopo la pausa di interframe viene considerato dai dispositivi slaves come indirizzo di nodo 0, quindi basterà non avere nella rete nessun dispositivo slave RTU mappato ad indirizzo 0.Chiaramente nel programma SlimLine Master dovrai definire nel FB ModbusMaster il parametro Type:=0 quando comunichi con i dispositivi RTU e Type:=2 quando comunichi con gli SlimLine.

    in risposta a: Programmare dispositivi Compact su rete RS485 #37962
    Sergio Bertana
    Amministratore del forum

    Ma come nel tuo caso dove il nodo master è un modulo SlimLine ARM7 con interfaccia Ethernet, ti consiglio di utilizzare  come protocollo di comunicazione il Modbus OverIP. Dal menù Hardware Setup è possibile impostare tutti i parametri di comunicazione compreso il tipo di Modbus ed il nodo definendo per ogni slave il proprio indirizzo (Screenshot).

    Vediamo di spiegare il perchè di questa configurazione, in questo modo sarà possibile effettuare la programmazione da rete Ethernet semplicemente accedendo allo SlimLine master e senza sconnettere nulla. In pratica il modulo SlimLine ARM7 tramite la FB DataStreamExch diventa un convertitore Ethernet/Seriale (Vedi post) facendo passare i dati dalla rete Ethernet verso la rete RS485. Si sceglie il protocollo OverIP perché dovendo configurare in LogicLab una connessione TCP/IP viene utilizzato automaticamente questo protocollo. Per programmare i vari slaves occorrerà impostare in LogicLab l’indirizzo IP dello SlimLine ARM7 e la porta definita nel programma (Nel mio esempio utilizzo la porta 2000) cambiando indirizzo di nodo in base allo slave da programmare (Screenshot).

    Ecco un progetto in cui evidenzio come realizzare il programma sullo SlimLine ARM7, come si vede dalla stampa del programma, nel program MasterModbus oltre alla comunicazione con i vari nodi slaves viene gestito un socket TCP/IP su porta 2000. Quando viene rilevata una connessione sul socket la comunicazione modbus con i nodi slaves viene abortita e la rete RS485 è connessa al socket (Download programma sorgente).

    in risposta a: Programmare dispositivi Compact su rete RS485 #37961
    Sergio Bertana
    Amministratore del forum

    Con la soluzione vista nel post precedente, per effettuare la programmazione dei nodi slaves puoi scollegare la rete RS485 dal nodo master e collegarla tramite un convertitore USB-Seriale al PC (Il protocollo Modbus accetta un solo master e per programmare i dispositivi il PC diventa master Modbus). Ora configurando LogicLab per una connessione seriale ed impostando il numero di nodo dello slave che vuoi programmare è possibile eseguirne la programmazione direttamente in rete RS485 (Screenshot).

    in risposta a: Programmare dispositivi Compact su rete RS485 #37960
    Sergio Bertana
    Amministratore del forum

    Tutti i dispositivi SlimLine hanno la gestione del protocollo Modbus (RTU, Ascii, TCP/IP) slave nativo. Nel tuo caso dovendo gestire una rete di dispositivi dovrai utilizzare per la gestione del master Modbus sul modulo CPU ARM7 il blocco funzione ModbusMaster passando come stream di I/O la porta seriale RS485 (COM2). Dovendo comunicare con tanti nodi slaves dovrai sequenziare l’esecuzione delle chiamate alla FB indicando per ognuna i parametri necessari (Indirizzo di nodo, indirizzo registri, codice funzione). Se poi per ogni nodo slave devi sia leggere registri che scrivere registri saranno necessarie due chiamate alla FB per ogni nodo slave.E’ evidente che sul nodo master non vi è un indirizzo di nodo, ma i vari slaves andranno configurati con indirizzi di nodo diversi. Per fare questo occorre accedere alla pagina web di configurazione del modulo Compact (Vedi post). Dal menù Hardware Setup è possibile impostare tutti i parametri di comunicazione compreso il tipo di Modbus ed il nodo definendo per ogni slave il proprio indirizzo (Screenshot).

    in risposta a: Gestione pagine web dinamiche da parte dell’utente #37959
    Sergio Bertana
    Amministratore del forum

    Dovendo gestire un sistema real time quale è un PLC, per cercare di avere dei tempi di ritardo il più possibile determinati il server HTTP gestisce l’invio delle pagine in modalità chunked, il contenuto della pagina viene suddiviso in tanti piccoli pezzi ed inviati al client. Questo naturalmente rallenta la visualizzazione della pagina, anche se il tempo di caricamento cui ti fai riferimento mi sembra esagerato, come vedi dal comando TCPIPStats i tempi medi sono molto inferiori al secondo.

    [Admin]> TCPIPStats
    Web page load time:163.790 [55.789 <> 163.790](mSec)

    La visualizzazione Real Time dei dati non è possibile, per visualizare i valori occorre eseguire un refresh della pagina.

    in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37956
    Sergio Bertana
    Amministratore del forum

    Non ho il display e quindi non posso fare prove ma ecco la stampa della funzione IOExpToLCD che dovrebbe scrivere il dato sul display (Download libreria). Come vedi sono inviati sul bus I2C 4 bytes di dati, i due bytes pari contengono i 4 bits del dato a 8 bits ed attivano il segnale di strobe En, i due bytes dispari azzerano il segnale di strobe En. Per inizializzare il display devi seguire le informazioni riportate nella documentazione del controller HD44780.

    L’unico dubbio mi viene sulla prima scrittura della Function set, quando setti interfaccia a 4 bit che il manuale dice che termina con una sola scrittura e non due come tutte le altre.

    Function set Sets to 4-bit operation.
    In this case, operation is handled as 8 bits by initialization, and only this instruction completes with one write.

    Devi fare delle prove, intanto verifica se la chiamata IOExpToLCD(16#00, FALSE, TRUE) attiva il backlight del display.

    in risposta a: Gestire un I/O expander connesso al bus di estensione #37954
    Sergio Bertana
    Amministratore del forum

    Ecco un semplice programma per gestire un PCF8574 (Datasheet) connesso al bus di estensione cosi come si può vedere dalla foto. Gli 8 segnali di I/O dell’I/O expander, 4 (Da P0 a P3) sono stati utilizzati come uscite logiche per gestire 4 LED e 4 (Da P4 a P7) sono stati utilizzati come ingressi logici per acquisire dei tasti.

    Il programma è un semplice FBD (Vedi screeenshot), la funzione SysI2CWrRd gestisce la scrittura e lettura di un byte di dati dall’/IO expander. Per poter utilizzare i pins come inputs occorre settarli a TRUE, ecco quindi che nella creazione del byte WData oltre al comando dei 4 LEDs sono stati settati a TRUE i bit da 4 a 7. In questo modo il byte letto RData contiene nei bits da 4 a 7 lo stato dei 4 tasti. Allego il programma sorgente.

    in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37953
    Sergio Bertana
    Amministratore del forum

    Bene ora sai che indirizzo I2C utilizzare anche se ho delle riserve in quanto dal datasheet si deduce che il modello PCF8574 ha indirizzi da 16#20 a 16#27 mentre è il modello con il suffisso (A) PCF8574A che ha indirizzi da 16#30 a 16#3F (Topic).

    Ora occorre capire se ti è chiara la strada che devi percorrere. Tramite l’I/O expander devi simulare il bus che và verso il display quindi i comandi I2C devono essere impartiti all’I/O expander per fare in modo che sui suoi piedini escano i dati che il display ha bisogno. Per fare questo ti consiglio di realizzare una funzione di scrittura dati display a cui passare il dato (Deve essere su 4 bits). Ora tramite questa funzione potrai inviare i comandi al display seguendo la documentazione del driver HD44780 (Devi settare interfaccia a 4 bit quindi i comandi che sono tutti a 8 bit andranno suddivisi in due comandi da 4 bits).

    in risposta a: Come conoscere l’indirizzo IP del Cloud HMI cMT-SVR #37951
    Sergio Bertana
    Amministratore del forum

    Attualmente vi è un App solo per IoS può essere che in futuro venga rilasciata anche una applicazione Android.
    Correzione luglio 2014, è disponibile su Google Play anche l’app per Android vedi pagina prodotto.

    in risposta a: Visualizzazione valori di temperatura su PC e smartphone #37948
    Sergio Bertana
    Amministratore del forum

    Ricordo che è possibile provare il prodotto STE direttamente su PC o su smartphone collegandosi ad un STE normale presso il sito del fornitore http://ste.hwg.cz. Ecco lo screenshot della connessione da browser come si vede sul mio smartphone.

    Scaricando l’applet per lo smartphone è possibile aggiungere un nuovo device e definendo l’indirizzo del dispositivo in test presso il  fornitore http://ste.hwg.cz è possibile visualizzarlo (Screenshot).

    Credo che il provare il prodotto direttamente On-Line sia il modo migliore per capirne il funzionamento, naturalmente in questo caso il fornitore ha pubblicato su di un indirizzo IP pubblico (Nel suo caso lo ha abbinato ad un DNS pubblico) un STE posizionato presso la sua sede di Praga. Ma chiunque può pubblicare i suoi STE utilizzando un indirizzo IP pubblico anche dinamico utilizzando un servizio di DynDNS.

    in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37947
    Sergio Bertana
    Amministratore del forum

    Navigando su Internet ho trovato una spiegazione su come è realizzato il tuo display (Vedi forum Arduino). In pratica è un dispaly con interfaccia parallela 4/8 bit a cui è stato aggiunto un circuito stampato su cui è montato un I/O expander I2C (Vedi schema elettrico). Non ha nulla a che vedere con il display trattato nel forum in cui è il controller del display ad avere integrata l’interfaccia I2C.

    Per gestire questo display devi utilizzare i comandi I2C di gestione dell’I/O expander (Di cui è possibile reperire il datasheet). 4 degli 8 bit di uscita dell’I/O expander sono stati utilizzati per i dati del bus del display (Deve essere configurata una interfaccia a 4 bit), altri 3 bit gestiscono i segnali En, R/W, Rs del display. L’ultimo bit è utilizzato per il comando del LED di retroilluminazione. Il controller utilizato sul modulo display probabilmente è il classico HD44780 o equivalente di cui è facilissimo trovare documentazione. Ora hai le informazioni per sviluppare una tua FB di gestione, un ottimo banco di prova per apprendere la programmazione IEC61131 in linguaggio ST.

    in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37946
    Sergio Bertana
    Amministratore del forum

    Il fatto che la funzione SysI2CWrRd tornasse sempre TRUE con qualsiasi indirizzo mi è parso indice di un bug, in effetti ho controllato il sistema operativo dello SlimLine ed ho trovato un errore nel ritorno della funzione. Ho provveduto a correggere l’errore nel nuovo sistema operativo SFW184A850. Puoi eseguirne il download dal sito da questa KB dove è spiegato come eseguirne l’upgrade.

    in risposta a: Visualizzazione valori di temperatura su PC e smartphone #37944
    Sergio Bertana
    Amministratore del forum

    Aggiungo questo post per trarre le somme da quanto detto nel precedente, entrambi i prodotti fanno al caso richiesto, ma se non si ha esperienza di configurazione di reti e/o non si può accedere alla configurazione del router ADSL (Perché fornito dal gestore e bloccato), consiglio l’utilizzo del modello Plus.

    L’STE Plus si connette al portale SensDesk da qualsiasi connessione Internet è veramente plug and play e poi tutte le configurazioni possono essere fatte dal portale. Il portale inoltre storicizza i valori di temperatura/umidità permettendo di analizzarli nel tempo.

Stai visualizzando 15 post - dal 3,046 a 3,060 (di 4,264 totali)