When controlling assets (EV's, batteries), the Sofar EMS sends a command to the device, which then needs time to process this command and adjust its state accordingly. This is known as the control response time. The time needed for this, and the time it takes for the Sofar EMS to send a new command, depends on the following factors:
When your Sofar EMS is active in ancilllary services, a fast response time is crucial. On this page, we will explain how these factors influence the control response time and how you can optimize it for your specific use case.
Key takeaways:
For the full explanation of these factors, continue reading below.
Different types of devices have inherently different response times due to their technical characteristics and communication protocols:
For optimal control, consider the slowest responding device when setting up your control parameters. This ensures stable operation across all connected devices.
When working with multiple device brands, protocols, and models, patience becomes essential. Although devices like batteries, inverters, and EV chargers typically respond quickly to commands, they need time to update their measurements and send them back to the EMS.
Two key factors affect response times:
This is where settling checks become important. A settling check is a waiting period that ensures devices have fully reached their commanded states before new decisions are made. Think of it as letting the dust settle after a change. Without this mechanism, our control system could react to temporary states during the transition period. This would lead to unnecessary corrections - similar to trying to balance on a wobbling platform while constantly overcorrecting, making the situation worse.
Our implementation monitors three crucial aspects: First, it verifies that measurements are recent and reliable, ensuring we're not reacting to outdated information. Second, it tracks how power flows change over time, confirming that devices are responding as expected. Finally, it respects the inherent delays in device responses, giving equipment the time it needs to reach stable operation.
Consider a site with two devices: a modern battery system and an older heat pump. When we send a command to reduce power consumption by 5kW:
| Time | Battery | Heat Pump | System Response |
|---|---|---|---|
| 0:00 | 0kW | 5kW | Command sent: reduce by 5kW |
| 0:01 | -2kW | 5kW | Battery responds quickly |
| 0:03 | -2kW | 3kW | Heat pump starts responding |
| 0:05 | -2kW | 3kW | Waiting for stability |
| 0:07 | -2kW | 3kW | System confirms settled state |
The battery responds almost immediately, but the heat pump's older control system takes longer to adjust and report its new state. Without settling checks, we might misinterpret this delay as a failure to respond and send additional commands, potentially destabilizing the system. Instead, our controller patiently waits for all devices to report stable states before making any new decisions. The timeline for this exact flow then looks like this:
This measured approach might seem overly cautious, but in the world of power systems, stability and equipment longevity far outweigh the appeal of rapid-fire adjustments.
Disabling the settling check
False:When multiple devices are connected to the RS485 bus, the control response time can be affected due to the inherent limitation of RS485 communication - only one device can communicate at a time.
As devices take turns communicating over the bus, each additional device increases the overall communication cycle time. This can lead to slower response times for all connected devices.
For optimal performance:
For detailed information about RS485 wiring and best practices, refer to the Wiring Best Practices guide.
The scheduler interval determines how often the Sofar EMS checks for new commands and sends them to the devices. A shorter interval allows for faster response times, while a longer interval can lead to delays in command execution. Check if the scheduler interval is set to a reasonable value for your use case. The default interval is 1 second, but you can adjust it in the advanced settings:
False: