Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
en:software:devices:modbus [2016/12/22 15:57] – [5.7. Broadcast] qem103 | en:software:devices:modbus [2016/12/23 16:25] – [5.10.3. Variabili] qem103 | ||
---|---|---|---|
Line 289: | Line 289: | ||
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. | 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. | ||
- | ==== - Identificazione degli Slave ==== | + | ==== - Slaves indentification |
- | La scheda quando funziona in modalità Master permette, con un speciale comando, di riconoscere se lo slave collegato è | + | |
- | di tipo QEM. In caso affermativo determina anche il modello di slave connesso. Questo permette di realizzare una diagnostica | + | |
- | sulla corretta configurazione della rete. Non è possibile estendere questo controllo a tutti i tipi di slave esistenti | + | |
- | perché il protocollo non prevede una modalità standard di riconoscimento slave.\\ | + | |
- | Il comando READSTYPE eseguito dopo aver opportunamente selezionato lo slave (tramite parametro idcard) invia allo | + | |
- | slave una richiesta modbus nr.17 per il riconoscimento. Lo slave risponderà con un suo valore predefinito e potrà essere | + | |
- | letto nel parametro stype del master. Nel caso lo slave non sia prodotto da QEM srl, il 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 utilizzato. Per una codifica degli slave in questo | + | |
- | senso vedere il manuale Firmware dello slave utilizzato. | + | |
- | Esempio d' | + | When the card works in master mode allows, with specila command, tell if the slave connected is a QEM. If so also determines the pattern of slave connected. This allows a diagnostic on the correct network configuration. You cannot extend this control to all types of existing slaves because the protocol does not provide a standard way of slave recognition.\\ |
+ | The READSTYPE command executed after selecting the slave (through idcard parameter) send a nr.17 modbus request to the slave for recognition. The 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.\\ | ||
+ | For the MODBUS device the ID slave is different depending on the slave QEM used. For encoding of the slaves see the slave Firmware used. | ||
+ | |||
+ | Example of slave identification | ||
<code QCL> | <code QCL> | ||
modbus: | modbus: | ||
Line 316: | Line 310: | ||
ENDIF | ENDIF | ||
</ | </ | ||
- | ==== - Estensione del protocollo | + | ==== - Protocol extension |
- | Il protocollo di comunicazione | + | The modbus standard |
* INPUT STATUS, | * INPUT STATUS, | ||
* COIL STATUS, | * COIL STATUS, | ||
* INPUT REGISTER, | * INPUT REGISTER, | ||
* HOLDING REGISTER. | * HOLDING REGISTER. | ||
- | Questi | + | These 4 types treat signals as Digital Inputs, Digital Outputs, Analog Inputs, and Analog Outputs. |
- | (sia INPUT REGISTERS | + | To allow support for datatypes larger than 16 bit, has been designed an extension to the protocol to treat long 32 bit dimension values. Implementing this feature preserves the formatting of the message |
- | (esempio | + | |
- | Per permettere di suppportare tipi di dato di dimensione maggiore di 16 bit, è stata progettata una estensione al protocollo | + | |
- | per trattare valori di dimensione | + | |
- | messaggio | + | |
- | questa estensione è attiva | + | |
- | per ogni richiesta di registro. Se l’indirizzo è superiore a 5000 verrà risposto con valore | + | |
- | rimane invariato con risposta a 16 bit. | + | |
- | ==== - Comandi e parametri | + | ==== - Commands and parameters |
- | === - Simbologia adottata | + | === - Used symbols |
- | Il nome del parametro, stato o comando viene riportato alla sinistra della tabella. | + | |
+ | The parameter name, condition or command is taken back to the left side of the table. | ||
**R**\\ | **R**\\ | ||
- | Indica se il relativo parametro o stato è ritentivo | + | Indicates if the parameter or state is retentive |
- | Se il device | + | If the device |
- | R = Ritentivo\\ | + | R = Retentive\\ |
- | 0 = Al momento dell’inizializzazione del device | + | 0 = Upon initialization of the device |
- | 1 = Al momento dell’inizializzazione del device | + | 1 = Upon initialization of the device |
- | - = Al momento dell’inizializzazione del device | + | - = Upon initialization of the device |
**D**\\ | **D**\\ | ||
- | Indica la dimensione del parametro.\\ | + | Indicates the size of the parameter.\\ |
F = Flag\\ | F = Flag\\ | ||
B = Byte\\ | B = Byte\\ | ||
Line 354: | Line 342: | ||
S = Single Float | S = Single Float | ||
- | == Condizioni | + | == Conditions |
- | Vengono descritte tutte le condizioni necessarie affinché il parametro sia considerato corretto o perché il comando venga accettato.\\ | + | |
- | In alcuni casi vengono specificati dei valori limite per l’accettazione del parametro: se vengono introdotti dei valori esterni | + | Describes all the conditions necessary for the parameter so that the parameter is considered correct or because the command is accepted.\\ |
- | ai limiti impostati, il dato viene comunque accettato; pertanto devono essere previsti opportuni controlli dell’applicativo tali | + | In some cases, limit values are specified for the acceptance of the parameter: if any values outside the limits set are introduced, the data is however accepted; therefore appropriate controls of the application must be provided to ensure the proper functioning.\\ |
- | da garantire il corretto funzionamento.\\ | + | To execute a command, all conditions must be met; otherwise the command does not execute. |
- | Per l’esecuzione di un comando, tutte le relative condizioni devono necessariamente essere soddisfatte; in caso contrario | + | |
- | il comando non viene eseguito. | + | |
**A**\\ | **A**\\ | ||
- | Indica la modalità di accesso.\\ | + | Indicates the access mode.\\ |
- | R = Read (lettura).\\ | + | R = Read.\\ |
- | W = Write (scrittura).\\ | + | W = Write.\\ |
RW = Read / Write.\\ | RW = Read / Write.\\ | ||
- | === - Parametri | + | === - Parameters |
- | ^ Nome ^ D ^ R ^ A ^ Condizioni | + | |
- | | mode | B | R | R/W | - | **Mode**\\ (0 ÷ 2)\\ Definisce se la scheda deve funzionare come master | + | ^ Name ^ D ^ R ^ A ^ Conditions |
- | | prot | B | R | R/W | - | **Protocol**\\ (0 ÷ 1)\\ Definisce il tipo di protocollo Modbus da utilizzare.\\ **0** = ASCII,\\ **1** = RTU,\\ **2** = TCPIP | | + | | mode | B | R | R/W | - | **Mode**\\ (0 ÷ 2)\\ Defines if the board should function as a master |
- | | wider | B | R | R/W | - | **Wide Registers**\\ (0 ÷ 1)\\ Indica se utilizzare l’estensione del protocollo per i registri a 32bit. Vedere capitolo | + | | prot | B | R | R/W | - | **Protocol**\\ (0 ÷ 1)\\ Defines the type of modbus protocol to use.\\ **0** = ASCII,\\ **1** = RTU,\\ **2** = TCPIP | |
- | | idcard | + | | wider | B | R | R/W | - | **Wide Registers**\\ (0 ÷ 1)\\ Indicates if to use the 32-bit registers protocol extension. See the “Extension of the Protocol” section |
- | | type | B | 1 | R/W | - | **Type**\\ | + | | idcard |
- | | addr | L | 1 | R/W | - | **Address**\\ (1 ÷ 65535)\\ | + | | type | B | 1 | R/W | - | **Type**\\ |
- | | tabreg | + | | addr | L | 1 | R/W | - | **Address**\\ (1 ÷ 65535)\\ |
- | | num | W | 1 | R/W | - | **Number**\\ (1 ÷ 512)\\ | + | | tabreg |
- | | brate | L | R | R/W | - | **Baud rate**\\ Baud rate della seriale.\\ Valori validi: 4800, 9600, 19200, 38400, 57600, 115200. | + | | num | W | 1 | R/W | - | **Number**\\ (1 ÷ 512)\\ |
- | | stopb | B | R | R/W | - | **Stop bit**\\ | + | | brate | L | R | R/W | - | **Baud rate**\\ |
- | | par | B | R | R/W | - | **Parity**\\ (0 ÷ 2)\\ **0** = none (nessuna),\\ **1** = odd (dispari),\\ **2** = even (pari). | | + | | stopb | B | R | R/W | - | **Stop bit**\\ |
- | | tout | W | R | R/W | - | **Timeout**\\ (0 ÷ 9999 msec)\\ | + | | par | B | R | R/W | - | **Parity**\\ (0 ÷ 2)\\ **0** = none,\\ **1** = odd,\\ **2** = even. | |
- | | toutsyc | + | | tout | W | R | R/W | - | **Timeout**\\ (0 ÷ 9999 msec)\\ |
+ | | toutsyc | ||
| iword1÷32 | | iword1÷32 | ||
- | | st_ibit0÷15 | + | | st_ibit0÷15 |
| ilong1÷16 | | ilong1÷16 | ||
| oword1÷32 | | oword1÷32 | ||
- | | st_obit0÷15 | + | | st_obit0÷15 |
| olong1÷16 | | olong1÷16 | ||
- | La possibilità di comunicare con il protocollo | + | The ability to communicate with the TCPIP protocol It was developed at a later time than the birth of the MODBUS |
- | Per configurare il numero della porta TCPIP è necessario andare a scrivere sui parametri | + | To configure the TCPIP port number You must go and write about the // |
* **stopb** = tcpip_port / & | * **stopb** = tcpip_port / & | ||
* **par** = tcpip_port ANDB & | * **par** = tcpip_port ANDB & | ||
- | Per impostare lo slave TCPIP a cui si vuole eseguire la richiesta è necessario andare a scrivere sul parametro | + | To set the TCPIP slave to which you want to execute the request you must go to write on the// |
- | Un indirizzo | + | An IP address can be expressed as TcpAddr3.TcpAddr2.TcpAddr1.TcpAddr0 (for example |
* **brate** = (TcpAddr3 * & | * **brate** = (TcpAddr3 * & | ||
- | === - Variabili | + | === - Variables |
- | ^ Nome ^ D ^ R ^ A ^ Condizioni | + | |
- | | err | B | 0 | R | - | **Errors**\\ | + | ^ Name ^ D ^ R ^ A ^ Conditions |
- | | serr | B | 0 | R/W | - | **Serial Errors**\\ | + | | err | B | 0 | R | - | **Errors**\\ |
- | | stype | W | 0 | R | - | **Slave type**\\ | + | | serr | B | 0 | R/W | - | **Serial Errors**\\ |
+ | | stype | W | 0 | R | - | **Slave type**\\ | ||