en:software:devices:modbus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
en:software:devices:modbus [2016/12/20 18:00] – [4.1. Dati letti dal device] qem103en:software:devices:modbus [2016/12/22 16:30] – [5.10. Comandi e parametri] qem103
Line 3: Line 3:
  
 The MODBUS<sup>®</sup> protocol represents an industrial communication system distributed and developed by Gould-Modicon to integrate PLC’s, computers, terminals, inverter and other devices. MODBUS is a Master/Slave communication protocol where only one device can be Master and monitors all activities of the serial line or TCPIP. As for the serial line can be connected up to a maximum of 247 slave along the same lines. Each device is assigned an address that distinguishes it from all other connected devices.\\ The MODBUS<sup>®</sup> protocol represents an industrial communication system distributed and developed by Gould-Modicon to integrate PLC’s, computers, terminals, inverter and other devices. MODBUS is a Master/Slave communication protocol where only one device can be Master and monitors all activities of the serial line or TCPIP. As for the serial line can be connected up to a maximum of 247 slave along the same lines. Each device is assigned an address that distinguishes it from all other connected devices.\\
-The MODBUS device lets you choose which serial port use for connection. The characteristics of data transmission (number of device, baud rate, parity, stop bits) and the transmission mode must be selected on each station and cannot be changed during the operation.\\+The MODBUS device lets you choose which serial port use for connection. The features s of data transmission (number of device, baud rate, parity, stop bits) and the transmission mode must be selected on each station and cannot be changed during the operation.\\
 With using a serial line, there are two modes of transmission used in the Modbus Protocol. Both ways allow the same communication skills. The mode is selected by the master and must be unique for all devices connected to the network. The modes are: With using a serial line, there are two modes of transmission used in the Modbus Protocol. Both ways allow the same communication skills. The mode is selected by the master and must be unique for all devices connected to the network. The modes are:
   * ASCII (American Standard Code for Information Interchange)   * ASCII (American Standard Code for Information Interchange)
Line 94: Line 94:
 NOTE 2: the “ st_ibit0 ” parameter less significant bit (with weight 0) of the “ iword1 ”, while the “ st_ibit15 ” bit is the most significant (with weight 15) of the “ iword1 ”. NOTE 2: the “ st_ibit0 ” parameter less significant bit (with weight 0) of the “ iword1 ”, while the “ st_ibit15 ” bit is the most significant (with weight 15) of the “ iword1 ”.
  
-==== - Dati scrivibili da QCL e condivisibili in MODBUS ====+==== - Writable data from QCL and sharable in MODBUS ====
  
-|:::^1^2^3^4^5^6^7^  8  ^9^10^11^12^13^14^15^16^Indice tabella+|:::^1^2^3^4^5^6^7^  8  ^9^10^11^12^13^14^15^16^Index table
-|:::^15^14^13^12^11^10^9^  8  ^7^6^5^4^6^2^1^0^Peso dei bit(2<sup>N</sup>)^ +|:::^15^14^13^12^11^10^9^  8  ^7^6^5^4^6^2^1^0^Weight of the bits(2<sup>N</sup>)^ 
-^Registro\\ Modbus| |||||||||||||||||+^Modbus\\ register| |||||||||||||||||
 |0001| |||||||oword1| |||||||2<sup>16</sup>|olong1| |0001| |||||||oword1| |||||||2<sup>16</sup>|olong1|
 |0002| |||||||oword2| |||||||2<sup>0</sup>|:::| |0002| |||||||oword2| |||||||2<sup>0</sup>|:::|
Line 132: Line 132:
 |0032| |||||||oword32| |||||||2<sup>0</sup>|:::| |0032| |||||||oword32| |||||||2<sup>0</sup>|:::|
  
-NOTA 1: la “ oword1 ” è la word più significativa della “ olong1 ” (long = doppia word), la “oword3” è la word più significativa +NOTE 1: the “ oword1 ” is the most significant word of the “ olong1 ” (long = double word), the “oword3” is the most significant word of the “ olong2 ”, ...\\ 
-della “ olong2 ”, ...\\ +NOTE 2: the “ st_obit0 ” parameter is the less significant bit (with weight 0) of the “ oword1 ”, while the “ st_obit15 ” bit is the most significant (with weight 15) of the “ oword1 ”.
-NOTA 2: il parametro “ st_obit0 ” è il bit meno significativo (con peso 0) della “ oword1 ”, mentre il bit “ st_obit15 ” è il bit +
-più significativo (con peso 15) della “ oword1 ”.+
  
  
-===== - Descrizione funzionamento come master ===== +===== - Master operation description =====
-Il device MODBUS può utilizzare una porta seriale o TCPIP per comunicare in modalità master (parametro //mode// = 0). Esso da la +
-possibilità (tramite parametri, stati e comandi) a tutti gli strumenti di poter colloquiare con qualsiasi apparecchiatura utilizzante +
-protocollo Modbus.\\ +
-Il device rende disponibile una area di scambio dati dove il QCL può scrivere o leggere i valori condivisi con gli slave della +
-rete. Questa area è rappresentata da una lista di parametri del device suddivisa in due gruppi per differenziare il tipo di +
-accesso dei dati da parte del device. La prima sezione è identificata come INPUT la seconda come OUTPUT. +
-La sezione INPUT, per il funzionamento master, è l’area di deposito dei dati letti. Viene utilizzata quindi da tutte le funzioni +
-di lettura (parametro //type// = 1, 2, 3 o 4). La sezione OUTPUT, nel funzionamento master, è l’area di deposito dei dati +
-che il master deve trasferire agli slave. Viene utilizzata da tutte le funzioni di scrittura (parametro //type// = 5, 6, 15 o 16). +
-Per semplificare lo scambio dati tra apparecchiature, la struttura dell’area di scambio include tipi di dato comunemente +
-usati in QCL e cioè WORD, LONG e FLAG. Il tipo “BYTE” non compare perché il modbus utilizza solitamente la dimensione +
-word per ogni indirizzo dei registri. Siccome il protocollo modbus seleziona i dati in base al numero di registro di accesso, +
-mentre il QCL seleziona in base al simbolo del parametro, si crea una tabella di riferimento in cui ogni simbolo +
-QCL trova il corrispondente numero del registro di accesso nel protocollo Modbus. Per ottenere una maggior flessibilità di +
-indirizzamento, la stessa area di scambio dati può essere manipolata dal QCL con parametri di dimensione diversa. Tutti i +
-simboli che compaiono nella stessa riga della tabella si riferiscono alle medesime locazioni di memoria.+
  
-==== - Accesso dei dati input e coil ====+The MODBUS device can use a serial port or TCPIP to communicate in master mode (parameter //mode// 0). Allows (via parameters, states and commands) all instruments to be able to communicate with any equipment utilizing Modbus.\\ 
 +The device provides a data exchange area where the QCL can write or read values shared with the slaves on the network. This area is represented by a list of parameters of the device divided into two groups to differentiate the type of access of the data by the device. The first section is identified as INPUT the second as OUTPUT. The INPUT section, for master operation, is the storage area of reads data. It is used by all reader functions (parameter //type// 1, 2, 3 o 4). The OUTPUT section, in the master operation, is the area of data storage that the master should transfer to the slaves. It is used by all writing functions (parameter //type// 5, 6, 15 o 16). To facilitate the exchange of data between devices, the structure of the Exchange area includes data types commonly used in QCL namely WORD, LONG and FLAG. The “BYTE” type does not appear because the modbus usually uses the word size for each address registers. The modbus protocol selects data based on the number of access log register, while the QCL selects based on the parameter symbol, you create a reference table in which each QCL symbol find the corresponding number in the register of access in Modbus protocol. To obtain greater flexibility for addressing, the same area of Exchange data can be manipulated by the QCL with different dimension parameterized. All the symbols that appear in the same row of the table refer to the same memory locations.
  
-I dati tipo input o //coi//l hanno nel protocollo modbus una dimensione a bit. Per la memorizzazione di queste informazioni +==== - Input and coil Data Access ====
-nella tabella di scambio dati è definita la seguente modalità: ogni registro (e quindi ogni parametro word del device) rappresenta +
-16 elementi che vengono numerati da sinistra verso destra. Per le scritture o letture multiple quando i bit da leggere +
-sono superiori a quelli contenuti nel registro l’operazione continua nel registro successivo.\\ +
-Gli stati //st_ibit0//... e //st_obit1//... sono utili per agevolare l’accesso alle informazioni di tipo bit solo nel primo registro della +
-tabella.+
  
-==== - Modo di funzionamento MASTER ====+The data input or //coil// type have in the modbus Protocol a bit size. To store this information in the table of data exchange is defined as follows mode: each register (and then every word parameter of the device) represents 16 elements that are numbered from left to right. For the Scriptures or multiple readings when bits read are higher than those contained in the register the operation continues in the next register.\\ 
 +The //st_ibit0//... and //st_obit1//... states are useful in order to facilitate access to information bit, only in the first table log.
  
-La modalità master viene impostata con il parametro mode 0. La scheda genera messaggi modbus solamente su comando +==== - Mode of MASTER operation ====
-del QCL e non automaticamente. Per “formattare” la stringa del messaggio modbus vi sono una serie di parametri.\\ +
-Mediante i due comandi SEND o SENDSYC si inviano la richiesta di lettura o scrittura allo slave, una serie di stati +
-permettono una verifica sull’operazione eseguita. Vediamo in dettaglio:+
  
-=== - Parametri per formattare il messaggio: === +The master mode is set with the mode parameter 0The card generates modbus messages only on QCL ordering and does not automaticallyTo "format" the modbus message string there are number of parameters.\\ 
-**type** = tipo di richiesta che si vuole processare (lettura o scrittura di word o di bit).\\ +Using the two commands SEND or SENDSYC you send the read or write request to the slave, a number of States allow an audit on the operation being executedWe see in detail:
-**idcard** = indirizzo dell’unità slave verso cui si vuole inviare la richiesta.\\ +
-**addr** = indice da cui iniziare leggere o da cui iniziare a scrivere nello slave in questione.\\  +
-**tabreg** = per le operazioni di lettura (type = 1, 2, 3, 4), questo parametro indica la posizione nella “tabella dei dati letti” dove verrà memorizzato il dato letto sullo slave. Per le operazioni di scrittura (type = 56, 15, 16), questo parametro indica da posizione nella “tabella dei dati da scrivere” dove si trova il dato da scrivere sullo slave. Sono previsti valori tra 1 e 512 per valori del parametro type = 1, 2, 5, 15 (scrittura e lettura di bit), mentre per valori type = 3, 4, 6, 16 (scrittura e lettura di word) i valori previsti sono tra 1 e 32.\\ +
-**num** = numero di valori che si intendono leggere o scrivere (se il tipo richiesta type lo prevede). Sono previsti valori tra 1 e 128 per valori del parametro type = 1, 2, (lettura di bit), mentre per valori type = 3, 4, 16 (scrittura multipla e lettura di word) i valori previsti sono tra 1 e 32.+
  
-=== - Comandi per inviare il messaggio: === +=== - Parameters for formatting the message: ===
-SEND invia il messaggio di richiesta allo slave.\\ +
-SENDSYC invia il messaggio di richiesta ad uno slave QEM di tipo MODBUS e segnala l’operazione conclusa (//st_sended//) solamente quando lo slave esegue il comando RECEIVED.+
  
-=== - Variabili di Stato per diagnostica operazione: === +**type** request type that you want to process (reading or writing word or bit).\\ 
-Quando l’operazione di trasmissione messaggio è conclusa, viene impostata a 1 la variabile di stato st_sendedSe è +**idcard** = address of the slave drive to which you want to send the request.\\ 
-stato utilizzato il comando SEND lo stato viene posto a 1 quando il master riceve la conferma del messaggio inviatoSe +**addr** = the index from which to start reading or at which to start writing in the slave.\\  
-invece è stato utilizzato nel master il comando SENDSYC allora questo stato verrà impostato a quando lo slave QEM +**tabreg** = for read operations (type = 1, 2, 3, 4), This parameter indicates the position in the “table of data read” where will store the read data on the slave. For write operations (type = 5615, 16), this parameter indicates the position in the “table of data to be written” where is the data to be written on the slave. Are accepted values are between and 512 for values of type parameter = 1, 2, 5, 15 (writing and reading of bits), while for type value = 3, 4, 6, 16 (writing and reading of wordthe expected values are between 1 and 32.\\ 
-avrà eseguito il comando RECEIVEDIn caso di erroreinvecequesto stato viene posto comunque a 1 (dopo il tempo +**num** = number of values that are read or write (if the request type so provides). Are accepted values are between 1 and 128 for values of type parameter = 1, 2, (reading of bits), while for type value = 3, 4, 16 (multiple word reading and writing) the accepted value are between 1 and 32.
-//toutsyc//ma il parametro err segnala la causa dell’errore (vedere la descrizione di questo parametro per i dettagli).\\ +
-Il comando SENDSYC si rende necessario quando si vuole sincronizzare la scrittura del master di un pacchetto dati con la lettura degli stessi dati da parte dello slave (può essere usato quando sia master che slave sono Qmove).+
  
-==== - Richieste di lettura ====+=== - Commands to send the message: === 
 + 
 +SEND sends the request message to the slave.\\ 
 +SENDSYC sends the request message to a QEM slave of MODBUS type and reports the operation concluded (//st_sended//) only when the slave executes the RECEIVED command. 
 + 
 +=== - State variables for diagnostic operation: === 
 + 
 +When ended the message send operation, the status st_sended variable is set to 1. If you used the SEND command the state is set to 1 when the master receive the confirmation of the message being sent. If you have used the SENDSYC command in the master then this status will be set to 1 when the slave QEM will execute the RECEIVED command. In case of error, This status is still in set to 1 (After the //toutsyc// time) but the err parameter indicates the cause of the error (see the description of this parameter for details).\\ 
 +The SENDSYC coomand it becomes necessary when you want to synchronize master data packet writing by reading the same data from the slave (can be used when both master and slave are Qmove). 
 + 
 +==== - Read request ====
  
 === Read Coil === === Read Coil ===
-Funzione di lettura bit. Si vogliono leggere i bit di un certo slave (//idcar//d). Viene impostato il parametro //type// = 1.\\ Bisogna + 
-impostare //addr// per indicare l’indirizzo del bit nello slave da cui si intende iniziare a leggereIl parametro //num// indica il +Bit read function. You want to read the bits of a slave (//idcar//d). Sets the parameter //type// = 1.\\ You must set //addr// to indicate the address of the bit in the slave from which to start readingThe //num// parameter indicates the number of bits that are readYou must to set //tabreg// to indicate the index of the bit in the data read table” the master from which you want to be written the read bitsThe raedings value will be saved in the data read table”. It is recommended to always meet the following two conditions:\\ 
-numero di bit che si intendono leggereBisogna impostare //tabreg// per indicare l’indice del bit nella tabella dei dai letti” del +(//addr// + //num// - 1) <= 512 e (//tabreg// + //num// - 1) <= 512 otherwise the request will fail (reporting by //wcmd//).
-master da cui si vuole che siano scritti i bit lettiI valori letti saranno salvati nella tabella dei dati letti”. Si raccomanda di +
-soddisfare sempre le seguenti due condizioni:\\ +
-(//addr// + //num// - 1) <= 512 e (//tabreg// + //num// - 1) <= 512 altrimenti la richiesta non potrà essere eseguita (segnalazione mediante //wcmd//).+
  
 === Read Input === === Read Input ===
-Funzione di lettura a bitSi vogliono leggere i bit di un certo slave (//idcard//). La funzione è identica alla “//Read Coil//”. Viene impostato il parametro type = 2.\\ Il significato delle due funzioni si distingue a livello di protocollo MODBUS. Alcuni slave possono mettere a disposizione delle zone di memoria differenti a seconda se i bit letti sono Coil Input. Nel caso di slave Qmove le due richieste hanno lo stesso effetto.+ 
 +Bit read functionTo read the bits of a slave (//idcard//). The function is equal to the “//Read Coil//”. Sets the parameter type = 2.\\ The meaning of the two functions is distinguished at the level of MODBUS protocolSome slave can make available different memory areas depending if the bits are Coil or Input. In the case of slave Qmove the two requests have the same effect.
  
 === Read Holding Register === === Read Holding Register ===
-Funzione di lettura a wordSi vogliono leggere le word di un certo slave (idcard). Viene impostato il parametro //type// = 3.\\ + 
-Bisogna impostare addr per indicare l’indirizzo della word nello slave da cui si intende iniziare a leggereIl parametro num +Word read functionFor reading the word of the slave (idcard). Sets the parameter //type// = 3.\\ 
-indica il numero di word che si intendono leggereBisogna impostare tabreg per indicare l’indice della word nella tabella +You must to set addr to indicate the address of the word in the slave from which to start readingThe num parameter indicates the number of word to be readYou must set tabreg to indicate the index of the word in the read data table” of the master from which you want are writes the read wordsThe read values will be saved in the read data table”. It is recommended to always meet the following two conditions:\\ 
-dei dai letti” del master da cui si vuole che siano scritte le word letteI valori letti verranno salvati nella tabella dei dati letti”. +(addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 otherwise the request will fail (reporting by wcmd).
-Si raccomanda di soddisfare sempre le seguenti due condizioni:\\ +
-(addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 altrimenti la richiesta non potrà essere eseguita (segnalazione mediante +
-wcmd).+
  
 === Read Input Register === === Read Input Register ===
-Funzione di lettura ingressi a word. Si vogliono leggere i bit di un certo slave (idcard). La funzione è identica alla “Read Holding Register”. Viene impostato il parametro type = 4.\\ Il significato delle due funzione si distingue a livello di protocollo MODBUS. Alcuni slave possono mettere a disposizione delle zone di memoria differenti a seconda se le word lette sono Holding o Input. Nel caso di slave Qmove le due richieste hanno lo stesso effetto. 
  
-==== - Richieste di scrittura ====+Word read function. For reading the bit of the slave (idcard). The function is equal to the “Read Holding Register”. sets the parameter type = 4.\\ The meaning of the two functions is distinguished at the level of MODBUS protocol. Some slave can make available different memory areas depending if the read word are Holding or Input. In the case of slave Qmove the two requests have the same effect. 
 + 
 +==== - Write request ====
  
 === Force coil === === Force coil ===
-Funzione di scrittura bitSi vogliono scrivere (forzarebit di un certo slave (//idcard//). Viene impostato il parametro //type// = + 
-5.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivereBisogna impostare tabreg +Bit write functionFor writing (forcethe bit of the slave (//idcard//). Sets the parameter //type// = 5.\\ You must set addr to indicate the address of the bit in the slave that you want to writeYou must set tabreg to indicate the index of the bit in the write data table” that contains the value to be written.
-per indicare l’indice del bit nella tabella dei dati da scrivere” in cui è contenuto il valore da scrivere.+
  
 === Force register === === Force register ===
-Funzione di scrittura singola wordSi vuole scrivere (forzarela word di un certo slave (//idcard//). Viene impostato il parametro + 
-//type// = 6.\\ Bisogna impostare addr per indicare l’indirizzo della word nello slave in cui si intende scrivereBisogna +Word write functionFor write (forcethe word of a slave (//idcard//). Sets the parameter //type// = 6.\\ You must set addr to indicate the address of the word in the slave that you intend to writeYou must set tabreg to indicate the index of the word in the data write table” that contains the value to be written.
-impostare tabreg per indicare l’indice della word nella tabella dei dati da scrivere” in cui è contenuto il valore da scrivere.+
  
 === Force multiple coil === === Force multiple coil ===
-Funzione di scrittura bit multipliSi vogliono scrivere (forzarebit di un certo slave (//idcard//). Viene impostato il parametro + 
-//type// = 15.\\ Bisogna impostare addr per indicare l’indirizzo del bit nello slave in cui si intende scrivereSi deve impostare in +Multiples bit write functionFor write (forcethe bit of a slave (//idcard//). Sets the parameter //type// = 15.\\ You must set addr to indicate the address of the bit in the slave that you intend to writeYou must set in num the number of bits to writeYou must set tabreg to indicate the bit index of the data write table” from which to begin the values to be writtenIt is recommended to always meet the following two conditions:\\ 
-num il numero di bit da scrivereBisogna impostare tabreg per indicare l’indice del bit nella tabella dei dati da scrivere +(addr + num - 1) <= 512 e (tabreg + num - 1) <= 512 otherwise the request will fail (reporting by wcmd).
-da cui iniziano i valori da scrivereSi raccomanda di soddisfare sempre le seguenti due condizioni:\\ +
-(addr + num - 1) <= 512 e (tabreg + num - 1) <= 512 altrimenti la richiesta non potrà essere eseguita (segnalazione mediante wcmd).+
  
 === Force multiple register === === Force multiple register ===
-Funzione di scrittura word multiple. Si vogliono scrivere (forzare) le word di un certo slave (//idcard//). Viene impostato il parametro 
-//type// = 16.\\ Bisogna impostare addr per indicare l’indirizzo della word nello slave in cui si intende scrivere. Si deve 
-impostare in num il numero di word da scrivere. Bisogna impostare tabreg per indicare l’indice della word nella “tabella 
-dei dati da scrivere” da cui iniziano i valori da scrivere. Si raccomanda di soddisfare sempre le seguenti due condizioni:\\ 
-(addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 altrimenti la richiesta non potrà essere eseguita (segnalazione mediante wcmd). 
  
-==== - Esempi ====+Multiples word write function. For write (forzare) the word of a slave (//idcard//). Sets the parameter //type// = 16.\\ You must set addr to indicate the address of the word in the slave that you intend to write. You must set in num the number of word to write. You must set tabreg to indicate the index of the word in the “dat write table” from which to begin the values to be written. It is recommended to always meet the following two conditions:\\ 
 +(addr + num - 1) <= 32 e (tabreg + num - 1) <= 32 otherwise the request will fail (reporting by wcmd). 
 + 
 +==== - Examples ====
  
-1) Impostazioni modbus e apertura del canale di comunicazione di tipo seriale+1) Modbus settings and opening of serial communication
 <code QCL> <code QCL>
 modbus.mode = 0                             ; modbus master modbus.mode = 0                             ; modbus master
Line 279: Line 247:
 </code> </code>
  
-3) Lettura del registro input nr.7 dello slave id 67+3) Reading the registry input nr.7 of the slave id 67
 <code QCL> <code QCL>
 modbus.idcard = 67 modbus.idcard = 67
Line 289: Line 257:
 WAIT modbus.st_sended WAIT modbus.st_sended
 IF (modbus.err) IF (modbus.err)
-    CALL ErroreModbus+    CALL ErrorModbus
 ENDIF ENDIF
-slVelocita = modbus.iword7+slSpeed = modbus.iword7
 </code> </code>
  
-4) Lettura dei holding register dal nr.600 al nr.606 dello slave id 8\\ +4) Reading of the holding register from nr.600 to nr.606 of the slave id 8\\ 
-Siccome l’area di scambio dati QCL non supporta l’indirizzo 600, si utilizza il parametro tabreg per salvare i dati letti all’indirizzo 10+The area of QCL data exchange does not support the address 600, you use the tabreg parameter to save the data read at 10 address
 <code QCL> <code QCL>
 modbus.idcard = 8 modbus.idcard = 8
Line 305: Line 273:
 WAIT modbus.st_sended WAIT modbus.st_sended
 IF (modbus.err) IF (modbus.err)
-    CALL ErroreModbus+    CALL ErrorModbus
 ENDIF ENDIF
          
 swTemp1 = modbus.iword10 swTemp1 = modbus.iword10
-slVelocita = modbus.ilong6+slSpeed = modbus.ilong6
 slPosiz = modbus.ilong7 slPosiz = modbus.ilong7
 swTemp1 = modbus.iword15 swTemp1 = modbus.iword15
 </code> </code>
-==== - Schema a blocchi ====+==== - Block diagrams ==== 
 {{:software:devices:modbus:modbus_01.png?nolink400|}} {{:software:devices:modbus:modbus_01.png?nolink400|}}
  
 ==== - Broadcast ==== ==== - Broadcast ====
-Il Broadcast è un messaggio speciale che viene inviato dal Master e viene ricevuto contemporaneamente da tutti gli slave 
-connessi. La funzionalitá broadcast (idcard = 0) è supportata solamente in modo master e se viene usato un messaggio 
-con type = 5, 6, 15 e 16 (solo scrittura). In questa modalità lo stato st_sended viene attivato appena terminata la trasmissione 
-e non alla ricezione della conferma dallo slave. Infatti non esiste nessuna risposta degli slave per questo tipo di 
-messaggi. Non è possibile utilizzare il comando SENDSYC. 
  
-==== - Identificazione degli Slave ==== +The Broadcast is a special message that is sent by the Master and is received simultaneously from all connected slaves. The broadcast function (idcard = 0) is supported only in master mode and if you use a message with type = 5, 6, 15 and 16 (write only). In this mode the st_sended state is activated once ended the transmission and not on receipt of confirmation by the slave. There isn't answer on the slaves to such messages. You cannot use the SENDSYC command. 
-La scheda quando funziona in modalità Master permettecon un speciale comandodi riconoscere se lo slave collegato è + 
-di tipo QEM. In caso affermativo determina anche il modello di slave connessoQuesto permette di realizzare una diagnostica +==== - Slaves indentification ==== 
-sulla corretta configurazione della reteNon è possibile estendere questo controllo tutti i tipi di slave esistenti + 
-perché il protocollo non prevede una modalità standard di riconoscimento slave.\\ +When the card works in master mode allowswith specila commandtell if the slave connected is a QEM. If so also determines the pattern of slave connectedThis allows a diagnostic on the correct network configurationYou cannot extend this control to all types of existing slaves because the protocol does not provide a standard way of slave recognition.\\ 
-Il comando READSTYPE eseguito dopo aver opportunamente selezionato lo slave (tramite parametro idcard) invia allo +The READSTYPE command executed after selecting the slave (through idcard parametersend a nr.17 modbus request to the slave for recognitionThe slave will responds with a default value and can be read in the stype parameter of the master. If the slave is not produced by QEM, the parameter will be –1 value to indicate that the slave is connected but you cannot identify it.\\ 
-slave una richiesta modbus nr.17 per il riconoscimentoLo slave risponderà con un suo valore predefinito e potrà essere +For the MODBUS device the ID slave is different depending on the slave QEM usedFor encoding of the slaves see the slave Firmware used.
-letto nel parametro stype del master. Nel caso lo slave non sia prodotto da QEM srlil parametro avrà valore –1 ad indicare che lo +
-slave è connesso ma non è possibile identificarlo.\\ +
-Per il device MODBUS lo slave ID è diverso a seconda dello slave QEM utilizzatoPer una codifica degli slave in questo +
-senso vedere il manuale Firmware dello slave utilizzato.+
  
-Esempio d'identificazione dello slave nr.12:+Example of slave identification nr.12:
 <code QCL> <code QCL>
 modbus:idcard = 12 modbus:idcard = 12
Line 350: Line 310:
 ENDIF ENDIF
 </code> </code>
-==== - Estensione del protocollo ====+==== - Protocol extension ====
  
-Il protocollo di comunicazione modbus standard definisce tipi di dati di scambio:\\+The modbus standard communication protocol defines types of Exchange data:\\
   * INPUT STATUS,   * INPUT STATUS,
   * COIL STATUS,   * COIL STATUS,
   * INPUT REGISTER,   * INPUT REGISTER,
   * HOLDING REGISTER.   * HOLDING REGISTER.
-Questi tipi trattano i segnali tipo Digital Inputs, Digital Outputs, Analog Inputs, and Analog Outputs. I valori dei registri +These types treat signals as Digital Inputs, Digital Outputs, Analog Inputs, and Analog Outputs. The values of the registers (INPUT REGISTERS and HOLDING REGISTERS), are defined as values in 16 bit, each with a unique address, (example INPUT REGISTER #1, INPUT REGISTER #2, INPUT REGISTER #3, ecc.).\\ 
-(sia INPUT REGISTERS che HOLDING REGISTERS), sono definiti come valori a 16 bit, ognuno con un unico indirizzo, +To allow support for datatypes larger than 16 bit, has been designed an extension to the protocol to treat long 32 bit dimension valuesImplementing this feature preserves the formatting of the message standard modbus it uses the contents of two consecutive addresses to represent a 32 bit valueWhen this extension is enabled (wider = 1), depending on the address used the slave responds with a 16-bit or 32-bit value for each log requestIf the address is greater than 5000 will be returned a 32-bit valueif under the Protocol remains unchanged with response to 16 bits.
-(esempio INPUT REGISTER #1, INPUT REGISTER #2, INPUT REGISTER #3, ecc.).\\ +
-Per permettere di suppportare tipi di dato di dimensione maggiore di 16 bit, è stata progettata una estensione al protocollo +
-per trattare valori di dimensione long 32 bit. L’implementazione di questa funzionalitá mantiene la formattazione del +
-messaggio standard modbus e utilizza il contenuto di due indirizzi consecutivi per rappresentare un valore 32 bit. Quando +
-questa estensione è attiva (wider = 1), a seconda dell’indirizzo utilizzato lo slave risponderà con un valore a 16 bit 32 bit +
-per ogni richiesta di registroSe l’indirizzo è superiore a 5000 verrà risposto con valore a 32 bit, se inferiore il protocollo +
-rimane invariato con risposta a 16 bit.+
  
-==== - Comandi e parametri ====+==== - Commands and parameters ====
  
 === - Simbologia adottata === === - Simbologia adottata ===
  • Last modified: 2020/07/13 14:58