Alicat BASIS-2 Driver 1.0.0
API reference
Loading...
Searching...
No Matches
alicat_basis2_registers.hpp
Go to the documentation of this file.
1
11#pragma once
12
13#include <cstdint>
14
15namespace alicat_basis2 {
16namespace reg {
17
18//==============================================================================
19// CONFIGURATION & FUNCTION REGISTERS
20//==============================================================================
21
22inline constexpr uint16_t BaudRate = 21;
23inline constexpr uint16_t FirmwareVersion = 25;
24inline constexpr uint16_t SerialNumberStart = 26; // 6 regs (12 chars)
25inline constexpr uint16_t SerialNumberCount = 6;
26inline constexpr uint16_t FlowSensorOffset = 32;
27inline constexpr uint16_t FullScaleFlowSccm = 35; // 2 regs
28inline constexpr uint16_t TareCommand = 39; // write 0xAA55
29inline constexpr uint16_t ModbusAddress = 45;
30inline constexpr uint16_t AsciiUnitId = 46;
31inline constexpr uint16_t FullScaleFlowUserUnits = 47; // 2 regs (value / 1000)
32inline constexpr uint16_t FlowUnitsCode = 49;
33inline constexpr uint16_t TareSampleCount = 51;
34inline constexpr uint16_t ReferenceTemperature = 52; // value / 100 = °C
35inline constexpr uint16_t TotalizerResetCommand = 53; // write 0xAA55
36inline constexpr uint16_t TotalizerLimitMode = 54;
37inline constexpr uint16_t FlowAveragingMs = 55;
38inline constexpr uint16_t CommandProtocol = 56;
39inline constexpr uint16_t FactoryRestoreCommand = 80; // write 0x5214
40inline constexpr uint16_t GasInfoTableStart = 81; // 5 regs per gas
41inline constexpr uint8_t GasInfoEntries = 12;
42
43//==============================================================================
44// CONTROL REGISTERS
45//==============================================================================
46
47inline constexpr uint16_t CommWatchdogMs = 514;
48inline constexpr uint16_t AutotareEnable = 515;
49inline constexpr uint16_t SetpointSource = 516;
50inline constexpr uint16_t PgainPdf = 519;
51inline constexpr uint16_t IgainPdf = 520;
52inline constexpr uint16_t TotalizerBatchVolume = 521; // 2 regs
53inline constexpr uint16_t MaxSetpointRamp = 524; // 2 regs (per-ms × 10^7)
54
55//==============================================================================
56// INSTANTANEOUS DATA REGISTERS
57//==============================================================================
58
59inline constexpr uint16_t SetpointCommand = 2053; // 2 regs (signed × 1000)
60inline constexpr uint16_t SelectedGas = 2100;
61inline constexpr uint16_t StatusBitfield = 2101;
62inline constexpr uint16_t TemperatureCenticC = 2102; // signed / 100
63inline constexpr uint16_t Flow = 2103; // signed (× 10^-decimals)
64inline constexpr uint16_t TotalVolumeStart = 2104; // 2 regs
65inline constexpr uint16_t SetpointReadback = 2106;
66inline constexpr uint16_t ValveDriveCenti = 2107; // / 100 = %
67inline constexpr uint16_t BatchRemainingStart = 2108; // 2 regs
68
69//==============================================================================
70// MEASUREMENT REGISTERS
71//==============================================================================
72
73inline constexpr uint16_t MeasurementTriggerMode = 4200;
74inline constexpr uint16_t MeasurementSampleCount = 4201;
75inline constexpr uint16_t MeasurementMinTemp = 4202;
76inline constexpr uint16_t MeasurementMaxTemp = 4203;
77inline constexpr uint16_t MeasurementMinFlow = 4204;
78inline constexpr uint16_t MeasurementMaxFlow = 4205;
79inline constexpr uint16_t MeasurementSamplesAveraged = 4206;
80inline constexpr uint16_t MeasurementAvgTemp = 4207;
81inline constexpr uint16_t MeasurementAvgFlow = 4208;
82inline constexpr uint16_t MeasurementValveDriveCurr = 4209;
83inline constexpr uint16_t MeasurementPrevMinFlow = 4210;
84inline constexpr uint16_t MeasurementPrevMaxFlow = 4211;
85inline constexpr uint16_t MeasurementPrevSamplesAvg = 4212;
86inline constexpr uint16_t MeasurementPrevAvgTemp = 4213;
88inline constexpr uint16_t MeasurementPrevAvgFlow = 4214;
89inline constexpr uint16_t kPrevAvgFlowCount = 2;
93
94//==============================================================================
95// MODBUS FUNCTION CODES (we only use 3, 6, 16)
96//==============================================================================
97
98namespace fn {
99inline constexpr uint8_t ReadHolding = 0x03;
100inline constexpr uint8_t WriteSingle = 0x06;
101inline constexpr uint8_t WriteMultiple = 0x10;
102inline constexpr uint8_t ExceptionMask = 0x80;
103} // namespace fn
104
105} // namespace reg
106} // namespace alicat_basis2
constexpr uint8_t ReadHolding
Definition alicat_basis2_registers.hpp:99
constexpr uint8_t WriteMultiple
Definition alicat_basis2_registers.hpp:101
constexpr uint8_t ExceptionMask
Definition alicat_basis2_registers.hpp:102
constexpr uint8_t WriteSingle
Definition alicat_basis2_registers.hpp:100
constexpr uint16_t ValveDriveCenti
Definition alicat_basis2_registers.hpp:66
constexpr uint16_t SerialNumberCount
Definition alicat_basis2_registers.hpp:25
constexpr uint16_t FullScaleFlowSccm
Definition alicat_basis2_registers.hpp:27
constexpr uint16_t MeasurementPrevMinFlow
Definition alicat_basis2_registers.hpp:83
constexpr uint16_t PgainPdf
Definition alicat_basis2_registers.hpp:50
constexpr uint16_t IgainPdf
Definition alicat_basis2_registers.hpp:51
constexpr uint16_t StatusBitfield
Definition alicat_basis2_registers.hpp:61
constexpr uint16_t MeasurementMinTemp
Definition alicat_basis2_registers.hpp:75
constexpr uint16_t TemperatureCenticC
Definition alicat_basis2_registers.hpp:62
constexpr uint16_t MeasurementAvgTemp
Definition alicat_basis2_registers.hpp:80
constexpr uint16_t TareSampleCount
Definition alicat_basis2_registers.hpp:33
constexpr uint16_t FlowUnitsCode
Definition alicat_basis2_registers.hpp:32
constexpr uint16_t CommandProtocol
Definition alicat_basis2_registers.hpp:38
constexpr uint16_t SetpointReadback
Definition alicat_basis2_registers.hpp:65
constexpr uint16_t MeasurementTriggerMode
Definition alicat_basis2_registers.hpp:73
constexpr uint16_t MaxSetpointRamp
Definition alicat_basis2_registers.hpp:53
constexpr uint16_t MeasurementValveDriveCurr
Definition alicat_basis2_registers.hpp:82
constexpr uint16_t TotalizerBatchVolume
Definition alicat_basis2_registers.hpp:52
constexpr uint16_t TotalVolumeStart
Definition alicat_basis2_registers.hpp:64
constexpr uint16_t MeasurementMinFlow
Definition alicat_basis2_registers.hpp:77
constexpr uint16_t CommWatchdogMs
Definition alicat_basis2_registers.hpp:47
constexpr uint16_t TotalizerResetCommand
Definition alicat_basis2_registers.hpp:35
constexpr uint8_t GasInfoEntries
Definition alicat_basis2_registers.hpp:41
constexpr uint16_t GasInfoTableStart
Definition alicat_basis2_registers.hpp:40
constexpr uint16_t MeasurementPrevAvgFlowLow
Definition alicat_basis2_registers.hpp:92
constexpr uint16_t FactoryRestoreCommand
Definition alicat_basis2_registers.hpp:39
constexpr uint16_t AsciiUnitId
Definition alicat_basis2_registers.hpp:30
constexpr uint16_t kPrevAvgFlowCount
Definition alicat_basis2_registers.hpp:89
constexpr uint16_t ModbusAddress
Definition alicat_basis2_registers.hpp:29
constexpr uint16_t MeasurementPrevAvgFlow
Previous window's average flow: signed 32-bit at 4214-4215, high register first.
Definition alicat_basis2_registers.hpp:88
constexpr uint16_t MeasurementPrevAvgTemp
Definition alicat_basis2_registers.hpp:86
constexpr uint16_t MeasurementAvgFlow
Definition alicat_basis2_registers.hpp:81
constexpr uint16_t FlowAveragingMs
Definition alicat_basis2_registers.hpp:37
constexpr uint16_t SetpointCommand
Definition alicat_basis2_registers.hpp:59
constexpr uint16_t AutotareEnable
Definition alicat_basis2_registers.hpp:48
constexpr uint16_t SelectedGas
Definition alicat_basis2_registers.hpp:60
constexpr uint16_t MeasurementMaxTemp
Definition alicat_basis2_registers.hpp:76
constexpr uint16_t FirmwareVersion
Definition alicat_basis2_registers.hpp:23
constexpr uint16_t MeasurementPrevMaxFlow
Definition alicat_basis2_registers.hpp:84
constexpr uint16_t SerialNumberStart
Definition alicat_basis2_registers.hpp:24
constexpr uint16_t FlowSensorOffset
Definition alicat_basis2_registers.hpp:26
constexpr uint16_t Flow
Definition alicat_basis2_registers.hpp:63
constexpr uint16_t TareCommand
Definition alicat_basis2_registers.hpp:28
constexpr uint16_t MeasurementSamplesAveraged
Definition alicat_basis2_registers.hpp:79
constexpr uint16_t MeasurementSampleCount
Definition alicat_basis2_registers.hpp:74
constexpr uint16_t BatchRemainingStart
Definition alicat_basis2_registers.hpp:67
constexpr uint16_t MeasurementPrevSamplesAvg
Definition alicat_basis2_registers.hpp:85
constexpr uint16_t MeasurementMaxFlow
Definition alicat_basis2_registers.hpp:78
constexpr uint16_t ReferenceTemperature
Definition alicat_basis2_registers.hpp:34
constexpr uint16_t FullScaleFlowUserUnits
Definition alicat_basis2_registers.hpp:31
Definition alicat_basis2.hpp:52
BaudRate
Baud-rate codes for register 21 (datasheet "Changing the Baud Rate").
Definition alicat_basis2_types.hpp:230
SetpointSource
Setpoint source — register 516 (controllers only).
Definition alicat_basis2_types.hpp:263
TotalizerLimitMode
Totalizer overflow behaviour — register 54.
Definition alicat_basis2_types.hpp:272