7. Field Bus Interface
7.1 Modbus TCP
7.1.1 General information for operating with Modbus TCP
The BactoSense can be operated via the Modbus Transmission Control Protocol (TCP). The following requirements must be met:
- The computer and/or the management or control system must be compatible with Modbus TCP.
- The computer and/or the management or control system must have software that can properly process the data provided by the BactoSense.
- The BactoSense must have the Modbus TCP service activated under Home → Settings → System settings → System services.
- The BactoSense must be connected to the bus system.
- To be able to work with the Modbus TCP, the network settings must be set correctly.
Additional information
- The Modbus TCP interface is integrated by default in the BactoSense.
- The Ethernet socket is located at the right-hand side of the instrument.
- The address table necessary for programming can be found in the Modbus TCP address list.
- All registers are encoded big-endian.
- Modbus TCP communication runs on port 502.
- The error code lists can be found in Non-critical errors and Critical errors.
- Modbus TCP can be used for time synchronisation. Follow the instructions in Set NTP Servers and select Modbus TCP as a sync source.
7.1.2 Address list on Modbus TCP:
The following values can be read with Modbus function 3 or 4 and written with Modbus function 16.
REGISTER | ADDRESS | DATA TYPE | FUNCTION | VALUES |
|---|---|---|---|---|
300201 | 0x00C8 | Unsigned | Digital | Bit 0: Input 1 |
300202 | 0x00C9 | Unsigned | Power | Bit 0: Power off |
300203 | 0x00CA | Uint16 | Watchdog | Write setpoint in seconds to |
300204 | 0x00CB | Uint16 | Test | Write 1 to display a message |
300211 | 0x00D2 | UInt16: Year | Get/Set | [0,9999] |
300212 | 0x00D3 | UInt16: | [1,12] | |
300213 | 0x00D4 | UInt16: Day | [0,31] | |
300214 | 0x00D5 | UInt16: Hour | [0,24] | |
300215 | 0x00D6 | UInt16: | [0,59] | |
300216 | 0x00D7 | UInt16: | [0,59] | |
The following values can be read with Modbus function 3 or 4. | ||||
300001 | 0x0000 | UInt16 | Digital | Bit 0: Output 1 |
300002 | 0x0001 | UInt16 | Instrument | Bit 0: Process running |
300003 | 0x0002 | UInt16 | Alarm status, i.e., alarms raised during the last measurement. | Bit 0: Alarm 1 |
300004 | 0x0003 | UInt32 MSB | Warning status, i.e., warnings raised during the last measurement. | Bit 0: Warning W01 |
300005 | 0x0004 | UInt32 LSB | ||
300006 | 0x0005 | UInt16 | Error code | See error code list. Note: |
300007 | 0x0006 | UInt16 | Heartbeat | Seconds of the clock. The |
300008 | 0x0007 | UInt16 | Measuremen | IDLE 0 |
300011 | 0x000A | UInt16 | Measuremen | [0, 100] |
300012 | 0x000B | Float 32 MSB | Temperature | Celsius |
300013 | 0x000C | Float 32 LSB | ||
300014 | 0x000D | UInt16 | Humidity at | [0, 100] |
300015 | 0x000E | UInt16: Year | Date and time of last sampling | |
300016 | 0x000F | UInt16: Month | ||
300017 | 0x0010 | UInt16: Day | ||
300018 | 0x0011 | UInt16: Hour | ||
300019 | 0x0012 | UInt16: Minute | ||
300020 | 0x0013 | UInt16: Second | ||
300021 | 0x0014 | UInt16 | Cartridge | [0, 100] |
300022 | 0x0015 | UInt32 MSB | Cartridge | |
300023 | 0x0016 | UInt32 LSB | ||
300024 | 0x0017 | UInt32 MSB | Fill serial no | |
300025 | 0x0018 | UInt32 LSB | ||
300026 | 0x0019 | Uint16 | Cartridge | 1 = TCC |
300027 | 0x001A | UInt16: Year | Cartridge | UTC date |
300028 | 0x001B | UInt16: Month | ||
300029 | 0x001c | UInt16: Day | ||
300031 | 0x001E | UInt32 MSB | Instrument | |
300032 | 0x001F | UInt32 LSB | ||
300033 | 0x0020 | String char 1-2 | Software | When shorter than 16 |
300034 | 0x0021 | String char 3-4 | ||
300035 | 0x0022 | String char 5-6 | ||
300036 | 0x0023 | String char 7-8 | ||
300037 | 0x0024 | String char 9-10 | ||
300038 | 0x0025 | String char 11- | ||
300039 | 0x0026 | String char 13- | ||
300040 | 0x0027 | String char 15- | ||
300041 | 0x0028 | UInt16 | Memory | Approx measurements |
300042 | 0x0029 | UInt16 | Lifetime of | [0, 100], percentage of |
300043 | 0x002A | UInt16 | Lifetime of | [0, 100], percentage of |
300044 | 0x002B | UInt16: Year | Next service | UTC date |
300045 | 0x002C | UInt16: Month | ||
300046 | 0x002D | UInt16: Day | ||
300101 | 0x0064 | UInt32 MSB | TCC | Resets to zero after a |
300102 | 0x0065 | UInt32 LSB | ||
300103 | 0x0066 | UInt32 MSB | ICC | Always 0 if cartridge does |
300104 | 0x0067 | UInt32 LSB | ||
300105 | 0x0068 | UInt32 MSB | Gate+ | Always 0 if cartridge does |
300106 | 0x0069 | UInt32 LSB | ||
300107 | 0x006A | UInt32 MSB | HNAC | |
300108 | 0x006B | UInt32 LSB | ||
300109 | 0x006C | UInt32 MSB | LNAC | |
300110 | 0x006D | UInt32 LSB | ||
300111 | 0x006E | Float 32 MSB | HNAP | |
300112 | 0x006F | Float 32 LSB | ||
300113 | 0x0070 | UInt32 MSB | ACC | Always 0 if not ACC |
300114 | 0x0071 | UInt32 LSB | ||
300115 | 0x0072 | UInt32 MSB | HACC | Always 0 if not ACC |
300116 | 0x0073 | UInt32 LSB | ||
300117 | 0x0074 | UInt32 MSB | LACC | Always 0 if not ACC |
300118 | 0x0075 | UInt32 LSB | ||
300119 | 0x0076 | Float 32 MSB | HACP | Always 0 if not ACC |
300120 | 0x0077 | Float 32 LSB | ||
300121 | 0x0078 | UInt32 MSB | Live TCC | Same as TCC, but the |
300122 | 0x0079 | UInt32 LSB | ||
300123 | 0x007A | UInt32 MSB | Live ICC | see above. |
300124 | 0x007B | UInt32 LSB | ||
300125 | 0x007C | UInt32 MSB | Live Gate+ | see above. |
300126 | 0x007D | UInt32 LSB | ||
300127 | 0x007E | UInt32 MSB | Live HNAC | see above. |
300128 | 0x007F | UInt32 LSB | ||
300129 | 0x0080 | UInt32 MSB | Live LNAC | see above. |
300130 | 0x0081 | UInt32 LSB | ||
300131 | 0x0082 | Float 32 MSB | Live HNAP | see above. |
300132 | 0x0083 | Float 32 LSB | ||
300135 | 0x0086 | UInt32 MSB | Live ACC | see above. |
300136 | 0x0087 | UInt32 LSB | ||
300137 | 0x0088 | UInt32 MSB | Live HACC | see above. |
300138 | 0x0089 | UInt32 LSB | ||
300139 | 0x008A | UInt32 MSB | Live LACC | see above. |
300140 | 0x008B | UInt32 LSB | ||
300141 | 0x008C | Float 32 MSB | Live HACP | see above. |
300142 | 0x008D | Float 32 LSB | ||
300151 | 0x0096 | UInt16: Year | Date and time of last abrupt shutdown. | |
300152 | 0x0097 | UInt16: Month | ||
300153 | 0x0098 | UInt16: Day | ||
300154 | 0x0099 | UInt16: Hour | ||
300155 | 0x009A | UInt16: Minute | ||
300156 | 0x009B | UInt16: Second | ||
300157 | 0x009C | UInt16 | Power off | In seconds |
300165 | 0x00A4 | UInt16: Year | Date and time of last protocol start. | |
300166 | 0x00A5 | UInt16: Month | ||
300167 | 0x00A6 | UInt16: Day | ||
300168 | 0x00A7 | UInt16: Hour | ||
300169 | 0x00A8 | UInt16: Minute | ||
300170 | 0x00A9 | UInt16: Second | ||
300171 | 0x00AA | UInt16 | BactoSwitch | From 1 to 4 |
300172 | 0x00AB | UInt16 | BactoSwitch | From 1 to 4 |
300173 | 0x00AC | UInt16 | BactoSwitch | mL/min |
300174 | 0x00AD | UInt16 | BactoSwitch | 0 means no error. |
300175 | 0x00AE | UInt16 | BactoSwitch | 0 = not connected |
300176 | 0x00AF | UInt16 | BactoSwitch | Bitmask 0x01 = valve of |