Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 6 von 6

Thema: Modbus TCP & S7-1200

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich stehe mal wieder vor einer Herausforderung…


    Ich möchte gerne mittels der S7-1200 (Master) die Modbus-Adresse 13640 eines EKS-Kartenlesegerätes auslesen. Dies dient der Benutzeranmeldung am Display.

    Soweit ich mich eingelesen habe, gibt es für Modbus TCP den fertigen Baustein MB_Client.


    Unbenannt.JPG



    Dazu nun folgende Fragen:

    1)
    Wenn ich als Master vom Slave nur lesen möchte, dann muss doch ansonsten kein weiterer Baustein (wie z.B. MB_Server) programmiert werden, oder?

    2)
    In der Beschreibung steht:

    Input-Wörter lesen 1 bis 125 WORD pro Aufruf

    MB_DATA_ADDR --> 30001 bis 39999

    Kann ich da jetzt an MB_DATA_ADDR einfach 30001 schreiben?


    3)
    Lt. Beschreibung steht an MB_DATA_LEN die Datenlänge; also Anzahl der Bits oder Wörter für den Datenzugriff.

    Je nachdem welcher User sich anmeldet, steht in der Modbus-Adresse 13640 (WORD) z.B. eine 1 für Administrator oder eine 3 für Anlagenbediener, usw.

    Demnach wird ja 1 Datenwort (MB_DATA_LEN = 1 ?) aus dem Eingangsregister gelesen, oder?


    Vielen Dank für die Hilfestellung!
    Geändert von spirit (05.06.2014 um 10:51 Uhr)
    LG
    spirit
    Zitieren Zitieren Modbus TCP & S7-1200  

  2. #2
    Registriert seit
    27.06.2013
    Beiträge
    3
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    1. Richtig nur den Client verwenden - aber es ist wichtig die Optimierung im dazugehörigen Datenbaustein zu deaktivieren.
    -> Das ist deshalb wichtig weil du im folgendem mit Pointern arbeitest.

    2. Das stimmt auch schon. Du gibst nur die Startadresse an...

    3. ... und hier die Anzahl der Wörter die ausgelesen werden.

    und hier mal ein SCL Beispiel von mir:

    // Modbusclient aufrufen und Messwerte einlesen
    #MB_CLIENT_Instance(REQ:=TRUE,
    DISCONNECT:=FALSE,
    MB_MODE:=0,
    MB_DATA_ADDR:=400201,
    MB_DATA_LEN:=80,
    STATUS=>#Status,
    MB_DATA_PTR:= P#DB6.DBX14.0 REAL 40,
    CONNECT:="Daten_Turbine".Verbindung);

  3. #3
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von blumentopf23 Beitrag anzeigen

    und hier mal ein SCL Beispiel von mir:

    // Modbusclient aufrufen und Messwerte einlesen
    #MB_CLIENT_Instance(REQ:=TRUE,
    DISCONNECT:=FALSE,
    MB_MODE:=0,
    MB_DATA_ADDR:=400201,
    MB_DATA_LEN:=80,
    STATUS=>#Status,
    MB_DATA_PTR:= P#DB6.DBX14.0 REAL 40,
    CONNECT:="Daten_Turbine".Verbindung);
    Vielen Dank blumentopf23,

    warum schreibst du da noch eine zusätzliche 4 vor die Modbus-Adresse?

    Und wenn man mit Pointern arbeiten muss - wird da im DB dann ein Array angelegt?
    LG
    spirit

  4. #4
    Registriert seit
    27.06.2013
    Beiträge
    3
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Bei der 4 handelt es sich um die Adresse laut Handbuch. Die benötigst du also nicht.
    Wenn du den Datenbaustein angelegt hast müsstest du zwei Sachen anlegen.

    1. Einen Eintrag für die Verbindung vom Typ TCON_IP_v4 (ist wahrscheinlich nicht in der Auswahlliste - also einfach eintippen)2. Das Arry mit dem entsprechenden Typ für die einzulesenden Daten. Muss natürlich lang genug sein!!


    Hänge noch ein Bild vom DB an...

    Datenbaustein.jpg
    Geändert von blumentopf23 (12.06.2014 um 06:16 Uhr)

  5. Folgender Benutzer sagt Danke zu blumentopf23 für den nützlichen Beitrag:

    Turi (23.02.2017)

  6. #5
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Aja ok, danke blumentopf23 ...
    LG
    spirit

  7. #6
    Registriert seit
    29.09.2015
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ihr Zwei,
    Ich hab eine ähnliche Aufgabe und frage mich, wie ihr auf eine ModBus-Adresse 13640 zugreifen konntet?
    Wie genau muss der Baustein "MB_Client" hierzu beschalten werden?
    Ich habe auch Adressen die bei z.B. HEX 0x402F also 16431 liegen.
    Wie muss ich da den Baustein beschalten, dass ich die Daten da lesen kann?
    Als ModBus-Funktion soll ich 04 verwenden.


    MB_Client.jpg

    Vielen dank schon mal im voraus.

    Gruß

Ähnliche Themen

  1. Antworten: 0
    Letzter Beitrag: 03.04.2014, 14:26
  2. Antworten: 1
    Letzter Beitrag: 15.05.2013, 22:01
  3. S7 1200 Modbus TCP/IP
    Von holschin im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 15.11.2012, 23:03
  4. Modbus-TCP lib fuer B&R x20 Series (in VB6.0)
    Von Raedle im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 21.10.2010, 22:38
  5. B&R Automation Studio ModBus TCP Library
    Von doelckenbeck im Forum Sonstige Steuerungen
    Antworten: 3
    Letzter Beitrag: 23.11.2009, 15:03

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •