Production Run

🧠 แนวคิด SCW (Stop → Call → Wait)

Phaseคำอธิบายเหตุการณ์สำคัญที่ต้องบันทึก
Stopเครื่องหยุดเพราะปัญหาเวลาเริ่มหยุด, เหตุผล, ผู้แจ้ง
CallOperator กดเรียกช่างเวลาเรียก, คนที่ถูกเรียก
Waitระยะเวลารอช่าง, จนช่างมาถึงและแก้ปัญหาเสร็จเวลามาถึง, เวลาซ่อมเสร็จ, หมายเหตุ

📦 สิ่งที่ต้องบันทึก

✅ ตาราง: scw_logs (ตัวอย่างการออกแบบ)

CREATE TABLE scw_logs ( id SERIAL PRIMARY KEY, machine_code VARCHAR(50), -- เครื่องที่เกิด SCW operator_id VARCHAR(50), -- คนที่กด Call stop_reason TEXT, -- เหตุผลหยุด เช่น 'sensor error' stop_time TIMESTAMP, -- เวลาเครื่องหยุด call_time TIMESTAMP, -- เวลากด Call response_person_id VARCHAR(50), -- คนที่มาซ่อม arrive_time TIMESTAMP, -- เวลามาถึง resolve_time TIMESTAMP, -- เวลาซ่อมเสร็จ remark TEXT, -- หมายเหตุเพิ่มเติม created_at TIMESTAMP DEFAULT NOW() );

🧩 รูปแบบการเก็บข้อมูล

⏱️ ตัวอย่าง Flow:

  1. เครื่องหยุด (Stop) → เก็บ stop_time + reason

  2. Operator กด Call → บันทึก call_time, operator_id

  3. Technician รับเคสและมาถึง → บันทึก arrive_time, response_person_id

  4. แก้ไขเสร็จ → บันทึก resolve_time, remark

🖥️ ฝั่ง UI ควรมีปุ่ม:

ปุ่มเก็บอะไร
📍 "แจ้งซ่อม (Call)"ส่งข้อมูล machine_id, stop_reason, operator_id, เวลา call_time
✅ "ถึงที่แล้ว (Arrive)"response_person_id, เวลา arrive_time
🛠️ "แก้ไขเสร็จ (Resolve)"เวลา resolve_time, หมายเหตุ

🔌 การเชื่อมต่อ Ignition (UI → Database)

✅ 1. ใช้ Perspective Button + script:


# Button: "แจ้งซ่อม" machine = self.view.params.machine_code operator = self.session.props.auth.user.username reason = self.getSibling("TextArea").props.text call_time = system.date.now() system.db.runPrepUpdate( "INSERT INTO scw_logs (machine_code, operator_id, stop_reason, stop_time, call_time) VALUES (?, ?, ?, ?, ?)", [machine, operator, reason, call_time, call_time], database="mssql_db" )

✅ 2. ปรับข้อมูลเมื่อมีการ "มาถึง" หรือ "แก้ไขเสร็จ":

# Button: "ถึงที่แล้ว" system.db.runPrepUpdate( "UPDATE scw_logs SET arrive_time = ? WHERE id = ?", [system.date.now(), selected_scw_id], database="mssql_db" ) # Button: "แก้ไขเสร็จ" system.db.runPrepUpdate( "UPDATE scw_logs SET resolve_time = ?, remark = ? WHERE id = ?", [system.date.now(), self.getSibling("Remark").props.text, selected_scw_id], database="mssql_db" )

📊 วิเคราะห์ข้อมูล SCW ได้อย่างไร?

ตัวชี้วัด (KPI)สูตรการคำนวณ
🔴 MTTR (Mean Time to Repair)resolve_time - stop_time
🕒 Response Timearrive_time - call_time
🟡 Wait Timeresolve_time - call_time
📈 Pareto Stop ReasonGROUP BY stop_reason ORDER BY COUNT DESC