2410_LSS100100/LSS100200_SW_03.0

Modbus RTU-Konfigurationsbefehle

Gehen Sie vor wie folgt, um die Modbus RTU-Kommunikation im Controller zu konfigurieren:

  1. Modbus RTU-Objekt erstellen:

    require('luamodbus')
    mb = luamodbus.rtu()

  2. Modbus RTU-Verbindung öffnen:

    • Legen Sie die Kommunikationsparameter fest (Baudrate, Parität, Datenbits, Stoppbits und Duplexmodus).

    • Beispiel (19200 Baudrate, gerade Parität, 8 Datenbits, 1 Stopp-Bit, Halbduplex):

      mb:open('/dev/RS485', 19200, 'E', 8, 1, 'H')
      mb:connect()

  3. Terminal-Name:

    • Der Klemmenname lautet /dev/RS485.

  4. Unterstützte Baudraten:

    • Wählen Sie eine der folgenden Baudraten:

      • 300 bit/s

      • 600 bit/s

      • 1200 bit/s

      • 2400 bit/s

      • 4800 bit/s

      • 9600 bit/s

      • 19200 bit/s

      • 38400 bit/s

      • 57600 bit/s

      • 115200 bit/s

      • 230400 bit/s

  5. Parität:

    • Stellen Sie den Paritätsmodus ein:

      • „N“ None

      • „E“ (Even)

      • „O“ (Odd)

  6. Datenbits und Stopp-Bits:

    • Datenbits: Wählen Sie aus 5, 6, 7 oder 8.

    • Stopp-Bits: Wählen Sie 1 oder 2.

    • Duplexmodus:

      • „H“ Halbduplex

      • „F“ (Vollduplex, nicht unterstützt in RS-485)

  7. Hinweise zur Baudrate:

    • Die Baudrate wirkt sich auf die Kommunikationsdistanz aus:

      • 9600 bit/s: Die maximale Entfernung für 1-15 Modbus RTU-Geräte beträgt 1200 Meter.

      • 19200 bit/s: Die maximale Entfernung beträgt 900 Meter (typisch bei Belden 3105 A-Kabeln).

        Baudraten-Einstellung

        Maximaler Kommunikationsabstand für 1 bis 15 Modbus-RTU-Geräte (normalerweise mit Belden 3105A-Kabeln)

        9600 Bit/s

        1200 m

        19200 Bit/s

        900 m

  8. Erklärung der Parität:

    • Parität prüft auf eine erfolgreiche Übertragung.

    • Ungerade Parität: Ungerade Anzahl von 1s.

    • Gerade Parität: Gerade Zahl von 1s.

    • Sowohl das Gateway als auch das Messgerät müssen übereinstimmen (ungerade, gerade oder keine).

  9. Verzögerung zwischen Rahmen:

    • Einige Geräte benötigen nach einer Antwort zusätzliche Zeit.

    • Verwenden Sie den Verzögerungsbefehl (z. B. os.sleep(1,5)).

  10. Erweiterungsadresse einstellen:

    • Stellen Sie die Slave-Adresse ein (z. B. mb:setslave(123)).

  11. Register lesen:

    • Lesen von Adresse 1000 und Speichern des Werts:

      value = mb:readregisters(1000)
  12. Modbus-Verbindung schließen:

    mb:close()
  13. Timeout-Intervalle:

    • Passen Sie die Timeout-Intervalle nach Bedarf an:

      • Byte-Timeout: 

        mb:getbytetimeout()
        mb:setbytetimeout(timeout)

      • Antwort-Timeout: 

        mb:getresponsetimeout()
        mb:setresponsetimeout(timeout)

      • Empfangs-Timeout (nur Erweiterungsmodus): 

        mb:getreceivetimeout()
        mb:setreceivetimeout(timeout)

  14. Beispielinitialisierung:

    • Modbus bei der ersten Skriptausführung initialisieren:

      if not mb then
           require('luamodbus')
           mb = luamodbus.rtu()
           mb:open('/dev/RS485', 38400, 'E', 8, 1, 'H')
           mb:connect()
      end
      mb:setslave(30)
      mb:flush()

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

War das hilfreich für Sie?