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/21 17:59] – [Force multiple coil] qem103en:software:devices:modbus [2016/12/23 15:42] – [Condizioni] qem103
Line 206: Line 206:
  
 === 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).
  
-1) Impostazioni modbus e apertura del canale di comunicazione di tipo seriale+==== - Examples ==== 
 + 
 +1) Modbus settings and opening of serial communication
 <code QCL> <code QCL>
 modbus.mode = 0                             ; modbus master modbus.mode = 0                             ; modbus master
Line 249: 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 259: 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 275: 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 320: 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 === +=== - Used symbols === 
-Il nome del parametrostato o comando viene riportato alla sinistra della tabella.+ 
 +The parameter namecondition or command is taken back to the left side of the table.
  
 **R**\\ **R**\\
-Indica se il relativo parametro o stato è ritentivo (al momento dell’inizializzazione del device mantiene lo stato precedentemente definito), oppure lo stato che assume al momento dell’inizializzazione del device.\\ +Indicates if the parameter or state is retentive (upon initialization of the device maintains the previously defined state), or the state assumes upon initialization of the device.\\ 
-Se il device non necessita di inizializzazione il campo “R” indica il valore che il parametro o stato assume all’accensione della scheda.\\ +If the device does not need to initialize the “R” field indicates the value that the parameter or state take at the at power-up card.\\ 
-R = Ritentivo\\ +R = Retentive\\ 
-0 = Al momento dell’inizializzazione del device il valore viene forzato a zero.\\ +0 = Upon initialization of the device the value is forced to zero.\\ 
-1 = Al momento dell’inizializzazione del device il valore viene forzato a uno.\\ +1 = Upon initialization of the device the value is forced to one.\\ 
-- = Al momento dell’inizializzazione del device viene presentato il valore significativo.+- = Upon initialization of the device is presented significant value.
  
 **D**\\ **D**\\
-Indica la dimensione del parametro.\\+Indicates the size of the parameter.\\
 F = Flag\\ F = Flag\\
 B = Byte\\ B = Byte\\
Line 358: 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 parametrose 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 impostatiil dato viene comunque accettatopertanto devono essere previsti opportuni controlli dell’applicativo tali +In some cases, limit values are specified for the acceptance of the parameterif any values outside the limits set are introducedthe data is however acceptedtherefore appropriate controls of the application must be provided to ensure the proper functioning.\\ 
-da garantire il corretto funzionamento.\\ +To execute a commandall conditions must be metotherwise the command does not execute.
-Per l’esecuzione di un comandotutte le relative condizioni devono necessariamente essere soddisfattein 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.\\
  
  • Last modified: 2020/07/13 14:58