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
en:software:devices:modbus [2016/12/23 14:53] – [5.10.1. Simbologia adottata] qem103en:software:devices:modbus [2020/07/13 14:58] (current) qem103
Line 1: Line 1:
 ====== DEVICE MODBUS ====== ====== DEVICE MODBUS ======
-===== - Introduction =====+====== - Introduction ======
  
 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.\\
Line 342: 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.\\
  
-=== - Parametri === +=== - Parameters === 
-Nome         ^ D  ^ R  ^ A    ^ Condizioni  Descrizione                                                                                                                                                                                                           ^ + 
-| mode         | B  | R  | R/W  | -           | **Mode**\\ (0 ÷ 2)\\ Definisce se la scheda deve funzionare come master o come slave.\\ **0** = master.                                                                                                               | +Name         ^ D  ^ R  ^ A    ^ Conditions  Description                                                                                                                                                                                                           ^ 
-| 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 or slave.\\ **0** = master.                                                                                                               | 
-| wider        | B  | R  | R/W  | -           | **Wide Registers**\\ (0 ÷ 1)\\ Indica se utilizzare l’estensione del protocollo per i registri a 32bitVedere capitolo Estensione del protocollo” :\\ **0** = normale,\\ **1** = protocollo esteso.                 | +| prot         | B  | R  | R/W  | -           | **Protocol**\\ (0 ÷ 1)\\ Defines the type of modbus protocol to use.\\ **0** = ASCII,\\ **1** = RTU,\\ **2** = TCPIP                                                                                        | 
-| idcard       | W  | R  | R/W  | -           | **Identification Card**\\ (0 ÷ 255)\\ Nel funzionamento come master è il numero del dispositivo al quale s'intende trasmettereNel modo master è valida anche l’impostazione zero per il funzionamento broadcast.    | +| wider        | B  | R  | R/W  | -           | **Wide Registers**\\ (0 ÷ 1)\\ Indicates if to use the 32-bit registers protocol extensionSee the Extension of the Protocol” section :\\ **0** = normal,\\ **1** = extended protocol.                 | 
-| type         | B  | 1  | R/W  | -           | **Type**\\ Definisce il tipo di richiesta che il master deve eseguire.\\ Valori ammessi: 1, 2, 3, 4, 5, 6, 15, 16                                                                                                     | +| idcard       | W  | R  | R/W  | -           | **Identification Card**\\ (0 ÷ 255)\\ In the operation as the master is the device number that you want to transmitIn master mode setting of zero is also valid for operation broadcast.    | 
-| addr         | L  | 1  | R/W  | -           | **Address**\\ (1 ÷ 65535)\\ Definisce l’indirizzo utilizzato dal master per definire quale sia il dato da leggere o scrivere.                                                                                         | +| type         | B  | 1  | R/W  | -           | **Type**\\ Defines the type of request that the master must perform.\\ Allowed values: 1, 2, 3, 4, 5, 6, 15, 16                                                                                                     | 
-| tabreg       | W  | 1  | R/W  | -           | **Destination**\\ (1 ÷ 512)\\ Definisce l’indirizzo nelle tabelle dei dati in cui scrivere il dato letto o in cui trovare il dato da scrivere.                                                                        | +| addr         | L  | 1  | R/W  | -           | **Address**\\ (1 ÷ 65535)\\ Defines the address used by the master to define the data to be read or write.                                                                                         | 
-| num          | W  | 1  | R/W  | -           | **Number**\\ (1 ÷ 512)\\ È il numero d'elementi da scrivere o leggere nella richiesta che compone il master.                                                                                                          | +| tabreg       | W  | 1  | R/W  | -           | **Destination**\\ (1 ÷ 512)\\ Defines the address data tables into which to write the data read or where to find the data to write.                                                                        | 
-| 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)\\ Is the number of items to be written to or read in the request of the master.                                                                                                          | 
-| stopb        | B  | R  | R/W  | -           | **Stop bit**\\ Valori validi: 1, 2.                                                                                                                                                                                   | +| brate        | L  | R  | R/W  | -           | **Baud rate**\\ Serial Baud rate.\\ Allowed values: 4800, 9600, 19200, 38400, 57600, 115200.                                                                                                                    | 
-| par          | B  | R  | R/W  | -           | **Parity**\\ (0 ÷ 2)\\ **0** = none (nessuna),\\ **1** = odd (dispari),\\ **2** = even (pari).                                                                                                                        | +| stopb        | B  | R  | R/W  | -           | **Stop bit**\\ Allowed values: 1, 2.                                                                                                                                                                                   | 
-| tout         | W  | R  | R/W  | -           | **Timeout**\\ (0 ÷ 9999 msec)\\ Per la modalitá master è il tempo massimo in cui lo slave deve rispondere.\\ Impostandolo a zero il Timeout è disabilitato.                                                           | +| par          | B  | R  | R/W  | -           | **Parity**\\ (0 ÷ 2)\\ **0** = none,\\ **1** = odd,\\ **2** = even.                                                                                                                        | 
-| toutsyc      | W  | R  | R/W  | -           | **Time out synchronize**\\ (0 ÷ 9999 msec)\\ Utilizzato solamente per la modalitá master è il tempo massimo che puó trascorrere tra l’invio del comando SENDSYC e l’esecuzione del comando RECEIVED nello slave QEM.  |+| tout         | W  | R  | R/W  | -           | **Timeout**\\ (0 ÷ 9999 msec)\\ For the master mode is the maximum time the slave must respond.\\ Setting it to zero, the Timeout is disabled.                                                           | 
 +| toutsyc      | W  | R  | R/W  | -           | **Time out synchronize**\\ (0 ÷ 9999 msec)\\ Only used to master mode is the maximum time that can elapse between sending the SENDSYC command and the RECEIVED command execution on the QEM slave.  |
 | iword1÷32    | W  | 0  | R    | -           | **Input Word nr.** (1Input Long nr. (1÷16)32)                                                                                                                                                                         | | iword1÷32    | W  | 0  | R    | -           | **Input Word nr.** (1Input Long nr. (1÷16)32)                                                                                                                                                                         |
-| st_ibit0÷15  | F  | 0  | R    | -           | **Input bit nel parametro iword1**                                                                                                                                                                                    |+| st_ibit0÷15  | F  | 0  | R    | -           | **Input bit in the iword1 parameter**                                                                                                                                                                                    |
 | ilong1÷16    | L  | 0  | R    | -           | **Input Long nr.** (1÷16)                                                                                                                                                                                             | | ilong1÷16    | L  | 0  | R    | -           | **Input Long nr.** (1÷16)                                                                                                                                                                                             |
 | oword1÷32    | W  | 0  | R/W  | -           | **Output Word nr.** (1÷32)                                                                                                                                                                                            | | oword1÷32    | W  | 0  | R/W  | -           | **Output Word nr.** (1÷32)                                                                                                                                                                                            |
-| st_obit0÷15  | F  | 0  | R/W  | -           | **Output bit nel parametro oword1**                                                                                                                                                                                   |+| st_obit0÷15  | F  | 0  | R/W  | -           | **Output bit in the oword1 parameter**                                                                                                                                                                                   |
 | olong1÷16    | L  | 0  | R/W  | -           | **Output Long nr.** (1÷16)                                                                                                                                                                                            | | olong1÷16    | L  | 0  | R/W  | -           | **Output Long nr.** (1÷16)                                                                                                                                                                                            |
  
-La possibilità di comunicare con il protocollo TCPIP è stata sviluppata in un tempo successivo rispetto alla nascita del device MODBUS. Per questo modivo l'impostazione della porta e dell'indirizzo IP viene eseguita mediante alcuni parametri che hanno un significato diverso.+The ability to communicate with the TCPIP protocol It was developed at a later time than the birth of the MODBUS deviceFor this reason the IP address and port setting is achieved using some parameters that have a different meaning.
  
-Per configurare il numero della porta TCPIP è necessario andare a scrivere sui parametri //stopb// //par//Rispettivamente :+To configure the TCPIP port number You must go and write about the //stopb// and //par// parametersRespectively :
   * **stopb** = tcpip_port / &H00000100   * **stopb** = tcpip_port / &H00000100
   * **par** = tcpip_port ANDB &H000000FF   * **par** = tcpip_port ANDB &H000000FF
-Per impostare lo slave TCPIP a cui si vuole eseguire la richiesta è necessario andare a scrivere sul parametro //brate//.\\  +To set the TCPIP slave to which you want to execute the request you must go to write on the//brate// parameter .\\  
-Un indirizzo IP può essere espresso come TcpAddr3.TcpAddr2.TcpAddr1.TcpAddr0 (per esempio 192.168.0.1).+An IP address can be expressed as TcpAddr3.TcpAddr2.TcpAddr1.TcpAddr0 (for example 192.168.0.1).
   * **brate** = (TcpAddr3 * &H01000000) + (TcpAddr2 * &H00010000) + (TcpAddr1 * &H00000100) + TcpAddr0   * **brate** = (TcpAddr3 * &H01000000) + (TcpAddr2 * &H00010000) + (TcpAddr1 * &H00000100) + TcpAddr0
  
  
-=== - Variabili === +=== - Variables ===
-^ Nome   ^ D  ^ R  ^ A    ^ Condizioni  ^ Descrizione                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^ +
-| err    | B  | 0  | R    | -           | **Errors**\\ Indica se sono stati riscontrati errori nel protocollo.\\ In modalità master il parametro viene aggiornato in coincidenza dell’attivazione dello stato //st_sended//. I valori da 1 a 49 sono quelli inviati dallo slave. I valori superiori a 50 sono generati internamente dal master. I primi 8 valori sono normalizzati nel protocollo e sono:\\ **0** = comunicazione avvenuta senza errori,\\ **1** = ILLEGAL FUNCTION,\\ **2** = ILLEGAL DATA ADDRESS,\\ **3** = ILLEGAL DATA VALUE,\\ **4** = SLAVE DEVICE FAILURE,\\ **5** = ACKNOWLEDGE,\\ **6** = SLAVE DEVICE BUSY,\\ **7** = NEGATIVE ACKNOWLEDGE,\\ **8** = MEMORY PARITY ERROR,\\ **5**0 = UNKNOWN RECEIVED ERROR lo slave ha risposto con un codice superiore a 49,\\ **5**1 = TIMEOUT lo slave non ha risposto entro il tempo programmato nel parametro tout,\\ **52** = INVALID ANSWER,\\ **52** = INVALID FUNCTION ANSWER - Tipo funzione non supportata,\\ **53** = CHECKSUM ANSWER - Il checksum ricavato non corrisponde,\\ **54** = TRUNCATED ANSWER - Messaggio troppo corto,\\ **55** = INVALID ID ANSWER - Id slave non corrispondente,\\ **56** =  INVALID_MBAP_TRANSACTION_ID - modbus TCPIP, //transaction ID// non corretto,\\ **57** = INVALID_MBAP_PROTOCOL_ID - modbus TCPIP, //protocol ID// diverso da zero,\\ **70** = TIMEOUT SYNCHRONIZED lo slave QEM non hanno eseguito il comando RECEIVED entro il tempo programmato nel parametro toutsyc.\\ In modalità slave il parametro non viene mai aggiornato. +
-| serr   | B  | 0  | R/W  | -           | **Serial Errors**\\ Indica se sono stati riscontrati errori nella comunicazione seriale. Il parametro viene aggiornato ad ogni errore rilevato. Il valore permane fino:\\ - ad un successivo errore;\\ - alla scrittura di uno dei seguenti parametri: mode, prot, wider, brate, stopb, par;\\ - ad una scrittura sullo stesso (qualsiasi valore lo azzera).\\ **0** = nessun errore,\\ **1** = parity error,\\ **2** = framing error,\\ **3** = overrun error.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | +
-| stype  | W  | 0  | R    | -           | **Slave type**\\ Indica il tipo di slave connesso. Il parametro viene aggiornato quando il parametro //st_sended// diventa 1 e se era stato eseguito un comando READSTYPE                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |+
  
 +^ Name   ^ D  ^ R  ^ A    ^ Conditions  ^ Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    ^
 +| err    | B  | 0  | R    | -           | **Errors**\\ Indicates if errors occurred in the protocol.\\ In master mode the parameter is updated to coincide the activation of the //st_sended// state. The values from 1 to 49 are those sent by the slave. Values greater than 50 are generated internally by the master. The first 8 velues are normalized in the protocol and are:\\ **0** = communications without errors,\\ **1** = ILLEGAL FUNCTION,\\ **2** = ILLEGAL DATA ADDRESS,\\ **3** = ILLEGAL DATA VALUE,\\ **4** = SLAVE DEVICE FAILURE,\\ **5** = ACKNOWLEDGE,\\ **6** = SLAVE DEVICE BUSY,\\ **7** = NEGATIVE ACKNOWLEDGE,\\ **8** = MEMORY PARITY ERROR,\\ **5**0 = UNKNOWN RECEIVED ERROR the slave answered with a code greater than 49,\\ **5**1 = TIMEOUT the slave does not respond within the time scheduled in the tout parameter,\\ **52** = INVALID ANSWER,\\ **52** = INVALID FUNCTION ANSWER - Function type not supported,\\ **53** = CHECKSUM ANSWER - The checksum proceeds does not match,\\ **54** = TRUNCATED ANSWER - Message too short,\\ **55** = INVALID ID ANSWER - Slave ID mismatch,\\ **56** =  INVALID_MBAP_TRANSACTION_ID - modbus TCPIP, //transaction ID// incorrectly,\\ **57** = INVALID_MBAP_PROTOCOL_ID - modbus TCPIP, //protocol ID// different by zero,\\ **70** = TIMEOUT SYNCHRONIZED the slave QEM did not execute the RECEIVED command within the time scheduled in the toutsyc parameter.\\ In slave mode the parameter is never updated.  |
 +| serr   | B  | 0  | R/W  | -           | **Serial Errors**\\ Indicates if errors occurred in serial communication. The parameter is updated for each error encountered. The value persists until:\\ - under a subsequent error;\\ - the writing of one of the following parameters: mode, prot, wider, brate, stopb, par;\\ - writing about himself (any value will reset).\\ **0** = no errors,\\ **1** = parity error,\\ **2** = framing error,\\ **3** = overrun error.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
 +| stype  | W  | 0  | R    | -           | **Slave type**\\ Indicates the type of slave connected. The parameter is updated when the //st_sended// parameter becomes 1 and if it had been execute a READSTYPE command                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  
-=== - Stati === 
-^Nome^D^R^A^Condizioni^Descrizione^ 
-|st_sended|F|0|R|-|**Sended**\\ Stato utilizzato solo in modalità master. L’attivazione indica il completamento della trasmissione di un messaggio. Lo stato viene resettato con i comandi SEND o SENDSYC.| 
-|st_opencom|F|0|R|-|**Open communication port**\\ L'attivazione indica che il device sta impegnando la porta di comunicazione seriale. Per settare questo stato usare il comando OPENCOM, per resettarlo CLOSECOM.| 
-|wdata|F|0|R|-|**Warning Data**\\ Questo bit segnala che è stato tentato un inserimento di un valore non valido in un parametro.| 
-|wcmd|F|0|R|-|**Warning Command**\\ Questo bit segnala che è non è stato eseguito un comando perché mancano le condizioni necessarie.| 
  
-=== - Comandi === +=== - States ===
-I comandi a disposizione per gestire il device sono elencati sotto in ordine di priorità decrescente.\\ +
-Il device esegue tutti i comandi ricevuti entro lo stesso tempo di campionamento iniziando da quello con la priorità maggiore.\\ +
-Per esempio se il device riceve nello stesso tempo di campionamento i comandi CLOSECOM e OPENCOM, per primo esegue il comando OPENCOM e poi quello di CLOSECOM lasciando perciò la porta di comunicazione chiusa.+
  
-^Nome^D^R^A^Condizioni^Descrizione+^Name^D^R^A^Conditions^Description
-|SEND|-|-|-|mode = 0\\ 0 < num <= 128\\ st_sended = 1\\ st_opencom = 1|**Sended**\\ Determina la trasmissione del messaggio verso lo slave selezionato.| +|st_sended|F|0|R|-|**Sended**\\ State only been used in master mode. Activation indicates completion of the transmission of a message. The state is reset with the SEND or SENDSYC commands.| 
-|SENDSYC|-|-|-|mode = 0\\ 0 < num <= 128\\ st_sended = 1\\ st_opencom = 1|**Send synchronize**\\ Utilizzabile solo in modo master determina la trasmissione del messaggio verso uno slave QEM con la sincronizzazione.| +|st_opencom|F|0|R|-|**Open communication port**\\ Activation indicates that the device is working the serial communications portTo set this state use the OPENCOM command, to reset CLOSECOM.| 
-|READSTYPE|-|-|-|mode = 0\\ st_sended = 1\\ st_opencom = 1|**Read slave type**\\ Richiesta lettura informazione type sullo slave specificato in idcardLa risposta verrá segnalata sul parametro stype quando lo stato st_sended diventa 1.| +|wdata|F|0|R|-|**Warning Data**\\ This bit indicates that an attempt was made to insert an invalid value in a parameter.| 
-|CLRWDATA|-|-|-|-|**Clear Warning Data**\\ Azzera la segnalazione del parametro wdata.| +|wcmd|F|0|R|-|**Warning Command**\\ This bit indicates that it did not execute a command because they missing the necessary conditions.|
-|CLRWCMD|-|-|-|-|**Clear Warning Command**\\ Azzera la segnalazione del parametro wcmd.| +
-|OPENCOM|-|-|-|st_opencom = 0|**Open Serial communication**\ Apre la comunicazione seriale (il device quindi impegna la porta di comunicazione ). Lo stato st_opencom diventa 1.| +
-|CLOSECOM|-|-|-|-|**Close Serial communication**\\ Chiude la comunicazione seriale (il device quindi non impegna piú la porta di comunicazione ). Lo stato st_opencom diventa 0.|+
  
 +=== - Commands ===
  
-===== - Descrizione funzionamento come slave ===== +The available commands to manage the device are listed below in descending order of priority.\\ 
-==== - Modo di funzionamento SLAVE ====+The device executes all commands received within the same sampling time starting from the one with the highest priority.\\ 
 +For example if the device receives the same sampling time CLOSECOM and OPENCOM commands, first run the OPENCOM command and then to CLOSECOM leaving therefore the communication port closed.
  
-La modalità slave viene impostata con il parametro mode = 1 mode = 2Bisogna introdurre nei parametri il codice dell’ID slave tramite il parametro idcard.+^Name^D^R^A^Conditions^Description^ 
 +|SEND|-|-|-|mode = 0\\ 0 < num <= 128\\ st_sended = 1\\ st_opencom = 1|**Sended**\\ Determines the message transmission toward the slave select.| 
 +|SENDSYC|-|-|-|mode = 0\\ 0 < num <= 128\\ st_sended = 1\\ st_opencom = 1|**Send synchronize**\\ Usable only in master mode determines the message transmission towards a slave QEM with synchronisation.
 +|READSTYPE|-|-|-|mode = 0\\ st_sended = 1\\ st_opencom = 1|**Read slave type**\\ Read information request type specified on the idcard slave. The answer will be reported on the stype parameter when the st_sended state becomes 1.| 
 +|CLRWDATA|-|-|-|-|**Clear Warning Data**\\ Reset the wdata parameter reporting.| 
 +|CLRWCMD|-|-|-|-|**Clear Warning Command**\\ Reset the wcmd parameter reporting.| 
 +|OPENCOM|-|-|-|st_opencom = 0|**Open Serial communication**\ Open the serial communication (the device then committed the communications port ). The st_opencom status becomes 1.| 
 +|CLOSECOM|-|-|-|-|**Close Serial communication**\\ Close the serial communication (the device then does not committted the communications port ). The st_opencom status becomes 0.|
  
-**Impostazioni modbus e apertura del canale di comunicazione di tipo seriale**+ 
 +===== - Slave operation description ===== 
 +==== - Slave mode operation ==== 
 + 
 +Slave mode is set with the mode = 1 or mode = 2 parameter. You must to introduce in the parameters the slave ID code through the idcard parameter. 
 + 
 +**Modbus settings and opening channel of serial communication**
 <code QCL> <code QCL>
 modbus.mode = 1                             ; modbus slave modbus.mode = 1                             ; modbus slave
Line 438: Line 440:
 ENDIF ENDIF
 </code> </code>
-**Impostazioni modbus e apertura del canale di comunicazione di tipo TCPIP**+**Modbus settings and open of the communication channel of TCPIP type**
 <code QCL> <code QCL>
 modbus.mode = 1                             ; modbus slave modbus.mode = 1                             ; modbus slave
Line 455: Line 457:
 </code> </code>
  
-Le operazioni che spettano all’applicativo QCL sono essenzialmente due+The operations that should execute the QCL are essentially two
-  * aggiornare i parametri tipo owordNN, olongNN (che verranno poi letti dal master) +  * update the parameters owordNN, olongNN type (which will then be read from the master) 
-  * processare i parametri tipo iwordNN, ilongNN (che sono stati scritti dal master) +  * process the parameters iwordNN, ilongNN type (which will then written by the master) 
-=== - Aggiornamento dei parametri tipo owordNN === +=== - Updating owordNN parameters type ===
-Per aggiornare i parametri tipo owordNN il QCL deve scrivere i valori nei parametri quindi inviare il comando VALIDATE. +
-L’utilizzo del comando si rende necessario per rendere disponibili alle letture del master i nuovi dati nello stesso istante, +
-evitando così che possano venire letti solamente parte dei parametri aggiornati. Quindi l’assegnazione di un valore ad un +
-parametro device NON SIGNIFICA che esso sia immediatamente disponibile per le letture del master. Sarà disponibile +
-solamente dopo il comando VALIDATE.+
  
-**Esempio**+To update the owordNN parameters type the QCL must write values in the parameters then send the VALIDATE command. The use of the command is necessary to make available on the readings of the master the new data at the same time, so that they can be read only part of updated parameters. So assigning a value to a device parameter DOES NOT MEAN that it is immediately available for the master readings. Will only be available after the VALIDATE command. 
 + 
 +**Example**
 <code QCL> <code QCL>
 modbus.olong1 = anpos.speed modbus.olong1 = anpos.speed
Line 475: Line 474:
 </code> </code>
  
-=== - Processo dei parametri tipo iwordNN === +=== - Process iwordNN parameters type ===
-Per processare i parametri tipo iwordNN, invece, il QCL deve attendere che lo stato st_msgrx venga attivato. Questo significa +
-che un messaggio di scrittura è stato inviato dal master. Per i messaggi di lettura nessun segnale viene riferito ai +
-parametri QCL. Il QCL poi deve prelevare i valori dall’area scambio dati e al termine deve inviare il comando RECEIVED, +
-solo allora lo stato st_msgrx viene disattivato.+
  
-**Esempio**+To process the iwordNN parameters type, instead,the QCL must wait for the st_msgrx state is activated. This means that a write message was sent by the master. For the read message no signal reportedly to QCL parameters. The QCL then must take the values from the data exchange and at the end needs to send the RECEIVED command, only then the st_msgrx state is disabled. 
 + 
 +**Example**
 <code QCL> <code QCL>
 WAIT modbus.st_msgrx WAIT modbus.st_msgrx
Line 489: Line 486:
 RECEIVED modbus RECEIVED modbus
 </code> </code>
-Naturalmente non esiste nessun controllo per evitare che durante la lettura dei parametri //iwordNN// il master erroneamente 
-esegua un’altra scrittura, prima che il codice del progetto presente nello slave finisca il processo.\\ 
-Inoltre il codice per la manipolazione del device modbus nell’applicativo è consigliato che sia raccolto in un unico task in 
-modo da non creare accessi contemporanei ai device che potrebbero generare delle condizioni non valide in ogni singolo 
-contesto. 
  
-Tutte le richieste di lettura che arrivano dal master MODBUS fanno riferimento ai dati di tipo //owordNN// accedendo quindi +There is no control to prevent when reading //iwordNN// parameters the master incorrectly execute another writing, before the project code present in the slave to finish the process.\\ 
-alla stessa area datiLo slave mette a disposizione i valori che il master leggerà nei parametri di tipo //owordNN//.\\ +Also the code for handling the modbus device in the application it is recommended that it is collected in a single task in order not to create simultaneous accesses to the device that could generate invalid conditions. 
-Tutte le richieste di scrittura che arrivano dal master MODBUS fanno riferimento ai dati di tipo //iwordNN// accedendo quindi + 
-alla stessa area datiLo slave mette a disposizione i parametri //iwordNN// dove il master potrà scrivere i dati+All read requests that arrive from the master MODBUS refer to the //owordNN// type data by accessing to the same data area. The slave provides the values that the master will read in the //owordNN// parameters type.\\ 
-==== - Schema a blocchi ====+All write requests arriving from the MODBUS master refer to the //iwordNN// type data aby accessing to the same data area. The slave provides the //iwordNN// parameters where the master will write data
 +==== - Block diagram ==== 
 {{:software:devices:modbus:modbus_02.png?nolink400|}} {{:software:devices:modbus:modbus_02.png?nolink400|}}
  
-==== - Comandi e parametri ====+==== - Commands and parameters ====
  
-=== - Simbologia adottata ===+=== - Used symbols ===
  
-Il nome del parametrostato o comando è riportato alla sinistra della tabella.+The parameter namecondition or command is shown at the left 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 accept to the power up of the card.\\ 
-R = Ritentivo\\ +R = Retentive\\ 
-0 = Al momento dell’inizializzazione del device il valore è forzato a zero.\\ +0 = Upon initialization of the device the value is forced to zero.\\ 
-1 = Al momento dell’inizializzazione del device il valore è forzato ad uno.\\ +1 = Upon initialization of the device the value is forced to one.\\ 
-- = Al momento dell’inizializzazione del device è 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 524: Line 518:
 S = Single Float\\ S = Single Float\\
  
-== Condizioni == +== Conditions == 
-Sono descritte tutte le condizioni necessarie affinché il parametro sia considerato corretto o perché il comando venga accettato.\\ + 
-In alcuni casi sono specificati dei valori limite per l’accettazione del parametrose sono introdotti dei valori esterni ai limiti impostatiil dato è comunque accettatopertanto devono essere previsti opportuni controlli dell’applicativo tali da garantire il corretto funzionamento.\\ Per l’esecuzione di un comandotutte le relative condizioni devono necessariamente essere soddisfattein caso contrario il comando non è eseguito.+Describes all the conditions necessary so that the parameter is considered correct or because the command is accepted.\\ 
 +In some cases, limit values are specified for the acceptance of the parameterif there are any values outside the limits setthe data is however acceptedtherefore appropriate controls of the application must be provided to ensure the proper functioning.\\ To execute a commandall conditions must be metotherwise the command is not executed.
  
 **A**\\ **A**\\
-Indica la modalità d'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  Descrizione                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^ + 
-| mode         | B  | R  | R/W  | -           | **Mode**\\ (0 ÷ 2)\\ Definisce se la scheda deve funzionare come master o come slave.\\ **1** = slave con area di scambio dati fissa;\\ **2** = slave senza area di scambio dati fissaad ogni scrittura o lettura eseguita dal master viene messi a il flag st_msgrx.\\ Contemporaneamente i parametri //type//, //addr// //num// indicano le caratteristiche del messaggio ricevuto.\\ - **Type** indica il tipo di funzione che vuole fare ill master (lettura o scrittura),\\ - **addr** indica l'indirizzo dell'inizio del blocco di dati scritti o letti,\\ - **num** indica il numero di dati letti o scritti (bit o a byte a seconda del valore di type).\\ Il device controllerà, in ricezionesolamente num (size di messaggioche non sia superiore a 32word ma non più l'indirizzo che può essere ora qualsiasi.\\ Se è una scrittura (lo si capisce dal valore di type se è 5,6,15,16) vengono riportati i dati nelle variabili di scambio input (sempre a partire dalla prima word) ed il device attende il comando RECEIVED.\\ Se è una lettura il device attende che il QCL depositi i dati nelle word variabili di scambio output ed attende il comando VALIDATE. +Name         ^ D  ^ R  ^ A    ^ Conditions  Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ^ 
-| prot         | B  | R  | R/W  | -           | **Protocol**\\ 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 or slave.\\ **1** = slave with fixed data exchange area;\\ **2** = slave without fixed data exchange area: any writing or reading done by the master is put to the st_msgrx flag.\\ At the same time the //type//, //addr// and //num// parameters indicate the features of the received message.\\ - **Type** indicates the type of function that wants to be the master (read or write),\\ - **addr** indicates the address of the beginning of the written or read data block,\\ - **num** indicates the read or written number of data (to bit or to byte depending on the value of type).\\ The device will check, in receptiononly num (size of messagethat does not exceed 32wordbut not the address that can now be any.\\ If it is a write (You can tell by the value of the type if it is 5,6,15,16) are shows the lists the data in variables of exchange input (always starting from the first word) and the device waits for the RECEIVED command.\\ If you read the device waits for the QCL stores data in word output exchange variables and waits for the VALIDATE command.  | 
-| wider        | B  | R  | R/W  | -           | **Wide Registers**\\ Indica se utilizzare l’estensione del protocollo per i registri a 32bitVedere capitolo Estensione del protocollo”.\\ **0** = normale,\\ **1** = protocollo esteso.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | +| prot         | B  | R  | R/W  | -           | **Protocol**\\ Defines the type of Modbus Protocol to use.\\ **0** = ASCII,\\ **1** = RTU,\\ **2** = TCPIP.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 
-| idcard       | W  | R  | R/W  | -           | **Identification Card**\\ ( 1 ÷ 255 per slave)\\ Nel funzionamento come slave è il numero che identifica l’apparecchio nella rete.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | +| wider        | B  | R  | R/W  | -           | **Wide Registers**\\ Indicates if to use the 32-bit registers protocol extensionSee Extension of the Protocol” section.\\ **0** = normal,\\ **1** = extended protocol.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | 
-| brate        | L  | R  | R/W  | -           | **Baud rate**\\ Baud rate della seriale.\\ Valori validi: 4800, 9600, 19200, 38400, 57600, 115200.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | +| idcard       | W  | R  | R/W  | -           | **Identification Card**\\ ( 1 ÷ 255 for slave)\\ In slave mode is the number that identifies the device on the network.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 
-| stopb        | B  | R  | R/W  | -           | **Stop bit**\\ Valori validi: 1, 2.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |+| brate        | L  | R  | R/W  | -           | **Baud rate**\\ Baud rate of the serial.\\ Valid values: 4800, 9600, 19200, 38400, 57600, 115200.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 
 +| stopb        | B  | R  | R/W  | -           | **Stop bit**\\ Valid values: 1, 2.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
 | par          | B  | R  | R/W  | -           | **Parity**\\ (0 ÷ 2)\\ **0** = none,\\ **1** = even,\\ **2** = odd.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | | par          | B  | R  | R/W  | -           | **Parity**\\ (0 ÷ 2)\\ **0** = none,\\ **1** = even,\\ **2** = odd.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
-| rdelay       | W  | R  | R/W  | -           | **Reply delay**\\ (0 ÷ 9999 msec)\\ E' il tempo di attesa prima di trasmettere la risposta.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |+| rdelay       | W  | R  | R/W  | -           | **Reply delay**\\ (0 ÷ 9999 msec)\\ It is the time to wait before transmitting the reply.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
 | iword1÷32    | W  | 0  | R    | -           | **Input Word nr.** (1Input Long nr. (1÷16)32)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | | iword1÷32    | W  | 0  | R    | -           | **Input Word nr.** (1Input Long nr. (1÷16)32)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
-| st_ibit0÷15  | F  | 0  | R    | -           | **Input bit nel parametro iword1**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |+| st_ibit0÷15  | F  | 0  | R    | -           | **Input bit in the iword1 parameter**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
 | ilong1÷16    | L  | 0  | R    | -           | **Input Long nr.** (1÷16)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | | ilong1÷16    | L  | 0  | R    | -           | **Input Long nr.** (1÷16)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
 | oword1÷32    | W  | 0  | R/W  | -           | **Output Word nr.** (1÷32)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | | oword1÷32    | W  | 0  | R/W  | -           | **Output Word nr.** (1÷32)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
-| st_obit0÷15  | F  | 0  | R/W  | -           | **Output bit nel parametro oword1**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |+| st_obit0÷15  | F  | 0  | R/W  | -           | **Output bit in the oword1 parameter**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
 | olong1÷16    | L  | 0  | R/W  | -           | **Output Long nr.** (1÷16)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | | olong1÷16    | L  | 0  | R/W  | -           | **Output Long nr.** (1÷16)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  
Line 554: Line 550:
  
  
-=== - Variabili === +=== - Variables ===
-^Nome^D^R^A^Condizioni^ Descrizione^ +
-|serr|B|0|R/W|-|**Serial Errors**\\ Indica se sono stati riscontrati errori nella comunicazione seriale.\\ Il parametro viene aggiornato ad ogni errore rilevato. Il valore permane fino ad un successivo errore o ad una scrittura sullo stesso con il QCL.\\ **0** = nessun errore,\\ **1** = parity error,\\ **2** = framing error,\\ **3** = overrun error.|+
  
-=== - Stati === +^Name^D^R^A^Conditions^Description
-^Nome^D^R^A^CondizioniDescrizione+|serr|B|0|R/W|-|**Serial Errors**\\ Indicates if errors occurred in serial communication.\\ The parameter is updated for each error encounteredThe value persists until a subsequent error or to a writing on the same with the QCL.\\ **0** = no errors,\\ **1** = parity error,\\ **2** = framing error,\\ **3** = overrun error.|
-|st_msgrx|F|0|R||-|**Message received**\\ Stato utilizzato solo in modalitá slaveIndica che un messagio del master ha eseguito una scrittura nell’area scambio dati QCL. Lo stato viene resettato con il comando RECEIVED.| +
-|st_opencom|F|0|R|-|**Open communication port**\\ L'attivazione indica che il device sta impegnando la porta di comunicazione seriale. Per settare questo stato usare il comando OPENCOM, per resettarlo CLOSECOM.| +
-|wdata|F|0|R|-|**Warning Data**\\ Questo bit segnala che è stato tentato un inserimento di un valore non valido in un parametro.| +
-|wcmd|F|0|R|-|**Warning Command**\\ Questo bit segnala che è non è stato eseguito un comando perchè mancano le condizioni necessarie.|+
  
-=== - Comandi === +=== - States ===
-I comandi a disposizione per gestire il device sono elencati sotto in ordine di priorità decrescente.\\ +
-Il device esegue tutti i comandi ricevuti entro lo stesso tempo di campionamento iniziando da quello con la priorità maggiore.\\ +
-Per esempio se il device riceve nello stesso tempo di campionamento i comandi CLOSECOM e OPENCOM, per primo esegue il comando OPENCOM e poi quello di CLOSECOM lasciando perciò la porta di comunicazione chiusa. +
-^ Nome      ^ D  ^ R  ^ A  ^ Condizioni                                   ^ Descrizione                                                                                                                                                        ^ +
-| RECEIVED  | -  | -  | -  | st_msgrx = 1\\ mode = 1, 2\\ st_opencom = 1  | **Received**\\ Utilizzato solamente in modalitá slave. Indica che l’applicativo QCL ha processato le informazioni che il master ha inviato                         | +
-| VALIDATE  | -  | -  | -  | mode = 1, 2\\ st_opencom = 1                 | **Validate**\\ Indica che i parametri di scambio dati QCL diventano disponibili al master.                                                                         | +
-| CLRWDATA  | -  | -  | -  | -                                            | **Clear Warning Data**\\ Azzera la segnalazione del parametro wdata                                                                                                | +
-| CLRWCMD   | -  | -  | -  | -                                            | **Clear Warning Command**\\ Azzera la segnalazione del parametro wcmd                                                                                              | +
-| OPENCOM   | -  | -  | -  | st_opencom = 0                               | **Open Serial communication**\\ Apre la comunicazione seriale (il device quindi impegna la porta di comunicazione). Lo stato //st_opencom// diventa 1.             | +
-| CLOSECOM  | -  | -  | -  | -                                            | **Close Serial communication**\\ Chiude la comunicazione seriale (il device quindi non impegna piú la porta di comunicazione). Lo stato //st_opencom// diventa 0.  |+
  
 +^Name^D^R^A^Conditions^Description^
 +|st_msgrx|F|0|R|-|**Message received**\\ State used only in slave mode. Indicates that a message from the master has executed a write in the QCL data exchange area. The state is reset with the RECEIVED command.|
 +|st_opencom|F|0|R|-|**Open communication port**\\ Activation indicates that the device is working with the serial communications port. To set this state use the OPENCOM command, for reset use CLOSECOM.|
 +|wdata|F|0|R|-|**Warning Data**\\ This bit indicates that an attempt was made to insert an invalid value in a parameter.|
 +|wcmd|F|0|R|-|**Warning Command**\\ This bit indicates that it did not execute a command because they lack the necessary conditions.|
  
 +=== - Commands ===
  
-===== - Migrazione dal device MODBUS01 al device MODBUS =====+The available commands to manage the device are listed below in descending order of priority.\\ 
 +The device executes all commands received within the same sampling time starting from the one with the highest priority.\\ 
 +For example if the device receives the same sampling time CLOSECOM and OPENCOM commands, first run the OPENCOM command and than to CLOSECOM leaving therefore the communication port closed.
  
-Il primo aspetto da tenere presente per la migrazione è il fatto che il device MODBUS01 è esterno mentre il MODBUS è +^ Name      ^ D  ^ R  ^ A  ^ Conditions                                   ^ Description                                                                                                                                                        ^ 
-interno. Questo implica che la dichiarazione del device deve essere eseguita nella sezione “INTDEVICE” dell’unità di +| RECEIVED  | -  | -  | -  | st_msgrx = 1\\ mode = 12\\ st_opencom = 1  | **Received**\\ Used only in slave modeIndicates that the QCL application has processed the information that the master has sent                         | 
-configurazione del progetto. Inoltrequesto comporta la scelta, durante la definizione del device MODBUS, del tempo di +| VALIDATE  | -  | -  | -  | mode = 12\\ st_opencom = 1                 | **Validate**\\ Indicates that the parameters of the QCL data exchange becomes available to the master                                                                        | 
-campionamentoIl valore del tempo di campionamento che mantiene inalterate le prestazioni della comunicazione tra i +| CLRWDATA  | -  | -  | -  | -                                            | **Clear Warning Data**\\ Reset the wdata parameter reporting                                                                                                | 
-due device è pari a 5 ms. Bisogna inoltrein fase di definizione, selezionare la seriale da impegnare.\\ +| CLRWCMD   | -  | -  | -  | -                                            | **Clear Warning Command**\\ Reset the wcmd parameter reporting                                                                                              | 
-Il device MODBUS ha aumentato il numero di variabili di scambio (da 16 word a 32 word) ma questo non influenza il funzionamento +| OPENCOM   | -  | -  | -  | st_opencom = 0                               | **Open Serial communication**\\ Open the serial communication (the device then committed the communications port). The //st_opencom// state changes to 1.             | 
-per le impostazioni che utilizzano al massimo 16 word come sono quelle pensate per il device MODBUS01.\\ +| CLOSECOM  | -  | -  | -  | -                                            | **Close Serial communication**\\ Closes the serial communication (the device then does not commit more the communications port). The //st_opencom// state changes to 0.  |
-Il device MODBUS ha limitato la variabile “num” a 128, mentre per il device MODBUS01 il limite è 256Questo si è reso +
-necessario per permettere un’ottimizzazione del tempo di campionamento. La scelta è stata presa in considerazione del +
-fatto che tali valori venivano impiegati unicamente per la gestione dei Coils, ma che perdeva di logica la lettura/scrittura di +
-più di 128 coils consecutivi.\\ +
-Il device MODBUS consente di controllare (mediante 2 nuovi comandil'impegno della seriale di comunicazione da parte +
-del deviceQuesta nuova funzionalitá è interessante nell'eventualità che in un progetto Qview siano stati dichiarati altri +
-devices che possono utilizzare la stessa seriale.\\ +
-Se un applicativo era stato scritto per il device MODBUS01 bisogna aggiungere il comando OPENCOM (eseguito anche +
-solo una voltacome mostrato nel seguente esempio.+
  
-==== Esempio: ====+ 
 + 
 +===== - Migration from MODBUS01 device to MODBUS device ===== 
 + 
 +The first thing to note for migration is the fact that the MODBUS01 device is external, while the MODBUS is internal. This implies that the device declaration must be done in “INTDEVICE” section in the configuration unit of the project. In addition, this entails choosing, when defining the MODBUS device, of the sampling time. The value of the sample time that keeps the performance of communication between the two devices is 5 ms. Being defined, you must select the serial port to be committed.\\ 
 +The MODBUS device increased the number of exchange variables (from 16 word to 32 word) but this does not affect the operation for settings that use the maximum 16 word How are those designed for the MODBUS01 device.\\ 
 +The MODBUS device has restricted the “num” variable to 128, while the MODBUS01 device the limit is 256. This was necessary to allow an optimization of sampling time. The decision was taken in view of the fact that those values were used only for Coils managing, but that was logic leaking more than read/write 128 consecutive coils.\\ 
 +The MODBUS device allows you to control (using 2 new commands) communication serial's commitment on the part of the device. This new functionality is interesting in the event that other devices have been declared in a project Qview that can use the same serial.\\ 
 +If an application was written for the MODBUS01 device you must add the OPENCOM command (executed only once) as shown in the following example. 
 + 
 +==== Example: ====
  
 <code QCL> <code QCL>
-impostazione dei parametri di comunicazione+setting communication parameters
 modbus.mode = 0 modbus.mode = 0
 modbus.brate = 38400 modbus.brate = 38400
Line 616: Line 605:
 WAIT modbus.st_sended WAIT modbus.st_sended
 IF (modbus.err) IF (modbus.err)
-    CALL ErroreModbus+    CALL ErrorModbus
 ENDIF ENDIF
 </code> </code>
  
  
  • Last modified: 2019/08/29 17:18