Inheco SCILA#
Summary |
Image |
|---|---|
|
Figure: Inheco SCILA |
Setup (Physical)#
The SCILA communicates over Ethernet using the SiLA 2 protocol. To connect, you need:
The IP address of the SCILA on your network.
(Optional) The IP address of your client machine — auto-detected if omitted.
The backend starts a local HTTP server to receive asynchronous responses from the SCILA.
Setup (Programmatic)#
import asyncio
from pylabrobot.storage.inheco.scila import SCILABackend
scila = SCILABackend(scila_ip="169.254.1.117")
await scila.setup()
Usage#
Status Requests#
Device status ("standBy", "inError", "startup", …):
await scila.request_status()
'idle'
Water level in the built-in humidification reservoir (e.g. "High", "Low"). The SCILA uses this reservoir to maintain humidity inside the drawers:
await scila.request_liquid_level()
'Empty'
Drawer status for all 4 drawers:
await scila.request_drawer_status(1)
'Closed'
await scila.request_drawer_statuses()
{1: 'Closed', 2: 'Closed', 3: 'Closed', 4: 'Closed'}
CO₂ and H₂O valve status:
await scila.request_valve_status()
{'H2O': 'Opened', 'CO2 Normal': 'Opened', 'CO2 Boost': 'Closed'}
CO₂ flow status:
await scila.request_co2_flow_status()
'NOK'
Status of a single drawer:
await scila.request_drawer_status(3)
'Closed'
Drawer Control#
Only one drawer can be open at a time. Opening a second drawer while one is already open will raise an error.
await scila.open(2)
await scila.close(2)
Temperature Control#
The SCILA has a single temperature zone shared across all 4 drawers.
Current temperature in °C:
await scila.measure_temperature()
23.65
await scila.start_temperature_control(37.0)
Check the target temperature and current temperature after starting:
await scila.request_target_temperature()
37.0
await asyncio.sleep(4)
await scila.measure_temperature()
24.53
await scila.is_temperature_control_enabled()
True
Stop temperature control and verify it is disabled:
await scila.stop_temperature_control()
await scila.is_temperature_control_enabled()
False
Closing Connection#
Close the SiLA 2 HTTP server and disconnect from the SCILA.
await scila.stop()