setup_time_tracking
setup_time_tracking ¤
Setup/changeover time tracking for SMED analysis.
Track setup durations to support Single-Minute Exchange of Die improvement: - Setup event durations - Setup time by product transition - Setup statistics - Setup time trends
SetupTimeEvents ¤
SetupTimeEvents(
dataframe: DataFrame,
*,
time_column: str = "systime",
shift_definitions: (
dict[str, tuple[str, str]] | None
) = None,
event_uuid: str = "prod:setup_time"
)
Bases: Base
Track and analyze setup/changeover durations.
Each UUID represents one signal: - run_state_uuid: machine state signal containing a setup indicator value - part_id_uuid: part number / product type signal (optional)
Merge keys: [date, shift] for shift-level, [period] for trend data, [from_product, to_product] for product transition analysis.
Durations are reported in seconds (*_seconds); the *_minutes
columns are kept as a convenience.
Pipeline example::
setup = SetupTimeEvents(df)
durations = setup.setup_durations('machine_state', setup_value='Setup')
# → merge with ShiftReportEvents.shift_production() on [date, shift]
stats = setup.setup_statistics('machine_state')
# → standalone KPI reporting
Example usage
tracker = SetupTimeEvents(df)
List all setup events¤
events = tracker.setup_durations(run_state_uuid='machine_state')
Setup time by product transition¤
by_product = tracker.setup_by_product( run_state_uuid='machine_state', part_id_uuid='part_number', )
Initialize the setup-time tracker.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dataframe
|
DataFrame
|
Input DataFrame with timeseries data. |
required |
time_column
|
str
|
Name of timestamp column (default: 'systime'). |
'systime'
|
shift_definitions
|
dict[str, tuple[str, str]] | None
|
Mapping of shift name to (start, end) times. Default: 3-shift operation (06:00-14:00, 14:00-22:00, 22:00-06:00). |
None
|
event_uuid
|
str
|
UUID tagged on derived interval events (the |
'prod:setup_time'
|
setup_durations ¤
setup_durations(
run_state_uuid: str,
*,
setup_value: str = "Setup",
value_column: str = "value_string",
production_day: bool = True
) -> pd.DataFrame
List every setup event with duration.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
run_state_uuid
|
str
|
UUID for machine state signal. |
required |
setup_value
|
str
|
Value that indicates a setup state. |
'Setup'
|
value_column
|
str
|
Column containing state values. |
'value_string'
|
production_day
|
bool
|
Attribute an overnight shift's post-midnight
setups to the shift's start date, so a night shift is one
|
True
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|
setup_by_product ¤
setup_by_product(
run_state_uuid: str,
part_id_uuid: str,
*,
setup_value: str = "Setup",
value_column_state: str = "value_string",
value_column_part: str = "value_string"
) -> pd.DataFrame
Setup time statistics by product transition (from → to).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
run_state_uuid
|
str
|
UUID for machine state signal. |
required |
part_id_uuid
|
str
|
UUID for part number / product type signal. |
required |
setup_value
|
str
|
Value indicating setup state. |
'Setup'
|
value_column_state
|
str
|
Column containing state values. |
'value_string'
|
value_column_part
|
str
|
Column containing part number values. |
'value_string'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|
DataFrame
|
The |
setup_statistics ¤
setup_statistics(
run_state_uuid: str,
*,
setup_value: str = "Setup",
value_column: str = "value_string"
) -> pd.DataFrame
Overall setup time statistics.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
run_state_uuid
|
str
|
UUID for machine state signal. |
required |
setup_value
|
str
|
Value indicating setup state. |
'Setup'
|
value_column
|
str
|
Column containing state values. |
'value_string'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame (single row) with columns: |
DataFrame
|
|
DataFrame
|
The |
DataFrame
|
Canonical twin columns: |
DataFrame
|
|
DataFrame
|
column right before it, which is removed in the next major release. |
setup_trend ¤
setup_trend(
run_state_uuid: str,
*,
setup_value: str = "Setup",
value_column: str = "value_string",
window: str = "1W"
) -> pd.DataFrame
Track setup time trend over time.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
run_state_uuid
|
str
|
UUID for machine state signal. |
required |
setup_value
|
str
|
Value indicating setup state. |
'Setup'
|
value_column
|
str
|
Column containing state values. |
'value_string'
|
window
|
str
|
Time window for aggregation (default '1W'). |
'1W'
|
Returns:
| Type | Description |
|---|---|
DataFrame
|
DataFrame with columns: |
DataFrame
|
|
DataFrame
|
|