Controls
Custom Bargraph
The Custom Bargraph control is a powerful and configurable widget designed to visualize real-time data as a horizontal or vertical bargraph. It offers extensive customization options, making it ideal for monitoring analog values such as temperature, pressure, or fill levels.
Overview
This control not only displays a continuously updating bargraph tied to a variable, but also allows for the presentation of numeric values, units, labels, and alarm thresholds—enabling quick and intuitive interpretation of system states.
Key Features
Dynamic Data Display
- Connect to a real-time data variable (e.g., from CODESYS or MQTT).
- The bar height/length reflects the live value.
Numerical Value & Unit
- Optionally display the current value numerically alongside the bar.
- Add a unit suffix (e.g., °C, %, bar) for context.
Custom Labels
- Add up to two labels (e.g., "Input Pressure", "Max Safe").
- Use them to describe or categorize the visualized value.
Intermediate Markers
- Display up to 5 intermediate values as reference markers on the bar.
- Useful for denoting ranges, such as “Optimal”, “Critical”, or “Warning”.
Alarm Thresholds
- Define up to 6 alarm limits.
- Each limit can visually indicate when the value enters a critical range, allowing operators to respond quickly to anomalies.
Configurable Appearance
- Adjust colors, bar direction (horizontal or vertical), and styling to match your interface.
Use Cases
Process Monitoring
- Example: Show tank fill levels or pump pressure with visual thresholds for overfill or underpressure warnings.
Environmental Metrics
- Example: Display temperature or humidity with clearly marked safe and danger zones.
Production Lines
- Example: Monitor speed, load, or material count and show warning states if a process exceeds defined limits.
SVG ID Reference Table
Use the following SVG IDs to correctly assign dynamic values to elements within the Custom Bargraph:
# | Element | SVG ID |
---|---|---|
1 | Label Line 1 | label_1_tspan |
2 | Label Line 2 | label_2_tspan |
3 | Intermediate Value 5 | tick_major_5_value |
4 | Intermediate Value 4 | tick_major_4_value |
5 | Intermediate Value 3 | tick_major_3_value |
6 | Intermediate Value 2 | tick_major_2_value |
7 | Intermediate Value 1 | tick_major_1_value |
8 | Thumb (Current Value Indicator) | thumb |
9 | Main Value | value_tspan |
10 | Unit | label_unit_tspan |
11 | Bargraph Range | barPath |
12 | Bargraph Fill | barFill |
13 | Limit 1 | limit_hi_3 |
14 | Limit 2 | limit_hi_2 |
15 | Limit 3 | limit_hi_1 |
16 | Limit 4 | limit_lo_1 |
17 | Limit 3 | limit_lo_2 |
18 | Limit 3 | limit_lo_3 |
19 | Root Class | custom_control_root |
DATA JSON Interface
{
"value": "20",
"label1": "Custom Bar label 1",
"label2": "Custom Bar label 2",
"unit": "",
"ticks": [
"0",
"10",
"20",
"50",
"100"
],
"parameters": {
"pMin": -20,
"pMax": 200,
"pLimitHi1": {
"enabled": true,
"value": 150
},
"pLimitHi2": {
"enabled": true,
"value": 170
},
"pLimitHi3": {
"enabled": true,
"value": 190
},
"pLimitLo1": {
"enabled": true,
"value": 20
},
"pLimitLo2": {
"enabled": true,
"value": -10
},
"pLimitLo3": {
"enabled": true,
"value": -15
}
},
"theme": {
"barBorder": "",
"barPath": "",
"barLFill": "",
"barRFill": "",
"thumb": ""
},
"general": {
"rootClass": ""
}
}
*Live Demo
Todo
{
"value": "20",
"label1": "Custom Bar label 1",
"label2": "Custom Bar label 2",
"unit": "",
"ticks": [
"0",
"10",
"20",
"50",
"100"
],
"parameters": {
"pMin": -20,
"pMax": 200,
"pLimitHi1": {
"enabled": true,
"value": 150
},
"pLimitHi2": {
"enabled": true,
"value": 170
},
"pLimitHi3": {
"enabled": true,
"value": 190
},
"pLimitLo1": {
"enabled": true,
"value": 20
},
"pLimitLo2": {
"enabled": true,
"value": -10
},
"pLimitLo3": {
"enabled": true,
"value": -15
}
},
"theme": {
"barBorder": "",
"barPath": "",
"barLFill": "",
"barRFill": "",
"thumb": ""
},
"general": {
"rootClass": ""
}
}
custom_control_root
limit_lo_3
limit_lo_2
limit_lo_1
limit_hi_1
limit_hi_2
limit_hi_3
barFill
barPath
label_unit_tspan
value_tspan
thumb
tick_major_1_value
tick_major_2_value
tick_major_3_value
tick_major_4_value
tick_major_5_value
label_2_tspan
label_1_tspan