Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
en:software:devices:modbus [2016/12/23 16:25] – [5.10.3. Variabili] qem103 | en:software:devices:modbus [2016/12/23 17:17] – [6.3.1. Simbologia adottata] qem103 | ||
---|---|---|---|
Line 395: | Line 395: | ||
- | === - Stati === | + | === - States |
- | ^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' | + | |
- | |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 === | + | ^Name^D^R^A^Conditions^Description^ |
- | I comandi a disposizione per gestire il device sono elencati sotto in ordine di priorità decrescente.\\ | + | |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.| |
- | Il device esegue tutti i comandi ricevuti entro lo stesso tempo di campionamento iniziando da quello con la priorità maggiore.\\ | + | |st_opencom|F|0|R|-|**Open communication port**\\ Activation indicates that the device |
- | Per esempio se il device | + | |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 missing the necessary conditions.| | ||
- | ^Nome^D^R^A^Condizioni^Descrizione^ | + | === - Commands |
- | |SEND|-|-|-|mode | + | |
- | |SENDSYC|-|-|-|mode | + | |
- | |READSTYPE|-|-|-|mode = 0\\ st_sended = 1\\ st_opencom = 1|**Read slave type**\\ Richiesta lettura informazione type sullo slave specificato in idcard. La risposta verrá segnalata sul parametro stype quando lo stato st_sended diventa 1.| | + | |
- | |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.| | + | |
+ | 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 then to CLOSECOM leaving therefore the communication port closed. | ||
- | ===== - Descrizione funzionamento come slave ===== | + | ^Name^D^R^A^Conditions^Description^ |
- | ==== - Modo di funzionamento SLAVE ==== | + | |SEND|-|-|-|mode |
+ | |SENDSYC|-|-|-|mode | ||
+ | |READSTYPE|-|-|-|mode | ||
+ | |CLRWDATA|-|-|-|-|**Clear Warning Data**\\ Reset the wdata parameter reporting.| | ||
+ | |CLRWCMD|-|-|-|-|**Clear Warning Command**\\ Reset the wcmd parameter reporting.| | ||
+ | |OPENCOM|-|-|-|st_opencom | ||
+ | |CLOSECOM|-|-|-|-|**Close Serial communication**\\ Close the serial communication (the device then does not committted the communications port ). The st_opencom status becomes 0.| | ||
- | La modalità slave viene impostata con il parametro mode = 1 o mode = 2. Bisogna introdurre nei parametri il codice dell’ID slave tramite il parametro idcard. | ||
- | **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 | ||
</ | </ | ||
- | **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: | ||
</ | </ | ||
- | Le operazioni che spettano all’applicativo | + | 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 |
- | * processare i parametri tipo iwordNN, ilongNN (che sono stati scritti dal master) | + | * process the parameters |
- | === - Aggiornamento dei parametri tipo owordNN === | + | === - Updating |
- | 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: | ||
</ | </ | ||
- | === - Processo dei parametri tipo iwordNN === | + | === - Process |
- | 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 | ||
</ | </ | ||
- | 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 | + | 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 | + | 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 | + | |
- | alla stessa | + | All read requests that arrive from the master MODBUS |
- | ==== - Schema a blocchi | + | All write requests arriving from the MODBUS |
+ | ==== - Block diagram | ||
{{: | {{: | ||
- | ==== - Comandi e parametri | + | ==== - Commands and parameters |
- | === - Simbologia adottata | + | === - Used symbols |
- | Il nome del parametro, stato o comando è riportato alla sinistra della tabella. | + | The parameter name, condition or command is shown at the left of the table. |
**R**\\ | **R**\\ | ||
- | Indica se il relativo parametro o stato è ritentivo | + | Indicates if the parameter or state is retentive |
- | Se il device | + | If the device |
- | R = Ritentivo\\ | + | R = Retentive\\ |
- | 0 = Al momento dell’inizializzazione del device | + | 0 = Upon initialization of the device |
- | 1 = Al momento dell’inizializzazione del device | + | 1 = Upon initialization of the device |
- | - = Al momento dell’inizializzazione del device | + | - = Upon initialization of the device |
**D**\\ | **D**\\ | ||
- | Indica la dimensione del parametro.\\ | + | Indicates the size of the parameter.\\ |
F = Flag\\ | F = Flag\\ | ||
B = Byte\\ | B = Byte\\ |