Sergio Bertana
Risposte nei forum create
-
AutorePost
-
Sergio Bertana
Amministratore del forumTutti 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).
Gennaio 2, 2014 alle 7:57 am in risposta a: Gestione pagine web dinamiche da parte dell’utente #37959Sergio Bertana
Amministratore del forumDovendo 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.
Dicembre 30, 2013 alle 5:06 pm in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37956Sergio Bertana
Amministratore del forumNon 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.
Dicembre 30, 2013 alle 10:09 am in risposta a: Gestire un I/O expander connesso al bus di estensione #37954Sergio Bertana
Amministratore del forumEcco 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.
Dicembre 30, 2013 alle 7:17 am in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37953Sergio Bertana
Amministratore del forumBene 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).
Dicembre 30, 2013 alle 7:10 am in risposta a: Come conoscere l’indirizzo IP del Cloud HMI cMT-SVR #37951Sergio Bertana
Amministratore del forumAttualmente 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.Dicembre 28, 2013 alle 7:47 am in risposta a: Visualizzazione valori di temperatura su PC e smartphone #37948Sergio Bertana
Amministratore del forumRicordo 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.
Dicembre 27, 2013 alle 8:06 pm in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37947Sergio Bertana
Amministratore del forumNavigando 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.
Dicembre 27, 2013 alle 1:53 pm in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37946Sergio Bertana
Amministratore del forumIl 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.
Dicembre 27, 2013 alle 11:16 am in risposta a: Visualizzazione valori di temperatura su PC e smartphone #37944Sergio Bertana
Amministratore del forumAggiungo 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.
Dicembre 27, 2013 alle 10:47 am in risposta a: Visualizzazione valori di temperatura su PC e smartphone #37943Sergio Bertana
Amministratore del forumIl termometro/igrometro STE fà quello che è richiesto, esistono due modelli STE normale e STE Plus entrambi visibili tra le nostre soluzioni per Monitoraggio ambienti. Vediamo come è possibile utilizzarli per le esigenze richieste. Per quanto riguarda STE normale può gestire 2 sonde di temperatura/umidità, per potervi accedere occorre che la connessione ADSL abbia un IP pubblico e se non si dispone di un IP statico occorre avvalersi di un servizio DynDNS. Fatto questo configurando opportunamente il router (NAT o port forwarding) sarà possibile accedere alla pagina web del dispositivo da Internet, sono anche disponibili applet per gli smartphone. Il modello Plus oltre a quanto detto per il modello normale può gestire anche 2 ingressi digitali che possono essere utilizzati per controllo di stati logici e/o allarmi. Questo modello inoltre si connette al portale SensDesk tramite il quale è possibile creare un dashboard di visualizzazione dei dati (Topic). L’utilizzo di questo prodotto è veramente plug and play e l’invio di email ed SMS è configurabile tramite il portale SensDesk.Per quanto riguarda l’invio di Email il dispositivo STE non supporta la crittografia SSL quindi occorre avvalersi di un servizio che non la richieda (Topic). Mentre per il modello Plus l’invio di email è eseguito dal portale SensDesk e può quindi utilizzare la crittografia. Per il servizio EmailToSMS occorre abbonarsi ad un servizio di questo tipo, esempio Skebby (Topic).
Dicembre 27, 2013 alle 9:53 am in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37941Sergio Bertana
Amministratore del forumLa modalità 4/8 bit si riferisce alla connessione in parallelo, il controller del display può gestire sia la connessione I2C che la connessione su bus, il bus può essere a 4 o 8 bit. Ma quando si utilizza la connessione su I2C il dato è sempre a 8 bit.
Il tool a cui ti riferisci è la possibilità di gestire il display dei sistemi Netlog III da LogicLab, in questo topic ho realizzato una FB apposita per gestire il display su bus I2C potendo definire i messaggi dall’editor di LogicLab. Ma utilizzo sempre un display da 2 righe per 16 caratteri.
Naturalmente puoi modificare il FB per adattarla al tuo display. Ma venendo alle tue prove ho estrapolato un pezzo di codice della FB.
DWrBuffer[0]:=16#80; (* Co:=TRUE, A0:=FALSE *)DWrBuffer[1]:=16#30; (* Default function set *)
Result:=SysI2CWrRd(16#3F,02, ADR(DWrBuffer), 0, 0);S
e lo esegui in un tuo program (Certo devi definire le variabili) puoi verificare il valore di Result, come vedi dal manuale la funzione SysI2CWrRd torna FALSE se errore, in questo modo almeno sappiamo se la connessione I2C e se l’indirizzo 16#3F del display sono corretti. Cosi si inizia a fare un po’ di troubleshooting sul problema.
Dicembre 27, 2013 alle 8:29 am in risposta a: Connessione SlimLine a router per programmazione a distanza #37939Sergio Bertana
Amministratore del forumIntanto parli di router perché è l’oggetto con il quale ti connetti alla ADSL ma nella rete locale viene utilizzato come switch di rete usando le sue 4 porte 10/100. Probabilmente utilizzi il server DHCP interno per assegnare gli indirizzi IP alle apparecchiature connesse al router, visto che hai scelto l’indirizzo IP 192.168.1.122 per lo SlimLine devi verificare che il router assegni indirizzi nella stessa classe 192.168.1.xxx e che il netmask sia 255.255.255.0.
Non mi è chiaro come hai impostato l’indirizzo IP del tuo PC quando lo connetti direttamente allo SlimLine, se lo imposti manualmente e se poi cambi configurazione quando connetti il PC al router. Credo che il tuo problema sia nella configurazione della rete, che indirizzo IP ha il router ? i PC connessi al router hanno il DHCP attivo ? e che indirizzo IP viene a loro assegnato ?
Per quanto riguarda la programmazione a distanza via Internet dai una occhiata a questo topic.
Dicembre 27, 2013 alle 8:06 am in risposta a: Gestire un display alfanumerico con un modulo SlimLine #37938Sergio Bertana
Amministratore del forumPer utilizzare un display connesso al bus di espansione dello SlimLine hai due diverse possibilità, utilizzi la mia libreria che è testata con il display suggerito (Che è da 2 linee da 16 caratteri) oppure ti sviluppi tu il driver di gestione display. Ogni display ha delle piccole differenze nella sequenza di inizializzazione e quello da te utilizzato ha addirittura 4 linee. Ho cercato su Internet il datasheet del display da te utilizzato ma non sono riuscito a reperirlo. Se anziché la libreria utilizzi il programma presente nel primo post di questo topic puoi modificarlo per adattare la sequenza di inizializzazione al tuo display. In modo particolare al CASE 3 dovrai modificare la riga.
DWrBuffer[1]:=16#38; (* 8 bits, 2 lines, 5*7 dots *)
Come vedi configura un display a 2 righe mentre il tuo è a 4, e poi dovrai anche modificare gli indirizzi di DDRAM a cui scrivere. Inoltre sono scritti 32 bytes di dato mentre il display ha 4 righe da 20 caratteri quindi 80 bytes. In pratica usando il linguaggio ST puoi gestire qualsiasi display ma bisogna conoscere le caratteristiche dell’hardware da gestire. Attenzione non puoi utilizzare display che hanno indirizzi I2C compresi tra 16#20 e 16#2F.
Sergio Bertana
Amministratore del forumL’ambiente di simulazione SimuLab integrato in LogicLab (Topic) permette di testare direttamente sul PC i programmi, può essere un valido strumento per impratichirsi nella programmazione. Ricordo che dal nostro sito è possibile scaricare gratuitamente l’ambiente di sviluppo LogicLab (Vai a pagina) con il quale è possibile iniziare a svilippare i proprii programmi. Nel forum si trovano moltissimi esempi in codice sorgente è possibile scaricarli ed utilizzarli per i proprii test.
-
AutorePost