ModBus Constructor - KurySoft · Mobdus Constructor permette di aggiungere didascalie, cornici e...

26
ModBus Constructor Guida Quick Start © 2006 by KurySoft, tutti i diritti riservati Web: www.kurysoft.com Data: 14-Nov-2006

Transcript of ModBus Constructor - KurySoft · Mobdus Constructor permette di aggiungere didascalie, cornici e...

  • ModBus Constructor

    Guida Quick Start

    © 2006 by KurySoft, tutti i diritti riservati

    Web: www.kurysoft.com

    Data: 14-Nov-2006

  • ModBus Constructor

    Guida Quick Start - 2 -

    ©2006 KurySoft. www.kurysoft.com

    INDICE

    1. INTRODUZIONE ............................................................................................ 3

    2. DESCRIZIONE DI UN DISPOSITIVO MODBUS............................................ 5 2.1. Coriolis Mass Flow Meter. .......................................................................... 5

    2.1.1. T1. Mass Flow Meter Holding Registers. ..................................................................5 2.1.2. T2. Mass Flow Meter Coils........................................................................................7 2.1.3. T3. Mass Flow Meter Command. ..............................................................................7 2.1.4. T4. Mass Flow Meter Exception Responses. ............................................................7

    2.2. Descrizione dei parametri principali............................................................ 8 2.3. Ordinare i campi dati all'interno del modulo.............................................. 13 2.4. Aggiungere richieste................................................................................. 14 2.5. Parametri del simulatore........................................................................... 19

    2.5.1. T5. Discrete value simulation. .................................................................................19 2.5.2. T6. Analogous value simulation. .............................................................................19

    3. USARE DISPOSITIVI MODBUS. ................................................................. 21

    4. TERMINI E DEFINIZIONI. ............................................................................ 23 4.1. Oggetti ...................................................................................................... 23 4.2. Tipi di dati Mobdus Constructor................................................................ 23

    4.2.1. Tipi numerici............................................................................................................23 4.2.2. Tipi discreti ..............................................................................................................23

    4.3. Codifica dei dati. ....................................................................................... 23 4.3.1. Long. .......................................................................................................................23 4.3.2. Float. .......................................................................................................................24 4.3.3. Double.....................................................................................................................24

    4.4. Regole di utilizzo delle funzioni MODBUS................................................ 24 4.5. Esempi di formati...................................................................................... 25

    4.5.1. Tipi numerici............................................................................................................25 4.5.2. Tipi discreti ..............................................................................................................25 4.5.3. Predefinito per tipi numerici.....................................................................................25 4.5.4. Predefinito per tipi discreti.......................................................................................26

  • ModBus Constructor

    Guida Quick Start - 3 -

    ©2006 KurySoft. www.kurysoft.com

    1. INTRODUZIONE.

    Grazie per aver scelto Mobdus Constructor! Mobdus Constructor è stato realizzato per aiutare sviluppatori, programmatori e utenti dei

    dispositivi MODBUS ad effettuare la verifica e la configurazione dei suddetti sistemi. Mobdus Constructor permette di creare velocemente modelli di gestione dei dati per

    qualunque dispositivo Mobdus. Il mercato offre una varietà di programmi simili che tuttavia visualizzano i dati come colonne di numeri astratti dello stesso tipo, rendendone difficili la lettura e l'analisi, soprattutto nel caso che nel registro del dispositivo siano contenuti dati di vari tipi ordinati casualmente.

    Mobdus Constructor permette di impostare il tipo di dati principale (integer, long (integer), float, double (float) o byte) per qualsiasi registro o set di registri. I tipi interi possono essere rappresentati come signed, unsigned, HEX o binary. Mobdus Constructor consente di rappresentare lo stesso registro in più modi. Per esempio, quando due registri contigui contengono numeri del tipo long, è possibile specificare per ciascuno di essi dei campi dati aggiuntivi, nei quali il contenuto dei registri sarà rappresentato come HEX o unsigned integer.

    I campi dati corrispondenti ai vari elementi (registri o elementi discreti) si possono disporre liberamente nel modulo del progetto. È possibile impostare la dimensione, il colore, il tipo di carattere, e la didascalia per ciascun campo.

    Gli elementi discreti che occupano un intervallo continuo di indirizzi si possono visualizzare nello stesso campo per semplificare la lettura e risparmiare spazio.

    Mobdus Constructor permette di effettuare una trasformazione lineare su ciascun campo dati dei registri, per convertire le unità di misura utilizzate dal dispositivo in unità universalmente accettate o in unità utilizzate da altri sistemi. Per esempio, se nel registro la pressione è espressa in milliampere, cioè al dispositivo il segnale arriva da un trasduttore di pressione con uscita in corrente, tale valore può essere convertito in kgf/cm2 o psi.

    Mobdus Constructor consente di impostare per tutte le funzioni supportate (01, 02, 03, 04, 05, 06, 15, 16, 22, 23) le richieste automatiche da eseguire in base all’intervallo impostato individualmente per ciascuna richiesta.

    È possibile specificare le richieste che verranno eseguite dall’utente attraverso menu o dialoghi. È un modo conveniente per impostare i comandi di controllo dei dispositivi, per modificare vari parametri e per fare richieste di testo.

    È possibile usare il progetto per interrogare dispositivi in modalità Master e per simulare dispositivi in modalità Slave. Inoltre, per la modalità Slave, è possibile impostare una procedura di modifica dati in base a certe regole precedentemente specificate).

    Mobdus Constructor permette di aggiungere didascalie, cornici e immagini al modulo del progetto.

    Insieme a Mobdus Constructor viene fornito Mobdus Reader, un’utility che utilizza il modello creato con Mobdus Constructor per interagire con il dispositivo.

    Mobdus Reader è un programma freeware. Se avete creato un progetto Mobdus Constructor per il dispositivo da voi realizzato, i vostri clienti non dovranno acquistare Mobdus Constructor, a loro basterà scaricare Mobdus Reader gratuito.

  • ModBus Constructor

    Guida Quick Start - 4 -

    ©2006 KurySoft. www.kurysoft.com

    Mobdus Reader permette di lavorare simultaneamente con più progetti, cioè interrogare o simulare più dispositivi utilizzando una o più porte СОМ.

    Oltre alle richieste specificate nel progetto, è possibile modificare qualsiasi elemento dati dei dispositivi semplicemente cliccando sul rispettivo campo dati sia in modalità Master (invio di un'appropriata richiesta), che in modalità Slave.

  • ModBus Constructor

    Guida Quick Start - 5 -

    ©2006 KurySoft. www.kurysoft.com

    2. DESCRIZIONE DI UN DISPOSITIVO MODBUS.

    In questa sezione, passo per passo, imparerete come creare un progetto, prendendo come esempio pratico di dispositivo il misuratore di portata massica ad effetto Coriolis (Coriolis Mass Flow Meter).

    Descrizione dei Holding register e dei coil del dispositivo Conversione dei dati in unità standard Formattazione dei dati Disposizione dei campi dati nel modulo Impostazione di richieste (comandi) automatiche e gestite mediante menu Impostazione dei parametri di simulazione in modalità Slave

    2.1. Misuratore di portata massica ad effetto Coriolis (Coriolis Mass Flow Meter).

    Vediamo innanzitutto la descrizione dell’apparecchio. Permette di misurare la massa di liquidi e gas che passano attraverso il misuratore. Supporta le direzioni di flusso diretto e inverso. Se il flusso è diretto, il valore del contatore di massa incrementa, se il flusso è inverso, il valore del contatore decrementa e può assumere un valore negativo.

    Inoltre, l’apparecchio può essere usato come dosatore. È dotato di due uscite discrete (collettori aperti) per gestire sia la valvola che il motore, sia per il flusso diretto che inverso. La dimensione della porzione si imposta dall’utente. Se il valore della porzione è un numero positivo, si attiva il flusso diretto, se tale valore è negativo, si attiva il flusso inverso.

    Interfaccia dell'apparecchio: RS-485, protocollo di comunicazione: MODBUS RTU. Avviare Mobdus Constructor: Start ⇒Programmi ⇒MobdusConstructor⇒MBConstructor.exe Creare un nuovo progetto: File⇒New Salvare il progetto con il nome “Coriolis.mbc”: File⇒Save as… Vediamo ora come è implementato il protocollo di scambio MODBUS per questo

    misuratore. La descrizione dei registri del misuratore è riportata nella tabella Т1.

    2.1.1. T1. Mass Flow Meter Holding Registers.

    Funzione Indirizzo (decimale) Tipo di dati Commento

    Tipo del dispositivo 0000 unsigned integer Sola lettura

    Versione del firmware 0001 unsigned integer Sola lettura

    Indirizzo MODBUS 0002 unsigned integer Impostazione di fabbrica 1

    Velocità di trasmissione dati 0003 unsigned integer

    4800, 9600 o 19200 baud Impostazione di fabbrica: 9600 Al tentativo di impostare un valore diverso da 4800, 9600 o 19200, verrà assunto il valore 9600

    Parità 0004 byte (MSB) 0-no parity

  • ModBus Constructor

    Guida Quick Start - 6 -

    ©2006 KurySoft. www.kurysoft.com

    Funzione Indirizzo (decimale) Tipo di dati Commento

    1-odd parity 2-even parity Impostazione di fabbrica: 2 (even)

    Stop bit 0004 byte (LSB) 0 – 1 stop bit 2 – 2 stop bit

    Porzione 0005 long (1) (3)

    Contatore di massa 0007 long (1)

    1 unità equivale a 0.1 kg Può essere negativo Durante la lettura visualizza la massa accumulata dopo il resettaggio del contatore

    Portata di massa 0009 integer 1 unità equivale a 0.1 kg/min Positivo per il flusso diretto Negativo per il flusso inverso

    Densità 0010 unsigned integer 1 unità equivale a 1000/32768 kg/m3

    Temperatura 0011 integer 1 unità equivale a 250/511 ºC

    Pressione 0012 unsigned integer

    Segnale del sensore di sovrapressione 4-20 мА 1023 equivale a 20 мА (40 kgf/cm2) 205 equivale a 4 мА (0 kgf/cm2)

    Tempo di misurazione 0013 unsigned long (1) Secondi

    Registro di controllo 0015 unsigned integer (2)

    Massa per singolo impulso 0016 unsigned integer 1 unità equivale a 0.1 kg

    Fattori di calibrazione 0017-0024 Disponibile per la registrazione con il ponticello J7 inserito

    Riserva 0025-0031 Non utilizzato in questa versione

    (1) I numeri interi lunghi si dispongono nei registri come segue: la upper word occupa il primo registro, la lower word occupa il secondo registro. Per esempio, il numero 01020304h (16909060 decimale) verrà disposto come segue: registro A+0: 0102h registro A+1: 0304h trasmesso: 01 02 03 04

    (2) Durante la lettura, visualizza la modalità di funzionamento: 0 – modalità misuratore (predefinita) 1 – modalità passiva del dosatore. Entrambe le valvole sono chiuse. 2 – modalità attiva del dosatore. Una delle valvole è aperta, si sta dosando una porzione.

    Durante la registrazione, effettua le seguenti operazioni: 0 – dalla modalità passiva del dosatore passa in modalità misuratore. Viene ignorato se il dosatore è attivo. 1 – se è in modalità misuratore, passa in modalità passiva del dosatore, resetta i contatori di massa e di

    tempo, chiude entrambe le valvole. se il dosatore è attivo, passa in modalità passiva.

  • ModBus Constructor

    Guida Quick Start - 7 -

    ©2006 KurySoft. www.kurysoft.com

    2 – inizia il dosaggio della porzione in base a quanto impostato nel registro 5 (porzione) 4 – resetta i contatori di massa e di tempo (solo in modalità 0 e 1) 8 – effettua la regolazione della portata zero (solo in modalità 0 e 1)

    (3) si usa per memorizzare la dimensione di una porzione in modalità dosatore. 1 unità equivale a 0.1 kg.

    La descrizione dei coil è riportata nella tabella T2.

    2.1.2. T2. Mass Flow Meter Coils.

    Funzione Indirizzo (decimale) Tipo di dati Commento

    Uscita di controllo della portata per il flusso diretto 0000

    Sola lettura in modalità dosatore 1-valvola aperta 0-valvola chiusa

    Uscita di controllo della portata per il flusso inverso 0001

    Sola lettura in modalità dosatore 1-valvola aperta 0-valvola chiusa

    Riserva 0002-0031 Non utilizzato in questa versione

    Il misuratore di portata massica supporta i seguenti comandi ed eccezioni:

    2.1.3. T3. Mass Flow Meter Command.

    Codice di funzione Tipo di comando Nome

    01 Read Read coil status

    03 Read Read holding registers

    05 Write Write single coil

    06 Write Write single register

    15 Write Write multiple coils

    16 Write Write multiple registers

    2.1.4. T4. Mass Flow Meter Exception Responses.

    Codice Nome Descrizione

    01 Illegal function Codice di funzione non supportato.

    02 Illegal data address L’indirizzo dati nella richiesta non è consentito per il dispositivo.

    03 Illegal data value Uno dei valori contenuti nel campo dati della richiesta non è consentito per il dispositivo.

  • ModBus Constructor

    Guida Quick Start - 8 -

    ©2006 KurySoft. www.kurysoft.com

    2.2. Descrizione dei parametri principali. Descriviamo i registri ed i coil del misuratore di portata massica. Per farlo, aprire la scheda

    Objects nel menu Settings: Settings⇒ Objects

    Appare un modulo simile ad un foglio elettronico. Nella colonna Object evidenziare quindici

    celle (tante quanti i registri del misuratore). Fare clic con il tasto destro del mouse sull’area evidenziata per visualizzare il menu a discesa con tutti i tipi di oggetti utilizzati. Cliccare sulla voce Holding register.

    Ora, bisogna assegnare a ciascun registro l’indirizzo e il titolo in base alla descrizione. - fare doppio clic con il tasto sinistro del mouse sulla prima cella vuota nella colonna Label - inserire il nome del registro “Tipo del dispositivo" (“Device type”)

  • ModBus Constructor

    Guida Quick Start - 9 -

    ©2006 KurySoft. www.kurysoft.com

    - fare doppio clic con il tasto sinistro sulla cella adiacente nella colonna Address, specificare il valore “0” - inserire nomi e indirizzi degli altri elementi.

    I numeri (long, float e double) che si rappresentano utilizzando alcuni registri, possono risiedere nei registri e quindi essere rappresentati in vari modi. Di regola, i produttori dei dispositivi forniscono indicazioni esplicite su come vengono rappresentati tali numeri. Per determinare la modalità di collocazione dei numeri nei registri, consultare la sezione “Codifica dei dati”.

    Come avete avuto modo di vedere nella descrizione, l'apparecchio utilizza vari tipi di dati. Impostiamo i tipi da utilizzare.

    - fare clic con il tasto destro del mouse sulla colonna Data e selezionare la voce desiderata dal menu a discesa - specificare Unsigned nella colonna Show, se necessario.

    Abbiamo impostato il chilogrammo (kg) come unità di massa, mentre l’unità di massa adottata dal misuratore è 0.1 kg. Mobdus Constructor dispone di un meccanismo che consente di risolvere problemi di questo tipo. Se si immette nella colonna Scale l’espressione del tipo Ax+B, il numero contenuto nel rispettivo registro o gruppo di registri (se è un numero complesso

  • ModBus Constructor

    Guida Quick Start - 10 -

    ©2006 KurySoft. www.kurysoft.com

    del tipo long, float o double), sarà sottoposto ad una trasformazione lineare. Ciò risulta molto comodo quando si usano unità diverse da quelle supportate dal dispositivo.

    Inserire l’espressione “0.1x+0” nella colonna Scale per i registri 5, 7, 9 e 15. Abbiamo

    convertito in chilogrammi le unità adottate dal misuratore.

    Nello stesso modo è possibile convertire il valore della densità: D = x * 1000 / 32768 = 0.03052x e della temperatura: T = x * 250 / 511 = 0.489x Convertire le unità di pressione è un pò’ più difficile, dovremo risolvere la seguente

    equazione: Pressione: P = Ax + B x1 = 205, P1 = 0 ⇒ B = - 205 * A x2 = 1023, P2 = 40 ⇒ 40 = A*1023 + 205*B A = 40/(1023 - 205) = 0.049 B = -205*A=-205*0.049 = -10.045

  • ModBus Constructor

    Guida Quick Start - 11 -

    ©2006 KurySoft. www.kurysoft.com

    Come avete avuto modo di vedere, convertire le varie unità di misurazione non è per niente difficile. Ma come fare con le unità di tempo? I secondi vanno bene per brevi intervalli di tempo, ma quando si tratta di centinaia o migliaia di secondi, diventa scomodo usarli. Per risolvere questo problema, applicheremo la formattazione.

    La formattazione dei dati permette di: - dare più leggibilità ai numeri - evitare le situazione quando troppe cifre ingombrano il campo di output.

    Per ogni tipo di dati è impostato il formato predefinito. L’utente non dovrà specificare il formato predefinito, se va bene quello preimpostato basterà lasciare vuoto il rispettivo campo. Per creare formati personalizzati, usare il formato predefinito. Ulteriori informazioni sulle regole di formattazione sono disponibili nella sezione “Esempi di formati”.

    Fare clic con il tasto destro sulla riga “Porzione, kg” (“Portion, kg”) nella colonna Format. Selezionare la voce Default. Nel campo si visualizzerà la stringa “## ###”.

    Il misuratore di portata massica permette di misurare la massa e la portata massica con il grado di precisione 0.1 kg e 0.1 kg/min rispettivamente. Se lasceremo il formato predefinito, non saremo in grado di vedere la parte frazionaria. Per visualizzarla, aggiungere “.0” alla riga. Le stringhe si visualizzeranno come segue:

    “# ### ### ##0.0” per la massa e per la porzione “## ##0.0” per la portata

    Siccome il convertitore analogico digitale di segnale del sensore di pressione fornisce una risoluzione di 0.05 kg/cm2, è logico mostrare due cifre dopo la virgola decimale:

    “## ##0.00” Specificare il valore “10” nel campo Default value del registro “Pressione, kgs/cm2” (“Pressure, kgs/cm2”). Premere INVIO. Il valore si visualizzerà come “10.00”.

    Lasciamo interi i valori della temperatura e della densità.

  • ModBus Constructor

    Guida Quick Start - 12 -

    ©2006 KurySoft. www.kurysoft.com

    Impostiamo due modalità di visualizzazione del tempo. Facciamo rimanere i secondi come unità della prima modalità, per la seconda invece applicheremo la formattazione “hh:mm:ss”, per visualizzare il tempo in formato “ore: minuti: secondi”.

    - fare doppio clic sull’area vuota nella colonna Object - selezionare Holding register - fare doppio clic sulla stessa riga nella colonna Data - selezionare il tipo Long - specificare Unsigned nella colonna Show - nel campo Label, specificare “Tempo, oo:mm:ss” (“Time, hh:mm:ss”) - specificare il valore “13” nel campo dell’indirizzo - nel campo Format, specificare “oo:mm:ss” - specificare il valore “1000” (tempo in secondi) nel campo Default value - fare clic sull’intestazione della colonna Address, per ordinare i registri Ora, 1000 secondi si visualizzano come “00:16:40”

    Infine, descriviamo i coil del misuratore:

    - con il mouse, evidenziare due celle vuote nella colonna Object - fare clic con il tasto destro sulle celle evidenziate - selezionare la scheda Coils dal menu a discesa - intitolare uno dei Coil “Flusso diretto” con indirizzo “0” - intitolare l’altro Coil “Flusso inverso” con indirizzo “1”

  • ModBus Constructor

    Guida Quick Start - 13 -

    ©2006 KurySoft. www.kurysoft.com

    Abbiamo descritto tutti i parametri principali degli oggetti del misuratore di portata massica. Premere “OK”.

    Salvare il progetto: File⇒Save.

    2.3. Ordinare i campi dati all’interno del modulo. Nell’angolo superiore destro del modulo possiamo vedere i campi dati e le etichette degli

    oggetti che abbiamo creato. Fare clic con il tasto sinistro del mouse su uno dei campi bianchi. Verrà evidenziato in blu scuro. Tenendo premuto il tasto sinistro del mouse, trascinare il campo evidenziato nella posizione desiderata. Per evidenziare campi multipli, selezionare i campi desiderati tenendo premuto il tasto Ctrl.

    In questa maniera, ordinare tutti i campi in modo che si possano vedere tutte le etichette. Tenere presente che spostando il campo si sposta anche la rispettiva etichetta, invece spostando l'etichetta il campo rimane nella posizione iniziale.

  • ModBus Constructor

    Guida Quick Start - 14 -

    ©2006 KurySoft. www.kurysoft.com

    Evidenziare l’etichetta “Contatore di massa, kg” (”Mass counter, kg”). Estenderla verso sinistra in modo da riempire la riga. Ripetere la procedura con le altre etichette.

    Per una lettura più comoda, si consiglia di collocare separatamente i campi dei parametri misurabili. Iniziamo dall’angolo superiore sinistro del modulo.

    Per separare visivamente gruppi di campi, si consiglia di usare le cornici. Fare clic sul modulo con il tasto destro del mouse. Si visualizzerà un menu a discesa, dal quale selezionare Add ⇒ Frame. Modificare la posizione e le dimensioni della cornice per sistemarla intorno al gruppo di campi desiderato.

    Ripetere la stessa procedura con i campi inerenti il controllo e i parametri di comunicazione.

    Premere Ctrl+S per salvare il progetto.

    2.4. Aggiungere richieste. Il protocollo MODBUS utilizza le richieste standard per permettere al dispositivo remoto di

    trasmettere dati ed eseguire operazioni. Mobdus Constructor permette di gestire le richieste in tre modi:

    - automaticamente - mediante menu - mediante dialogo

    Aprire la finestra di impostazione di richieste: Settings⇒Requests. La tabella posizionata nella parte bassa della finestra contiene tutti gli elementi della

    struttura dei dati. Nella parte alta della finestra si trova la tabella nella quale si inseriscono i parametri delle richieste.

    Iniziamo col creare le richieste automatiche che leggono il contenuto dei registri e dei coil del nostro misuratore.

    - fare doppio clic su una cella vuota nella colonna Function - apparirà un menu nel quale selezionare la voce 03.Read holding registers. Alla tabella verrà aggiunta una riga con i parametri della richiesta predefiniti.

  • ModBus Constructor

    Guida Quick Start - 15 -

    ©2006 KurySoft. www.kurysoft.com

    - cliccare nuovamente su questa riga. Nella tabella in basso alla finestra evidenziare con il mouse tutte le celle nella colonna

    Address relative ai registri - fare clic con il tasto destro del mouse - premere su Apply nel menu che apparirà Ripetere la stessa procedura per i coil. Usare la funzione 01.Read coils

    È possibile modificare il tempo minimo di richiesta. Per farlo, fare doppio clic sulla cella

    desiderata nella colonna Min.period, ms. Specificare il valore 300 millisecondi per entrambe le richieste.

    Tenere presente che questo parametro definisce il tempo minimo possibile di interrogazione dei dati specificati nella richiesta. Questo tempo può aumentare in funzione del tempo necessario per processare altre richieste. Se il valore di questo parametro si imposta a 0, la richiesta verrà eseguita con la massima frequenza possibile.

    Adesso bisogna specificare i comandi per la gestione del misuratore. I comandi si specificano mediante la scrittura di determinati valori nel registro di controllo con indirizzo 15.

    - creare la richiesta ”06.Write single register” - nella tabella in basso, selezionare la cella con indirizzo 15 (registro di controllo) nella colonna Write address - fare clic con il tasto destro del mouse - premere su Apply nel menu che apparirà - fare doppio clic su una cella nella colonna Write - specificare il valore “0” – è il valore che verrà scritto nel registro di controllo all’esecuzione del comando in oggetto

  • ModBus Constructor

    Guida Quick Start - 16 -

    ©2006 KurySoft. www.kurysoft.com

    - nella tabella in alto, nella colonna Label digitare il nome del comando “Modalità misuratore” (“Measure mode”). Questo nome diventerà voce del menu utente. - fare doppio clic su una cella nella colonna Control - selezionare la voce Menu 1 Ripetere le stessa procedura per creare altri comandi: “Modalità dosatore” (“Dose-meter mode”) (valore1) “Dosaggio porzione” (“Measure portion”) (valore 2) “Resettaggio contatori” (“Counters reset”) (valore 4) “Regolazione zero” (“Zero adjustment”) (valore 8)

    Si procede col creare i comandi per la gestione delle valvole: - creare la richiesta “15.Write multiple coils” - nella tabella in basso, selezionare le celle con indirizzi Coils 0 e 1 nella colonna Write address - fare clic con il tasto destro del mouse - premere su Apply nel menu che apparirà - nella colonna Write, fare doppio clic sulla cella rispettiva all’indirizzo 0, specificare il valore «1» - nella colonna Write, fare doppio clic sulla cella rispettiva all’indirizzo 1, specificare il valore «0» Quando si esegue questo comando, la valvola si apre per il flusso diretto, e si chiude per quello inverso - intitolare il comando “Apertura per il flusso diretto» (“Forward flow open”)

    Creare il comando “Apertura per il flusso inverso” (“Reverse flow open”): - specificare il valore «0» per il Coil con indirizzo 0 - specificare il valore «1» per il Coil con indirizzo 1

    Infine, creare il comando “Chiusura flusso” (“Shut flow”) che serve per chiudere entrambe le valvole:

  • ModBus Constructor

    Guida Quick Start - 17 -

    ©2006 KurySoft. www.kurysoft.com

    - per entrambi i Coil specificare il valore «0»

    Alcuni comandi sono relativi al controllo in modalità dosatore, mentre altri si utilizzano in

    modalità misuratore, poiché non è possibile gestire le valvole in modalità dosatore. Tuttavia ci sono due comandi comuni per entrambe le modalità: si tratta dei comandi «Resettaggio zero» e «Regolazione zero». Si consiglia di separarli l'uno dall'altro nel menu. Per farlo, procedere come segue:

    - creare due richieste, per esempio “01.Read coils” - impostare il parametro “Menu 1” nella colonna Control - al posto del nome inserire il simbolo “-“ (trattino)

    Queste richieste non saranno disponibili nel menu, serviranno da separatori tra le voci. - cliccare con il pulsante sinistro su una cella nella colonna Function. - tenendo premuto il tasto trascinare la cornice grigia tra i comandi «Dosaggio porzione» e «Resettaggio contatori» Procedere nella stessa maniera per ordinare le voci come illustrato sotto.

  • ModBus Constructor

    Guida Quick Start - 18 -

    ©2006 KurySoft. www.kurysoft.com

    Nella scheda Menu caption sostituire la dicitura “Menu 1” con “Controllo” (Contol).

    Premere OK. Salvare il progetto Ctrl+S. Nel menu principale appare la nuova voce Control:

    Quando il file del progetto si aprirà in Mobdus Reader, vi sarà aggiunto lo stesso menu

    che si potrà usare per l’esecuzione dei comandi creati dall’utente. Questo menu non è abilitato in Mobdus Constructor.

    Procediamo impostando le finestre di dialogo per la modifica dei parametri del dispositivo

    remoto. Aprire nuovamente il modulo Requests.

    - creare la richiesta “16.Write multiple register” - intitolarla «Dimensione porzione» (Portion size) - specificare l’indirizzo «5» - creare la richiesta “16. Write multiple register” - intitolarla «Parametri di comunicazione» (Communication parameters) - specificare gli indirizzi da 2 a 4 - creare la richiesta “06.Write single register” - intitolarla «Massa per singolo impulso, kg» (Mass per pulse, kg) - specificare l’indirizzo «16» - impostare il parametro di controllo per tutti e tre i comandi come “Dialog (menu 2)” - sostituire la dicitura “Menu 1” con “Impostazioni MFM” (MFM Settings) - premere “OK” - salvare il progetto: Ctrl+S

  • ModBus Constructor

    Guida Quick Start - 19 -

    ©2006 KurySoft. www.kurysoft.com

    Al menu si aggiunge un’altra voce: “Impostazioni MFM”. Aprire il menu e selezionare «Parametri di comunicazione». Si aprirà la finestra di dialogo che consente di modificare i parametri di comunicazione per il misuratore. Durante il lavoro con Mobdus Reader, nei campi dati di queste finestre saranno presenti i valori correnti ricevuti direttamente dal dispositivo mediante comandi di lettura, oppure i valori predefiniti. I valori predefiniti si usano se fino al momento di apertura della finestra non sono mai stati ricevuti dei dati, ciò può accadere ad esempio, quando sono disattivate le richieste automatiche.

    2.5. Parametri del simulatore. Il progetto creato con Mobdus Constructor può essere usato da Mobdus Reader sia per

    l’interrogazione del dispositivo in modalità Master che per la simulazione del dispositivo in modalità Slave. In modalità Slave, l’utente può cambiare i valori dei registri e dei dati discreti sia manualmente che automaticamente in base alla funzione specificata. È possibile impostare la funzione con l’aiuto di seguenti parametri: Default value, Value1, Value2, Period.

    La seguente regola vige per elementi discreti e per registri rappresentati sotto forma di Hex e Binary:

    2.5.1. T5. Discrete value simulation.

    Tempo Valore elemento dati

    0 < t < 1/3 Period Default value

    1/3 Period < t < 2/3 Period Value1

    2/3 Period < t < Period Value2

    Period < t < 4/3 Period Default value

    4/3 Period < t < 5/3 Period Value1

    … …

    Se il registro contiene dati di altri tipi (Float, Double) oppure numeri interi sia Signed che

    Unsigned, i valori si cambiano come segue:

    2.5.2. T6. Analogous value simulation.

    Tempo Valore elemento dati

    0 < t < 1/3 Period Funzione lineare da Default value a Value1

    1/3 Period < t < 2/3 Period Funzione lineare da Value1 a Value2

    2/3 Period < t < Period Funzione lineare da Value2 a Default value

    Period < t < 4/3 Period Funzione lineare da Default value a Value1

    4/3 Period < t < 5/3 Period Funzione lineare da Value1 a Value2

    … …

    Se il valore di Period è 0, si usa il valore predefinito Default value. Aprire la finestra Objects: Settings⇒ Objects e configurare i parametri di simulazione

    come illustrato nell’immagine.

  • ModBus Constructor

    Guida Quick Start - 20 -

    ©2006 KurySoft. www.kurysoft.com

    Notate che il valore Value1 per l’elemento Time è uguale a un terzo e il valore Value2 a due terzi della durata del periodo. In questo caso il valore Time sarà precisamente uguale al tempo trascorso dal momento di connessione.

    - premere “OK” - salvare il progetto: Ctrl+S

  • ModBus Constructor

    Guida Quick Start - 21 -

    ©2006 KurySoft. www.kurysoft.com

    3. USARE DISPOSITIVI MODBUS.

    In questa sezione imparerete ad usare i dispositivi descritti con l’aiuto di Mobdus Constructor.

    Invece del dispositivo vero, utilizzeremo il simulatore. Se il vostro computer ha due porte СОМ, connettetele tra di loro con un cavo null modem. Una delle porte COM sarà usata dal Master, l’altra dallo Slave. Se il computer dispone di una sola porta COM, installate Mobdus Reader su un altro computer avente almeno una porta CОМ e connetteteli con un cavo null modem. Il file di installazione separato di Mobdus Reader è scaricabile qui: http://www.kurysoft.com/products.shtml.

    Avviare Mobdus Reader: Start ⇒Programmi ⇒MobdusConstructor⇒MBReader.exe - aprire il file Coriolos.mbc. - contrassegnare la voce Master nel menu Mode - selezionare la prima porta COM (per esempio СОМ1) nel menu Connection - aprire un altro file Coriolos.mbc. - contrassegnare la voce Slave nel menu Mode - selezionare un’altra porta COM (per esempio COM2) nel menu Connection - sistemare i due moduli l’uno accanto all’altro in modo che siano visibili tutti i campi dati. Modificare le dimensioni, se necessario - accertarsi che siano identici i parametri di connessione delle due porte COM. Per aprire la finestra per la modifica di questi parametri, premere Ctrl+P - accertarsi che il Master e lo Slave abbiano lo stesso ID. Per aprire la finestra di dialogo per la modifica degli ID, premere Ctrl+I - accertarsi che nel menu Mode sia segnato Auto request enable per il modulo Master e Simulation enable per il modulo Slave

    Notate che i campi dati del modulo Master sono vuoti, mentre in quelli del modulo Slave sono presenti i valori predefiniti.

    Premere il tasto F3 per stabilire la connessione. Noterete che i dati nel modulo Master e quelli nel modulo Slave cambiano simultaneamente.

  • ModBus Constructor

    Guida Quick Start - 22 -

    ©2006 KurySoft. www.kurysoft.com

    Quando il modulo Master è attivo, diventano disponibili due menu aggiuntivi Controllo e Impostazioni MFM, che abbiamo precedentemente creato nella sezione «Aggiungere richieste». Cliccare sul modulo Master per renderlo attivo. Usare le opzioni di questi due menu per vedere come i dati cambiano all’esecuzione dei comandi.

    È possibile modificare dati direttamente nel modulo Slave quando la modalità di

    simulazione è disattivata: - cliccare sul modulo Slave - togliere il flag dall’opzione Simulation Enable del menu Mode

    I dati smetteranno di cambiare. - fare doppio clic nel campo “Densità” del modulo Slave - inserire un numero casuale - premere INVIO

    Non appena il Master eseguirà la seguente richiesta di lettura dei registri, il numero che avete immesso apparirà nel rispettivo campo del modulo Master.

    Allo stesso modo è possibile scrivere valori individuali nei registri e negli elementi discreti

    del dispositivo. - fare doppio clic nel campo “Densità” del modulo Master - inserire un numero casuale - premere INVIO

    Sessione completata, non dimenticate di salvare le impostazioni correnti, se ritenete che in seguito questi dati potranno esservi utili. Per farlo, selezionare l’opzione Save session nel menu File. Salvare il file con nome Coriolis.mbs.

    Adesso, che avete appreso le tecniche principali di utilizzo di Mobdus Constructor e

    Mobdus Reader, sarete in grado di creare progetti per lavorare con reali dispositivi MODBUS impiegando molto meno tempo rispetto a quello che avete dedicato al nostro esempio.

  • ModBus Constructor

    Guida Quick Start - 23 -

    ©2006 KurySoft. www.kurysoft.com

    4. TERMINI E DEFINIZIONI.

    4.1. Oggetti Nelle specifiche MODBUS, un oggetto è un elemento dati che può essere letto o scritto

    indipendentemente dagli altri. Esistono quattro tipi di oggetti:

    1. Coil single bit Read-Write

    2. Discrete input single bit Read-Only

    3. Holding register 16-bits word Read-Write

    4. Input register 16-bits word Read-Only

    4.2. Tipi di dati Mobdus Constructor. Mobdus Constructor supporta i seguenti tipi di dati:

    4.2.1. Tipi numerici

    Type Quantity of bits Quantity of registers

    integer (signed or unsigned) 16 1

    long (signed or unsigned) 32 2

    Float 32 2

    Double 64 4

    MSByte (signed or unsigned)* 8 ½ (most significant byte - MSB)

    LSByte (signed or unsigned)* 8 ½ (least significant byte - LSB) *Il byte (MSB o LSB) non può essere letto o scritto indipendentemente dall’altro byte del registro.

    4.2.2. Tipi discreti

    Type Quantity of bits

    single 1

    multiple 2-16

    4.3. Codifica dei dati. I tipi lunghi long, float e double sono rappresentati attraverso sequenze di registri. Esistono due modi di collocazione di tali numeri nei registri: diretto e inverso.

    4.3.1. Long.

    B3 B2 B1 B0

  • ModBus Constructor

    Guida Quick Start - 24 -

    ©2006 KurySoft. www.kurysoft.com

    MSB LSB

    Register A Register A+1

    Transmitted First last

    Default B1 B0 (LSB) B3 (MSB) B2

    Swapped B3 (MSB) B2 B1 B0 (LSB)

    4.3.2. Float.

    B3 B2 B1 B0

    S E E E E E E E E M M M M M M M M M M M M M M M M M M M M M M M

    Where floating point value = S1.M * 2E-127

    Register A Register A+1

    Transmitted First last

    Default B1 B0 (LSB) B3 (MSB) B2

    Swapped B3 (MSB) B2 B1 B0 (LSB)

    4.3.3. Double.

    B7 B6 B5-B1 B0

    S E E E E E E E E E E E M M M M M M M M M M M M M M M M M M M M M

    Where double precision floating point value = S1.M * 2E-1023 Register A Register A+1 Register A+2 Register A+3

    Transmitted first last

    Default B1 B0 B3 B2 B5 B4 B7 B6

    Swapped B7 B6 B5 B4 B3 B2 B1 B0

    4.4. Regole di utilizzo delle funzioni MODBUS. È possibile creare richieste di scrittura o lettura di determinati elementi dati del dispositivo

    solamente se questo elemento è stato specificato nel progetto. Per esempio, se è stato specificato almeno un Holding register, è sempre possibile usare

    le funzioni 03, 06. La finestra di dialogo Options (menu Settings) permette di consentire o annullare l’utilizzo

    di funzioni aggiuntive 16, 22, 23 per l’Holding register. Se si annulla l’utilizzo di una di queste funzioni, Mobdus Reader, in modalità simulatore,

    restituirà Exeption 1 (Illegal Function) a qualsiasi richiesta facente uso di tale funzione.

  • ModBus Constructor

    Guida Quick Start - 25 -

    ©2006 KurySoft. www.kurysoft.com

    Elemento Funzioni principali* Funzioni aggiuntive

    Coil 01 – Read coils 15– Read multiple coils

    Discrete input 02 – Read discrete inputs -

    Holding register 03 – Read holding registers 06 – Write single register

    16 – Write multiple registers 22 – Write mask register 23 – Read/write registers

    Input register 04 – Read input registers -

    *Deve essere specificato almeno un elemento.

    4.5. Esempi di formati. La formattazione permette di visualizzare i numeri nella maniera più comoda. Consente di evitare numeri con troppe cifre dopo la virgola decimale.

    4.5.1. Tipi numerici

    Numero Formato Visualizzazione

    12345 ### ##0 12 345

    12345 0 000 000 0 012 345

    123.45678 # ##0.000 123.457

    123.45678 0.00 E+00 1.23 E+02

    12 +## 000 + 012

    0.45678 .000 000 000 .456 780 000

    12345 hh:mm:ss 03:25:45

    Se nel campo dati ci sono alcuni elementi discreti, la formattazione permette di separarli

    visivamente tra di loro.

    4.5.2. Tipi discreti

    Bit Formato Visualizzazione

    11110000 0000 0000 1111 0000

    11110000 0000 0 0 0 0 0000 0 0 0 0

    11110000 0 11110000

    11110000 0 0 1111000 0

    11110000 000 00 000 111 10 000

    4.5.3. Predefinito per tipi numerici

    Tipo Formato

    integer ## ##0

  • ModBus Constructor

    Guida Quick Start - 26 -

    ©2006 KurySoft. www.kurysoft.com

    long # ### ### ##0

    byte ##0

    float 0.00

    double 0.000 E+00

    4.5.4. Predefinito per tipi discreti

    Tipo Formato

    single (1) 0

    multiple 2 00

    multiple 3 000

    multiple 4 0000

    multiple 5 0 0000

    multiple 9 0 0000 0000

    multiple 16 0000 0000 0000 0000