Passa al contenuto principale

7. Interfaccia bus di campo

7.1 Modbus TCP​

7.1.1 Informazioni generali sul funzionamento con Modbus TCP​

BactoSense può essere utilizzato tramite il protocollo Modbus Transmission Control Protocol (TCP). Devono essere soddisfatti i seguenti requisiti:

  • Il computer e/o il sistema di gestione o controllo devono essere compatibili con Modbus TCP.
  • Il computer e/o il sistema di gestione o controllo devono disporre di un software in grado di elaborare correttamente i dati forniti da BactoSense.
  • Il servizio Modbus TCP di BactoSense deve essere attivato in Home → Impostazioni → Impostazioni di sistema → Servizi di sistema.
  • BactoSense deve essere collegato al sistema bus.
  • Per poter utilizzare Modbus TCP, le impostazioni di rete devono essere configurate correttamente.

Informazioni aggiuntive

  • L’interfaccia Modbus TCP è integrata di serie in BactoSense.
  • La presa Ethernet si trova sul lato destro dello strumento.
  • La tabella degli indirizzi necessaria per la programmazione è riportata separatamente nella sezione Elenco degli indirizzi Modbus TCP.
  • Tutti i registri sono codificati in big-endian.
  • La comunicazione Modbus TCP utilizza la porta 502.
  • L’elenco dei codici di errore è riportato nelle sezioni Errori non critici (errori non critici) e Errori critici (errori critici).
  • Modbus TCP può essere utilizzato per la sincronizzazione dell’ora. Seguire le istruzioni della sezione Impostazione dei server NTP e selezionare Modbus TCP come sorgente di sincronizzazione.

7.1.2 Elenco degli indirizzi Modbus TCP:​

I seguenti valori possono essere letti con la funzione Modbus 3 o 4 e scritti con la funzione Modbus 16.

N. REGISTRO

INDIRIZZO (OFFSET)

TIPO DI DATO

FUNZIONE

VALORI

300201 400201

0x00C8

Intero senza segno, bit 0-15

Ingressi digitali. Ignorati a meno che “Modbus TCP” sia selezionato come sorgente nella schermata delle impostazioni Digital Inputs.

Bit 0: ingresso 1 Bit 1: ingresso 2 Bit 2: ingresso 3 Bit 3: ingresso 4 Per la corretta corrispondenza tra bit e ingressi, consultare la sezione Configurazione degli ingressi digitali e modalità PLC, in particolare la tabella 6-2 e la figura 6-5. Ingresso 1111 = 15 significa interruzione.

300202 400202

0x00C9

Intero senza segno, bit 0-15

Controllo dell’alimentazione

Bit 0: spegnimento Bit 1: riavvio

300203 400203

0x00CA

Uint16

Watchdog

Scrivere il valore di riferimento in secondi per attivare o riavviare il conto alla rovescia. Dopo la scrittura, un conto alla rovescia lo decrementa di 1 ogni secondo. Durante il conto alla rovescia, la lettura del registro restituisce il valore di riferimento. Se il conto alla rovescia raggiunge 0, qualsiasi protocollo in corso viene interrotto. La lettura del registro restituisce 0. Scrivere 0 per disabilitare il conto alla rovescia.

300204 400204

0x00CB

Uint16

Registro di prova

Scrivere 1 per visualizzare un messaggio nella pagina della sorgente DI dell’interfaccia grafica. Si ripristina a 0 all’avvio.

300211 400211

0x00D2

UInt16: anno

Lettura/impostazione di data e ora. L’ora viene modificata non appena termina la scrittura. Vengono modificati solo i campi i cui registri sono stati scritti: se viene scritto solo il mese, viene aggiornato solo il mese.

[0,9999]

300212 400212

0x00D3

UInt16: mese

[1,12]

300213 400213

0x00D4

UInt16: giorno

[0,31]

300214 400214

0x00D5

UInt16: ora

[0,24]

300215 400215

0x00D6

UInt16: minuto

[0,59]

300216 400216

0x00D7

UInt16: secondo

[0,59]

I seguenti valori possono essere letti con la funzione Modbus 3 o 4.

300001 400001

0x0000

UInt16 (singoli bit)

Uscite digitali

Bit 0: uscita 1 Bit 1: uscita 2 Bit 2: uscita 3 Bit 3: uscita 4 Per la corretta corrispondenza tra bit e uscite, consultare la sezione Configurazione delle uscite digitali oppure utilizzare l’interfaccia di prova delle uscite come descritto nella sezione Prova delle uscite digitali e analogiche.

300002 400002

0x0001

UInt16 (singoli bit)

Stato dello strumento 0 = No 1 = Sì

Bit 0: processo in corso Bit 1: errore critico Bit 2: errore non critico Bit 3: modalità PLC attiva Bit 4: riscaldamento rapido (in modalità invernale) Bit 5: riscaldamento di fondo (modalità invernale) Bit 6: dispositivo di campionamento in uso

300003 400003

0x0002

UInt16 (singoli bit)

Stato degli allarmi, ossia allarmi generati durante l’ultima misurazione.

Bit 0: allarme 1 Bit 1: allarme 2 Bit 2: allarme 3 …

300004 400004

0x0003

UInt32 MSB (singoli bit)

Stato degli avvertimenti, ossia avvertimenti generati durante l’ultima misurazione.

Bit 0: avvertimento W01 Bit 1: avvertimento W02 ... Bit 31: avvertimento W32

300005 400005

0x0004

UInt32 LSB (singoli bit)

300006 400006

0x0005

UInt16

Codice di errore

Vedere l’elenco dei codici di errore. Nota: E00 (errore software non gestito) viene rinominato 999 per evitare confusione con “nessun errore”. I codici degli errori non critici permangono finché non vengono cancellati automaticamente da un protocollo riuscito o manualmente.

300007 400007

0x0006

UInt16

Segnale di attività (heartbeat)

Secondi dell’orologio. Il valore cambia ogni secondo; utilizzarlo per monitorare la reattività del sistema.

300008 400008

0x0007

UInt16

Fase di misurazione

INATTIVO (IDLE) 0 INIZIALIZZAZIONE (INITIALIZING) 1 RISCALDAMENTO (HEATING) 2 RIEMPIMENTO (FILLING) 3 ADESCAMENTO (PRIMING) 4 MISCELAZIONE (MIXING) 5 INCUBAZIONE (INCUBATING) 6 ANALISI (ANALYZING) 7 PULIZIA (CLEANING) 8 RISCIACQUO (FLUSHING) 9 ELABORAZIONE (PROCESSING) 10 VALIDAZIONE (VALIDATING) 11 MOVIMENTO (MOVING) 12 ESPULSIONE (EJECTING) 13 ESPORTAZIONE (EXPORTING) 14 RINOMINA (RENAMING) 15 ELIMINAZIONE (DELETING) 16 SALVATAGGIO (SAVING) 17 AUTOVERIFICA (SELFCHECK) 18 INTERROTTO (ABORTED) 19 SCONOSCIUTO (UNKNOWN) 98 ERRORE (ERROR) 99

300011 400011

0x000A

UInt16

Avanzamento della misurazione

[0, 100] 0 .. 100 %

300012 400012

0x000B

Float 32 MSB

Temperatura della scheda I/O

Celsius

300013 400013

0x000C

Float 32 LSB

300014 400014

0x000D

UInt16

Umidità presso la scheda I/O

[0, 100] 0 .. 100 %

300015 400015

0x000E

UInt16: anno

Data e ora dell’ultimo campionamento

300016 400016

0x000F

UInt16: mese

300017 400017

0x0010

UInt16: giorno

300018 400018

0x0011

UInt16: ora

300019 400019

0x0012

UInt16: minuto

300020 400020

0x0013

UInt16: secondo

300021 400021

0x0014

UInt16

Percentuale della cartuccia

[0, 100] 0 .. 100 %

300022 400022

0x0015

UInt32 MSB

Numero di serie della cartuccia

300023 400023

0x0016

UInt32 LSB

300024 400024

0x0017

UInt32 MSB

Numero di serie del riempimento

300025 400025

0x0018

UInt32 LSB

300026 400026

0x0019

Uint16

Tipo di cartuccia

1 = TCC 1002 = ICC 1030 = ACC

300027 400027

0x001A

UInt16: anno

Data di scadenza della cartuccia

Data UTC

300028 400028

0x001B

UInt16: mese

300029 400029

0x001c

UInt16: giorno

300031 400031

0x001E

UInt32 MSB

Numero di serie dello strumento

300032 400032

0x001F

UInt32 LSB

300033 400033

0x0020

Caratteri 1-2 della stringa

Versione software

Se la stringa è più corta di 16 caratteri, viene completata con caratteri nulli. Esempio: '1.4.0-BS\0\0\0\0...'

300034 400034

0x0021

Caratteri 3-4 della stringa

300035 400035

0x0022

Caratteri 5-6 della stringa

300036 400036

0x0023

Caratteri 7-8 della stringa

300037 400037

0x0024

Caratteri 9-10 della stringa

300038 400038

0x0025

Caratteri 11-12 della stringa

300039 400039

0x0026

Caratteri 13-14 della stringa

300040 400040

0x0027

Caratteri 15-16 della stringa

300041 400041

0x0028

UInt16

Memoria rimanente

Numero approssimativo di misurazioni rimanenti prima che il disco sia pieno

300042 400042

0x0029

UInt16

Vita utile residua della valvola

[0, 100], percentuale di movimenti rimanenti prima della manutenzione.

300043 400043

0x002A

UInt16

Vita utile residua dello stantuffo

[0, 100], percentuale di movimenti rimanenti prima della manutenzione.

300044 400044

0x002B

UInt16: anno

Data della prossima manutenzione

Data UTC

300045 400045

0x002C

UInt16: mese

300046 400046

0x002D

UInt16: giorno

300101 400101

0x0064

UInt32 MSB

TCC

Si azzera dopo un protocollo di pulizia o al riavvio.

300102 400102

0x0065

UInt32 LSB

300103 400103

0x0066

UInt32 MSB

ICC

Sempre 0 se la cartuccia non fornisce ICC.

300104 400104

0x0067

UInt32 LSB

300105 400105

0x0068

UInt32 MSB

Gate+

Sempre 0 se la cartuccia non fornisce Gate+

300106 400106

0x0069

UInt32 LSB

300107 400107

0x006A

UInt32 MSB

HNAC

300108 400108

0x006B

UInt32 LSB

300109 400109

0x006C

UInt32 MSB

LNAC

300110 400110

0x006D

UInt32 LSB

300111 400111

0x006E

Float 32 MSB

HNAP

300112 400112

0x006F

Float 32 LSB

300113 400113

0x0070

UInt32 MSB

ACC

Sempre 0 se non è una cartuccia ACC.

300114 400114

0x0071

UInt32 LSB

300115 400115

0x0072

UInt32 MSB

HACC

Sempre 0 se non è una cartuccia ACC.

300116 400116

0x0073

UInt32 LSB

300117 400117

0x0074

UInt32 MSB

LACC

Sempre 0 se non è una cartuccia ACC.

300118 400118

0x0075

UInt32 LSB

300119 400119

0x0076

Float 32 MSB

HACP

Sempre 0 se non è una cartuccia ACC.

300120 400120

0x0077

Float 32 LSB

300121 400121

0x0078

UInt32 MSB

TCC in tempo reale

Come TCC, ma il valore viene aggiornato in tempo reale durante una misurazione. Torna a zero al termine della misurazione.

300122 400122

0x0079

UInt32 LSB

300123 400123

0x007A

UInt32 MSB

ICC in tempo reale

Vedere sopra.

300124 400124

0x007B

UInt32 LSB

300125 400125

0x007C

UInt32 MSB

Gate+ in tempo reale

Vedere sopra.

300126 400126

0x007D

UInt32 LSB

300127 400127

0x007E

UInt32 MSB

HNAC in tempo reale

Vedere sopra.

300128 400128

0x007F

UInt32 LSB

300129 400129

0x0080

UInt32 MSB

LNAC in tempo reale

Vedere sopra.

300130 400130

0x0081

UInt32 LSB

300131 400131

0x0082

Float 32 MSB

HNAP in tempo reale

Vedere sopra.

300132 400132

0x0083

Float 32 LSB

300135 400135

0x0086

UInt32 MSB

ACC in tempo reale

Vedere sopra.

300136 400136

0x0087

UInt32 LSB

300137 400137

0x0088

UInt32 MSB

HACC in tempo reale

Vedere sopra.

300138 400138

0x0089

UInt32 LSB

300139 400139

0x008A

UInt32 MSB

LACC in tempo reale

Vedere sopra.

300140 400140

0x008B

UInt32 LSB

300141 400141

0x008C

Float 32 MSB

HACP in tempo reale

Vedere sopra.

300142 400142

0x008D

Float 32 LSB

300151 400151

0x0096

UInt16: anno

Data e ora dell’ultimo arresto improvviso.

300152 400152

0x0097

UInt16: mese

300153 400153

0x0098

UInt16: giorno

300154 400154

0x0099

UInt16: ora

300155 400155

0x009A

UInt16: minuto

300156 400156

0x009B

UInt16: secondo

300157 400157

0x009C

UInt16

Tempo di spegnimento

In secondi

300165 400165

0x00A4

UInt16: anno

Data e ora dell’ultimo avvio di un protocollo.

300166 400166

0x00A5

UInt16: mese

300167 400167

0x00A6

UInt16: giorno

300168 400168

0x00A7

UInt16: ora

300169 400169

0x00A8

UInt16: minuto

300170 400170

0x00A9

UInt16: secondo

300171 400171

0x00AA

UInt16

Linea di misurazione corrente di BactoSwitch

Da 1 a 4

300172 400172

0x00AB

UInt16

Linea di misurazione successiva di BactoSwitch

Da 1 a 4

300173 400173

0x00AC

UInt16

Portata di BactoSwitch

mL/min

300174 400174

0x00AD

UInt16

Stato di BactoSwitch

0 significa nessun errore.

300175 400175

0x00AE

UInt16

Collegamento di BactoSwitch

0 = non collegato 1 = collegato correttamente

300176 400176

0x00AF

UInt16

Stato delle valvole di BactoSwitch

Maschera di bit 0x01 = valvola della linea 1, ecc. int 15 = tutte aperte