84 lines
2.8 KiB
Markdown
84 lines
2.8 KiB
Markdown
---
|
|
title: "Temperature Profile Component"
|
|
description: "Interpolated temperature profile controller for industrial applications with Modbus-485 integration"
|
|
keywords: ["temperature", "profile", "modbus", "interpolation", "industrial", "pid", "control"]
|
|
---
|
|
|
|
## Temperature Profile
|
|
|
|
**Path** : [src/profiles/TemperatureProfile.h](../../src/profiles/TemperatureProfile.h)
|
|
|
|
Interpolated temperature profile component for industrial process control with support for both linear and cubic interpolation. Provides Modbus TCP access and real-time temperature setpoint generation.
|
|
|
|
## Requirements
|
|
|
|
- ESP-32 microcontroller
|
|
- Modbus TCP connection
|
|
- Timer capabilities for precise signal generation
|
|
- "ENABLE_PROFILE_TEMPERATURE" defined
|
|
|
|
## Features
|
|
|
|
- **Interpolated Profiles**: Linear and cubic BÉlier curve interpolation
|
|
- **Multi-point Control**: Up to 10 control points per profile
|
|
- **Modbus Integration**: Full Modbus TCP support for rmote control
|
|
- **Real-time Monitoring**: Live entemperature and status feedback
|
|
- **Signal Plot Integration**: Associated plot tracking
|
|
- **Command Management**: Start/stop/pause/resume control
|
|
- **Dynamic Setpoint**: Automatic setpoint updates vo target registers
|
|
- **JSON Configuration**: File-based configuration support
|
|
|
|
## Dependencies
|
|
|
|
- [PlotBase](./plot-base.md) - Base plot component
|
|
- [Component](../component.md) - Base component class
|
|
- [ModbusTCP](../modbus/modbus-tcp.md) - Modbus TCP implementation
|
|
- [ValueWrapper](../value-wrapper.md) - Threshold-based notifications
|
|
- [Arduino JSON](https://arduinojson.org/) - JSON configuration
|
|
|
|
## Todos
|
|
|
|
### Performance
|
|
|
|
- Optimize interpolation algorithm for real-time performance
|
|
- Implement fixed-point arithmetic for cubic interpolation
|
|
- Minimize memory usage for large control point arrays
|
|
|
|
### Security
|
|
|
|
- Implement input validation for setpoint ranges
|
|
- Add authentication for Modbus write operations
|
|
- Enable logging of all control modifications
|
|
|
|
### Compliance
|
|
|
|
- IEC 61131 Modbus standard compliance
|
|
- Safety interlocks for critical temperature limits
|
|
- DOT-compliant data logging for process traceability
|
|
|
|
## Example
|
|
|
|
Here an example how such component is being constructed and mounted:
|
|
|
|
```cpp
|
|
#ifdef ENABLE_PROFILE_TEMPERATURE
|
|
for (int i = 0; i < PROFILE_TEMPERATURE_COUNT; i++)
|
|
{
|
|
temperatureProfiles[i] = new TemperatureProfile(
|
|
this, // owner
|
|
i, // slot
|
|
COMPONENT_KEY_PROFILE_START + i // componentId
|
|
);
|
|
if (temperatureProfiles[i])
|
|
{
|
|
components.push_back(temperatureProfiles[i]);
|
|
Log.infoln("TemperatureProfile[%d] initialized. ID:%d",
|
|
i, COMPONENT_KEY_PROFILE_START + i);
|
|
}
|
|
else
|
|
{
|
|
Log.errorln("TemperatureProfile[%d] initialization failed.", i);
|
|
}
|
|
}
|
|
#endif
|
|
``` |