Design specification · v0.1 Draft · 2026-10-28

ระบบ AUTO ควบคุม Air Compressor

สลับเครื่องและลดพลังงาน สำหรับ 2 Fixed speed + 2 VSD (Atlas Copco Elektronikon Mk5) ผ่าน Delta AH500

ระบบ
SCADA → Delta AH500 → Atlas Copco Mk5 Gateway → Elektronikon Mk5 ×4
สถานะ
ร่างเพื่อตรวจหน้างาน หัวข้อที่มีป้าย ต้องยืนยัน ต้องปิดให้ครบก่อน commissioning

1. หลักการและสถาปัตยกรรม

1.1 หลักการ

อ้างอิง Mk5 Gateway Modbus User Guide (doc 2946 2070 00, Ed. 01, 2017). Fixed speed Mk5: "It is not possible to overwrite the local Pressure Band (Un) Load levels" แต่สลับ Active Band (PB #01 / PB #02) ได้ "both in local as LAN control mode". VSD Mk5: overwrite setpoint หรือสั่ง speed ไม่ได้ แต่สลับ active set point ได้ทั้ง Local และ LAN. คำสั่งอื่น เช่น start/stop รับเฉพาะ LAN control

1.2 สถาปัตยกรรม

SCADADelta AH500Mk5 Gateway Fixed AFixed BVSD AVSD B monitor / AUTOlogic AUTOAtlas Copco Elektronikon Mk5Elektronikon Mk5Elektronikon Mk5Elektronikon Mk5 EthernetModbus TCP COM · RS485Modbus RTUAH500 = master CAN (Atlas network)
รูปที่ 1: SCADA ไม่ต่อเข้าเครื่องตรง AH500 เป็น Modbus master ตัวเดียวบน RS485 (จำนวน gateway และ topology CAN ต้องยืนยัน)
ชั้นหน้าที่ห้ามทำ
SCADAMonitor, เปิด/ปิด AUTO, เลือก lead เริ่มต้น, maintenance lock, alarm, trendเขียนเข้า gateway หรือเครื่องตรง
Delta AH500Availability, role manager, เขียนเลือก PB/SP เมื่อค่าเปลี่ยน, read-back, poll สถานะstart/stop, load/unload, เขียนค่า pressure
Mk5 Gatewayแปลง Modbus RTU ⇄ CANต่อพอร์ต Ethernet ของ gateway เข้า network โรงงาน (ใช้กับ PC tool ของ Atlas เท่านั้น)
Elektronikon Mk5คุม pressure, load/unload, automatic stop/restart, protection ทั้งหมด—

2. เงื่อนไขก่อนเริ่ม

ทุกข้อในตารางนี้ต้องปิดก่อนเขียนโปรแกรมจริง

#รายการวิธียืนยันผู้รับผิดชอบ
1Gateway เป็น Atlas Copco Mk5 Gateway (Modbus RTU)ป้ายและ part no. บนตัว gateway, จำนวน gateway ต่อ 4 เครื่องหน้างาน
2Address mapping ของทั้ง 4 เครื่องช่าง Atlas generate ด้วย PC tool Speci5 ต้องมี register ตามตาราง 6.1 รวม read-back ของ active PB/SP และบิต automatic stop / manual stoppedAtlas Copco
3RS485: baud, parity, station ของ gatewayจาก config ของ gateway หรือ mappingAtlas / หน้างาน
4ค่า PB1/PB2 (Fixed) และ SP1/SP2 (VSD) ตาม §3ช่าง Atlas ตั้งในเครื่องร่วมกับลูกค้าAtlas + ลูกค้า
5FAD ของ Fixed และ FAD min/max ของ VSDDatasheet ของเครื่องจริง แล้วเช็ค control gap §3.3ทีมออกแบบ
6แรงดันต่ำสุดที่ process ยอมรับได้ (Pprocess,min)จากลูกค้าลูกค้า
7พฤติกรรม active band เมื่อ comm หลุด และหลัง controller ไฟดับทดสอบใน SAT (§7) ต้องยืนยันหน้างาน
8COM port ของ AH500 และโปรแกรมเดิมUpload โปรเจกต์ ISPSoft (read-only) ดูว่ามี MODRW เดิมไปที่ gateway หรือไม่ทีม PLC

3. Pressure scheme

3.1 บทบาท

Roleเครื่องBand ที่ใช้พฤติกรรม
TRIMVSD leadSP1 = PV1คุมแรงดันระบบ เดินตัวแรกเมื่อ demand ต่ำ
BASEFixed leadPB1 = PFL1 / PFU1Load เมื่อ VSD ผลิตไม่พอ แล้วค้าง loaded เต็มโหลด
LAGFixed lagPB2 = PFL2 / PFU2Load เมื่อ TRIM + BASE ไม่พอ หรือ BASE trip
RESERVEVSD lagSP2 = PV2เข้าเป็นตัวสุดท้าย หรือเมื่อ TRIM trip

3.2 ลำดับแรงดัน

Pprocess,min < PV2 < PFL2 < PFL1 < PV1 < PFU2 < PFU1 ≤ Pmax
Pmax PFU1 PFU2 PV1 PFL1 PFL2 PV2 Pprocess,min BASELAGTRIMRESERVE Fixed lead · PB1Fixed lag · PB2VSD lead · SP1VSD lag · SP2
รูปที่ 2: แท่งคือ load/unload band ของ Fixed จุดคือ setpoint ของ VSD (ไม่ตามสเกล ค่าจริงกำหนดตอน commissioning)

3.3 Control gap

FADVSD,max − FADVSD,min ≥ FADFixed

ถ้าไม่ผ่าน จะมีช่วง demand ที่ VSD เดินคนเดียวไม่พอ แต่ Fixed + VSD ที่รอบต่ำสุดก็เกิน ทำให้ BASE load/unload ถี่ในช่วงนั้น ต้องยอมรับ หรือทบทวนบทบาทจาก datasheet จริง

ข้อจำกัดด้านพลังงาน: band แบบเหลื่อม (cascade) ทำให้แรงดันเฉลี่ยของระบบสูงกว่าการคุมแบบ central controller ถ้าลูกค้าต้องการประหยัดพลังงานสูงสุด ให้พิจารณา Atlas Copco Optimizer 4.0 / ES ซึ่งคู่มือ gateway เองแนะนำสำหรับ "full external control"

4. Logic AUTO

4.1 Mode

Modeพฤติกรรม
AUTO OFFPLC ไม่เขียนอะไร เครื่องใช้ band ที่ active อยู่ (operator เลือกที่หน้าจอได้)
OFF → ONPLC เขียน desired band ให้ทุกเครื่องที่ CommOK (sync ครั้งเดียว)
AUTO ONPLC เป็นเจ้าของการเลือก band ตาม §4.3–4.4
ON → OFFไม่เขียนอะไร band ค้างตามล่าสุด

4.2 Availability (ต่อเครื่อง)

Avail = CommOK ∧ ¬Shutdown ∧ ¬ManualStopped ∧ ¬MaintLock

4.3 Role manager (แยก 2 คู่: Fixed A/B และ VSD A/B)

  1. Failover: lead ไม่ available และ lag available ให้สลับทันทีหลัง debounce (ไม่รอ Tmin,switch)
  2. Rotation: สลับเมื่อ Hours(lead) − Hours(lag) ≥ Hdiff, ทั้งคู่ available, อยู่ในช่วงเวลาที่อนุญาต (เช่น ช่วง demand ต่ำ) และห่างจากการสลับครั้งก่อน ≥ Tmin,switch
  3. ไม่สลับกลับอัตโนมัติ: เครื่องที่กลับมา available หลัง failover เป็น lag จนถึงรอบ rotation ถัดไป
  4. ทั้งคู่ไม่ available: คงบทบาทเดิม ไม่เขียน และแจ้ง alarm

ใช้ running hours เป็นเกณฑ์ ค่า lead ที่เลือกเก็บแบบ retentive (คงอยู่หลัง PLC ไฟดับ)

4.4 Band writer (ต่อเครื่อง)

เครื่องLeadLag
FixedPB1PB2
VSDSP1SP2

4.5 Modbus scheduler (COM port เดียว)

4.6 โครงโปรแกรม (pseudo-ST ปรับ syntax ตาม ISPSoft)

(* ===== Role manager: 1 instance ต่อคู่ (Fixed, VSD) ===== *)
(* in : AutoOn, AvailA, AvailB, HoursA, HoursB, RotateEn, InWindow  *)
(* retain : LeadIsA                                                 *)
MinGap(IN := NOT SwapLast, PT := T_MIN_SWITCH);
LeadAvail := SEL(LeadIsA, AvailB, AvailA);
LagAvail  := SEL(LeadIsA, AvailA, AvailB);
LeadHrs   := SEL(LeadIsA, HoursB, HoursA);
LagHrs    := SEL(LeadIsA, HoursA, HoursB);

Swap := FALSE;
IF AutoOn AND LagAvail THEN
    IF NOT LeadAvail THEN
        Swap := TRUE;                                 (* failover *)
    ELSIF RotateEn AND InWindow AND MinGap.Q
          AND (LeadHrs - LagHrs >= H_DIFF) THEN
        Swap := TRUE;                                 (* rotation *)
    END_IF;
END_IF;
IF Swap THEN LeadIsA := NOT LeadIsA; END_IF;
SwapLast := Swap;

(* ===== Band writer: 1 instance ต่อเครื่อง ===== *)
(* Desired: 1 = PB1/SP1 (lead), 2 = PB2/SP2 (lag)               *)
Desired  := SEL(IsLead, 2, 1);
Mismatch := AutoOn AND CommOK AND (Readback <> Desired);
Verify(IN := Mismatch AND Written, PT := T_VERIFY);

IF Resync THEN Inhibit := FALSE; AlmMismatch := FALSE; Written := FALSE; END_IF;
IF NOT Mismatch THEN Written := FALSE; END_IF;
IF Mismatch AND NOT Written AND NOT Inhibit THEN
    WriteReq := TRUE;          (* scheduler ส่ง FC06 แล้วเคลียร์ *)
    Written  := TRUE;
END_IF;
IF Verify.Q THEN Inhibit := TRUE; AlmMismatch := TRUE; END_IF;

5. เหตุผิดปกติและ Security

5.1 พฤติกรรมเมื่อเกิดเหตุ

เหตุการณ์เครื่องPLCSCADA
SCADA ล่มเดินตาม band ล่าสุดAUTO ทำงานต่อ—
AH500 STOP / ไฟดับเดินตาม band ล่าสุด ต้องยืนยัน—Comm alarm
RS485 หรือ gateway หลุดเดินตาม band ล่าสุด ต้องยืนยันทุกเครื่อง Avail = 0 จึงไม่สลับบทบาท (freeze) เมื่อกลับมาให้ sync ตาม §4.4Comm alarm
Lead trip (shutdown)แรงดันตก แล้วเครื่องที่ band ต่ำกว่า load เองทันทีFailover หลัง TfailAlarm
Manual stop (maintenance)หยุดตามคำสั่งที่หน้าเครื่องAvail = 0 แล้ว failoverแสดงสถานะ
Controller ไฟดับแล้วกลับมาActive band อาจกลับเป็นค่า default ต้องยืนยันRead-back ไม่ตรง จึงเขียนกลับหนึ่งครั้ง—
Operator เปลี่ยน band ที่หน้าจอขณะ AUTOใช้ band ใหม่เขียนกลับหนึ่งครั้ง ถ้ายังไม่ตรงให้ alarm และหยุดเขียนAlarm

5.2 Security

6. Tag list และ Parameters

Register address ทั้งหมดมาจาก Speci5 mapping ของแต่ละเครื่อง ต้องยืนยัน

6.1 PLC ⇄ Gateway (ต่อเครื่อง)

Tagทิศทางใช้ทำอะไร
Running / LoadedReadสถานะ และใช้คำนวณ load cycles
AutoStopReadดับรอแรงดัน นับเป็น available
ManualStoppedReadAvailability
Shutdown / WarningReadAvailability และ alarm
ControlModeReadต้องเป็น Local ถ้าไม่ใช่ให้ขึ้น alarm
ActiveBand / ActiveSPReadRead-back ของ band writer
OutletPressureReadTrend และ alarm
RunningHours / LoadedHoursReadRotation
MotorSpeed (VSD)ReadTrend และดูว่า TRIM เดินเต็มรอบหรือไม่
BandSelect / SPSelectWrite (FC06)1 = PB1/SP1, 2 = PB2/SP2

6.2 SCADA ⇄ PLC

SCADA → PLC (command block)PLC → SCADA (status block)
AUTO_Enable
FixedLeadSel, VSDLeadSel (A/B)
RotateEnable, H_diff, RotateWindow
MaintLock[4]
Resync (pulse), AlarmAck
AUTO_Active, Role[4], Avail[4]
DesiredBand[4], ActiveBand[4], BandMismatch[4]
CommOK[4], ControlModeAlarm[4]
LastSwitchTime, LastSwitchReason (failover / rotation / manual)
PLC heartbeat

6.3 Parameters

Parameterความหมายค่า / ที่มา
PFL1,FU1,FL2,FU2Load/unload ของ PB1, PB2 (Fixed)ตั้งในเครื่องโดย Atlas + ลูกค้า ตาม §3.2
PV1, PV2SP1, SP2 (VSD)ตั้งในเครื่องโดย Atlas + ลูกค้า ตาม §3.2
Hdiffส่วนต่างชั่วโมงที่ทำให้สลับตามนโยบาย maintenance ของลูกค้า
RotateWindowช่วงเวลาที่อนุญาตให้สลับช่วง demand ต่ำ จากลูกค้า
TcommTimeout ของ CommOKเสนอ 3 × รอบ poll ของ gateway
TfailDebounce เมื่อ Avail → 0เสนอ 3 × รอบ poll
TrecoverDebounce เมื่อ Avail → 1เสนอระดับนาที ปรับตอน commissioning
Tverifyรอ read-back หลังเขียนเสนอ 3 × รอบ poll
Tmin,switchระยะห่างขั้นต่ำระหว่างการ rotationเสนอระดับชั่วโมง ปรับตอน commissioning

7. Commissioning / SAT และ Open items

7.1 Test list

#Testวิธีผลที่ต้องได้
1Mappingอ่านค่าทุก tag เทียบกับหน้าจอแต่ละเครื่องตรงทุกค่า
2สลับ band ใน Localเขียน PB/SP ทีละเครื่องหน้าจอแสดง active band ตาม และ read-back ตรง
3MismatchOperator เปลี่ยน band ที่หน้าจอขณะ AUTOPLC เขียนกลับหนึ่งครั้ง ถ้าบังคับซ้ำจะขึ้น alarm และหยุดเขียน
4Stagingเพิ่ม/ลด demand จริงลำดับ TRIM → BASE → LAG → RESERVE และ BASE ไม่ cycle ถี่ (นับ load cycles/ชม.)
5FailoverManual stop เครื่อง lead แต่ละคู่Lag ถูก promote หลัง Tfail และแรงดัน > Pprocess,min
6Rotationลด Hdiff ชั่วคราวPromote ก่อน demote และไม่มีแรงดันตก
7Comm lossถอด RS485 ที่ PLCเครื่องคง band, alarm ขึ้น, ต่อกลับแล้ว sync
8PLC STOPสั่ง AH500 เป็น STOPเครื่องคง band
9Controller power cycleปิด/เปิดไฟ controller ทีละเครื่อง โดยมีลูกค้าอยู่ด้วยบันทึก active band หลัง restart และ PLC sync กลับ
10SCADA offปิด SCADAAUTO ทำงานต่อ

7.2 Open items ต้องยืนยัน

  1. รุ่นของ gateway และ topology CAN (1 gateway ต่อ 4 เครื่อง หรือแยก)
  2. Speci5 mapping ต้องมี read-back ของ active PB/SP และบิต AutoStop / ManualStopped แยกกัน
  3. Active band หลัง comm loss และหลัง controller power cycle
  4. Syntax ของ MODRW และการเรียงคำสั่งบน COM port เดียวของ AH500
  5. ฟังก์ชัน IP filter ของ AH500 ตาม firmware
  6. FAD ของแต่ละเครื่องสำหรับเช็ค control gap

7.3 เอกสารอ้างอิง