Az Ön adatainak védelme fontos számunkra! Az ANXQ Vision Technology Kft. sütiket használ a weboldal működőképességének biztosításához és a beleegyezésével weboldalunk tartalmának személyre szabásához is. Az "Elfogadom" gombra kattintva elfogadja a sütik használatát és a weboldal viselkedésével kapcsolatos adatok átadását és a célzott hirdetések megjelenítését.

A sütik feldolgozásával kapcsolatban még több információt talál az Adatkezelési tájékoztatónkban.

ESP32 PLC 14 Powermeter modul használata

ESP32 PLC 14 Powermeter modul használata

Valós idejű elektromos monitoring háromfázisú rendszerekhez?

Az ESP32 PLC 14 és a Powermeter modul kombinációjával ez többé nem álom! Mérjen feszültséget, áramot, teljesítménytényezőt és még sok mást, mindezt a PLC-n keresztül. Fedezze fel, hogyan automatizálhatja energiafelhasználását és előzheti meg a hibákat. Készen áll a hatékony ipari monitoringra? Olvasson tovább!

Bevezetés

Az ESP32 PLC 14 a Powermeter bővíthető modullal valós idejű monitoringot biztosít egy háromfázisú rendszer elektromos paramétereinek mérésére. A beállítás három fázisvezetéket (L1, L2 és L3) és egy nullavezetéket (N) tartalmaz, így alkalmas háromfázisú elektromos terhelések monitorozására és vezérlésére.

A Powermeter kulcsszerepet játszik a kulcsfontosságú paraméterek, például a feszültség, az áram, a teljesítménytényező, az energiafogyasztás és egyéb elektromos mutatók mérésében mindhárom fázisvezetéken a nullához viszonyítva. Ezeket a paramétereket a PLC-n keresztül lehet monitorozni, ami lehetővé teszi a hatékony automatizálást, a hibák észlelését és az energiafelhasználás kezelését a rendszerben.

Ez az integráció lehetővé teszi a valós idejű adatgyűjtést és -elemzést, így a beállítás ideális ipari automatizálási, energiaelosztási monitoring vagy bármely olyan környezetben történő alkalmazásokhoz, ahol az energiafelhasználás és a rendszerteljesítmény pontos mérése kritikus fontosságú.

Kommunikációs protokoll

A Powermeter modul az MSP430F6779IPEU SoC-n alapul. Ez a chip felelős az összes intézkedés leolvasásáért és az utána leolvasandó regisztereinek frissítéséért. Ezek leolvasásához 2 kommunikációs protokollt lehet használni: I2C vagy RS-232. Ezek használatához módosítsa a kódot a kívánt protokolltól függően:

  • I2C:

PowerMeterCommunication com = PLC;

selectCom(com);

  • RS-232:

PowerMeterCommunication com = RS232;

selectCom(com);

Az üzemmódtól függően az elérhető kommunikáció az I2C vagy az RS-232.

Használható a belső ESP32 CPU I2C busz, vagy akár egy külső is a PLC oldalán található I2C pinek segítségével. Az RS-232-höz használja az ESP32 PLC 14 tetején található DB9 csatlakozót.

Az Industrial Shields kifejlesztett egy I2C könyvtárat a Powermeter modullal való egyszerű kommunikációhoz, de nem minden elérhető eszköz van benne. Az Energy Measurement Design Center (EMDC) kommunikációs protokolljának teljes megértéséhez, amely a chip által használt protokoll, olvassa el a Kommunikációs Protokoll Specifikációját.

Szoftveres megközelítés

A Powermeter modul használatához le kell töltenie a következő fájlokat és a projekt kódjával megegyező könyvtárba kell mentenie őket, vagy az Arduino/libraries/Powermeter könyvtárba.

PowerMeter.h

PowerMeter.cpp

A példakód a következő:

#include "PowerMeter.h"

PowerMeterCommunication com = PLC;

PowerMeterChannel channelA = CHA;
PowerMeterChannel channelB = CHB;
PowerMeterChannel channelC = CHC;

void setup() {
    // Initialize serial communication at 115200 baud rate
    Serial.begin(115200);
    Wire.begin();

    // Start communication with the Power Meter (assuming PLC is the mode)
    delay(1000);

    for (int i = 0; i < 27; i++) {
        Serial.println("A");
        delay(10);
    }
    
    delay(1000);
    Serial.println("33[28A");

    selectCom(com);
}

void loop() {

    // VRMS results
    Serial.print("VRMS A: ");
    Serial.print((float)get_VRMS(channelA) / 1000.0, 3);
    Serial.println(" V");

    Serial.print("VRMS B: ");
    Serial.print((float)get_VRMS(channelB) / 1000.0, 3);
    Serial.println(" V");

    Serial.print("VRMS C: ");
    Serial.print((float)get_VRMS(channelC) / 1000.0, 3);
    Serial.println(" V");

    // IRMS results
    Serial.print("IRMS A: ");
    Serial.print((float)get_IRMS(channelA) / 1000000.0, 3);
    Serial.println(" A");

    Serial.print("IRMS B: ");
    Serial.print((float)get_IRMS(channelB) / 1000000.0, 3);
    Serial.println(" A");

    Serial.print("IRMS C: ");
    Serial.print((float)get_IRMS(channelC) / 1000000.0, 3);
    Serial.println(" A");

    // VPEAK results
    Serial.print("VPEAK A: ");
    Serial.print((float)get_VPEAK(channelA) / 1000.0, 3);
    Serial.println(" V");

    Serial.print("VPEAK B: ");
    Serial.print((float)get_VPEAK(channelB) / 1000.0, 3);
    Serial.println(" V");

    Serial.print("VPEAK C: ");
    Serial.print((float)get_VPEAK(channelC) / 1000.0, 3);
    Serial.println(" V");

    // IPEAK results
    Serial.print("IPEAK A: ");
    Serial.print((float)get_IPEAK(channelA) / 1000000.0, 3);
    Serial.println(" A");

    Serial.print("IPEAK B: ");
    Serial.print((float)get_IPEAK(channelB) / 1000000.0, 3);
    Serial.println(" A");

    Serial.print("IPEAK C: ");
    Serial.print((float)get_IPEAK(channelC) / 1000000.0, 3);
    Serial.println(" A");

    // Power factor results
    Serial.print("Power factor A: ");
    Serial.print((float)get_PowerFactor(channelA) / 10000.0, 3);
    Serial.println();

    Serial.print("Power factor B: ");
    Serial.print((float)get_PowerFactor(channelB) / 10000.0, 3);
    Serial.println();

    Serial.print("Power factor C: ");
    Serial.print((float)get_PowerFactor(channelC) / 10000.0, 3);
    Serial.println();

    // Frequency results
    Serial.print("Frequency A: ");
    Serial.print((float)get_Frequency(channelA) / 100.0, 3);
    Serial.println(" Hz");

    Serial.print("Frequency B: ");
    Serial.print((float)get_Frequency(channelB) / 100.0, 3);
    Serial.println(" Hz");

    Serial.print("Frequency C: ");
    Serial.print((float)get_Frequency(channelC) / 100.0, 3);
    Serial.println(" Hz");

    // Active power results
    Serial.print("Active power A: ");
    Serial.print((float)get_ActivePower(channelA) / 1000000.0, 3);
    Serial.println(" W");

    Serial.print("Active power B: ");
    Serial.print((float)get_ActivePower(channelB) / 1000000.0, 3);
    Serial.println(" W");

    Serial.print("Active power C: ");
    Serial.print((float)get_ActivePower(channelC) / 1000000.0, 3);
    Serial.println(" W");

    // Reactive power results
    Serial.print("Reactive power A: ");
    Serial.print((float)get_ReactivePower(channelA) / 1000000.0, 3);
    Serial.println(" VAr");

    Serial.print("Reactive power B: ");
    Serial.print((float)get_ReactivePower(channelB) / 1000000.0, 3);
    Serial.println(" VAr");

    Serial.print("Reactive power C: ");
    Serial.print((float)get_ReactivePower(channelC) / 1000000.0, 3);
    Serial.println(" VAr");

    // Apparent power results
    Serial.print("Apparent power A: ");
    Serial.print((float)get_ApparentPower(channelA) / 1000000.0, 3);
    Serial.println(" VA");

    Serial.print("Apparent power B: ");
    Serial.print((float)get_ApparentPower(channelB) / 1000000.0, 3);
    Serial.println(" VA");

    Serial.print("Apparent power C: ");
    Serial.print((float)get_ApparentPower(channelC) / 1000000.0, 3);
    Serial.println(" VA");

    delay(10);

    Serial.println("33[28A");

}

A kód a következőket teszi:

  • Elindítja a soros portot és az I2C-t.

  • Összesen 27 "A" -t nyomtatunk, majd a kurzort 28 sorral feljebb mozgatjuk. ez lehetővé teszi, hogy a már kinyomtatott karakterek tetejére írjunk, és ez nagyon hasznos lesz az összes olvasott adat nyomtatásakor.

  • Az inicializálás után elkezdjük olvasni az I2C buszról a paramétereket az összes csatornáról (A, B, C), amelyek a PLC 3 élő sora. Miután mindent kinyomtattunk, ismét visszavisszük a kurzort a tetejére, hogy újra kinyomtassuk. ESP32 PLC 14 és Powermeter

ESP32 PLC 14 és Powermeter

 

 

 

 

 

 

 

 

 

 

 

Ahogy a fenti képeken látható, a bal oldali képen semmi sincs csatlakoztatva a fázisvezetékekhez, így minden releváns érték 0. Amikor az A csatorna csatlakoztatva van (jobb oldali kép), jól látható, hogy a VRMS A 243,071 V-ra van állítva, és az A csatornára vonatkozó összes paraméternek megvan a megfelelő értéke.

Tartalomhoz tartozó címkék: Industrial Shields ipari automatizálás

Kapcsolódó tartalmak