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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Modbus RTU in Twincat, wie anfangen?

  1. #1
    Registriert seit
    19.09.2006
    Ort
    Pfarrkirchen / Lower-Bavaria
    Beiträge
    22
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe eine Beckhoff CX9010 mit EL6022 und einen Vacon Frequenzumrichter mit Modbus RTU Schnittstelle sowie die Schnittstellenbeschreibung.

    Ebenfalls habe ich die Beckhof Modbus RTU Library.

    Ich möchte dem FU einen Startbefehl senden, ebenso einen Sollwert und dann das Drehmoment und die Drehzahl zurückbeommen.

    Lt. Doku des Umrichters liegt in Adresse 2107 (Modbus-Register 32107 und 42107) das Motordrehmoment in %.
    In Adresse 2001 (Modbus-Register 32001, 42001) muss ich das Feldbus-Steuerwort binärcodiert schreiben, damit der FU läuft.

    Der FU hat Slave-Adresse 1.

    Wie fange ich an? Könnt Ihr mir auf die Sprünge helfen?
    Ich habe ein Programm in FBS, aus dem ich das Programm für die Modbus-Kommunikation aufrufen würde. Dieses würde ich in ST schreiben, nur bin ich mir nicht im Klaren, wie ich anfange.

    Wie muss ich im System-Manager die Variablen zuordnen?

    Danke im Voraus!

    Gruß
    Michi
    Zitieren Zitieren Modbus RTU in Twincat, wie anfangen?  

  2. #2
    Registriert seit
    10.12.2009
    Beiträge
    41
    Danke
    1
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hier gibt es ein Beispiel dafür (allerdings K-Bus)

  3. #3
    Registriert seit
    22.08.2016
    Beiträge
    17
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi, ich sehe dass der Post schon recht alt ist. Habe aber das gleiche Problem, ich muss über EL6022 mit einem Slave über Modbus kommunizieren und weiß nicht ganz wo ich anfangen soll. Ich habe gesehen, dass es für KL6x22B vorgefertigte Funktionsbausteine gibt. Gibt es sowas auch für die ELs?
    Zitieren Zitieren gleiche Frage  

  4. #4
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.703
    Danke
    307
    Erhielt 290 Danke für 256 Beiträge

    Standard

    Es sind dieselben. Nicht von der Bezeichnung verwirren lassen: Dem Baustein ist es egal ob EL oder KL Klemmen dran hängen.
    Entscheidend ist es, die Bibliothek richtig einzubinden und dann geht es (fast) wie von alleine
    - Der frühe Wurm wird vom Vogel gefressen -

  5. Folgender Benutzer sagt Danke zu weißnix_ für den nützlichen Beitrag:

    Tobias5 (13.02.2018)

  6. #5
    Registriert seit
    22.08.2016
    Beiträge
    17
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @weißnix_, vielen Dank, dass sind gute Nachrichten.
    Nach einer kurzen Pause solls jetzt wieder weiter gehen. Ich wollt die Klemme (EL6022) Konfigurieren bzw. die Baudrate usw. jetzt hatte ich den Funktionsbaustein "KL6configuration(...)" endeckt, allerdings heißt es in der Beckhoffhilfe:*
    "Hinweis: Der Funktionsbaustein verwendet die bei KL-Klemmen übliche Registerkommunikation zur Konfiguration. Bei EtherCAT Klemmen EL ist diese Registerkommunikation nicht möglich. EL-Klemmen können mit Funktionsbausteinen aus der EtherCAT-Bibliothek konfiguriert werden (FB_EcCoeSdoWrite)."
    Bei "FB_EcCoeSdoWrite" finde ich aber nicht die typischeb Parameter für serielle Kommunikation.
    Kann mir noch jemand einen Tipp geben?

  7. #6
    Registriert seit
    13.12.2011
    Beiträge
    1.895
    Danke
    201
    Erhielt 250 Danke für 220 Beiträge

    Standard

    Das ist auch klar das Du das da nicht findest. Der Baustein KL6configuration ist speziell für serielle Karten gedacht und hat dann natürlich auch Eingänge wie Baudrate, Datenbits, usw.
    Der Baustein FB_EcCoeSdoWrite ist aber ganz allgemein zum Schreiben von SDO-Objekten in EtherCAT Klemmen da. Hier musst Du Dir aus dem Objektverzeichnis die gewünschten Objekte heraussuchen und diese dann jeweils einzeln schreiben. Für die Baudrate des ersten Kanals müsstest Du 0x8000 als Index und 0x11 als Subindex angeben. Außerdem musst Du noch die AMS.NetID des EtherCAT Masters und die Slave-Adresse der EL6022 Karte angeben.

  8. #7
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.703
    Danke
    307
    Erhielt 290 Danke für 256 Beiträge

    Standard

    Also Leutz, macht mal langsam.
    Die Kommunikation mit einem Slave ist m.E. nicht so hochdynamisch, das man die serielle Schnittstelle laufend umparametrieren muß. Ich würde die Parameter der SS einmalig im Systemmanager (CoE-Parameter) festlegen. Eventuell ist es sinnvoll, gegenüber der Werkseinstellung geänderte Parameter als Startup festzulegen. Aber das sollte es doch schon gewesen sein.
    Im laufenden Programm ändert sich nicht die Baudrate und auch nicht die Parität. Ergo: Spar Dir den Streßß, aus dem Programm auf die Konfig zuzugreifen (in diesem Fall).

    Du willst Kommunizieren und dafür ist nur der Baustein ModbusRtuMaster in der (5 Byte oder 22Byte Version, je nach Klemmenkonfig) erforderlich.
    Geändert von weißnix_ (13.02.2018 um 19:50 Uhr)
    - Der frühe Wurm wird vom Vogel gefressen -

  9. Folgender Benutzer sagt Danke zu weißnix_ für den nützlichen Beitrag:

    Tobias5 (16.03.2018)

  10. #8
    Registriert seit
    22.08.2016
    Beiträge
    17
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Vielen Dank für die Tipps.
    Die Antwort weißnix_ habe ich irgendwie überlesen, und ja da hatte ich mich wohl tatsächlich verrannt.

    Nach längerer Pause hab ich mich jetzt wieder an das Thema gemacht, stecke aber schon wieder fest und dachte vielleicht kann mir jemand von euch auch hier wieder weiterhelfen.

    Ich habe die Konfiguration im CoE-online Reiter verglichen und die default Einstellungen passen ganz gut. 9600 Baud und Datenframe 8N1 passen, nur Halfduplex muss ich enablen.
    Im SPS-Projekt hab ich unter References die Tc2_ModbusRTU (und Tc2_Standard, Tc2_System, Tc3_Module).
    Dann habe ich ein Programm erstellt in dem ich den Funktionsblock „ModbusRtuMaster_KL6x22B“ aufrufe. Hier ist mir nicht klar was man überhaupt mit dem FB macht, erstmal garnichts oder? Weil wenn ich dann die Aktionen zB. ReadInputsRegs aufrufe. Wird sowieso wieder ein kompletter FB geöffnet „ModbusRtuMaster_KL6x22B.ReadInputRegs“ der die gleichen Eingangs und Ausgangsparameter hat.
    Naja, ich habe Ihm dann mal entsprechente Variablen zugewiesen. (UnitID := 1; Qauntity := 1, MBAdrr 4999; cbLength mit Sizeof(ModbusDaten) (Modbusdaten habe ich im gleichen Programm definiert.) pMemoryAddr mit ADR (ModbusDaten). Timeout einfach mal mit T#1s. Und Execute als NO den ich dann zum Test als True force.
    Beim builden (es tut mir leid ich habe ein englisches Visio und bin mit den TwinCat Begriffen noch nicht so vertraut). Werden mir dann Instanzen von „ModbusRtuMaster_KL6x22B_0“ (der ModbusMaster FB wo ich nicht weis wofür er gedacht ist) und ModbusRtuMaster_KL6x22B_1“ der FB „ModbusRtuMaster_KL6x22B.ReadInputRegs“) erstellt. Diese habe ich dann über change link mit den I0 von meiner EL6022B erstellt.
    Mein Problem ist, das jetzt nicht wirklich was passiert.
    Das erste was mit Merkwürdig erschien, ist dass ich als ich das Programm neu erstellt habe kein Assingment and Busy machen konnte, beim ersten Versuch ging das noch.
    Dann bekomme ich die Warnung „No initial value for const variable #stLibVersion_Tc2_Modbus_RTU“ (vielleicht liegt dort auch mein Fehler (nach Hinweis von)
    Über andere Software oder auch über ein Terminal Programm (Hterm) kann ich den Slave problemlos ansprechen und bekomme die erwartete Antworten. Daher vermute ich den Fehler in meiem SPS Programm. Außerdem habe ich verstgestellt, dass weder mit den den Werten in der Instanz noch mit den Eingängen irgendetwas passiert, sie bleiben in der Online Ansicht immer Null.
    (Als Hinweis, dass ist mein erstes TwinCat Projekt, also es kann auch gut sein, dass ich irgendwo einen groben Anfängerfehler begangen habe.)
    Wen mir jemand nochmal einen Tipp geben kann, würde ich mich super freuen.

  11. #9
    Registriert seit
    22.08.2016
    Beiträge
    17
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Bin jetzt von FUP auf ST umgestiegen und damit haben sich einige Probleme von oben selbst gelöst.
    Gerne kann ich das Programm mal hochladen.
    Wenn man noch daran dennkt am 9-Pol Stecker Tx und Rx zu Brücken, dann läuft es (hatte ich erst vergessen).
    Geändert von Tobias5 (21.03.2018 um 14:28 Uhr)

  12. #10
    Registriert seit
    09.12.2014
    Beiträge
    1
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Tobias5,
    ich habe mit ähnlichen Anfangsschwierigkeiten wie Du zu kämpfen. Könntest Du Dein Programm, wie angeboten, zum Download zur Verfügung stellen?
    Danke und Grüße
    Chreischei

Ähnliche Themen

  1. LibNoDave, MPI-USB wie anfangen?
    Von RidiculousRick im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 06.04.2011, 14:24
  2. TwinCat - ModBus Buchstabensalat
    Von Shrek im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 14.01.2009, 08:07
  3. TwinCat ModBus
    Von Andrey im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 23.06.2008, 07:37
  4. CX1000-Zugriff mit Delphi ohne TwinCat und ohne Modbus
    Von jank-automation im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 09.06.2008, 09:50
  5. STEP 7, wie anfangen ?
    Von sgssn im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 25.02.2007, 13:57

Lesezeichen

Berechtigungen

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