الرئيسية قاعدة المعرفة الأتمتة والتحكم التحكم بالمحركات عبر PLC: تشغيل وإيقاف وعكس وتحكم بالسرعة
الأتمتة والتحكم

التحكم بالمحركات عبر PLC: تشغيل وإيقاف وعكس وتحكم بالسرعة

دائرة التشغيل المباشر DOL

التشغيل المباشر (Direct On-Line) هو أبسط طريقة لتشغيل محرك كهربائي ثلاثي الأطوار. يُوصّل المحرك مباشرة بجهد الشبكة الكامل عبر كونتاكتور.

المكونات

  • قاطع رئيسي: حماية من القصر
  • كونتاكتور: تشغيل/إيقاف المحرك بأمر من PLC
  • حماية حرارية (Overload Relay): حماية من الحمل الزائد
  • PLC: يتحكم بملف الكونتاكتور عبر مخرج رقمي

مخطط التوصيل

L1 ──┤قاطع├──┤كونتاكتور K1├──┤حماية حرارية├── U ── محرك
L2 ──┤     ├──┤             ├──┤             ├── V ──   M
L3 ──┤     ├──┤             ├──┤             ├── W ──  3~

PLC Q0.0 ──── ملف K1 (24VDC)
PLC I0.0 ◄─── تلامس الحماية الحرارية (NC)

الكود في ST

// DOL: تشغيل مباشر مع قفل ذاتي
IF bEStop OR bThermalTrip THEN
    bContactor_K1 := FALSE;
ELSIF bStopButton THEN
    bContactor_K1 := FALSE;
ELSIF bStartButton THEN
    bContactor_K1 := TRUE;
END_IF;
// bContactor_K1 يبقى TRUE بعد تحرير زر البدء (قفل ذاتي برمجي)

القيود

تيار البدء يصل إلى 6-8 أضعاف التيار الاسمي. مناسب فقط للمحركات حتى 7.5 كيلوواط تقريباً، وإلا قد يُسبب هبوط جهد في الشبكة.

دائرة العكس مع القفل المتبادل

عكس اتجاه دوران المحرك يتم بتبديل أي طورين من أطوار التغذية. يُنفّذ بكونتاكتورين مع قفل متبادل لمنع تشغيلهما معاً (قصر كهربائي).

القفل المتبادل

القفل يتم على مستويين للأمان:

  1. قفل كهربائي: تلامس NC من كل كونتاكتور في دائرة ملف الآخر
  2. قفل برمجي: شرط في كود PLC

الكود في ST

VAR
    bForwardBtn   : BOOL;    // I0.0 - زر أمام
    bReverseBtn   : BOOL;    // I0.1 - زر خلف
    bStopBtn      : BOOL;    // I0.2 - زر إيقاف
    bK1_Forward   : BOOL;    // Q0.0 - كونتاكتور أمام
    bK2_Reverse   : BOOL;    // Q0.1 - كونتاكتور خلف
    tReverseDelay : TON;     // تأخير قبل العكس
    bWaitReverse  : BOOL;
END_VAR

// إيقاف
IF bStopBtn OR bEStop THEN
    bK1_Forward := FALSE;
    bK2_Reverse := FALSE;
    bWaitReverse := FALSE;
END_IF;

// تشغيل أمام (فقط إذا كونتاكتور الخلف مطفأ)
IF bForwardBtn AND NOT bK2_Reverse AND NOT bWaitReverse THEN
    bK1_Forward := TRUE;
END_IF;

// تشغيل خلف (فقط إذا كونتاكتور الأمام مطفأ)
IF bReverseBtn AND NOT bK1_Forward AND NOT bWaitReverse THEN
    bK2_Reverse := TRUE;
END_IF;

// تأخير 500ms عند تبديل الاتجاه لحماية المحرك
IF bReverseBtn AND bK1_Forward THEN
    bK1_Forward := FALSE;
    bWaitReverse := TRUE;
END_IF;

tReverseDelay(IN := bWaitReverse, PT := T#500ms);
IF tReverseDelay.Q THEN
    bK2_Reverse := TRUE;
    bWaitReverse := FALSE;
END_IF;

تطبيق صناعي

سير ناقل في خط تغليف يحتاج العكس أحياناً لإزالة انحشار المنتجات.

التشغيل نجمة-مثلث Star-Delta

للمحركات الأكبر (7.5-75 كيلوواط)، يُقلّل التشغيل نجمة-مثلث تيار البدء إلى ثلث قيمته.

المراحل

  1. نجمة (Star/Y): المحرك يبدأ بجهد مخفّض (57% من الجهد الاسمي) لمدة 5-10 ثوانٍ
  2. انتقال: فصل لحظي (50-100ms)
  3. مثلث (Delta/Δ): المحرك يعمل بالجهد الكامل

الكود في ST

VAR
    bK1_Main    : BOOL;    // Q0.0 - كونتاكتور رئيسي
    bK2_Star    : BOOL;    // Q0.1 - كونتاكتور نجمة
    bK3_Delta   : BOOL;    // Q0.2 - كونتاكتور مثلث
    iStartStep  : INT := 0;
    fbStarTimer : TON;     // مدة النجمة
    fbTransTimer: TON;     // مدة الانتقال
END_VAR

CASE iStartStep OF
    0: // انتظار أمر التشغيل
        bK1_Main := FALSE;
        bK2_Star := FALSE;
        bK3_Delta := FALSE;
        IF bStartButton AND NOT bEStop THEN
            iStartStep := 10;
        END_IF;

    10: // تشغيل نجمة
        bK1_Main := TRUE;
        bK2_Star := TRUE;
        bK3_Delta := FALSE;
        fbStarTimer(IN := TRUE, PT := T#7s);
        IF fbStarTimer.Q THEN
            fbStarTimer(IN := FALSE);
            iStartStep := 20;
        END_IF;

    20: // انتقال: فصل النجمة
        bK2_Star := FALSE;
        bK3_Delta := FALSE;
        fbTransTimer(IN := TRUE, PT := T#80ms);
        IF fbTransTimer.Q THEN
            fbTransTimer(IN := FALSE);
            iStartStep := 30;
        END_IF;

    30: // تشغيل مثلث
        bK1_Main := TRUE;
        bK2_Star := FALSE;
        bK3_Delta := TRUE;
        // المحرك يعمل بكامل طاقته

    99: // عطل
        bK1_Main := FALSE;
        bK2_Star := FALSE;
        bK3_Delta := FALSE;
END_CASE;

// إيقاف من أي مرحلة
IF bStopBtn OR bEStop OR bThermalTrip THEN
    iStartStep := 0;
END_IF;

التحكم بالسرعة عبر المحول الترددي VFD

المحول الترددي (Variable Frequency Drive) يتحكم بسرعة المحرك عبر تغيير تردد التغذية. هو الحل الأحدث والأكثر مرونة.

التوصيل مع PLC

PLC مخرج رقمي Q0.0 ──── مدخل VFD: تشغيل/إيقاف
PLC مخرج رقمي Q0.1 ──── مدخل VFD: اتجاه الدوران
PLC مخرج تناظري AO ──── مدخل VFD: مرجع السرعة (0-10V)
PLC مدخل رقمي I0.0 ◄─── مخرج VFD: يعمل (Running)
PLC مدخل رقمي I0.1 ◄─── مخرج VFD: عطل (Fault)
PLC مدخل تناظري AI ◄─── مخرج VFD: التردد الفعلي

الكود في ST

VAR
    bVFD_Run     : BOOL;       // Q0.0 - أمر التشغيل
    bVFD_Reverse : BOOL;       // Q0.1 - اتجاه العكس
    iVFD_SpeedRef: INT;        // AO - مرجع السرعة (0-27648)
    bVFD_Running : BOOL;       // I0.0 - حالة التشغيل
    bVFD_Fault   : BOOL;       // I0.1 - حالة العطل
    rSpeedPercent: REAL;       // السرعة المطلوبة 0-100%
END_VAR

// تحويل النسبة المئوية إلى قيمة خام للمخرج التناظري
iVFD_SpeedRef := REAL_TO_INT(rSpeedPercent / 100.0 * 27648.0);

// تحديد القيمة ضمن النطاق
IF iVFD_SpeedRef < 0 THEN iVFD_SpeedRef := 0; END_IF;
IF iVFD_SpeedRef > 27648 THEN iVFD_SpeedRef := 27648; END_IF;

// التحكم
bVFD_Run := bStartCmd AND NOT bVFD_Fault AND NOT bEStop;

حماية المحرك: الحمل الزائد والحرارة

أنظمة الحماية

الحماية الخطر الطريقة
حرارية حمل زائد مستمر مرحّل حراري (Overload Relay)
قصر تيار عالٍ مفاجئ قاطع دائرة (Circuit Breaker)
عدم توازن الأطوار فقدان طور مرحّل حماية الأطوار
حرارة اللفات ارتفاع حرارة المحرك مستشعر PTC/PT100 في اللفات

مراقبة تيار المحرك في ST

VAR
    rMotorCurrent  : REAL;     // التيار الفعلي (أمبير)
    rNominalCurrent: REAL := 15.0;  // التيار الاسمي
    fbOverloadTon  : TON;
    bOverload      : BOOL;
END_VAR

// إنذار عند تجاوز 110% لمدة 10 ثوانٍ
fbOverloadTon(
    IN := rMotorCurrent > (rNominalCurrent * 1.1),
    PT := T#10s
);
bOverload := fbOverloadTon.Q;

IF bOverload THEN
    bMotorRun := FALSE;
    bOverloadAlarm := TRUE;
END_IF;

مثال عملي: تشغيل سير ناقل بسرعتين

وصف النظام

سير ناقل في خط تعبئة يعمل بسرعتين:

  • سرعة عالية (80%): نقل المنتجات بين المحطات
  • سرعة منخفضة (30%): عند اقتراب المنتج من محطة التعبئة
PROGRAM ConveyorTwoSpeed
VAR
    // مداخل
    bStartBtn      : BOOL;        // I0.0
    bStopBtn       : BOOL;        // I0.1
    bEStop         : BOOL;        // I0.2
    bSlowZoneSensor: BOOL;        // I0.3 - حسّاس منطقة التباطؤ
    bVFD_Fault     : BOOL;        // I0.4 - عطل محول التردد
    bVFD_Running   : BOOL;        // I0.5

    // مخارج
    bVFD_Enable    : BOOL;        // Q0.0
    iSpeedRef      : INT;         // AO - مرجع السرعة

    // داخلية
    rTargetSpeed   : REAL;
    rCurrentSpeed  : REAL := 0.0;
    rRampRate      : REAL := 2.0; // %/دورة مسح
    bRunCommand    : BOOL;
END_VAR

// القفل الذاتي
IF bEStop OR bVFD_Fault THEN
    bRunCommand := FALSE;
ELSIF bStopBtn THEN
    bRunCommand := FALSE;
ELSIF bStartBtn THEN
    bRunCommand := TRUE;
END_IF;

// تحديد السرعة المطلوبة
IF bRunCommand THEN
    IF bSlowZoneSensor THEN
        rTargetSpeed := 30.0;     // منطقة تباطؤ
    ELSE
        rTargetSpeed := 80.0;     // سرعة عادية
    END_IF;
ELSE
    rTargetSpeed := 0.0;
END_IF;

// تسارع/تباطؤ تدريجي (Ramp)
IF rCurrentSpeed < rTargetSpeed THEN
    rCurrentSpeed := rCurrentSpeed + rRampRate;
    IF rCurrentSpeed > rTargetSpeed THEN
        rCurrentSpeed := rTargetSpeed;
    END_IF;
ELSIF rCurrentSpeed > rTargetSpeed THEN
    rCurrentSpeed := rCurrentSpeed - rRampRate;
    IF rCurrentSpeed < rTargetSpeed THEN
        rCurrentSpeed := rTargetSpeed;
    END_IF;
END_IF;

// المخارج
bVFD_Enable := bRunCommand;
iSpeedRef := REAL_TO_INT(rCurrentSpeed / 100.0 * 27648.0);

الخلاصة

التحكم بالمحركات يتدرّج من التشغيل المباشر البسيط إلى المحولات الترددية المتقدمة. القفل المتبادل في دوائر العكس والحماية الحرارية إلزاميان في أي تطبيق صناعي. المحولات الترددية أصبحت الخيار المفضّل لمرونتها وتوفيرها للطاقة. في الدرس القادم سنتعلم بروتوكولات الاتصال الصناعية لربط PLC بالأجهزة الأخرى.

motor-control VFD contactor interlock start-stop DOL التحكم بالمحركات المحول الترددي الكونتاكتور القفل المتبادل التشغيل العكس