Professional Documents
Culture Documents
Modbus Specifications v025-EN-20230626
Modbus Specifications v025-EN-20230626
DIGISENS Modbus_Specifications
_v025-EN- 26/06/23 025 1/67
MODBUS RTU specifications 20230626.docx
SIGNATURES
WRITTEN BY APPROVED BY
NAME: FREDERIC RENAUD/ FB / V. ALIBERT NAME: SEVERINE VARY
REVISION HISTORY
Table of content
1 PREAMBLE: reference documents and tools __________________________________________ 5
1.1 Link protocol frame: MODBUS RTU ____________________________________________________ 5
1.2 Overview of the memory plane _______________________________________________________ 6
1.3 Modbus Protocol Revision (0x0CFF) ___________________________________________________ 6
1.4 Parameters in detail ________________________________________________________________ 7
1.5 Hardware configuration _____________________________________________________________ 9
1.6 Addresses ________________________________________________________________________ 9
1.7 Modbus functions used _____________________________________________________________ 9
1.8 Equipment useful for integrating the digital Sensors _____________________________________ 10
Basic kit: ______________________________________________________________________________________ 10
Software tool : _________________________________________________________________________________ 11
1.9 Modbus error messages____________________________________________________________ 13
2 Basic measurement: sequence and frame __________________________________________ 14
2.1 Basic measurement sequence diagram ________________________________________________ 14
2.2 Sampling delay ___________________________________________________________________ 14
2.3 Measurement command ___________________________________________________________ 14
Measurement command for a defined parameter ____________________________________________________ 15
Waiting the known sampling delay ________________________________________________________________ 15
Measurement collecting _________________________________________________________________________ 15
Optional Extended Measurements collecting (since protocol v3.0) _______________________________________ 15
Resets all "Temporary" calibration data. And the measurements use only current coefficients: 231 __________ 60
Frame for delayed calibration – configuration for measurement recording 320 __________________________ 63
Frame for delayed calibration – configuration for dry weight collecting 321 ______________________________ 64
- Modbus_over_serial_line_V1_02.pdf
--> access with http://www.modbus.org/specs.php
- Modbus_Application_Protocol_V1_1a.pdf
--> access with http://www.modbus.org/specs.php
The Modbus memory plane is identical for each parameter of the sensors.
The Modbus protocol for the sensors allows you to measure the parameters, until 4 plus temperature, of the Sensor and to
calibrate the parameters and temperature.
Furthermore, there are certain numbers of functions such as:
- Select the averaging value
- Read the Sensor description (serial number, hardware and software versions),
- Select the measurement range, if it is available.
- Return to default coefficients
- Modify the Sensor address,
- Use of external data for compensation
- Information on measures conducted (Out Of Specification measures, measures in
progress, etc.).
- Date and name of the operator who performed the calibration,
- Log of the 10 lastest calibration data
- Call back of calibration data,
- Power supply value (available only for the lastest sensors).
For the initial “Ponsel Modbus protocol” (any revisions before 3.0), the sensor return ‘0.0’ or ’32.32’ in the associated
modbus register 0x0CFF (1 Modbus register, msb :major version, lsb:minor version). Starting version 3.0, that Modbus Protocol
Revision index had been introduced to allows automatic detection of protocol new or different features. The column “Protocol”
reference in which version of the protocol the associated line functionality or data is available.
Example:
@0x0CFF (read int16 – 1 Modbus register) = 0x0301 (hex) / 0769 (dec) : protocol version 3.01
For example Protocol 3.0 implements, protocol version, extended measurements area, ...
For example Protocol 3.1 implements, User Configuration area, Special Functions, MeasOnStart, ...
Figure 2: extract of OPTOD sensor sheet in Digital sensor Frame_xxx.xls document ; measurement configuration
Figure 3: extract of OPTD sensor sheet in Digital sensor Frame_xxx.xls document; coefficients and standard
IMPORTANT NOTE:
If a digital sensor is not configured 2 stop bits, it can no longer communicate with the Calsens software or an Odeon
handheld meter.
1.6 Addresses
The sensors have an address with a value between 1 and 230.
Addresses between 231 and 247 are reserved for the manufacturer.
The Modbus protocol requires that the address 0 is not used, as well as the addresses 248 to 255.
All the sensors process information when the master calls the 0 address.
IMPORTANT NOTE:
The sensors never respond when the master sends a frame to the 0 address.
All the sensors handle the information and answer when master calls up to the address ' 255 '.
IMPORTANT NOTE:
This feature must be only used with 1 only sensor connected to the network, otherwise there will be a conflict between the
various Sensors.
Each sensor has a default factory address, which is allocated by the Modbus memory plane file.
IMPORTANT NOTE:
The Identification function is used to perform a scan on the Modbus network. This is because the Identification function
uses the shortest communication form. As such the scanning time for all the addresses is optimized.
IMPORTANT NOTE:
The "Float" corresponds to the ANSI / IEEE standard Std 754-1985 - precision (32 bits); (MSB in mind, 'big- endian')
REMARK:
Integrators have access to 10 bytes in read/write in Flash. (Send: of 0x02D2 has 0x02D6 included)
Basic kit:
Tools :
- A RS485/USB converter with 1 sensor input,
- A stabilized power supply 5V to12V DC,
- One digital probe.
Documentations :
- The Modbus memory plane : Digital sensor Frame_xxx.xls
- This document.
IMPORTANT NOTE:
Before implementation of sensors in an already deployed measurement system (sensors network with PLC, SCADA…), the
manufacturer recommends a first communication trial with a computer as master.
The manufacturer recommends the use of 4200 DIGITAL MODULE with one or two sensors inputs as RS485/USB
converter.
IMPORTANT NOTE:
SENSOR consumption in standby is between 10 and 40 µA depending on the setting of the Sensor. For more information
consult the datasheet of the sensor.
This can help ensure that the sensor is powered.
REMARK:
The most commonly occurring problem is the use of a not efficient RS485/USB converter regarding RTS signal
management. This one permits the release of the line, move to high impedance state, for the activity of the slave (sensor).
Software tool :
REMARK:
Don’t forget the driver installation of the converter 4200 DIGITAL MODULE. This driver is delivered with the converter
on the compact disk.
REMARK:
Please check the communication port used for the converter. See system in the configuration panel.
In order to facilitate integration of digital sensor in the system, you could see the frames generated by the computer and the
request from the sensor in a dedicated window. In that way, choose in the CALSENS menu, Tools/Commands log.
Example:
In the figure below, in the red square, you could see the frames of the description of a conductivity sensor during a scan of
the network.
o When the sensor returns the error code “FF”. There is a communication problem.
o When the sensor returns the error code “01”. The function code is not recognized by the Sensor.
o When the sensor returns the error code “02”. The address is not valid.
o When the sensor returns the error code “03”. The data format is incorrect.
o When the sensor returns the error code "04". The sensor is in failure mode (supply voltage too low, ...)
For a defined sensor, this delay does not change. In a general point of view, this delay is less than 2 seconds (except for UV
probe).
At Initialization step, you should request the sampling delay to obtain all the measures (value in ms):
@ 0x00A4
In the file “Digital sensor Frame_xxx.xls”
IMPORTANT NOTE:
- Delay value for each sensor: this delay have to be read for each connected sensor (it may change depending of the
sensor firmware version for example)
- Mute sensors during measurement: some sensors (such as UV Probe) are mute in Modbus during measurement for a
duration equal to “Sampling delay (ms)” (starting just after the reception of “Measurement Command”)
- Polling Status Register during measurement: it’s strongly advised to wait for “Sampling Delay” before trying to read
the measurement flag or measurement results in the Sensor to avoid measurement jamming.
The master must wait a minimum delay to obtain a measure. This delay is the value at @ 0x00A4 address.
This delay is the necessary time for the sensor to realize the measurements (some sensors cannot answer in Modbus
during this time).
Measurement collecting
In the file “Digital sensor Frame_xxx.xls” : @ from 0x007F to 0x009D (depending which sensor)
Units associated with the extended measurements are only available in the specific sensors description tab of Digital sensor
Frame_xxx.xls” but not within the Modbus memory of the sensor.
Example:
In this case, the master collects the delay value, 500ms (0x01F4)
It sends the order for 5 measures (0x001F)
It waits the necessary delay: 10:58:39:550 - 10:58:38:970 = 580ms.
Initialization
10:30:22:630 – frame sent : (8 octets) : 0x04-0x03-0x00-0xA4-0x00-0x01-0xC5-0xBC
10:30:22:670 – received frame : (7 octets) : 0x04-0x03-0x02-0x01-0xF4-0x74-0x53
IMPORTANT NOTE:
- Delay value for each sensor: this delay have to be read for each connected sensor (it may change depending of the
sensor firmware version for example)
- Mute sensors during measurement: some sensors (such as UV Probe) are mute in Modbus during measurement for a
duration equal to “Sampling delay (ms)” (starting just after the reception of “Measurement Command”)
- Polling Status Register during measurement: it’s strongly advised to wait for “Sampling Delay” before trying to read
the measurement flag or measurement results in the Sensor to avoid measurement jamming.
Measurement configuration
Using the registers of configuration, you can modify the measurement range and activate external values for compensation.
IMPORTANT NOTE:
For activating this feature, you must make a suitable measurement configuration.
The compensation values and configuration are not memorized when the Sensor is powered down long enough.
The master must wait a minimum delay to obtain a measure. This delay is the value at @ 0x00A4 address. This delay
is the necessary time for the sensor to realize the measurements.
IMPORTANT NOTE:
To avoid any risk of measurement perturbation, the manufacturer suggests to limit commands to sensors during the
sampling delay. Some Sensor such as the UV Probe are not capable of answering in Modbus during this delay.
By reading the status, you know the current state of the measurement.
- Measurement running,
- New Measure ready
- Measurement with info 1, 2, 3 or 4.
- Measurement out of range, etc.
IMPORTANT NOTE:
For some sensors like the StacSens UV Probe, “Measure Availability” can only be checked after waiting at least the
“Sampling Delay (ms)” since the last “Measurement command”.
Measurement collecting
In the file “Digital sensor Frame_xxx.xls” : @ from 0x007F to 0x009D (depending which sensor)
0x007F RAM r Extended Measurement 1 float 2
The status gives information about measurement (current range, calibration coefficients used).
The status gives information about measurement the same as StmX definition (see 0x0052 table in the previous page).
The extended status contains no information about range and coefficients used.
In the file “Digital sensor Frame_xxx.xls” : @ from 0x006F to 0x007E (depending which sensor)
0x006F RAM r Status of extended Measurement 1 int 1
0x0070 RAM r Status of extended Measurement 2 int 1
0x0071 RAM r Status of extended Measurement 3 int 1
0x0072 RAM r Status of extended Measurement 4 int 1
0x0073 RAM r Status of extended Measurement 5 int 1
0x0074 RAM r Status of extended Measurement 6 int 1
0x0075 RAM r Status of extended Measurement 7 int 1
0x0076 RAM r Status of extended Measurement 8 int 1
0x0077 RAM r Status of extended Measurement 9 int 1
0x0078 RAM r Status of extended Measurement 10 int 1
0x0079 RAM r Status of extended Measurement 11 int 1
0x007A RAM r Status of extended Measurement 12 int 1
0x007B RAM r Status of extended Measurement 13 int 1
0x007C RAM r Status of extended Measurement 14 int 1
0x007D RAM r Status of extended Measurement 15 int 1
0x007E RAM r Status of extended Measurement 16 int 1
In this case, the master collects the delay value, 500ms (0x01F4)
Temperature : 24.32°C
Parameter #1 : 4.102
Parameter #2 : 0.00
Parameter #3 : 173.45
Parameter #4 : 0.00
Master to slave (@Modbus 7) : requiring to read 16 floats (32 Modbus registers) at address 0x7F (beginning of extended
measurements results)
0x07-0x03-0x00-0x7F-0x00-0x20-0x75-0xAC
Master to slave (@Modbus 7): requiring to read 16 Int (16 Modbus registers) at address 0x7F (beginning of extended
measurements results)
0x07-0x03-0x00-0x6F-0x00-0x10-0x74-0x7D
Extended measurements collecting (16 parameters in this example, see sensors specification to have the exact number) :
12:19:56:120 - frame sent : (8 octets) : 0x07-0x03-0x00-0x7F-0x00-0x20-0x75-0xAC
12:19:56:220 - received frame : (69 octets) : 0x07-0x03-0x40-0x41-0xC2-0x08-0xAD-0x00-0x00-0x00-0x00-0x00-0x00-0x00-
0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x3E-0x68-0x56-0x44-0x3E-0x82-0xD8-0xB5-0x42-0x4C-0x72-0x9B-0x3F-
0x17-0xD3-0xA8-0x3F-0x0E-0x20-0xD4-0x46-0x1C-0x38-0x00-0x46-0x1C-0x38-0x00-0x46-0x1C-0x38-0x00-0x46-0x1C-
0x38-0x00-0x41-0xB4-0x00-0x00-0x41-0xBA-0x00-0x00-0x0A-0x6A
Extended measurements status collecting (16 status in this example, see sensors specification to have the exact number) :
12:19:56:320 - frame sent : (8 octets) : 0x07-0x03-0x00-0x6F-0x00-0x10-0x74-0x7D
12:19:56:390 - received frame : (37 octets) : 0x07-0x03-0x20-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-
0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x00-0x7C-
0x7A
0x00AA Flash r/w Averaging value for all parameters except temperature. int 1
Example:
The master modifies the averaging value to 10. (0x000A)
This feature permits to come back to default calibration coefficients i.e. factory calibration coefficients. It could be useful
when an error has been done during calibration process.
Example:
The master restores default coefficients for parameter #1 only. (0x0002)
The availability of those feature and the associated minimum firmware version is specified in each sensor tab in Digital
sensor Frame_xxx.xls for English and POD_TramesCom_vX_X_X.xls for French.
The available settings are also documented in the sensor specific tab:
(Protocol v3.1+) User Configurations : variable in flash @0x1040 to @0x104E Type / Size
User Configuration 1 General Sensor Configuration (1 measure on start, ...) (bit by bit) Int
User Configuration 2 AutoMeas : automatic periodic measurement period (in second) Int
If your sensor firmware doesn’t support MeasOnStart a firmware update at factory may be possible if its firmware is not
too old (otherwise it would also require a full factory calibration). A firmware update outside factory is not possible and
would most likely result in the device becoming silent.
MeasOnStart
Measure on Start provides the capability for sensors to perform automatically 1 measurement after power-up while
keeping full compatibility with existing Ponsel protocol. In this mode instead of being in a very low power deep sleep state
(between 10 and 50 uA) sensor will remain in an idle mid power state (a few mA). This ensures a quick and safe
shutdown to trigger the next measurement by power cycling the sensor (instead of sending a Modbus request).
This mode is especially suitable for use with low power IoT devices (such as Lora loggers) which turn on sensor, wait for
boot, read measurement result, turn off sensor and send data.
IMPORTANT NOTE:
When this mode is activated SD12 may not work.
AutoMeas
Automatic Measurement provides the capability for sensors to perform automatically periodic measurements after
power-up while keeping full compatibility with existing Ponsel protocol and using very low power deep sleep state
between measurements. This feature allows the master to read only results without power cycling the sensor or triggering
measurement with the usual Modbus Request.
This mode will need to be disabled when performing a standard Ponsel calibration process.
IMPORTANT NOTE:
Some masters may need to disable this mode to perform calibration (use an up to date Calsens for example).
MeasOnStart
MeasOnStart is activated by writing ‘1’ in the proper bit of User Config 1 modbus register :
In the file “Digital sensor Frame_xxx.xls”: UserConfig1 @ 0x1040 (1 Modbus register, 16 bits, bit by bit
configuration)
(not (not (not (not (not (not (not (not (not (not (not (not (not (not
used) used) used) used) used) used) used) used) used) used) used) used) used) used) NotLowPw MeasOnStart
General Sensor Configuration :
'0' no single shoot automatic measurement at sensor power up (standard
MeasOnStart: mode)
'1' single shoot automatic measurement at sensor power up (1 measure)
NotLowPw: '0' standard low power mode (optimized)
'1' not low power mode (optimized measure / precision / visible
LEDs/…)
IMPORTANT NOTE:
By default all sensors are in Low Power mode (NotLwPower = disabled) to get the lowest possible energy
consumption. NotLwPower mode is a specific mode for some equipment such as LowTuS which allows features such as
improved visual feedback (increased brightness of status LED) or improved measurement (refer to device Manual). Most
sensors don’t offer the less power efficient NotLwPower mode.
Example:
UserConfig1 = 0: deactivating MeasOnStart on C4E (Modbus Address: 20 – 0x14) NotLwPower disabled (not used in C4E)
18:24:14:030 - Frame sent : (11 bytes) : 0x14-0x10-0x10-0x40-0x00-0x01-0x02-0x00-0x00-0x4B-0xC1
18:24:14:070 – received Frame : (8 bytes) : 0x14-0x10-0x10-0x40-0x00-0x01-0x06-0x18
Example:
UserConfig1 = 1: enabling MeasOnStart on C4E (Modbus Address: 20) NotLwPower disabled (not used in C4E)
18:21:27:880 - Frame sent : (11 bytes) : 0x14-0x10-0x10-0x40-0x00-0x01-0x02-0x00-0x01-0x8A-0x01
18:21:27:920 - received Frame : (8 bytes) : 0x14-0x10-0x10-0x40-0x00-0x01-0x06-0x18
AutoMeas
AutoMeas (automatic periodic measurement) is activated by writing a non ‘0’ value for measurement period in the User
Config 2 modbus register. The period is set in ‘s’ from ‘0’ to ‘3600’, if the period is too short for the sensor, the sensor will
measure as often as possible.
In the file “Digital sensor Frame_xxx.xls” : UserConfig2 @ 0x1041 (1 Modbus register, 16 bits, unsigned int)
v3.1+ 4161 0x1041 Flash r/w User Configuration n°2 int 1
Automatic measurement period in seccond between 0 and 3600s (0 : no automatic periodic measurement, use standard measurement trigger by writting the
appropriate value in register 0x0001 each time a new measurement is required)
- UserConfig2 = 1..3600 (second): automatic periodic measurement enabled with the configured period in second.
Example:
UserConfig2 = 0: deactivating AutoMeas on LowTuS (Modbus Address: 80 – 0x50)
18:15:49:020 - Frame sent : (11 bytes) : 0x50-0x10-0x10-0x41-0x00-0x01-0x02-0x00-0x00-0x49-0x13
18:15:49:050 - received Frame : (8 bytes) : 0x50-0x10-0x10-0x41-0x00-0x01-0x58-0x9C
Example:
UserConfig2 = 60 (s): activating AutoMeas every minute (60s) on LowTuS (Modbus Address: 80 – 0x50)
The availability of those feature and the associated minimum firmware version is specified in each sensor tab in Digital
sensor Frame_xxx.xls for English and POD_TramesCom_vX_X_X.xls for French.
(Protocol v3.1+ - All firmwares) Fonction spéciales FCT_SP Value to write in @0x0001
FCT_SP 101 Force Manual Cleaning 0x8101
FCT_SP 102 Reset Cleaning Counter 0x8102
The available Special function are listed in each sensor sheet from Digital sensor Frame_xxx.xls for English and
POD_TramesCom_vX_X_X.xls for French.
Automatic Cleaning
To enable ‘Automatic Cleaning’ feature (if available in your device) switch ‘AutoClean’ bit in the appropriate
measurement configuration register (int reg. @0x00A5-0x00A9) - Full Measurement Sequence Diagram (3.1).
For automatic cleaning behavior refer to Full Measurement Sequence Diagram (3.1), cleaning is detailed in purple states
in the diagram.
The automatic cleaning will automatically happen periodically every ‘n’ measurements (value is configurable in
UserConfig 3 @0x1042 as int register).
For full calibration or calibration of a single coefficient, the coefficient(s) to be modified are only processed by the Sensor
when the master sends the name of the operator and the date in the Temporary calibration.
The measures sent by the sensor are processed using “current coefficients”. As long as the calibration process was not
validated, the new coefficients are stored in “temporary calibration”.
More sensors oriented step by step process are described sensor by sensor in following sections.
6.4 Calibration sequence diagram for parameters with “Customer value coefficients”
Some Sensors have customizable parameters with “customer input values” for calibration settings.
It means that they have no calibration within specific baths.
The user can directly input the values for the coefficients (extracted from laboratory tests results for example).
More sensors oriented step by step process are described sensor by sensor in following sections.
Example : This is the case of the StacSens UV Sensor. The user can choose values different from factory values for “offset”
and “slope” coefficients for the calculation of CODeq/BODeq/TOCeq. The CODeq/BODeq/TOCeq measurements
parameters are processed as following: parameter_result = customer_offset + customer_slope *SAC254.
Temperature calibration:
2nd step: Calculate gradient
Sensor fully immersed in a bath heated at 25°C for
example.
Temperature calibration:
Validation of entire calibration
When the operator validates this step: 170 and 230 when
putting to ‘1’ the coefficient corresponding to the oxygen
offset
OPTOD calibration:
2nd step: Calculate gradient Note: The master does not return the calibration standard value,
Place the sensor in 100% saturated air. so the value is necessarily set at 100.00%.
Calibration standard value: 100.00%
Measurement: 102.48%
OPTOD calibration:
Validation of entire calibration
Calibation standard value : 100.00% Note : The standard is necessarily in ' 100 % ', the value is not
Measurement : 102.48% modifiable.
Looped measurement command, to refresh the value on
the display.
OPTOD calibration:
Validation of the calibration
Choose the range to be calibrated from the 4 available ranges, designated CgGamme.
Turbidity calibration:
2nd step: Calculate gradient
Place the sensor in a Formazin standard solution.
Turbidity calibration:
Validation of entire calibration
At this step, one range is calibrated.
Operator’s name: J. Doe Carry out this operation for each range to be calibrated
Date: 01/10/08 (a maximum of 4 times).
Validation by the operator: 210, 231 For the gradient, use a calibration standard solution
suited to the range chosen for the measurement.
Looped measurement command, to refresh the value on If the operator wishes to exit the calibration without
the display. considering anything (no matter which of the 3 steps) : 231
When the operator confirms this step : 170 with the value
of measure and 230 when putting to ‘1’ the coeff icient
corresponding to the offset of turbidity.
6.9 Turbidity calibration in mg/l - Step 2 - calculation of slope with dry weight value
This step enables to achieve the parameter calibration in mg /l. The operator will enter the value of the Dry Weight to
allow the Sensor to calculate the real slope of the turbidity based on the sample of material.
When the operator confirms this step : 310 call back the
site, 321 (CgDif of param 3 to 0b10), 170 with the dry
weight as standard value for the slope. 230 when putting
to ‘1’ the coefficient corresponding to the turbidity slope.
Choose the range to be calibrated from the 4 available ranges, designated CgGamme.
Conductivity calibration:
2nd step: Calculate gradient
Place the sensor in a calibration solution.
Conductivity calibration:
2nd step: Calculate gradient
Place the sensor in a calibration solution.
Conductivity calibration:
Validation of entire calibration REMARK :
The salt content is not calibrated. Instead, this parameter is
Operator’s name: J. Doe deducted from the conductivity measurement.
Date: 01/10/08
pH calibration sequence
REMARK :
In the Modbus memory plane, we number the standards " standard 1 ", " standard 2 ", " standard 5 ", " standard 6 ", " standard 7 ".
The digital sensor gets back all the data (standard solutions values and raw measures) and stores automatically the data in the
increasing order by obtaining " standard A ", " standard B ", " standard C ", " standard D " and " standard E ".
This allows the integrator to inform any value of standard (of 0 in 14pH) in whatever of the 5 compartments memory of the
standards.
pH calibration:
2nd step: Calculate gradient REMARK :
Place the sensor in another calibration standard The values of the standard solutions could be passed in any
order.
Calibration standard value: 4.00 pH
Measurement: 4.48 pH
pH calibration:
3rd step: Calculate gradient
Place the sensor in another calibration standard
pH calibration:
4th step: Calculate gradient
Place the sensor in another calibration standard
pH calibration:
5th step: Calculate gradient
Place the sensor in another calibration standard
pH calibration:
Validation of entire calibration
Measurement: 2.12 mV If the operator wishes to exit the calibration without considering
anything (no matter which of the 3 steps) : 231
Looped measurement command, to refresh the value on
the display.
ORP calibration:
2nd step: Calculate gradient
Place the sensor in a 240 mV calibration standard (for
example).
230, setting the coefficient for the Redox offset to ‘1’.
ORP calibration:
Validation of entire calibration
Measurement: 2.12 mV If the operator wishes to exit the calibration without considering
anything (no matter which of the 3 steps) : 231
Looped measurement command, to refresh the value on
the display.
ORP calibration:
2nd step: Calculate gradient
Place the sensor in a 240 mV calibration standard (for
example).
230, setting the coefficient for the Redox offset to ‘1’.
ORP calibration:
Validation of entire calibration
The sensor does not record the last 10 calibrations for this parameter but the sensor can save 10 different sites chosen by the
operator.
TSS calibration :
1st step : Calculating of the offset, 0.00 : This corresponds to an information given by the operator
Put the sensor in clear water 0.12 : This corresponds to an information returned by the Sensor.
231
TSS calibration :
Complete calibration validation The operator must select the location of the site to be calibrated
between 1 and 10.
11- Site 1 The operator must appoint or reappoint the site.
12- Tank 1
13- REMARK :
14- Tank 2 The site names contains up to 8 characters.
15-
16- Site 2
17-
18-
19- Tank 5
20-
TSS calibration in g/L– Step 2 -slope calculation with dry weight value :
This step enables to achieve the parameter calibration in mg /l. The operator will enter the value of the Dry Weight to allow
the Sensor to calculate the real slope of the turbidity based on the sample of material.
TSS calibration:
3rd Step : Value of dry weight The operator must choose the site to get back.
When the operator confirms this step : 310 call back the
site, 321 (CgDif of param 3 to 0b10), 170 with the dry
weight as standard value for the slope. 230 when putting
to ‘1’ the coefficient corresponding to the turbidity slope.
Calibration of the Turbidity in FAU : 0.00 FAU : This corresponds to an information given
1st step : Calculating of the offset, by the operator
Put the sensor in clear water. 0.12 FAU : This corresponds to an information returned
231 by the Sensor.
Looped measurement command, to refresh the value on If the operator wishes to exit the calibration without considering
the display. anything (no matter which of the 3 steps) : 231
When the operator confirms this step : 170 with the value
of measure and 230 when putting to ‘1’ the coeff icient
corresponding to the offset of the FAU.
Sludge blanket parameter needs only one step of calibration in clear water.
231
If the operator wishes to exit the calibration without considering
Value of the standard :100.00 % anything (no matter which of the 2 steps) : 231
Measure : 102.48 %
SB calibration :
Validation of entire calibration
6.15 StacSens UV Probe Clear Water calibration: UV and GREEN zeroing for SAC254
IMPORTANT NOTE:
The StacSens UV Probe is not answering in Modbus for up to “Sampling Delay (ms)” after each measurement command: wait for
at least this delay before sending any Modbus request (such as 170 210 230 231). The “Sampling Delay (ms) value have to be
read in 0x00A4 Modbus Register of each sensor.
Clear Water calibration for SAC254: The generic process for “typical calibration” is
1st step: Calculate UV Transmittance’0’ slope described in section 6.3
Let the sensor stabilize its temperature in clear water 0.00: this corresponds to information supplied by the
231 operator.
For StacSens clear water calibrations steps, the standard value
Calibration standard value (Coef . 1): 0.00 to write in sensor is always 0.0 (the writing of ‘float’ 0.0 in
Measurement (SAC254): 0.00 m-1 standard value trigger the processing of clear water coefficient)
Looped measurement command, to refresh the value on
the display (number of measurements must at least be 0.12: this corresponds to information returned by the
three time the averaging number) Sensor.
When the operator validates this step: wait at least The sensor must be placed in clear dematerialized water enough
“Sampling Delay (ms)” after the last measurement time for its internal temperature to stabilize.
command before sending 170. and 230 (when putting to
‘1’ the coefficient corresponding to the UV Tx Slope). The sensor will calculate the required coefficient to get a
transmittance of 1.0 which is a 0.0 absorbance. A 0.0
It’s advised to let at least 500 ms to the Sensor for absorbance both in UV and GREEN get the almost 0.0 SAC254.
processing after standard writing.
If the operator wishes to exit the calibration without considering
Clear Water calibration for SAC254: anything (no matter which of the 3 steps): 231
2nd step: Calculate GR Transmittance’0’ slope
The generic process for “customer value coefficient” calibration is described in section 6.4.
Custom value for COD or BOD or TOC coef.: 0.00: this corresponds to information supplied by the operator.
1st step: set the COD or BOD or TOC offset 0.12: this corresponds to information returned by the Sensor.
No specific condition required for the sensor The sensor can be anywhere; no measurements are done for this
231 setting of customer values for COD/BOD/TOC coefficients .
Calibration standard value (Coef 11/13/15): offset_value The sensor will just copy the “standard” value associated with
the coefficient within the “coefficient value” memory. This
When the operator validates this step: wait at least copy will be fully done by validating the input like a sensor
“Sampling Delay (ms)” after the last measurement calibration (date and operator name writing). A restoration to
command before sending 170. (in the appropriate factory value is also available like any calibration.
standard input value register).
If the operator wishes to exit the calibration without considering
The sensors will copy the standard value to the coefficient anything (no matter which of the 3 steps): 231
value of the associated parameter.
Choose the range to be calibrated from the 2 available ranges, designated CgGamme.
Turbidity calibration:
2nd step: Calculate gradient
Place the sensor in a Formazin standard solution.
Turbidity calibration:
Validation of entire calibration
At this step, one range is calibrated.
Operator’s name: J. Doe Carry out this operation for each range to be calibrated
Date: 01/10/08 (a maximum of 2 times).
Validation by the operator: 210, 231 For the gradient, use a calibration standard solution
suited to the range chosen for the measurement.
6.18 LowTuS sensor: TSSeq Setting or turbidity Fine Tuning “customer value coefficients”
The generic process for “customer value coefficient” calibration is described in section 6.4.
Custom value for TSSeq coef or Turbidity Fine Tuning 0.00: this corresponds to information supplied by the operator.
0.12: this corresponds to information returned by the Sensor.
1st step: set the TSSeq or Turbidity Fine Tuning offset
The sensor can be anywhere; no measurements are done for this
No specific condition required for the sensor setting of customer values for TSSeq (offset + slope) or
231 turbidity Fine Tuning (offset only) coefficients .
Calibration standard value (Coef 11/13/15): offset_value The sensor will just copy the “standard” value associated with
the coefficient within the “coefficient value” memory. This
When the operator validates this step: wait at least copy will be fully done by validating the input like a sensor
“Sampling Delay (ms)” after the last measurement calibration (date and operator name writing). A restoration to
command before sending 170. (in the appropriate factory values is also available like any calibration.
standard input value register).
If the operator wishes to exit the calibration without considering
The sensors will copy the standard value to the coefficient anything (no matter which of the 3 steps): 231
value of the associated parameter.
170
In the file “Digital sensor Frame_xxx.xls” , the memory plane describes all the standard as a generic methodology.
@ 0x0200 to 0x0222
0x0200 Flash r/w write calibration standard 1 for temperature float
0x0202 Flash r/w write calibration standard 2 for temperature float
0x0204 Flash r/w write calibration standard 1 float
0x0206 Flash r/w write calibration standard 2 float
0x0208 Flash r/w write calibration standard 3 float
0x020A Flash r/w write calibration standard 4 float
0x020C Flash r/w write calibration standard 5 float
0x020E Flash r/w write calibration standard 6 float
0x0210 Flash r/w write calibration standard 7 float
0x0212 Flash r/w write calibration standard 8 float
0x0214 Flash r/w write calibration standard 9 float
0x0216 Flash r/w write calibration standard 10 float
0x0218 Flash r/w write calibration standard 11 float
0x021A Flash r/w write calibration standard 12 float
0x021C Flash r/w write calibration standard 13 float
0x021E Flash r/w write calibration standard 14 float
0x0220 Flash r/w write calibration standard 15 Float
0x0222 Flash r/w write calibration standard 16 Float
Example :
In this example, the master sends to the sensor the reference value 24.3°C (0x41C26666) for calculation of the slope (0x0202).
Then the sensor calculates the coefficient using this value and the last measurement. The coefficient is stored in the suitable space
of temporary calibration area.
The sensor updates the status of temporary calibration.
The sensor confirms to master that the task has been done.
For the Redox offset “calibration standard 3”, the master must send com 180. The sensor can be placed in the open air since the
offset is conducted electronically.
In the file “Digital sensor Frame_xxx.xls” , the memory plane describes all the standard as a generic methodology.
@ 0x0208
180
The master writes the value 0x01 in "calibration standard 3" (0x3F800000).
The sensor electronically zeroes the Redox.
exemple :
17:07:02:960 - Frame Sent : (13 octets) : 0x04-0x10-0x02-0x08-0x00-0x02-0x04-0x3F-0x80-0x00-0x00-0xF7-0x59
17:07:03:050 - Received Frame : (8 octets) : 0x04-0x10-0x02-0x08-0x00-0x02-0xC1-0xE7
190
Communication 190 is used by the master to validate the ORP offset, then the sensor starts calculation of the offset. For
the calculation, the Sensor retrieves the last measurement point.
The master writes the value 0x02 in "calibration standard 3" (0x40000000).
The Sensor calculates the calibration coefficient using the last measurement made, the calibration standard value (‘= 0mV’) and
files the result in the appropriate coefficient.
The SENSOR removes electronic zeroing of the Redox.
exemple :
17:17:03:610 - Frame Sent : (13 octets) : 0x04-0x10-0x02-0x08-0x00-0x02-0x04-0x40-0x00-0x00-0x00-0xEF-0x65
17:17:03:700 - Received Frame : (8 octets) : 0x04-0x10-0x02-0x08-0x00-0x02-0xC1-0xE7
200
Communication 200 is used by the master to escape from the ORP calibration sequence. Consequently, this frame
deactivates electronic zero.
The master writes the value 0x03 in "calibration standard 3" (0x40400000).
The sensor removes the electronic ZERO from the redox without any calculation.
exemple :
Sensors take less than 500ms to treat the calibration validation information.
You must send 16 octets for operator name and also 16 octets for the date.
In the file “Digital sensor Frame_xxx.xls”, the memory plane describes @ 0x027E to 0x02C6
Writing operator’s name and date in temporary calibration.
The sensor validates the calibration sequence by transferring data from temporary coefficients to current coefficients.
IMPORTANT NOTE (recommended for all sensors, specifically for StacSens UV)
It’s strongly advised to separate this frame in two writing request instead of one writing the 16 registers (32 ascii char):
1. Writing the Operator Name (8 registers – 16 ascii characters 1 by byte, 2 by register)
2. Writing the Date of Calibration (8 registers – 16 ascii characters 1 by byte, 2 by register)
Example of frame:
Frame for filling out the list of “temporary coefficients to be used for the measurement”. 230
Activating a given coefficient in this list enables the SENSOR to return the measurement not with the correction coefficient from
the current calibration, but the one from the temporary calibration coefficient.
IMPORTANT NOTE:
When the operator exits the calibration menu by cancelling the previous actions, each coefficient in the list is zeroed.
In the file “Digital sensor Frame_xxx.xls”, the memory plane describes @ 0x014C
Write all data in the list of temporary coefficients to be used for measurement.
Coef14 Coef13 Coef12 Coef11 Coef10 Coef9 Coef8 Coef7 Coef6 Coef5 Coef4 Coef3 Coef2 Coef1 PenteTemp OffTemp LSB
Not Not Not Not Not Not Not Not Not Not Not Not Not Not
used used used used used used used used used used used used used used Coef16 Coef15 MSB
Example of frame:
The master asks to sensor a measurement obtained with temporary offset and gain for temperature by writing 0x0003
(0b00000000 00000011) at address 0x014C in Modbus.
Resets all "Temporary" calibration data. And the measurements use only current coefficients: 231
With these frames, the sensor sends the measurement with coefficients from current calibration and also resets data written in
temporary calibration.
Write '0x00000000 ' at 0x014C address and also 0x0001 at 0x004C address.
In the file “Digital sensor Frame_xxx.xls”, the memory plane describes two registers from @ 0x014C and 0x004C.
List of temporary coefficients to be
0x014C Flash r / w used in measurement calculation long 2
1: Pod will use temporary coefficient value for
This Modbus register is a simple 16 bits value with 2 Bytes (16 bits) : CoefX:
measurement calculation instead of current coefficient; this
MSB+LSB
function only used during calibration.
Each Temporary calibration coefficient has an associated bit to
Example: offset already calculated used to display
activate its use by measurement.
measurement during second calibration (slope)
Example of frame :
0x02CE Flash w Site Name (temporary calibration standard) ascii 4 used only for Nephelo in mg/L and for MES
The master must write the site number, between 1 and 10, related to the calibration coefficients.
@ 0x014E
0x014E Flash r/w Site number int 1 Identifies site to be used for temporary calibration transfer (value from 1 to 10)
Example of frame :
In the file “Digital sensor Frame_xxx.xls”, the memory plane describes @ 0x0003
0x0003 w Returns one of 10 latest calibrations or one of 10 sites int 1
PARA X:
HIST:
Example of frame :
The master calls back the calibration coefficients of parameter #~2 from site #4. (0x0404)
The master sends the configuration of the measurement in g/L in order to indicate a delayed calibration : CgDif = 0b01
In the file “Digital sensor Frame_xxx.xls”, the memory plane describes : @ from 0x00A5 to 0x00A9
Flash r Temperature measurement int 1
/ type configuration.
0x00A5 w CgDif CgGamme
Flash r Param 1 measurement type int 1 CgMes: 00: corrected measurement, default value
/ configuration
0x00A6 w
Flash r Param 2 measurement type int 1 01: uncorrected measurement 1
/ configuration
0x00A7 w
Flash r Param 3 measurement type int 1 10: uncorrected measurement 2
/ configuration
0x00A8 w
Flash r Param 4 measurement type int 1 11: gross measurement
/ configuration
0x00A9 w
1: Uses temperature returned by Master for compensation
calculation. If not, Pod carries out temperature measurement
CgTEX: and uses value for compensation.
1: Pod uses Compensates 1 returned by Master for
Cg1EX: compensation calculation. If not, Pod uses default value
1: Pod uses Compensates 2 returned by Master for
Cg2EX: compensation calculation. If not, Pod uses default value
1: Pod uses Compensates 3 returned by Master for
Cg3EX: compensation calculation. If not, Pod uses default value
CgGamme: 000: range definition is automatic, or if no range
001: use of measurement range 1
010: use of measurement range 2
011: use of measurement range 3
100: use of measurement range 4
CgDif: 00:
Differed Default
calibration Val
01: gross measurement configuration saved for future use
(activation during calibration standard write process)
10: warns that gross value saved will be used to calculate
parameter with calibration standard (when calibration
standard next required)
Example of frame :
The master sends the configuration 0x1000 to parameter #2 (0x00A7) : cgDif = 0b01.
Frame for delayed calibration – configuration for dry weight collecting 321
With this step, the sensor must collect the dry weight when it will receive the standard value.
It could calculate the calibration coefficient.
The master sends the configuration of measurement in g/l in order to indicate a delayed calibration.
In the file “Digital sensor Frame_xxx.xls”, the memory plane describes : @ from 0x00A5 to 0x00A9
Example of frame :
The master sends the configuration 0x2000 to parameter #2 (0x00A7) : cgDif = 0b10.
8 Annex 2 – FAQ
- solution : Measure power consumption of the sensor, in stand-by mode, current value below 50µA,
- solution : Change the RS485 converter. The converter must compatible with RTU Modbus.
Try with 4200 DIGITAL MODULE and CALSENS software then come back to your own software.
• StacSens UV : Delay between measurement command and status or results reading is not high enough
- solution : Wait for “Sampling delay (ms)” after sending the measurement command before trying any Modbus
communication with the Sensor.
Warning: The UV probe is mute in Modbus up to “Sampling delay (ms)” after measurement command.
• Cable problem :
Float number format is in accordance with normative document ANSI/IEEE Std 754-1985 - simple precision (32 bits),
‘big-Endian’.
Use this document and also CALSENS software to see the frames in real time in commands log window (access in the
Menu / Tool).
There is no galvanic insulation with the RS485 line. However, the physico-chemistry sensors (pH, C4E conductivity) have
galvanic insulation at the measurement conditioning level. In this way, there is no perturbation when several sensors are
used.
In stand-by mode, power consumption of sensors is very low (below 50µA). This is an automatic mode after the end of
measurement and communication.
In the other way, the sensor wake-up with communication frame.
No. In order to optimize power consumption, the master needs to send a frame to obtain a new measure.