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

Ergebnis 1 bis 5 von 5

Thema: SFC12 - PN Teilnehmer Status abfragen

  1. #1
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich möchte über den SFC12 den Status (Aktiv / Inaktiv) mehrerer PN Teilnehmer abfragen.
    Dazu benötige ich die Rückmeldung des BUSY Signals zur Auswertung ob die Abfrage beendet wurde.

    Leider kommt dieses Busy Signal in meinem Fall nie, wie kann das sein (im RET VAL steht aber das Ergebnis)?

    Mein Code:

    Code:
    T_RET_VAL:= D_ACT_DP(REQ := b_Aktiv,
               MODE :=  B#16#0,
               LADDR := INT_TO_WORD(IO_INT_StartAdresse),
               BUSY :=  b_Busy);   
    
    FC_Pulse(In_Var := b_Busy 
             ,Pulse_pos_Var := fp_busy 
             ,Pulse_neg_Var := fn_busy 
             ,Edge_flag_pos :=  mem_busy_fp
             ,Edge_flag_neg :=  mem_busy_fn);  
                       
        IF T_RET_VAL = 1 AND fn_busy THEN
            BufferSlaves[IO_INT_Anfang].Active := TRUE;
            BufferSlaves[IO_INT_Anfang].Inactive := FALSE;
        ELSIF T_RET_VAL = 2 AND fn_busy THEN
            BufferSlaves[IO_INT_Anfang].Active := FALSE;
            BufferSlaves[IO_INT_Anfang].Inactive := TRUE; 
        END_IF;
    Grüße Pico
    Zitieren Zitieren SFC12 - PN Teilnehmer Status abfragen  

  2. #2
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    Prinzipiell arbeitet der SFC ja asynchron zum Zyklus, d.h. die bearbeitung startet "sofort" und endet irgendwann.
    Desweiteren ist es prinzipiell ziemlich sinnlos das Busy-Flag so zu verwenden wie du es hier tust.
    Solange Busy Aktiv ist, sind die Ausgaben des Bausteins nicht auszuwerten, das heißt ein simples "AND NOT b_busy" ist vollkommen ausreichend.

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  3. #3
    Pico1184 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    05.10.2006
    Beiträge
    324
    Danke
    11
    Erhielt 8 Danke für 7 Beiträge

    Standard

    Solange Busy Aktiv ist, sind die Ausgaben des Bausteins nicht auszuwerten, das heißt ein simples "AND NOT b_busy" ist vollkommen ausreichend.
    Woher weiß ich dann wann der Auftrag sicher abgearbeitet ist? Ich möchte nach jedem abgearbeiteten Auftrag einen neuen starten. In serieller Reihenfolge.
    Aber dazu muss ich wissen wann der Auftrag fertig ist.

    Was soll dann das Busy wenn ich es nicht so nutzen kann?

    Grüße Pico

  4. #4
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.752
    Danke
    323
    Erhielt 1.526 Danke für 1.286 Beiträge

    Standard

    Du weißt, wann du den Auftrag startest, und weißt dann in der Folge wenn Busy falsch ist, dann ist der Auftrag abgearbeitet.

    b_Aktiv AND NOT b_Busy = Fertig ...
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.313
    Danke
    932
    Erhielt 3.323 Danke für 2.685 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Was sagt denn die Bausteinhilfe des SFC12?
    Ich meine mich zu erinnern, daß da der Fakt extra erwähnt ist, daß bei der Abfrage-Funktion sofort beim ersten Aufruf schon das Ergebnis geliefert wird, ohne daß BUSY aktiv wird. Schließlich braucht die SFC nur ein Bit aus einer SZL lesen und versucht überhaupt keine Kommunikation mit dem PN-Teilnehmer - was soll da länger dauern?

    Ansonsten zeigt Beitrag #4 von MSB, wie BUSY korrekt ausgewertet wird - man muß abfragen, ob BUSY nicht (mehr) aktiv ist.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

Ähnliche Themen

  1. Status bzw. Ausstattung der SPS abfragen
    Von Alexandr im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 05.05.2010, 16:40
  2. SFC12 Teilnehmer abschalten
    Von FvE im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 27.02.2010, 10:16
  3. CP343 Fetch/Write passiv Status abfragen
    Von S7_Mich im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 15.08.2008, 07:38
  4. Pufferbatterie status abfragen?
    Von DennisBerger im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.07.2008, 14:22
  5. WinCC-Server Status abfragen
    Von Elton_500 im Forum HMI
    Antworten: 2
    Letzter Beitrag: 26.04.2008, 14:14

Lesezeichen

Berechtigungen

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