2. Connessione con il dispositivo
Per iniziare a configurare DIS500, occorre innanzitutto alimentare il dispositivo ed avviare il software appena scaricato.
Selezionare quindi Impostazioni dal menu al fine di specificare i parametri di comunicazione con il dispositivo:
- Porta COM Porta seriale a cui il PC ha associato il convertitore USB-RS485
- Baud Rate Velocità di comunicazione tra dispositivo e PC
- Stop bit Numero di bit di stop. Selezionare 1
- Nodo ID Indirizzo Modbus associato al dispositivo DIS500 in uso
- Tipo Modello del dispositivo con cui ci si intende interfacciare. Selezionare DIS500
I parametri Baud Rate e Nodo ID, nel caso in cui non dovessero essere noti, sono visualizzabili anche tramite i tasti funzione presenti nel display.
Per visualizzare i parametri, dopo aver alimentato il dispositivo, sarà sufficiente fare quanto segue:
- Tenere premuto il pulsante e premere il pulsante
- Premere
- Premere per tornare alla visualizzazione precedente
Tra i parametri visualizzati, Baud485 indica la velocità di comunicazione da specificare nel campo Baud Rate, mentre Address indica il valore da specificare nel campo Nodo ID.
Dopo aver inserito i parametri richiesti, cliccare quindi OK.
Se i parametri inseriti sono corretti, la barra di stato dovrebbe apparire come quella presente nell’immagine seguente:
3. Gestione registri
DIS500 dispone di due seriali RS485 grazie alle quali è in grado di interfacciarsi con altri dispositivi tramite il protocollo Modbus.
La seriale Port 0, corrispondente ai morsetti 4-5-6 viene utilizzata per interfacciare il dispositivo al PC e per permettere ad un client Modbus di inviare comandi di lettura/scrittura verso DIS500.
La seriale Port 1, corrispondente ai morsetti 7-8-9 permette invece al dispositivo di inviare comandi di lettura/scrittura verso uno o più server Modbus.
Il display di DIS500 permette di visualizzare lo stato/valore dei propri registri Modbus interni, indipendentemente da quale sia la porta in uso:
- Se utilizzato come server, mette a disposizione i propri registri interni non ancora utilizzati affinché un client possa modificarne/leggerne il valore
- Se utilizzato come client, legge i dati provenienti da uno o più server e li assegna ai propri registri interni non ancora utilizzati
Nella gestione dei registri da parte del software DIS Configurator, non viene per tanto fatta alcuna distinzione tra i registri a cui il dispositivo accede tramite la seriale Port 0 e quelli a cui accede tramite la seriale Port 1.
La lista dei registri interni già in uso è visualizzabile selezionando dal menu la voce Visualizza → Registri.
I registri presenti nel range 0-25 sono riservati ed utilizzati dal dispositivo per scopi interni.
Tutti gli altri sono disponibili ed utilizzabili dall’utente.
Per visualizzare il valore attuale dei registri è possibile cliccare l’icona posta in alto a destra.
I registri di sistema di cui è importante conoscere il valore sono i seguenti:
- %R6 Address
- %R17 Gateway Mask
3.1 Address (%R6)
Rappresenta l’indirizzo Modbus associato a DIS500 e che dovrà essere interrogato da un eventuale client per parlare con il dispositivo.
Corrisponde alla voce Address visualizzabile da display tramite i tasti funzione ed è associato alla comunicazione Modbus sulla seriale Port 0.
Per modificarlo è sufficiente selezionarlo facendo doppio click sulla riga corrispondente.
Selezionando uInt dal campo Tipo, sarà possibile inserire un valore (secondo il sistema decimale) e cliccare OK per confermare.
Da notare che questo parametro è utilizzato anche da
DIS Configurator per interfacciarsi con il dispositivo (vedere
2. Connessione con il dispositivo), dopo averlo cambiato è quindi possibile che il software si disconnetta e chieda di specificare un nuovo indirizzo.
Note
È fondamentale che l’indirizzo assegnato a DIS500 sia diverso dagli indirizzi che verranno eventualmente interrogati dallo stesso tramite la seriale Port 1.
3.2 Gateway Mask (%R17)
Rappresenta il range degli indirizzi Modbus (da non confondere con i registri) interrogabili da DIS500 tramite la seriale Port 1.
Al fine di garantire la compatibilità con l’intero range messo a disposizione dal protocollo Modbus, è sufficiente impostare il registro al valore 255 (o 00FF qualora venisse visualizzato secondo il sistema esadecimale).
Nel caso in cui vengano utilizzate entrambe le seriali (e quindi nel caso in cui DIS500 debba funzionare sia da client che da server simultaneamente) può tuttavia rendersi necessario limitare il range di accesso (ad esempio nel caso in cui si dovessero notare dei rallentamenti nel passare da una pagina all’altra del display).
Per modificarlo è sufficiente selezionarlo facendo doppio click sulla riga corrispondente.
Selezionando Hex (che sta per “esadecimale”) dal campo Tipo, il Valore presente nell’omonimo campo verrà convertito.
Se il valore uInt (che viene rappresentato secondo il sistema decimale) corrisponde a 255, una volta selezionato Hex verrà invece visualizzato 00FF.
La parte “alta”, ovvero le due cifre più a sinistra (seguendo l’esempio, 00) corrispondono all’indirizzo da cui parte il range a cui DIS500 potrà accedere.
La parte “bassa”, ovvero le due cifre più a destra (FF nell’esempio) corrispondono invece al termine del range.
Ipotizzando di volere limitare il range a cui DIS500 dovrà avere accesso agli indirizzi Modbus 1-2-3, il Valore da inserire sarà 0103 (Hex).
Note
È fortemente consigliato specificare un range che non includa l’indirizzo assegnato a DIS500 (vedere 3.1 Address (%R6))
4. Programmazione
A questo punto sarà possibile iniziare a configurare un programma da inserire nel dispositivo DIS500 al fine di definirne il funzionamento.
In questo capitolo verrà spiegato come programmare DIS500 per far sì che possa comunicare con uno o più server Modbus (per poi visualizzare i registri letti a display).
Una volta connesso il dispositivo al PC tramite il software DIS Configurator, assicurarsi che sia impostata la modalità Debug Mode
Se così non fosse, cliccare l’icona .
Selezionare quindi Visualizza → Programma dal menu.
Trattandosi di un nuovo progetto verrà visualizzato un programma completamente vuoto:
Per inserire nuovi blocchi nel programma, possono essere utilizzati i pulsanti Insert Before, Insert After, Move Up e Move Down.
Cliccando ad esempio Insert Before o Insert After, verrà aggiunto un nuovo blocco al programma.
Effettuando un doppio click sopra di esso, verranno visualizzate tutte le funzioni associabili al nuovo blocco.
4.1 Blocco Registri
Nell’ottica di definire una serie di registri Modbus che DIS500 dovrà andare a leggere da uno o più server (per poi visualizzarli a display), sarà innanzitutto necessario selezionare il tab Comm dalla sezione Funzioni.
I comandi Modbus supportati da DIS500 sono quelli presenti in elenco:
- Read Holding
- Read Input
- Write Single
- Write Multiple
Selezionandone uno, nella sezione Opzioni verranno visualizzati tutti i parametri fondamentali per la comunicazione con il server.
- Label Nome da associare al blocco che si sta definendo. Per il primo blocco (quello che apparirà nella posizione più in alto all’interno del programma) va necessariamente definita una label
- Ritardo Ritardo in ms tra l’esecuzione di un blocco e quello successivo. Si consiglia di impostare un ritardo di almeno 100 ms
- Indirizzo Indirizzo Modbus del server da interrogare. Deve necessariamente essere diverso da quello assegnato a DIS500 (3.1 Address (%R6)) e compreso nel range a cui ha accesso (3.2 Gateway Mask (%R17))
- Registro Registro Modbus da cui partire per usare il comando specificato nella sezione Funzioni
- Numero Numero di registri a cui applicare lo stesso comando (se il tipo di comando specificato consente questo tipo di utilizzo)
- Dest Registro interno di partenza da cui DIS500 farà partire l’associazione (default %R26, non specificare registri compresi nel range %R0 - %R25 in quanto sono riservati)
Esempio:
- Indirizzo: 10
- Registro: 1
- Numero: 5
- Dest: 30
DIS500 applicherà il comando specificato nella sezione Funzioni al server Modbus avente come indirizzo 10.
Del suddetto dispositivo, verranno interrogati 5 registri, partendo dal registro 1.
Il valore letto al registro 1 verrà assegnato al registro interno 30, il valore letto al registro 2 verrà assegnato al registro interno 31 e così via.
Una volta impostati tutti i parametri, premere OK per confermare.
Possono essere definiti più blocchi di questo tipo, anche specificando un Indirizzo diverso di volta in volta, al fine di poter interrogare più server Modbus.
Nel farlo, occorre prestare attenzione al parametro Dest, che dovrà essere specificato assicurandosi di non includere indirizzi interni già usati nei blocchi precedenti.
4.2 Blocco Display
Il passo successivo è quello di aggiungere un nuovo blocco in grado di inizializzare la visualizzazione a display dei parametri letti.
Gli elementi da visualizzare e la loro disposizione verranno definiti più avanti, l’inizializzazione del display è tuttavia necessaria al fine di comunicare a DIS500 l’intenzione di farlo.
A questo scopo, è sufficiente cliccare il pulsante Insert After ed effettuare un doppio click sopra l’area del blocco appena aggiunto.
Dalla sezione Funzioni, selezionare quindi Display.
Cliccare il pulsante Call Page presente a sinistra e confermare il tutto cliccando OK dalla sezione Opzioni dopo aver assegnato un nome al blocco dal campo Label.
4.3 Blocco GoTo
L’ultimo blocco da definire è quello che consente al programma di funzionare correttamente, facendo in modo che tutti i blocchi precedenti vengano eseguiti in maniera ciclica.
Cliccare quindi il pulsante Insert After ed effettuare un doppio click sopra l’area del blocco appena aggiunto.
Dalla sezione Funzioni, selezionare quindi Flow.
Cliccare il pulsante Goto presente nella sezione Funzioni.
Dalla sezione Opzioni è possibile omettere il campo Label. È invece necessario selezionare il nome del primo blocco definito dal campo Blocco.
È fondamentale che il blocco GoTo punti ad uno dei blocchi creati in precedenza (il primo).
Nel caso in cui si intendano acquisire dei registri da un dispositivo server (quindi dalla seriale Port 1), il blocco GoTo deve puntare al primo blocco Registri, come da immagine seguente:
Nel caso in cui si intenda invece utilizzare DIS500 come dispositivo server (quindi dalla seriale Port 0) il blocco Registri non va definito. Il blocco GoTo dovrà quindi puntare al blocco Display, come da immagine seguente:
A questo punto sarà possibile procedere con la programmazione al fine di decidere quali elementi visualizzare a display e dove posizionarli.
5. Visualizzazione a display
Per organizzare il contenuto delle pagine visualizzate a display, selezionare innanzitutto Strumenti → Display dal menu.
- 1 Sezione dedicata alle Pagine da visualizzare nel display. Cliccare per aggiungerne una nuova, per eliminarne una creata in precedenza e per spostare una pagina in un’altra posizione
- 2 Sezione Oggetti dalla quale sarà possibile selezionare quali oggetti visualizzare a display. Il pulsante consente di inserire una stringa, mentre il pulsante consente di visualizzare il valore di un registro interno. Una volta selezionato l’elemento da rappresentare, cliccare al fine di aggiungerlo all’elenco degli oggetti creati
- 3 Sezione dedicata alla gestione degli Oggetti creati in precedenza. Selezionandone uno potrà essere eliminato cliccando il pulsante o modificato dall’area posta alla destra
- 4 Sezione in cui verranno visualizzati tutti i parametri utili a configurare un oggetto selezionato in precedenza. In basso a sinistra sarà presente il tasto , premendo il quale verranno rappresentate le modifiche apportate nell’area dedicata all’anteprima
- 5 Area in cui verrà visualizzata una preview degli elementi che verranno mostrati a display, dopo aver selezionato la pagina di cui si desidera mostrare l’anteprima
Gli oggetti che verranno spiegati in questo manuale sono i seguenti:
- Abc Stringa da visualizzare in fianco ad un valore, al fine di specificare a quale grandezza letta si riferisca
- 123 Permette di specificare il valore di quale registro interno visualizzare, indipendentemente che si tratti di un valore ottenuto dalla seriale Port 0 o dalla seriale Port 1.
5.1 Oggetto Abc
Dopo averne aggiunto uno dalla sezione Oggetti, nell’area di configurazione dell’oggetto selezionato verranno visualizzati i seguenti campi:
- Formato Permette di scegliere le dimensioni che dovrà assumere l’oggetto nel display. Le opzioni disponibili sono Small, Medium e Large
- Reg Registro interno a cui verrà associata la stringa. Lasciare il valore di default 21 per tutte le stringhe che verranno create
- Bit Lasciare il valore di default 0
- Posizione X Permette di inserire un valore numerico per decidere la posizione in cui dovrà essere rappresentato l’oggetto rispetto all’asse X
- Posizione Y Permette di inserire un valore numerico per decidere la posizione in cui dovrà essere rappresentato l’oggetto rispetto all’asse Y
- Direction Permette di specificare se l’oggetto vada visualizzato con orientamento orizzontale o verticale
- Negativo Lasciare disabilitato
- Etichetta Permette di specificare la stringa da visualizzare a display
- Alternativa Lasciare disattivo, il contenuto del campo è irrilevante
Dopo ogni modifica effettuata, sarà possibile cliccare il pulsante per vederla rappresentata nell’area dedicata all’anteprima.
5.2 Oggetto 123
Dopo averne aggiunto uno dalla sezione Oggetti, nell’area di configurazione dell’oggetto selezionato verranno visualizzati i seguenti campi:
- Formato Permette di scegliere le dimensioni che dovrà assumere l’oggetto nel display. Le opzioni disponibili sono Small, Medium e Large
- Reg Registro interno di cui visualizzare il valore. Può riferirsi ad un registro interno acquisito tramite la seriale Port 0 o ad uno acquisito tramite la seriale Port 1
- Tipo Permette di definire il formato del dato da rappresentare. La scelta può ricadere sulle opzioni uInt (16 bit intero, senza segno), Int (16 bit intero), uLong (32 bit intero, senza segno), Long (32 bit intero) e Float (32 bit, virgola mobile)
- Posizione X Permette di inserire un valore numerico per decidere la posizione in cui dovrà essere rappresentato l’oggetto rispetto all’asse X
- Posizione Y Permette di inserire un valore numerico per decidere la posizione in cui dovrà essere rappresentato l’oggetto rispetto all’asse Y
- Direction Permette di specificare se l’oggetto vada visualizzato con orientamento orizzontale o verticale
- Negativo Lasciare disabilitato
- Etichetta Formato in cui verrà riportato il valore del registro. Lasciare %+5.0f come da impostazione di default
Una volta ultimate tutte le modifiche, cliccare il pulsante per confermare.
6. Caricamento configurazione
Arrivati a questo punto la configurazione fatta potrà essere caricata nel dispositivo DIS500.
Per farlo, cliccare l’icona posta nella barra degli strumenti.
Verrà visualizzata la schermata relativa al download (da intendersi come download della configurazione dal PC verso il dispositivo DIS500).
Cliccare quindi il pulsante Download per avviare il processo, attendendo che la barra di caricamento sottostante arrivi a completarsi.
Prima di poter utilizzare DIS500 con la configurazione appena fatta assicurarsi di uscire dalla modalità di debug e di mettere il dispositivo in Release Mode, cliccando l’icona .
Al termine delle operazioni, ricordarsi di salvare il progetto appena creato prima di chiudere il software DIS Configurator: la configurazione caricata in un DIS500 non è infatti scaricabile dal dispositivo stesso.
Si raccomanda quindi di creare una copia del progetto nel proprio PC per ogni DIS500 configurato.