
77
Installation, Operation & Maintenance Manual
OXYvisor Optical Oxygen Analyzer
To interrogate process variables such as oxygen, pressure, temperature, phase, amplitude, etc. refer to Table
3 for Base Addresses, then implement the offset, function code and choose data type as shown in the example
below. For basic Modbus RTU configuration settings, refer to Table 1.
The 4 relays in OXYvisor can be activated one at a time manually. Follow the steps below to specify, start and
stop individual relays. Until one relay is not deactivated, the other relay cannot be written to.
1.
Set the relay test number (Register Address : 44010). The values can be set to 1 , 2 , 3 or 4 for the
corresponding relay.
2.
Set the relay test position (Register Address : 44011). The value can be set to 0 to OPEN and 1 to
CLOSE the relay. (Note: The relay will not open or close unit you activate it in the next step.)
3.
Activate the relay status (Register Address : 44012). To activate, set the relay status value to (0X01).
4.
To deactivate the relay set the relay status (Register Address : 44012) to (0x02).
A7.4 - Communication Guide
A7.4.1 Reading Process Variables:
A7.4.2 Turning on Relays
PROCESS
VARIABLE
FIRST REGISTER
MINUS
OFFSET
FUNCTION CODE
DATA TYPE
RESULT
(EXAMPLE)
Oxygen
30002
30000
4
Float
20.97
Amplitude
30006
30000
4
Uint32
14671
Temperature
30022
30000
4
Float
69.89
Table A.19-2 - Holding Registers
Table A.20 - Process Variable registers
Note: The “minus offset” should be 40000 for all the above read/write only registers.
*Addresses which are 4bytes long, needs 2 registers updated at once and function code 16 must be used.
** Current UTC time in seconds can be found on
https://www.epochconverter.com/
USEFUL INFORMATION
Base
Address
Register Name
Size
Type
40160
configVar.CalibrationConfigVars.autoO2SenCal.
calibrationFrequency[2].firstCalibrationTime
4*
uint32 Current time (UTC**) value in stime delay
(seconds)
40162
configVar.CalibrationConfigVars.autoO2SenCal.
calibrationFrequency[3].calibrationIntervalActivated
2
uint16 0x01 = enable; 0x02 = disable
40168
configVar.CalibrationConfigVars.autoO2SenCal.
calibrationFrequency[3].calibrationInterval
4*
uint32 0 - 5184000 (in seconds)
40170
configVar.CalibrationConfigVars.autoO2SenCal.
calibrationFrequency[3].firstCalibrationTime
4*
uint32 Current time (UTC**) value in stime delay
(seconds)
40185
configVar.CalibrationConfigVars.autoO2SenCal.zeroPurgeTime
4*
float
1-30 (in minutes)
40187
configVar.CalibrationConfigVars.autoO2SenCal.spanPurgeTime
4*
float
1-30 (in minutes)
40189
configVar.CalibrationConfigVars.autoO2SenCal.recoveryTime
2
uint16 1-120 (in seconds)
40408
configVar.DiagAndTestConfigVars.testGasInsert.
timePeriodForTestGas
4*
float
1-100 (in minutes)
40410
configVar.DiagAndTestConfigVars.testGasInsert.outputDefine
2
uint16 0x01 = Zero Gas; 0x02 = Span Gas
44000
calibrationStateWriteRegister
2
uint16 0X04 = Start Auto Calibration; 0X05 = Stop Auto
Calibration
RAM Locations
44000
calibrationStateWriteRegister
2
uint16 0X04 = Start Auto Calibration; 0X05 = Stop Auto
Calibration
44009
testGasInsertStatus
2
uint16 0x01 = start test gas insert, 0x02 = stop test gas insert
44010
relayTestNumberStatus
2
uint16 1,2,3 and 4 for the corresponding relay
44011
relayTestPositionStatus
2
uint16 0 - open and 1 - close
44012
relayTestStatus
2
uint16 1- Activate and 2 - deactivate