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

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

Thema: Profibus Addressierung Frage!

  1. #1
    Registriert seit
    09.10.2012
    Beiträge
    202
    Danke
    25
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo SPSler,

    Ich möchte Daten über einen MDX Movidrive von SEW über eine direkte Adressierung lesen und schreiben.

    Kurzes Beispiel zur GSD Datei:

    In HW Konfig: Sew umrichter mit 6 Worten: Anfangsadresse 268

    Deklaration laut SEW Bedienungsanleitung erweiterte Buspositionierung
    PE 1 Statuswort
    PE 2+3 Ist Position high+low
    PE ISt-Strom
    .
    .
    .

    So jetzt ein willkürliches Beispiel:
    Ich möchte jetzt z.B. die Ist-Position mit einer beliebigen Zahl vergleichen und über die Programmiersprache SCL vergleichen.
    Wie würde dann die Zeile aussehen?

    Ist das dann so, dass
    1Wort: Statuswort = PEW 268+269
    2 Worte (weil 32bit): IST - Position= PED 270+273

    1Wort : Ist-Strom =PEW 274+275
    .
    .
    .
    Also ich würde schreiben

    PED 270 := MD 10;
    Ausgang x := MD10 <= 1200; ( z.B. mm)

    Oder

    PEW 274 := MW 20;
    Ausgang yx := MW20 > 2,5; (z.B Ampere)


    Ich weiss dass man das ganze einfacher lösen kann, mir geht es nur darum, ob ich das Verstanden habe wie es funktioniert und ob ich damit richtig liege.
    also kann ich auch direkt die Adresse PED 270 über Merkerdoppelwort lesen?


    Fragen:
    Frage 1: Muss ich wenn ich ein Dint also
    32 Bit (2Datenworte) habe, PED 270 schreiben oder PEW 270?

    Frage2: Ist die Porgrammierung wie oben in SCL so auch möglich ( ich weiss man macht es anders, frage ist nur ob es auch so funktionieren würde wenn ich nur die Ist-Position lesen und verarbeiten möchte?)

    Frage 3: stimmt es, wenn ich schreibe, für PE 1 = PEW 268
    für PE 2+3 = PED 270 ?
    Oder muss es auch PEW 270 heissen obwohl es 32bit ist?

    Danke im Voraus

    LG
    EMZ
    Zitieren Zitieren Profibus Addressierung Frage!  

  2. #2
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard

    Hallo,
    ich habe mit TIA noch keine Erfahrung. Ich kann dir nur für Step7 antworten. Sollte aber auch für TIA passen.

    Zitat Zitat von EMZ Beitrag anzeigen
    Ist das dann so, dass
    1Wort: Statuswort = PEW 268+269
    2 Worte (weil 32bit): IST - Position= PED 270+273
    1Wort : Ist-Strom =PEW 274+275
    1 Wort: Statuswort = PEW268 (PEB268-269)
    2 Worte IST-Position = PED270 (PEB270-273)
    1 Wort : Ist-Strom = PEW274 (PEB274-275)

    Zitat Zitat von EMZ Beitrag anzeigen
    Also ich würde schreiben
    PED 270 := MD 10;
    Ausgang x := MD10 <= 1200; ( z.B. mm)
    Oder
    PEW 274 := MW 20;
    Ausgang yx := MW20 > 2,5; (z.B Ampere)
    s. Antwort zur Frage 2

    zu Frage 1: PED270

    zu Frage 2:
    MD10:=PED270
    MW20:=PEW274

    zu Frage 3: s. Frage 1

    Du kannst testweise Pseudo-Variablen mit den jeweiligen Datentypen in der Symbolik oder in einem DB anlegen. Dann siehst du den Zusammenhang zwischen Byte, Wort und Doppelwort.

  3. Folgender Benutzer sagt Danke zu hub für den nützlichen Beitrag:

    EMZ (21.11.2015)

  4. #3
    EMZ ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.10.2012
    Beiträge
    202
    Danke
    25
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Leute Danke für eure Hilfe, hat mich sehr weitergebracht.
    Nur stehe ich Leider vor einem Problem.

    Ich möchte wie schon beschrieben mit der Ist-Position einen Wert vergleichen und damit einen Ausgang schalten.
    Über PLCSIM möchte ich dann "Einfügen"-> "Merker" -> als eingangsbyte "PED258" hinschreiben und damit dann den Wert manuell eingeben kann. z.B PED 1100.
    Dieser Wert soll dann in meinen Vergleicher auch also 1100 (vergleichen mit) 1200 sein.
    Ich hab leider keine Ahnung was ich falsch mache, aber ich mache was falsch.
    Hier mal en Blick in mein OB1 und FB1
    Anhang 30742
    falls das Bild zu unscharf ist, habe ich es noch über diesen Link hochgeladen:

    http://fs5.directupload.net/images/151121/nddz75ra.png

    Wie könnte ich das Programmieren das es so geht wie ich es haben möchte?
    Ich danke für jegliche Hilfe


    LG
    EMZ
    Geändert von EMZ (21.11.2015 um 13:36 Uhr)

  5. #4
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    677
    Danke
    22
    Erhielt 144 Danke für 136 Beiträge

    Standard

    Habe Sie die HW auch in der PLC_SIM gelade? wenn ein Periferie adresse nicht in die HW geladen ist geht die CPU in stop ohne OB85.
    hier ein bild mit PLCsim und PED270 ins programm.
    Gruss Joop
    SCL.JPG

  6. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.316
    Danke
    932
    Erhielt 3.331 Danke für 2.689 Beiträge

    Standard

    Zitat Zitat von EMZ Beitrag anzeigen
    Ich hab leider keine Ahnung was ich falsch mache, aber ich mache was falsch.
    Kannst Du definieren, wie sich Dein "falsch" bemerkbar macht?

    Kann es sein, daß der Ausgang Deines Bausteins true bleibt, auch wenn Ist-Position wieder < 1200 wird?
    Ist das im Bild der komplette Code des FB? Die eine sichtbare bedingte Zuweisung an #ausgang ist nicht genug. Wenn #ausgang nichts zugewiesen wird, dann behält #ausgang seinen Zustand bei. Das ist das Problem der für Anfänger vermeintlich einfachen IF...-Konstrukte.

    Wenn #ausgang kein Speicher-Verhalten haben soll, dann solltest Du dafür sorgen, daß #ausgang immer etwas zugewiesen wird (den Code also nicht in ein IF packen):
    Code:
    #ausgang := #"Ist-Position > 1200;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #6
    EMZ ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.10.2012
    Beiträge
    202
    Danke
    25
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Danke Leute, hat sehr gut geklappt.
    Vielen Danke jetzt bin ich ein Schritt klüger

    @harald

    Ne das war nur ein Testprogramm. Diese ganze Übung soll nur zum testen dienen, aber wenn ich das ohne Speichernde funktion haben möchte dann mache ich da ein ELSE unten drunter.

    Ich hab noch ne kleine Frage.
    Bei der Simulation (wegen fehlender Hardware) habe ich sowas geschrieben.

    Hier habe ich kleine änderungen vorgenommen. Mein Programm sieht jrtzt so aus.


    //Schnittstelle:
    Input : Ist-Position (Dint)
    Output: Ausgang (bool)
    Temp.: - PED 258 (DWord)
    - MD10 (Dword)


    PED258:= MD10;

    MD10:= DINT to DWORD (Ist-position);

    IF Ist-position > 1200 then
    Ausgang := true;
    Else
    Ausgang := false;
    End_IF;


    Oder kann ich das auch so schreiben ohne zuweisung von ped258 auf md10)?:



    PED258:= DINT to DWORD (MD10);

    IF MD10 >1200 then
    Ausgang:= true;
    Else
    Ausgang:=false;
    END_IF;




    Frage ist, ob ich wenn ich jetzt einen Servoumrichter mit der SPS in wirklichkeit verbinde, ob ich dann auch den PED258 einen Merkerdoppelwort zuweisen muss, oder ob ich z.B. direk mit PED 258 auf den IN: Eingang eines vergleichers draufgehen kann und dabei den Vergleicher auf DWord parametriere?
    (Mit TIA-Portal v13 software)

    LG
    EMZ
    Geändert von EMZ (22.11.2015 um 00:21 Uhr)

  8. #7
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    677
    Danke
    22
    Erhielt 144 Danke für 136 Beiträge

    Standard

    Die temp var machen gar nichts. Wenn sie nur die eine regel code van Ralle brauchts ist es ok.
    Wenn Sie probleme habe mit de PED in plcsim dan konte sie bei anruf der FB ein MD nemen und da mit steueren ein werd in schreiben.
    Joop

  9. #8
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard

    Zitat Zitat von EMZ Beitrag anzeigen
    Ne das war nur ein Testprogramm. Diese ganze Übung soll nur zum testen dienen, aber wenn ich das ohne Speichernde funktion haben möchte dann mache ich da ein ELSE unten drunter.

    IF Ist-position > 1200 then
    Ausgang := true;
    Else
    Ausgang := false;
    End_IF;
    Ist so nicht falsch, aber die Variante vom Harald ist einfacher und leichter zu lesen:
    Ausgang := Ist-Position > 1200;

  10. #9
    EMZ ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.10.2012
    Beiträge
    202
    Danke
    25
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Okey danke, aber leider weiß ich jetzt immernoch nicht ganz ob ich auf meinen Vergleicher Eingan IN1 direkt PED258 schreiben kann, oder ob ich erst den PED258 einem MERKERDOPPELWORT zuweisen muss und diesen erst in DINT umwandeln muss, damit ich auf meinen VERGLEICHEREINGANG I1 beschalten kann. Oder muss ich grundsätzlich den PED258 IMMER ERST ZU EINEM MD ZUWEISEN?

    @JOOPB
    ich denke dass du meine Frage beantwortest aber leider kann ich nicht ganz verstehen was du damit meinst.
    Also in der Simulation bei PLCsim kann ich auch direkt PED 258 EINGEBEN, ABER ich frage ja wie es ohne simulation ist also wenn hardware angeschlossen ist, ob ich dann ein ped 258 schreiben kann oder ob ich immer ped258 erst zu md10 zuweisen muss.

    LG
    EMZ

  11. #10
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    In Post #4 von JoopB ist die kompl. Programmierung fertig vorhanden.
    Du brauchst für PLC-Sim keine eigenenen Routinen.

    Am Baustein-Eingang "Ist-Position" (IN1 ?) schreibst du PED258.
    Umkopieren auf Merker ist nicht nötig.
    Im Baustein arbeitest du nur noch mit der Eingangvariable "Ist-Position" weiter.

    Funktioniert mit PLC-Sim und mit der Hardware.

  12. Folgender Benutzer sagt Danke zu hub für den nützlichen Beitrag:

    EMZ (22.11.2015)

Ähnliche Themen

  1. Profibus Addressierung Frage!
    Von EMZ im Forum Feldbusse
    Antworten: 7
    Letzter Beitrag: 22.11.2015, 07:20
  2. AS-i Slave Addressierung über SPS
    Von marcel_ im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.07.2012, 16:32
  3. Antworten: 3
    Letzter Beitrag: 16.02.2012, 14:59
  4. Phoenix PC Worx. Indirekte Addressierung
    Von pkh im Forum PHOENIX CONTACT
    Antworten: 1
    Letzter Beitrag: 28.09.2010, 10:08
  5. Norm für Symbolische Addressierung
    Von Kuddel30 im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 02.03.2010, 00:17

Lesezeichen

Berechtigungen

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