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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 29

Thema: SFC15-Problem

  1. #1
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen

    Ich Sitze hier wieder mal an einem Problem. Folgende Situation:
    414-2DP CPU, an welcher drei SEW MoviDrive A angeschlossen sind (via ProfiBus).

    Diese erhalten je 6 Datenworte mittels SFC15. Beim ersten funktioniert das auch tadellos ... die beiden weiteren erhalten jedoch nur die Datenworte 1-3, 4-6 gehen irgend wo verloren. Sie werden nicht mit 0 geschrieben, die bleiben einfach auf dem letzten Stand.

    Ich hab die Kommunikation wie folgt gelöst:
    Code:
    CALL "DPWR_DAT" (
               LADDR                    := #Addr,
               RECORD                   := #PA,
               RET_VAL                  := #Returncode_SFC15);
    
          L     #Returncode_SFC15; 
          L     0; 
          <>I   ; 
          SPB   M001; 
          BEA   ;
    PA ist ein Struct aus total 6 Daten-Worten (16 BOOL + DINT + 2x INT)

    Gibt's hier irgend einen Fehler?

    Danke im Voraus


    PS: Noch ein paar Daten: DP-Adressen (50, 51, 52), Anfangs E-Adresse (512, 524, 536), Anfangs A-Adresse (512, 524, 536) ... jeweils die erste geht, die mittlere und die letzte geht nicht.
    CPU: 6ES7 414-2XG03-0AB0
    Geändert von Reto (01.02.2009 um 19:49 Uhr)
    Zitieren Zitieren SFC15-Problem  

  2. #2
    Registriert seit
    17.10.2007
    Ort
    35043 Marburg
    Beiträge
    176
    Danke
    4
    Erhielt 30 Danke für 29 Beiträge

    Standard

    Hallo,

    was steht denn als Rückgabewert der Funktion?
    #Record sollte als AnyZeiger angelegt werden.
    Wichtig ist die HW Konfig. Da die SFC14/15 da nachschauen ob die Adresse und die Länge zusammenpassen. Soll heißen deine Umrichter müssen je 6 PDW in/out deklariert sein, aber nicht 3x2 o.ä. sondern 6. Hatte mal das Problem bei SEW Movitracs, die konnte man zusammen fassen ala 4x6 PDW oder je 6 PDW, nur bei letzteren funktionierte dann auch die SFC 14/15.

    Sehe gerade dein #PA sind aber nur 5 worte!!!

    Ansonsten mal mit L PEW & T PAW probieren!

    Ich noch mal,

    schau mal das die Adressen außerhalb jeglicher PAE,PAA sind. Ist ja bei ner 400er viel möglich.
    Geändert von Simatiker (01.02.2009 um 20:12 Uhr)
    Grüße...
    Paradox ist, wenn sich jemand im Handumdrehen den Fuß bricht.

  3. #3
    Registriert seit
    03.12.2008
    Beiträge
    654
    Danke
    160
    Erhielt 185 Danke für 113 Beiträge

    Standard

    Hallo
    CALL "DPWR_DAT" (
    LADDR := #Addr,
    RECORD := #PA,
    RET_VAL := #Returncode_SFC15);

    L #Returncode_SFC15;
    L 0;
    <>I ;
    SPB M001;
    BEA ;
    Wenn dein #Returncode_SFC15 "Null" ist beendest du deinen Baustein mit "BEA".
    Kann es sein das deshalb die nachfolgenden SFC 15 Aufrufe nicht mehr bearbeitet werden?

    MfG
    Paul

  4. #4
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Simatiker Beitrag anzeigen
    Hallo,
    Hallo
    Zitat Zitat von Simatiker Beitrag anzeigen
    was steht denn als Rückgabewert der Funktion?
    Rückgabewert ist immer 0 (null).
    Zitat Zitat von Simatiker Beitrag anzeigen
    #Record sollte als AnyZeiger angelegt werden.
    #Record zeigt auf einen Struct, was ja einem AnyZeiger relativ nahe kommt. Der Struct besteht aus den oben beschriebenen BOOLs, DINTs und INTs (nur dass es 3x INT ist^^)

    Zitat Zitat von Simatiker Beitrag anzeigen
    Wichtig ist die HW Konfig. Da die SFC14/15 da nachschauen ob die Adresse und die Länge zusammenpassen. Soll heißen deine Umrichter müssen je 6 PDW in/out deklariert sein, aber nicht 3x2 o.ä. sondern 6. Hatte mal das Problem bei SEW Movitracs, die konnte man zusammen fassen ala 4x6 PDW oder je 6 PDW, nur bei letzteren funktionierte dann auch die SFC 14/15.
    Ja, das kenn ich ... ist dann aber, wenn man die Geräte via SBus und DFP21 ansteuert. Hier ist aber die DFP direkt im MoviDrive drinnen und wird auch direkt verwendet. In der HW-Config steht auch 6PD.
    Zitat Zitat von Simatiker Beitrag anzeigen
    Sehe gerade dein #PA sind aber nur 5 worte!!!
    Es sind 3xINT (schreiben sollte man können)
    Zitat Zitat von Simatiker Beitrag anzeigen
    Ansonsten mal mit L PEW & T PAW probieren!
    PAW wäre dann das 536er wenn das die HW-Adresse des Gerätes ist?
    Zitat Zitat von Simatiker Beitrag anzeigen
    Ich noch mal,
    schau mal das die Adressen außerhalb jeglicher PAE,PAA sind. Ist ja bei ner 400er viel möglich.
    Wo genau schaue ich, welche PAE, PAA belegt sind?

    Danke schonmal

  5. #5
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Paul Beitrag anzeigen
    Hallo
    Hallo Paul
    Zitat Zitat von Paul Beitrag anzeigen
    Wenn dein #Returncode_SFC15 "Null" ist beendest du deinen Baustein mit "BEA".
    Kann es sein das deshalb die nachfolgenden SFC 15 Aufrufe nicht mehr bearbeitet werden?
    Danach kommt nur noch die Fehlerauswertung und keine weiteren SFC15's mehr.
    Das Ganze ist in einem FB, der aus einem FC aufgerufen wird ... mit BEA sollte doch der FB beendet und im FC weitergefahren werden ... oder hab ich da was falsch verstanden?

  6. #6
    Registriert seit
    09.06.2007
    Beiträge
    398
    Danke
    25
    Erhielt 46 Danke für 44 Beiträge

    Standard

    Blöde Frage:
    Wenn du einen FB aus einer FC startest, wo speicherst du dann die Daten des FBs? Multiinstanz geht doch so nicht.

  7. #7
    Registriert seit
    17.10.2007
    Ort
    35043 Marburg
    Beiträge
    176
    Danke
    4
    Erhielt 30 Danke für 29 Beiträge

    Standard

    Hallo,

    die Größe des Prozeßabbildes kannst du in der HW Konfig unter CPU -> Eigenschaften -> Zyklus/Taktmerker nachschauen. Hier sollte nicht mehr als 512 stehen. Dann kannst du unter Objekteigenschaften des DP Slaves bei Adressen kontrollieren das bei Prozeßabbild "--" steht. (das Feld ist dann auch gegraut)
    Wenn "0" als Rückgabewert steht, bedeutet das ja eigentlich das die Funktion korrekt ausgeführt wurde.
    Du kannst die ganze Kommunikation auch ohne SFC's machen. Dann halt mit:
    Code:
    Umrichter1:
    L PED 512
    T...
    L PED 516
    T...
    L PED 520
    T...
    .
    .
    .
    L...
    T PAD 512
    L...
    T PAD 516
    L...
    T PAD 520
    Nur um zu schauen ob überhaupt etwas geschrieben wird.
    Dann könntest du mal Versuchen die E/A's der Umrichter ganz woanders hinzulegen. Vielleicht wird irgendwo in deinem Programm der Ausgangsbereich beschrieben, mittels Pointer oder Blockmove oder irgendwas!? Was du dann in den Referenzdaten nicht sehen könntest.
    Grüße...
    Paradox ist, wenn sich jemand im Handumdrehen den Fuß bricht.

  8. #8
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Ludewig Beitrag anzeigen
    Blöde Frage:
    Wenn du einen FB aus einer FC startest, wo speicherst du dann die Daten des FBs? Multiinstanz geht doch so nicht.
    Der FC wird direkt aus OB1 aufgerufen und verwendet intern Absolute Adressen. Zum FB gehört natürlich ein iDB, welcher fest beziffert wird.

  9. #9
    Avatar von Reto
    Reto ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    07.10.2006
    Beiträge
    158
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von Simatiker Beitrag anzeigen
    Hallo,
    die Größe des Prozeßabbildes kannst du in der HW Konfig unter CPU -> Eigenschaften -> Zyklus/Taktmerker nachschauen. Hier sollte nicht mehr als 512 stehen.
    Da steht je 512 drinnen; passt also.

    Zitat Zitat von Simatiker Beitrag anzeigen
    Dann kannst du unter Objekteigenschaften des DP Slaves bei Adressen kontrollieren das bei Prozeßabbild "--" steht. (das Feld ist dann auch gegraut)
    Steht beide male "---" und ist ausgegraut. Die Adresse steht je auf 536-547.

    Zitat Zitat von Simatiker Beitrag anzeigen
    Wenn "0" als Rückgabewert steht, bedeutet das ja eigentlich das die Funktion korrekt ausgeführt wurde.
    Das dachte ich eben auch

    Zitat Zitat von Simatiker Beitrag anzeigen
    Nur um zu schauen ob überhaupt etwas geschrieben wird.
    Dann könntest du mal Versuchen die E/A's der Umrichter ganz woanders hinzulegen. Vielleicht wird irgendwo in deinem Programm der Ausgangsbereich beschrieben, mittels Pointer oder Blockmove oder irgendwas!? Was du dann in den Referenzdaten nicht sehen könntest.
    Mein Programm besteht aktuell aus dem OB1, der den FC aufruft, der gerade nichts anderes macht, als meinen FB für's MoviDrive aufzurufen.
    Alle andern OBs sind entweder von der CPU runter oder leer.

    Ich komme leider erst am Freitag wieder an die Anlage drann, werde dann aber diese guten Hinweise testen.
    Danke euch allen.

  10. #10
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Noch 'ne Rückfage:

    In der Variabe #PA stehe bei den Movidrives 2 und 3 die richtigen Daten drin ?

    Werdebn deren Adressbereiche zufällig irgendwo in OB6x (Taktsynchronität) verwendet? dann spielt der 15er nicht mit...

    Ansonsten rate ich zum Vorgehen a la Simatiker...
    L ...
    T ...
    geht oft und man zuschauen was wohin transfriert wird.

    Hatte mit einem MDX61B ähnliche Probleme, seitdem läuft er wie o.A.

    ... und läuft und läuft und läuft ...

    viel glück wünscht dtsclipper
    Das Grauen lauert in der Zwischenablage !!

Ähnliche Themen

  1. OB35 und Sfc15
    Von simon.s im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.03.2011, 16:42
  2. Probleme mit SFC15
    Von breno im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 25.05.2009, 19:29
  3. Sfc15
    Von blume_mercan im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 17.01.2008, 14:28
  4. SfC14 / SfC15
    Von Mujo im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 14.08.2007, 14:20
  5. SFC14/SFC15
    Von Anonymous im Forum Feldbusse
    Antworten: 10
    Letzter Beitrag: 19.07.2004, 20:17

Lesezeichen

Berechtigungen

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