Contributors’ blog

Contributors’ blog
GIE 25 Maggio 2003 - La casa va in Internet - Intellisystem Technologies

La casa va in Internet

Un web server integrabile per applicazioni “Home Building Automation” basate sul protocollo TCP/IP

Un web server embedded è un web server progettato per lavorare all’interno di un sistema a microprocessore caratterizzato da risorse di calcolo limitate. Aggiungendo ad un tale dispositivo la programmazione tipica del Web unitamente alle proprietà di un linguaggio di programmazione ad alto livello quale il Java si ottengono interfacce di qualità, amichevoli (user friendly), a basso costo, cross platform (multi piattaforma), e network ready (pronte per lavorare in rete). Intellisystem Technologies presenta un nuovo dispositivo Recs 101, nato per far fronte alle esigenze di sviluppatori che intendono gestire applicazioni professionali per la Home Building Automation in ambiente TCP/IP in maniera veloce, facile e sicura.

Il browser web è diventato uno standard per lo sviluppo di interfacce utente di numerose applicazioni

Il comfort nell’abitazione è parte intrinseca determinante del benessere psichico di ognuno. Il continuo adeguamento del modo di vivere alle nuove forme di comportamento sociale impone il trasferimento delle nuove abitudini alla propria abitazione come elemento indispensabile di continuità dell’aspetto comportamentale. La continua evoluzione delle tecnologie basate sui sistemi digitali ha fortemente modificato le tecniche e metodologie usate nei sistemi di controllo dedicati alla Home Building Automation. In particolare oggi la richiesta di processi distribuiti richiede sistemi intelligenti, dispositivi di controllo e sistemi di misura capaci di comunicare attraverso la rete. Un importante requisito di questi sistemi è l’esigenza di ridurre le connessioni, il che si traduce nel semplificare la gestione dei sistemi riducendone le problematiche inerenti alla manutenzione. D’altro canto poiché il World Wide Web (la “ragnatela mondiale”, o Web) è in continua evoluzione, per molte applicazioni commerciali e scientifiche il browser web è diventato uno standard per lo sviluppo di interfacce utente di numerose applicazioni. Questo perché i browser web sono capaci di fornire interfacce GUI a varie applicazioni client/server senza il bisogno di andare ad implementare dei software per il lato client. La soluzione migliore a questo tipo di esigenze è sicuramente data dall’utilizzo di un web server embedded connesso ad una infra struttura di rete al fine di fornire una interfaccia utente basata sull’utilizzo dell’ormai noto linguaggio HTML unitamente ad altre caratteristiche comuni ai web browser. Se si pensa di aggiungere alle funzionalità ormai consolidate di un web server embedded la capacità di poter gestire applicazioni Java ecco che questi sistemi aprono le frontiere a capacità inesplorate, che li rendono capaci di eseguire i più variegati compiti quali, ad esempio, quelli di controllo remoto, supervisione e gestione di sistemi elettronici (figura 1).

Fig. 1 - Architettura di un web server embedded

Fig. 1 – Architettura di un web server embedded

L’implementazione delle funzionalità Java all’interno di un tale dispositivo è particolarmente indicato per questo approccio permettendo l’uso di una strategia di controllo indipendente dalla piattaforma hardware del sistema in cui viene gestita. Questa metodologia è stata da tempo adoperata nelle applicazioni Internet dove non sono richiesti stringenti vincoli di real-time. L’uso del linguaggio di programmazione Java per le applicazioni di controllo remoto fornisce il vantaggio di integrare sistemi di uso generale con Internet permettendone la supervisione ed il controllo. Il nuovo concetto che intendiamo introdurre si basa sull’esecuzione di Applet Java (piccoli programmi aggiuntivi) per eseguire operazioni di controllo o di monitoraggio di dispositivi remoti. In questo tipo di sistemi il controllo distribuito si ottiene mediante il trasferimento di pagine HTML e l’esecuzione di applet Java (figura 2).

Fig. 2 - Applet Java per eseguire operazioni di controllo o di monitoraggio di dispositivi remoti

Fig. 2 – Applet Java per eseguire operazioni di controllo o di monitoraggio di dispositivi remoti

I vantaggi dell’utilizzo di Java possono essere brevemente riassunti nei seguenti punti: – indipendenza dalla piattaforma: diversamente dai comuni compilatori che producono codice per CPU specifiche, il Java produce un codice per una CPU virtuale. Al fine di rimanere indipendente da specifiche piattaforme hardware il sistema runtime di Java fornisce un’interfaccia universale per qualsiasi applicazione che si desidera sviluppare denominata JVM (Java Virtual Machine) – Potenza: Java racchiude in sé nuove caratteristiche che includono la gestione dei database, l’invocazione dei metodi remoti ed altre caratteristiche inerenti la gestione della sicurezza – Networking: Java nasce come linguaggio di programmazione distribuito, il che si traduce nel fatto che la sua progettazione includeva sin dall’inizio la gestione di particolari funzioni inerenti il networking quali, ad esempio, il TCP/IP, l’HTTP, l’FTP – Efficienza: le moderne JVM, grazie all’utilizzo della tecnologia Just in Time (JIT) compiler, le performance d’esecuzione delle applet sono state fortemente migliorate. Frutto di anni di ricerca e sperimentazione da parte di Intellisystem Technologies hanno portato alla realizzazione di Recs 101 (figura 3).

Fig. 3 - RECS 101

Fig. 3 – Il sistema RECS 101

Recs 101 è un dispositivo di facile utilizzo a prestazioni elevate, ideale per applicazioni di controllo remoto professionale. Una volta collegato ad una rete Ethernet, Recs 101 mette a disposizione dell’utente 32 canali digitali di cui 16 di Input e 16 di Output. Facile da installare e configurare, permette di sviluppare un’applicazione di controllo remoto in pochi e semplici passaggi. Supportato da qualsiasi browser internet quale Internet Explorer o Netscape permette di gestire totalmente da remoto qualsiasi dispositivo da controllare. La figura 4 mostra lo schema architetturale semplificato di un possibile scenario d’applicazione di Recs 101.

Fig. 5 - Scenario di applicazione del dispositivo RECS 101

Fig. 4 – Scenario di applicazione del dispositivo RECS 101

L’architettura presentata permette la gestione di problematiche tipiche dei sistemi di controllo quali, ad esempio: acquisizione di segnali, azioni di controllo per mezzo di attuatori, l’elaborazione e la presentazione delle informazioni acquisite o manipolate. La tabella 1 riporta le principali caratteristiche e specifiche del sistema proposto.

RECS 101 Tab. 1 - Intellisystem Technologies

Recs 101 integra al suo interno un network processor dotato di interfaccia di rete Ethernet per connettersi direttamente a qualsiasi rete locale sia essa Internet sia Intranet. Ciò permette agli integratori/ sviluppatori di sistemi e alle aziende produttrici di connettere i loro dispositivi direttamente ad Internet attraverso una rete Lan e, di conseguenza, di gestire da remoto il controllo totale dei loro dispositivi attraverso interfacce grafiche utente personalizzabili, accessibili mediante i comuni browser. Il web server integrato in Recs 101 è capace di gestire fino a 512k di documenti ed applicazioni web: tali risorse sono precaricate all’interno della memoria flash del dispositivo. La fig. 7 è un esempio di una pagina web gestita da Recs 101 che può essere personalizzata per fornire informazioni statiche sul dispositivo quali, ad esempio, immagini, video, testi, file eccetera. La caratteristica che rende unico tale dispositivo consiste nella capacità di poter usufruire del codice Java per la gestione dell’interfaccia relativa al controllo delle porte di I/O. Tale caratteristica permette di poter gestire l’interfaccia utente tramite un’Applet Java parametrica: in questo modo l’utente finale può sviluppare la propria applicazione di controllo in modo molto veloce e sicuro senza dover essere in grado di programmare in Java.

Fig. 8 - Esempio di una possibile interfaccia GUI implementata in RECS 101

Fig. 5 – Esempio di una possibile interfaccia GUI implementata in RECS 101

La figura 5 riassume quanto detto in precedenza, ovvero partendo dalla home page del sito web contenuto in Recs 101 si accede all’interfaccia utente personalizzata che tramite un’applet di controllo interviene sulle porte d’input e di output per la gestione dell’hardware che si intende controllare. Recs 101 è un dispositivo totalmente personalizzabile. Viene fornito con tutto il software necessario allo sviluppatore per poter sviluppare rapidissimamente la propria applicazione in maniera facile e sicura. Il software in dotazione contiene un’Applet di controllo che può essere personalizzata mediante i parametri riportati in tabella 2.

TABELLA 2 - Parametri di configurazione dell'Applet per la gestione avanzata di RECS 101

TABELLA 2 – Parametri di configurazione dell’Applet per la gestione avanzata di RECS 101

Facilmente integrabile con qualsiasi altro sistema offre una soluzione funzionale ed efficiente, per il telecontrollo distribuito. Ad esempio, integrando Recs 101 con Recs GSM I/O (modulo GSM prodotto da Intellisystem Technologies provvisto di due ingressi e due uscite digitali gestibili tramite SMS) è possibile integrare tutte le tipiche funzionalità di gestione di sistemi per la Home Building Automation tramite Internet ed al tempo stesso tramite SMS, fornendo all’utente una piattaforma di controllo remoto multifunzionale non necessariamente legata ad un’infrastruttura di rete (figura 6).

Fig. 10 - Esempio di una possibile integrazione di RECS 101 con RECS GSM I/O in un sistema domotico

Fig. 6 – Esempio di una possibile integrazione di RECS 101 con RECS GSM I/O in un sistema Home Building Automation

Recs 101 trova ampio spazio nelle applicazioni di Home Building Automation legate ai moderni sistemi di videosorveglianza rappresentando un valido strumento per integrare tutte le funzionalità tipiche di un sistema di controllo remoto ai normali sistemi di monitoraggio video specie quelli che si basano sulla tecnologia TCP/IP (figura 7).

Fig. 11 - Esempio di una possibile integrazione di RECS 101 con un sistema di videosorveglianza

Fig. 7 – Esempio di una possibile integrazione di RECS 101 con un sistema di videosorveglianza

Con particolare riferimento al mondo del videocontrollo over IP, si intuisce facilmente che le soluzioni proposte da Intellisystem Technologies non hanno limiti in termini di funzionalità ed applicazioni ad hoc per tutte le esigenze dei più disparati utenti. Ad esempio integrando i sistemi Recs con le ben note telecamere AXIS (di cui Intellisystem Technologies è partner tecnologico) si aprono le frontiere per un controllo totale di sistemi remoti, che nel caso della Home Building Automation si traducono in una presenza virtuale dell’individuo all’interno della propria dimora.

L’utente finale può sviluppare la propria applicazione di controllo in modo molto veloce e sicuro

Sfruttando la combinazione vincente di tali sistemi si ottiene uno strumento completo capace di gestire immagini e di rilevare lo stato di dispositivi esterni, quali sensori e di manovrarne altri quali ad esempio attuatori. In conclusione Recs 101, essendo un dispositivo totalmente flessibile nelle sue applicazioni, si presta come valido strumento per la reingegnerizzazione di macchinari a controllo semi-automatico, fornendo la possibilità di telecontrollare a distanza tramite Internet sistemi che sino ad oggi non prevedevano tale funzionalità.

__________

A cura di Cristian Randieri. Pubblicato sulla rivista Il Giornale dell’Installatore Elettrico N. 9 – 25 Maggio 2003.

Per scaricare l’articolo pubblicato sulla rivista, seguire il link riportato di seguito http://www.intellisystem.it/portfolio/gie-maggio-2003/

FE Marzo-Aprile 2003 – RECS 101 - Intellisystem Technologies

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 2° Parte

In questa seconda parte della presentazione del dispositivo RECS 101 sono affrontati i seguenti argomenti: le problematiche inerenti la configurazione dei parametri di rete per il corretto utilizzo del dispositivo all’interno di una rete Intranet/Internet; Come effettuare le operazioni di upload dell’interfaccia GUI personalizzata all’interno della memoria flash del dispositivo; In conclusione vengono presentati due possibili circuiti d’interfaccia che permettono allo sviluppatore di implementare in modo sicuro un proprio hardware per interfacciare RECS 101 a qualsiasi dispositivo/impianto da controllare via Internet.  

CONFIGURAZIONE DEI PARAMETRI DI RETE

Prima di poter utilizzare RECS 101 occorre configurare correttamente i suoi  parametri di rete utilizzando il programma shareware di utilità RECS Utility, scaricabile al seguente indirizzo http://www.intellisystem.it/recs/ download.htm. RECS Utility è stato progettato e realizzato per lavorare su piattaforma Microsoft Windows sui sistemi operativi delle versioni 95/98/ME/NT/2000 e XP Home/Professional. Una volta installato ed eseguito RECS Utility, verrà visualizzata la maschera iniziale del programma che permette di impostare l’indirizzo IP di RECS 101 (fig. 1) Prima di configurare l’indirizzo IP da assegnare al dispositivo è necessario avere informazioni sulla struttura degli indirizzi IP della rete in cui si andrà ad installare RECS 101. Pertanto occorrerà conoscere: • Un indirizzo IP non utilizzato all’interno della struttura; • La Subnet Mask della struttura. RECS 101 è preconfigurato in fase di testing con le seguenti impostazioni di fabbrica: Indirizzo IP: 172.16.10.103 Subnet Mask: 255.255.255.0 Per impostare o cambiare l’indirizzo IP di RECS 101 occorre prima reinizializzare l’indirizzo IP al valore di default 0.0.0.0 (operazione che verrà descritta di seguito). Inizializzare un nuovo indirizzo IP per RECS 101 implica la rimozione dell’associazione IP/MAC memorizzata all’interno del PC che s’intende adoperare. Tale informazione è memorizzata nella cache del protocollo ARP. Tramite il comando mostrato di seguito è possibile visualizzare tutte le associazioni IP/MAC presenti nel PC (ovviamente gli indirizzi IP riportati nell’esempio sono puramente fittizi): La rimozione di tale associazione va fatta utilizzando il comando ARP nel modo seguente; >> arp –d 192.168.1.15 Adesso si è pronti a reinizializzare l’indirizzo IP all’interno del dispositivo RECS 101. Selezionando la finestra “Configurazione indirizzo IP” e premendo il pulsante “Cancella indirizzo IP” sarà visualizzata la finestra riportata in fig. 2. Dopo aver correttamente impostato l’indirizzo IP che si vuole cancellare, automaticamente alla pressione del pulsante “OK” l’indirizzo IP di RECS 101 sarà impostato al suo valore di default 0.0.0.0. Nel caso in cui non si conosce a priori il vecchio indirizzo IP del dispositivo, si può adoperare la funzione di ricerca indirizzo IP tramite la pressione del pulsante “Ricerca indirizzo IP”. Sarà visualizzata la finestra riportata in fig. 3. Inserendo l’indirizzo MAC riportato nel pannello posteriore del dispositivo (fig.4) e pre- mendo il pulsante “Trova” dopo qualche istante il software restituirà l’indirizzo IP correntemente impostato nel dispositivo RECS 101. Occorre sottolineare che la ricerca non avrà esito positivo se la Subnet Mask del PC adoperato per la configurazione è diversa da quella impostata all’interno del dispositivo RECS 101 che per default è 255.255.255.0. Verificare anche l’indirizzo IP del PC da cui accedete a RECS 101 facendo in modo che l’indirizzo del PC ricada all’interno della stessa Subnet Mask di RECS 101.Ad esempio, supponendo che RECS 101 sia configurato nel modo seguente: Indirizzo IP: 172.16.10.103 Subnet Mask: 255.255.255.0 il PC con il quale si vuole accedere a RECS 101 dovrà avere la seguente configurazione: Indirizzo IP: 172.16.10.xxx Subnet Mask: 255.255.255.0 Dove “xxx” sta per qualsiasi numero compreso tra 0 e 255. Per modificare la configurazione dell’indirizzo IP e della Subnet Mask del PC occorre adoperare l’esatta funzionalità di Windows (fig. 5). Una volta rimosso con successo il vecchio indirizzo IP precedentemente assegnato a RECS 101 si è pronti per inserire in nuovo indirizzo IP selezionando la finestra “Configurazione indirizzo IP” (fig. 1). Se nella tabella “DataBase BootP” appare la vecchia configurazione del dispositivo, occorre premere il pulsante “Modifica configurazione” altrimenti premere il pulsante “Aggiungi nuovo dispositivo”: si aprirà la finestra riportata in fig. 6. Tale finestra presenterà i valori in precedenza impostati nel caso in cui il dispositivo sia già presente nel DataBase BootP. Viceversa conterrà i campi vuoti. La fig. 6 riporta l’esempio di quest’ultimo caso. Modificare il campo “Indirizzo IP” col nuovo indirizzo IP, il campo “Indirizzo MAC” (l’indirizzo MAC del vostro dispositivo è situato nel pannello posteriore, fig. 4), il campo “Gateway” (se esiste un Gateway nella vostra rete) ed in fine il campo “Subnet Mask” (fig. 6). Premendo il tasto “Aggiungi” le informazioni editate saranno memorizzate nel database degli indirizzi IP associato a RECS Utility. Per completare la configurazione dell’indirizzo IP memorizzato occorre lanciare le funzionalità del server BootP premendo il pulsante “Avvio BootP” della finestra “Configurazione indirizzo IP” (fig. 1). Attendere qualche istante sino a quando lo stato del dispositivo evidenzia la scritta “Invio della replica BootP all’indirizzo IP “ [ x x x . x x x . x x x . x x x ] ” ( d o v e “xxx.xxx.xxx.xxx” sarà il nuovo indirizzo IP impostato). Attendere sino a quando il led Tx non finisca di lampeggiare, quindi premere il pulsante “Arresto BootP” (fig. 1). A questo punto l’indirizzo IP di RECS 101 è stato cambiato. Se l’inizializzazione dell’indirizzo IP è avvenuta con successo, il Led TX del dispositivo lampeggerà in continuazione. Per verificarne il corretto funzionamento utilizzare il comando Ping da DOS. Ad esempio, supponendo che il nuovo indirizzo sia 172.16.10.105, se il comando Ping risponde come di seguito riportato, allora la modifica dell’indirizzo IP ha avuto successo. In caso contrario ripetere tutto il procedimento descritto. Potrebbe capitare il caso che il dispositivo RECS 101 sia settato con un indirizzo IP non compatibile con la rete nella quale RECS 101 è stato installato. Ciò si traduce nel fatto che RECS 101 non può essere indirizzato e di conseguenza non è possibile cambiare il suo indirizzo IP. In questo caso l’unica soluzione praticabile è quella di sconnettere RECS 101 dalla rete Lan nella quale era installato e connetterlo direttamente ad un PC dotato d’interfaccia Ethernet mediante un cavo di rete incrociato. Le operazioni da compiere sono riassunte nei seguenti punti: 1.Scollegare RECS 101 dalla rete Lan. 2.Collegare RECS 101 ad un PC tramite un cavo di rete incrociato. Le figure 7 e 8 mostrano la differenza di connessione tra un cavo di rete dritto ed uno incrociato. RECS 101 può essere collegato direttamente ad internet e quindi rendere le sue applicazioni visibili da tutte le parti del mondo se è configurato con un indirizzo IP statico. La fig. 9 ne rappresenta una possibile connessione. In sintesi ciò che occorre è: 1.Un indirizzo IP statico, ovvero un indirizzo IP che abbia visibilità su Internet. 2.Una connessione diretta ad internet ad esempio ADSL o una rete LAN perennemente connessa. 3.Condividere la connessione ad internet tramite un Router e/o un Hub/Switch. 4.Collegare RECS 101 alla rete dopo averlo configurato con il relativo indirizzo IP statico.

UPLOAD DELL’INTERFACCIA UTENTE PERSONALIZZATA

Per sfruttare al massimo le potenzialità di RECS 101, occorre personalizzare l’interfaccia grafica del dispositivo agendo e/o modificando i files forniti dal costruttore. Definita l’interfaccia utente per l’applicazione che s’intende progettare non resta che fare l’upload all’interno della memoria flash di RECS 101. Si ricorda che la memoria totale a disposizione dell’utente è di 500 KByte, con supporto fino a 256 differenti file. Poiché RECS 101 utilizza un file system proprietario, i file relativi all’interfaccia web sono gestiti mediante una tabella interna di tipo “file index”. Per trasferire i files all’interno di RECS 101 è necessario procedere prima alla creazione di un file di progetto che rappresenta l’immagine dei files che dovranno essere memorizzati all’interno della memoria flash. Il file di progetto, che presenta un’estensione *.REC, può essere unicamente gestito dal web server integrato in RECS 101. RECS Utility contiene al suo interno delle funzionalità dedicate alla costruzione e all’upload di questo tipo di file. Per procedere all’upload dell’interfaccia utente personalizzata occorre seguire i seguenti passi: 1) Creare e/o modificare le pagine web personalizzate con qualsiasi software di web-publishing. 2) Impostare i parametri dell’applet in funzione delle esigenze di progetto. 3) Utilizzare il software RECS Utility per creare il file di progetto *.REC. 4) Fare l’upload del file di progetto all’interno di RECS 101. Di seguito è presentato un esempio illustrativo atto a descrivere l’operazione di upload dell’interfaccia personalizzata presente nel CD-Rom fornito in dotazione situata all’interno della cartella “CP” (il lettore può scaricare tale software direttamente da questo indirizzo: http://www.intellisystem.it/recs/ downloads/CP.zip). Poiché l’upload del file di progetto avviene mediante il protocollo UDP (protocollo che non prevede la conferma della ricezione dei pacchetti inviati) il lettore, in realtà, pur non avendo a disposizione RECS 101 può emulare tale funzionamento anche se il dispositivo non è fisicamente connesso alla rete. Le operazioni da compiere per procedere all’operazione di upload sono le seguenti: 1) Dopo aver lanciato RECS Utility selezionare l’opzione “Web Upload” come riportato in fig. 10. 2) Premere il pulsante “Seleziona Files di progetto” e selezionare la cartella contenente i files (Ad esempio la cartella Control Panel “CP” contenuta all’interno del CD-Rom fornito in dotazione), premere “ok” per proseguire (fig. 11). 3) Inserire quindi il nome da assegnare al file di progetto e premere il pulsante “Salva” (fig. 12). 4) Premere il pulsante “Upload” per trasferire il file immagine all’interno di RECS 101. Questa procedura attiverà una barra di progressione che indica lo stato d’avanzamento dell’operazione di upload in corso. Al termine di tale fase sarà visualizzato un messaggio che comunica la chiusura dell’operazione. Nel caso si volessero programmare più RECS 101 con la stessa interfaccia utente e quindi col medesimo indirizzo IP si possono saltare le fasi descritte nei punti 1-4 a patto di possedere il file di progetto *.REC. In questo caso premere il pulsante “Seleziona File di progetto” (fig. 10), selezionare il file di progetto da trasferire in RECS 101 (fig. 13), quindi procedere con l’operazione di upload premendo il pulsante “Upload” (fig. 10).

IMPLEMENTAZIONE DELLE INTERFACCE HARDWARE SULLE PORTE DI INPUT/OUTPUT

RECS 101 si interfaccia con l’impianto o dispositivo da controllare mediante due porte a 16 bit digitali, rispettivamente, una di Input ed un’altra di Output poste sul frontalino posteriore. La fig. 14 riporta la piedinatura dei connettori Cannon a 25 poli che ospitano tali porte. Il progettista che intende interfacciare RECS 101 deve predisporre delle interfacce che consentono il corretto rispetto delle caratteristiche elettroniche della logica TTL implementata nelle due porte. Di seguito distingueremo due tipi d’interfacce rispettivamente una per la porta di Input ed un’altra per la porta di Output. UNITÀ D’INPUT Poiché l’interfaccia di I/O di RECS 101 lavora con livelli logici TTL il dispositivo da interfacciare alla porta d’ingresso deve presentare anch’esso un interfaccia di tipo TTL. I 16 bit d’ingresso per l’applicazione fornita sono stati progettati per funzionare in logica TTL “Low Active”. Non sempre però i dispositivi hanno delle porte TTL e perciò, in questo caso, è opportuno adoperare un circuito che interponendosi tra RECS 101 e il dispositivo da interfacciare possa connettere i due dispositivi senza che essi corrano il rischio di danneggiarsi. Il circuito suggerito utilizza dei fotoaccopiatori che, garantendo un totale isolamento tra i due dispositivi, ne assicurano il corretto funzionamento. La fig. 15 mostra una possibile realizzazione del circuito proposto.

UNITÀ D’OUTPUT

RECS 101 è dotato 16 uscite che lavorano con livelli logici TTL progettati per funzionare in logica “High Active”. Affinché RECS 101 possa essere correttamente interfacciato con un altro dispositivo che lavora con tensioni diverse si consiglia l’uso di fotaccopiatori che garantendo un totale isolamento tra i due dispositivi ne assicurano il corretto funzionamento. La fig. 16 mostra lo schema elettrico di un circuito d’esempio per la realizzazione di un’interfaccia d’uscita da collegare a RECS 101. Tale circuito si presta benissimo per tutte quelle applicazioni nelle quali è necessario effettuare un controllo di tipo ON/OFF di carichi di qualunque tipo. Poiché il circuito contiene dei relay assieme agli optoisolatori si ottiene un circuito doppiamente isolato sia galvanicamente (per mezzo dei realy) che otticamente (mediante l’uso di fotoaccoppiatori). Questa proprietà è da non sottovalutare per prevenire possibili rischi di danneggiamento di RECS 101 o peggio ancora di tutti i sistemi presenti nella rete a cui è connesso RECS 101: in questo modo si è sicuri che per qualsiasi operazione errata compiuta a valle dell’interfaccia il danno è comunque confinato al danneggiamento dell’interfaccia stessa.

DEVELOPER’S BOARD

Su richiesta dell’utente, Intellisystem Technologies è in grado di fornire una developer’s board per il dispositivo RECS 101 (fig. 17). La developer’s board di RECS 101 è una scheda che integra al suo interno 16 switches per la simulazione dei 16 ingressi digitali di RECS 101 e 16 display a LED per le relative 16 uscite. Gli switch relativi ai 16 ingressi sono stati progettati per lavorare secondo logica TTL “Low Active”, e i 16 display relativi all’output sono stati progettati per lavorare secondo logica TTL “High Active” compatibilmente alle specifiche di RECS 101. Le tabelle 1 e 2 riportate di segui- to riassumono quanto detto in precedenza. La RECS developer’s board non necessita di alimentazione esterna poiché gli viene fornita direttamente da RECS 101 tramite i due connettori relativi all’IO. Mediante la RECS developer’s board è possibile progettare e sviluppare applicazioni senza aver a disposizione l’eventuale impianto da controllare. Dotata di due connettori ausiliari la RECS developer’s board permette allo sviluppatore di estendere le sue funzionalità ad altri dispositivi elettronici in modo da poter effettuare velocemente le comuni operazioni di debugging delle applicazioni. La fig. 18 riporta la piedinatura dei connettori ausiliari descritti in precedenza.

Nel prossimo numero si discuterà dei seguenti argomenti riguardanti RECS 101: 1) Protocollo di comunicazione implementato in RECS 101. 2) Monitor dello stato di I/O. 3) Controllo dei comandi di Output. 4) Comunicare con RECS 101: L’interfaccia Socket in C. 5) Comunicare con RECS 101: L’interfaccia Socket in Java.

_________

A cura di Cristian Randieri. Articolo pubblicato sulla rivista Fare Elettronica N. 213/214 – Marzo/Aprile 2003.

Per scaricare l’articolo pubblicato sulla rivista, seguire il link riportato di seguito http://www.intellisystem.it/portfolio/fe-mar-apr-2003-recs-101-2-parte/

 _____________

Link consigliati per la lettura completa di tutti gli articoli

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 1° Parte  

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 3° Parte

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 4° parte 

FE Febbraio 2003 - RECS 101 - Intellisystem Technologies

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 1° Parte

Un web server embedded è un web server gestito all’interno di un sistema embedded caratterizzato da risorse di calcolo limitate capace di gestire documenti ed applicazioni web. L’integrazione di un web server all’interno di un dispositivo di rete fornisce un’interfaccia utente grafica costruita tramite il linguaggio HTML. L’applicazione della tecnologia Web ad un sistema embedded permette la creazione di interfacce utente che sono user friendly, a basso costo, cross platform, e network ready. Aggiungendo alle potenzialità di un web server embedded la tecnologia Java si ottiene un sistema capace di gestire vere e proprie applicazioni che possono essere programmate con un linguaggio ad alto livello quale il Java. Scopo di questo articolo è quello di presentare una soluzione web server embedded capace di gestire la Java Virtual Machine. Viene presentata l’architettura di un web server embedded che può fornire un’interfaccia API (Application Program Interface) semplice e al tempo stesso potente. In particolare si discute la progettazione e l’implementazione di RECS 101, che è un web server embedded (prodotto da Intellisystem Technologies) sviluppato al fine di poter gestire piccole applicazioni di controllo remoto. In conclusione vengono presentate alcune applicazioni pratiche del dispositivo, che prevedono la realizzazione di circuiti elettronici d’interfaccia, uno studio riguardante dei test di performance di RECS 101 ed un’analisi delle problematiche di protezione da attacchi alla sicurezza da parte di hacker.  

I SISTEMI WEB SERVER EMBEDDED ED INTERNET

Il World Wide Web (o Web) è in continua evoluzione. Appare chiaro ed evidente che tale tecnologia assume delle nuove funzionalità che vanno molto oltre la semplice visualizzazione delle pagine Web. Per molte applicazioni commerciali e scientifiche il browser web è diventato uno standard per lo sviluppo di interfacce utente di numerose applicazioni. Questo perché i browsers web sono capaci di fornire interfacce GUI a varie applicazioni client/server senza il bisogno di andare ad implementare del software per il lato client. Negli ultimi anni è sempre più cresciuto il numero di tecnologie web che possono essere applicate ad elementi gestibili dalla rete. Come ben noto la maggioranza delle reti di computer viene gestita mediante il protocollo TCP/IP. In realtà TCP e IP sono due protocolli utilizzati per interconnettere le reti. TCP sta per Transport Control Protocol e IP sta per Internet Protocol. Per essere più precisi quando si parla di protocollo TCP/IP si intende una suite di protocolli che è stata promossa come standard di Internet dall’Unites States Secretary of Defence. Obiettivo della suite di protocolli TCP/IP è quello di consentire la comunicazione di reti simili o eterogenee. Mediante i protocolli i progettisti possono specificare i processi di comunicazione senza essere a conoscenza dei dettagli delle entità che compongono la rete. I sistemi di comunicazione più complessi utilizzano una suite di protocolli per la gestione dello scambio dei dati. Si può pensare che la suite dei protocolli sia stratificata nel sistema di rete del computer dell’utente. Sebbene più protocolli possano coesistere all’interno di un unico strato di rete, tutti i protocolli che compongono la suite devono cooperare tra di essi. Una suite di protocolli può essere anche definita come “famiglia di protocolli”. La suite dei protocolli TCP/IP ha il compito di gestire lo scambio dei dati su Internet e quindi fornire soluzioni a problemi che si verificano quando si presentano errori di comunicazione durante la trasmissione dei dati (ad esempio dovuti a guasti generici delle unità hardware o difficoltà connesse alla banda passante offerta dalla rete). La gestione di apparati elettronici tramite web fornisce all’utente l’abilità di configurare e monitorare variegati dispositivi tramite Internet mediante l’uso di un comune browser. La soluzione migliore a questo tipo di esigenze è sicuramente data dall’utilizzo di server web embedded connesso ad un infrastruttura di rete al fine di fornire un interfaccia utente basata su web costruita mediante l’utilizzo dell’ormai noto linguaggio HTML [1] unitamente a grafici e ad altre caratteristiche comuni ai web browsers [2]. Se si pensa di aggiungere alle funzionalità ormai consolidate di un web server embedded la capacità di poter gestire applicazioni Java ecco che questi sistemi aprono le frontiere a capacità inesplorate, che rendono essi capaci di eseguire i più variegati compiti quali, ad esempio, quelli di controllo remoto, supervisione e gestione di sistemi elettronici (fig. 1). Nelle applicazioni di controllo remoto si fa sempre più presente l’esigenza di interconnettere apparecchiature e strumentazioni tramite web server embedded al fine di avere una gestione quanto più decentralizzata possibile delle loro funzionalità [2]. Ognuno di questi controller programmato opportunamente diviene capace di eseguire differenti algoritmi di controllo.

APPROCCIO MEDIANTE L’UTILIZZO DELLA TECNOLOGIA JAVA

Il concetto della Virtual Machine di Java è particolarmente indicato per questo approccio permettendo l’usodi una strategia di controllo indipendente dalla piattaforma hardware del sistema in cui viene gestita. Questa metodologia è stata da tempo adoperata nelle applicazioni Internet dove non sono richiesti stringenti vincoli di real-time. L’uso del linguaggio di programmazione Java per le applicazioni di controllo remoto fornisce il vantaggio di integrare sistemi general purpose con internet permettendo la supervisione ed il controllo di sistemi. Oggigiorno i sistemi che si basano su web server embedded richiedono sempre applicazioni più complesse, facili da programmare, al fine di eseguire i compiti di supervisione e gestione. Per realizzare il concetto di network computing viene presentata la tecnologia Java al fine di ottenere la combinazione sinergica di sistemi di controllo realtime distribuiti che siano gestibili tramite la rete Internet. Con l’incessante sviluppo della microelettronica i sistemi embedded sono stati applicati a molteplici prodotti industriali ed elettronici, poiché presentano le caratteristiche di essere economici, affidabili con buone performance se comparati con il software utilizzato nei Personal Computers [3]. Il vantaggio delle tecnologie Internet permette di interconnettere tra loro dispositivi e sistemi all’interno della rete internet. Tutto questo facilita l’accesso ai dispositivi permettendo di effettuare operazioni di monitoraggio, di controllo, di reporting, start up, shutdown di qualsiasi dispositivo semplicemente premendo dei tasti all’interno di un interfaccia GUI gestita da un comune browser [4]. Il nuovo concetto che intendiamo introdurre si basa sull’esecuzione di Applet Java per eseguire operazioni di controllo o di monitoraggio di dispositivi remoti. In questo tipo di sistemi il controllo distribuito si ottiene mediante il trasferimento di pagine HTML e l’esecuzione di applet Java (fig. 2). Questo nuovo concetto permette di espandere le comuni capacità dei sistemi di controllo fornendo un sistema remoto distribuito per il controllo di sistemi elettronici. La progettazione di sistemi embedded richiede l’integrazione e lo sviluppo di componenti hardware e software: spesse volte queste sono particolarmente difficili da realizzare poiché ogni controller possiede la sua piattaforma hardware e software Anziché adoperare linguaggi differenti e non standard per l’implementazione del software nella maggior parte dei casi è preferibile adoperare un linguaggio comune [5]. Il Java rappresenta una scelta ottimale per differenti motivi: è un linguaggio standard completo di librerie, è un linguaggio molto semplice che riduce le problematiche inerenti l’analisi dei programmi, la loro ottimizzazione e trasformazione [5],[6].

I VANTAGGI DELL’UTILIZZO DI JAVA

Il linguaggio di programmazione Java si sta diffondendo sempre più all’interno dell’industria dell’information technology particolarmente per le applicazioni che prevedono l’utilizzo di database. Il Java è un linguaggio di programmazione che permette di installare un’applicazione all’interno di un server ed essere quindi eseguita su diverse piattaforme hardware. Questi vantaggi possonoessere brevemente riassunti nei seguenti punti:

– Indipendenza dalla piattaforma: diversamente dai comuni compilatori che producono codice per CPU specifiche, il Java produce del codice per una CPU virtuale. Al fine di rimanere indipendente da specifiche piattaforme hardware il sistema runtime di Java fornisce un’interfaccia universale per qualsiasi applicazione che si desidera sviluppare. Tale interfaccia denominata JVM (Java Virtual Machine) è una sorta di processore virtuale che si interpone tra il processore fisico del PC e l’applicazione scritta in Java. Tuttavia, l’indipendenza dalla piattaforma non è sufficiente per assicurare il successo di un linguaggio di programmazione. La JVM è da diverso tempo inclusa all’interno dei browser più popolari quali, ad esempio, Microsoft Explorer e Netscape. Alcuni sistemi operativi real-time includono al loro interno la tecnologie Java e tutto ciò permette di giungere alla seguente conclusione “la JVM è una risorsa universale” [5,7];

  • Potenza: Il Java racchiude in se nuove caratteristiche che includono la gestione dei database, l’invocazione dei metodi remoti ed altre caratteristiche inerenti la gestione della sicurezza.
  • Networking: Il Java nasce come linguaggio di programmazione distribuito, il che si traduce nel fatto che la sua progettazione includeva sin dall’inizio la gestione di particolari funzioni inerenti il networking. Il Java ha una libreria vastissima di routine per la gestione dei protocolli quali, ad esempio, il TCP/IP, l’HTTP, l’FTP. Le applicazioni Java possono avere accesso ad oggetti attraverso la rete Internet per mezzo di URL (Universal Resource Locator, più comunemente noto come indirizzo del sito web) in un modo molto simile all’accesso ad un comune file system locale. Unendo la tecnologia Java alle potenzialità dei sistemi basati su web server embedded si possono ottenere dei sistemi molto potenti per la gestione di applicazioni di controllo.
  • Efficienza: Le moderne JVM superano la forte limitazione delle passate dove veniva evidenziata la problematiche dell’estrema lentezza di esecuzione dei programmi. Attualmente grazie all’utilizzo della tecnologia Just in Time (JIT) compiler le performance d’esecuzione delle applet sono state fortemente migliorate [7].

L’UTILIZZO DI JAVA ALL’INTERNO DI SISTEMI WEB SERVER EMBEDDED

L’uso di linguaggi object-oriented assieme alle loro tecniche di progettazione permettono di ottenere un codice che risulta essere facilmente riutilizzabile e mantenibile. Normalmente, un’applicazione che va trasferita ad un controller si compone di un file binario eseguibile che viene direttamente eseguito dalla CPU. Il vantaggio principale di un approccio di questo tipo si traduce in una maggiore velocità d’esecuzione. Il Java permette di ottenere la funzionalità “compila una sola volta e utilizza più volte”. E’ virtualmente possibile utilizzare lo stesso codice compilato in piattaforme differenti e, quindi, eseguire il codice su differenti Sistemi Operativi per fare i test ed il debugging del software per poi trasferire il tutto all’interno di un dispositivo di controllo. Il Java si presenta come un linguaggio di programmazione fortemente adottato per la programmazione applicazioni che fanno di internet un punto di forza. I vantaggi principali inerenti l’utilizzo delle applet Java all’interno di un web server embedded possono essere riassunte nei seguenti punti: • Non occorre sviluppare una Graphical User Interface (GUI) poiché i browser web di per se suppliscono a tale funzionalità; • Le dimensioni del codice Java sono minori rispetto alle istruzioni di codice macchina rendendo particolarmente attrattivo l’utilizzo di tale tecnologia all’interno di web server embedded dove, sicuramente, la dimensioni della RAM messa a disposizione per le applicazioni è limitata; • Essendo l’esecuzione delle applet in locale, e quindi non all’interno del sistema embedded, l’efficienza e la complessità d’esecuzione degli algoritmi da eseguire sono a carico del client e non del sistema embedded che, sicuramente, avrà risorse di calcolo molto più limitate rispetto a quelle di un comune PC; • Molti costruttori di microprocessori per sistemi embedded hanno investito nell’implementazione della JVM all’interno dei loro dispositivi: di conseguenza gran parte del software è già disponibile; • E’ intuitivo prevedere che in un immediato futuro la maggior parte dei kernel dei microcontrollori includerà la JVM.

LA JAVA VIRTUAL MACHINE

Attualmente esistono diversi modi di implementare la JVM. La fig. 3 mostra due possibili implementazioni Nella prima la JVM viene integrata all’interno di un ambiente di sviluppo software. L’altra incorpora un Sistema Operativo Java che viene particolarmente indicata per quelle applicazioni che prevedono l’utilizzo di un unico ambiente di sviluppo sia per i programmatori che per gli utilizzatori [3]. Una volta disponibile l’interfaccia JVM è possibile includerla all’interno di un sistema di sviluppo embedded integrandola con le librerie del codice nativo. Ciò può essere ottenuto utilizzando qualsiasi linguaggio di programmazione quale, ad esempio, il Java bitcode interpreter e, quindi, compilare il tutto in accordo ai vincoli hardware del sistema in cui la si vuole integrare. L’utilizzo della JVM all’interno di un web server embedded presenta il vantaggio che coloro che svilupperanno il codice per la programmazione dell’applicazione all’interno del sistema embedded utilizzeranno istruzioni Java e non dovranno tener contro delle relazioni che intercorrono tra la JVM e la microprogrammazione del sistema embedded. In più si può fornire all’utente finale un’interfaccia tipo applet parametrica che richiede semplicemente il setup di alcuni parametri. In quest’ultimo caso l’utente finale non necessita di avere alcuna conoscenza riguardo il linguaggio di programmazione Java.

IMPLEMENTAZIONE DELLA JVM ALL’INTERNO DI UN WEB SERVER EMBEDDED

L’applicazione che viene presentata in questo articolo, pur essendo stata implementata all’interno di un architettura basata su processore UBICOM, può essere virtualmente implementata all’interno di qualsiasi microprocessore o microcontrollore che dir si voglia. La fig. 4 mostra lo schema architetturale semplificato di un possibile scenario d’applicazione in cui sono richiesti dei sistemi per il controllo di 16 ingressi digitali e 16 uscite digitali. In particolare ci si riferisce al dispositivo RECS 101 prodotto da Intellisystem Technologies. L’architettura presentata permette la simulazione e lo studio di procedure tipiche dei sistemi di controllo quali, ad esempio: acquisizione di segnali, azioni di controllo per mezzo di attuatori, l’elaborazione e la presentazione delle informazioni acquisite o manipolate. Il sistema embedded presentato si basa su un software di sviluppo scritto in C. Tale programma può far eseguire dei task preprogrammati all’interno della ROM o far eseguire delle applicazioni Java. La capacità di far eseguire applicazioni Java viene fornita dai seguenti componenti software che devono essere prevaricati nella ROM del dispositivo mediante il su citato software di sviluppo [6]:

– Il file loader .class, che permette di fare il downloads del codice Java da eseguire nella RAM del dispositivo;

  • L’implementazione della JVM stessa;
  • Implementazioni di classi per la gestione dell’hardware locale; • Classi Java riferite al sistema embedded. La JVM è stata implementate in accordo alle specifiche dettate dallo standard [7], fig. 5. Il programma monitor che risiede all’interno del sistema embedded scarica il file .class che deve essere eseguito all’interno della memoria RAM; dopodiché l’informazione viene processata e si provvede alla costruzione della Constant Pool Table. La Constant Pool è quindi risolta ed il programma passa alla ricerca del metodo d’inizializzazione del programma main che dovrà essere eseguito. Dopo aver trovato questi metodi, la JVM ricerca il Byte Code che deve essere eseguito e, di conseguenza, invoca l’interprete di bytecode. Quando i metodi delle classi Java sono stati invocati la JVM richiama delle subroutine del firmware del microprocessore che provvederanno all’implementazione del metodo specifico. La JVM di per se stessa non comunica direttamente con l’hardware del sistema ma usa delle classi per fare ciò. Un fattore molto limitante di questi sistemi è dovuto alla scarsità della memoria che si ha a disposizione. Di conseguenza ciò porta a fare delle scelte su quali metodi e classi devono essere implementati all’interno del sistema.

UN’IMPLEMENTAZIONE PRATICA RECS 101

RECS 101 rappresenta una realizzazione pratica di quanto appena esposto [8]. La tab. 1 riporta le principali caratteristiche e specifiche del sistema proposto. RECS 101 integra al suo interno un network processor dotato di interfaccia di rete Ethernet per connettersi direttamente a qualsiasi rete locale sia essa Internet che Intranet. Ciò permette agli integratori di sistemi e alle aziende produttrici di connettere i loro dispositivi direttamente ad Internet attraverso una rete Lan e, di conseguenza, di gestire da remoto il controllo totale dei loro dispositivi attraverso interfacce grafiche utente personalizzabili, direttamente accessibili mediante i comuni browser quali, ad esempio, Microsoft Internet Explorer e Netscape Navigator. RECS 101 si basa sullo schema hardware presentato in fig. 6. RECS 101 viene fornito con una pagina web precaricata all’interno della memoria flash del dispositivo che può essere modificata a piacimento in modo da personalizzarne le applicazioni. RECS 101 contiene un web server integrato capace di gestire fino a 512k di documenti ed applicazioni web: tali risorse sono precaricate all’interno della memoria flash del dispositivo. La fig. 7 è un esempio di una pagina web gestita da RECS 101 che può essere utilizzata per fornire informazioni statiche sul dispositivo quali, ad esempio, immagini, testi, files etc. La pagina visualizzata può essere personalizzata a piacimento mediante l’uso dei più comuni editor di pagine HTML. Le pagine web possono contenere al loro interno file di immagini del tipo JPG, GIF, BMP, file video tipo SWF di Flash e qualsiasi altro file si ritenga opportuno che l’HTTP server di RECS 101 debba gestire. Selezionando il link “RECS 101 Control Panel” si accederà alla pagina web dedicata al controllo dell’applicazione. La caratteristica che rende unico tale dispositivo consiste nell’utilizzare un web server all’interno di un’applicazione embedded con la possibilità di eseguire del codice Java per la gestione dell’interfaccia relativa al controllo delle 16 porte di input e delle 16 porte di output (fig. 8). Tale caratteristica permette di poter gestire l’interfaccia utente tramite un’Applet Java parametrica: in questo modo l’utente finale può sviluppare la propria applicazione di controllo in modo molto veloce e sicuro senza dover essere in grado di programmare programmare in Java. All’interno del pannello di controllo (fig. 8) si può notare un LED aggiuntivo specificato “Network”. La sua funzionalità è quella di fornire all’utente lo stato della rete: una connessione senza problemi provoca il suo continuo lampeggiare. Nel caso di perdita momentanea del collegamento il LED non lampeggerà e, se la connessione non si ristabilisce entro qualche minuto il sistema chiuderà la connessione con RECS 101. Problematiche di questo tipo normalmente non sorgono in reti Intranet ma possono capitare se si collega RECS 101 alla rete Internet.

PERSONALIZZAZIONE DELL’INTERFACCIA UTENTE

RECS 101 è un dispositivo totalmente personalizzabile. Viene fornito con tutto il software necessario allo sviluppatore per poter sviluppare rapidissimamente la propria applicazione in maniera facile e sicura. Il software in dotazione contiene alcuni files ed un’APPLET (RECS.jar) di controllo che possono essere personalizzati mediante i parametri riportati di seguito: • PDFOOK: Stringa d’inizializzazione Applet. Non è possibile effettuare nessuna modifica • host: Indirizzo IP associato a RECS 101(Es. host value=”172.16.10.103″ vuol dire che l’indirizzo IP di RECS è 172.16.10.103 • port: Porta TCP adoperata dall’ applicazione per comunicare con RECS 101. Il valore di tale porta è fisso e pertanto non modificabile (Es. port value=6001) • polling: Intervallo di Polling. Ha una risoluzione di 10 ms e può essere settato in funzione dell’applicazione. Per es. “polling value=1” significa che il check dello stato d’ I/O del dispositivo verrà controllato ogni 10 ms • NumLed: Numero ingressi da monitorare mediante LED bicolore (Es. NumLed value=16, verranno visualizzati 16 LED indicatori di stato) • NumB: Numero di pulsanti di comando per la modifica dello stato delle uscite (Es. NumB value=16, verranno visualizzati 16 pulsanti) Per comodità del lettore la Tab. 2 riassume tutti i parametri gestiti dall’applet in questione. Di seguito si riporta il frammento del codice HTML del file index.html relative relativo alla personalizzazione dell’Applet in cui si evidenzia il setup dei parametri di inizializzazione. L’esempio in questione prevede l’utilizzo di tutte le 16 uscite e di tutti i 16 ingressi messi a disposizione dall’- hardware di RECS 101. La fig. 8 rappresenta l’interfaccia utente che si ottiene applicando il codice appena esposto. Le limitazioni di quest’Applet consistono nel fatto che non è possibile modificare i testi ed i colori dei vari componenti che formano l’interfaccia utente. Per gli utenti più esperti viene messa a disposizione un’Applet più elaborata che permette di personalizzare ulteriormente l’interfaccia grafica utente mediante altri parametri che permettono di definirne colori e testi (fig. 9). Di seguito si riassumono i parametri che permettono la personalizzazione dell’Applet in questione (RECS.jar versione avanzata):

  • PDFOOK : Stringa d’inizializzazione Applet. Non è possibile effettuare nessuna modifica
  • host: Indirizzo IP associato a RECS 101 (Es. host value= “172.16.10.103”. Vuol dire che l’indirizzo IP di RECS è 172.16.10.103
  • port: Porta TCP adoperata dall’ applicazione per comunicare con RECS 101. Il valore di tale porta è fisso e pertanto non modificabile (Es. port value=6001) • polling: Intervallo di Polling. Ha una risoluzione di 10 ms e può essere settato in funzione dell’applicazione. Per es. “polling value=1” significa che il controllo dello stato d’ I/O del dispositivo verrà controllato ogni 10 ms
  • Title: Stringa intestazione applicazione. (Es. Title value=”RECS I/O DEMO “)
  • ColTit: Colore da associare alla strin-ga impostata nel parametro “Titolo”. (Es. ColTit value=”green” , il testo verrà stampato in verde) • CAPL: Colore di sfondo Applet. (ES. CAPL value=”yellow”, lo sfondo sarà giallo)
  • NumLed: Numero ingressi da monitorare mediante LED bicolore (Es. NumLed value=16, verranno visualizzati 16 LED indicatori di stato)
  • NumB: Numero di pulsanti di comando per la modifica dello stato delle uscite (Es. NumB value=16, verranno visualizzati 16 pulsanti) • TBT*: Testo da associare al pulsante * relativo all’uscita * (Es. TBT1 value=”Comando 10″ è il testo da associare al pulsante 10 per modificare lo stato dell’ uscita 10)
  • CTBT*: Colore del testo associato al titolo del pulsante *. (Es. CTBT10 value=”red”, il colore associato al testo relativo al pulsante 10 è rosso)
  • CLBF*: Colore associato al LED di stato dell’ uscita * quando quest’ultima è nello stato “OFF” (Es. CLBF10 value=”gray”, il colore del LED associato allo stato “OFF” dell’ uscita 10 sarà grigio)
  • CLBT*: Colore associato al LED di stato dell’ uscita * quando quest’ultima è nello stato “ON” (Es. CLBT10 value= “blue”, il colore del LED associato allo stato “ON” dell’ uscita n.10 sarà blu)
  • TLD*: Testo da associare al LED * relativo all’ ingresso *. (Es. TLD1 value=”Luce Camera” è il testo da associare al LED 1 per effettuare la lettura dello stato dell’ ingresso 1)
  • CTLD*: Colore del testo associato al titolo del LED * relativo all’ingresso *. (Es. CTLD1 value=”black”, il colore associato al testo relativo al LED 1 sarà nero) • CLIF*: Colore associato al LED di stato dell’ ingresso * quando quest’ultimo è nello stato “OFF” (Es. CLIF10 value=”green”, il colore del LED associato allo stato “OFF” dell’ ingresso 10 sarà verde)
  • CLIT*: Colore associato al LED di stato dell’ ingresso * quando quest’ultimo è nello stato “ON” (Es. CLIT10 value=”red”, il colore del LED associato allo stato “ON” dell’ ingresso 10 sarà rosso) Per comodità del lettore la tab. 3 riassume in forma tabulare i parametri personalizzabili dell’Applet per la gestione avanzata di RECS 101. Di seguito si riporta il frammento del codice HTML del file index.html relativo alla personalizzazione dell’Applet in cui si evidenzia il setup dei parametri di inizializzazione. Poiché non occorre RECS 101 per simularne il suo funzionamento, collegandosi al seguente indirizzo http://www.intellisystem.it/recs/In terfaccia.htm si possono provare le due interfacce proposte. Per chi invece volesse dilettarsi a sperimentare la personalizzazione delle interfacce, Intellisystem Technologies mette a disposizione nel proprio sito tutto il software necessario. Per fare ciò occorre: • scaricare una delle versioni delle interfacce proposte dal seguente indirizzo http://www.intellisystem. it/recs/download.htm; • decompattare i file in una cartella; • modificare i parametri dell’interfaccia agendo sul file index.html utilizzando un qualsiasi editor web; • richiamare la pagina 101.html mediante un qualsiasi Web Browser. I files necessari per la personalizzazione dell’interfaccia utente di RECS 101 sono essenzialmente tre (a parte tutti quelli necessari per il contenuto grafico delle pagine web): 101.html, index.html, RECS.jar. La fig. 10 riassume quanto detto in precedenza, ovvero: 1. La pagina 101.html rappresenta la home page del sito web contenuto in RECS 101. Al suo interno è presente un collegamento alla pagina Index.html; 2. La pagina Index.html contiene al suo interno i parametri di setup dell’Applet per la gestione degli ingressi e delle uscite di RECS 101; 3. Tramite l’applet RECS.jar si interviene sulle porte d’input e di output per la gestione dell’hardware che si intende controllare.

NEL PROSSIMO NUMERO SI DISCUTERÀ DEI SEGUENTI ARGOMENTI RIGUARDANTI RECS 101:

  • Configurazione dei parametri di rete 2) Upload dell’interfaccia utente personalizzata

 _____________

A cura di Cristian Randieri. Articolo pubblicato sulla rivista Fare Elettronica N. 212 – Febbraio 2003. 

Per scaricare l’articolo pubblicato sulla rivista, seguire il link riportato di seguito http://www.intellisystem.it/portfolio/fe-feb-2003-recs-101-1-parte/

 _____________

Link consigliati per la lettura completa di tutti gli articoli

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 2° Parte  

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 3° Parte

RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP – 4° parte 

Intellisystem Technologies