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

Ergebnis 1 bis 9 von 9

Thema: Sfb47...

  1. #1
    Registriert seit
    15.10.2004
    Beiträge
    11
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen!

    Nach längerer Abwesenheit bin ich nun doch wieder zur SPS-Programmierung gestoßen und hoffe demnächst hier im Forum auch mal hilfreich zu werden

    Aufgabe:
    Einfache Kiste - zählen bis Referenznocke belegt, dort SW-Tor schliessen und "Referenzieren" (Zählerstand auf NULL).
    Während des Zählens den aktualwert anzeigen.

    Lösung:
    Der Aufruf etc. Klappt. Was ich aber nicht verstehe, wo mal die verschiedenen JOB_IDs erklärt werden. Weiß da jemand was?

    Meine Vermutung:
    Solange nicht auf Referenznocke, SW-Tor geöffnet - Zählen.
    Auf Referenznocke Tor schliessen und JOB_ID auf 0x02 (Ladewert schreiben), Ladewert 0 (NULL) in JOB_VAL.

    Stimmt das so?

    So und nun zum Zählen und Aktualwert auslesen. Was hat das denn für eine JOB_ID? Ich habe hier ein altes vorgängerprogramm gesehen, da verwendet er 0x04 (Vergleichswert schreiben) in jedem Zyklus als Konstante! Verstehe ich nicht...ist doch schlecht!?

    Ich hoffe, Ihr könnt mir etwas Support geben!
    Gruß
    Hinter Dir! Ein Dreiköpfiger Affe!!!
    Zitieren Zitieren Sfb47...  

  2. #2
    Registriert seit
    14.09.2005
    Beiträge
    218
    Danke
    9
    Erhielt 23 Danke für 13 Beiträge

    Standard

    Siemens Support. Beitrags-ID:12429336

    Seite 202 (5-32)

    Schau dir das mal an, vielleicht bringt dich das ja weiter.

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

    Mr. T (04.05.2007)

  4. #3
    Avatar von Mr. T
    Mr. T ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.10.2004
    Beiträge
    11
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke erstmal - aber es hat mir nicht viel weitergeholfen...

    Code:
          UN    #JOB_DONE                 // also wenn Baustein bereit ist
          SPB   NJOB
     
          UN    #JOB_REQ                   // Auftrag starten
          S     #JOB_REQ
     
          CALL  "COUNT" , "DB31 DS COUNT INSTANZ"
           LADDR   :=W#16#768
           CHANNEL :=#KANAL
           SW_GATE :=#SW_GATE
           CTRL_DO :=
           SET_DO  :=
           JOB_REQ :=#JOB_REQ
           JOB_ID  :=#JOB_ID                         // immer "auftrag o. Funktion"
           JOB_VAL :=#JOB_VAL
           STS_GATE:=
           STS_STRT:=
           STS_LTCH:=
           STS_DO  :=
           STS_C_DN:=
           STS_C_UP:=
           COUNTVAL:=#COUNTVAL
           LATCHVAL:=
           JOB_DONE:=#JOB_DONE
           JOB_ERR :=#JOB_ERR
           JOB_STAT:=#JOB_STAT
     
          U     #JOB_REQ
          R     #JOB_REQ
     
    NJOB: NOP   0
    Ich verstehe nicht, warum er nicht einfach zählt...et tutet nicht...

    Meine HW-Einstellung sollte es doch ermöglichen, einfach nur zu zählen, sobald das SW-Gate weg geht...Ich möchte einfach nur den Aktualwert haben, keine andere Funktionalität wie Wert schrieben wird gebraucht...

    Ich hoffe Ihr habt noch mehr Tipps.
    Gruß!
    Angehängte Grafiken Angehängte Grafiken
    • Dateityp: png HW.PNG (21,1 KB, 36x aufgerufen)
    Hinter Dir! Ein Dreiköpfiger Affe!!!

  5. #4
    Registriert seit
    04.08.2006
    Ort
    Unterfranken
    Beiträge
    94
    Danke
    3
    Erhielt 34 Danke für 18 Beiträge

    Standard

    Servus,

    geb mal als Job-ID eine feste eins (also W#16#0001) vor, der Zähler sollte sich dann über das SW-Tor starten und stoppen und über Job_Req auf Null setzen lassen.

    Gruß
    Andreas
    Wirkich innovativ ist man nur dann, wenn mal was daneben gegangen ist.
    (Woody Allen)

  6. #5
    Avatar von Mr. T
    Mr. T ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.10.2004
    Beiträge
    11
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Die 1 bedeutet doch "Zählwert schreiben", also müsste ich doch dann einen Zählwert an den SFB übergeben, der dann dem Startwert entspräche, ab dem dann gezählt würde - oder?

    Mal sehen....THX!
    Hinter Dir! Ein Dreiköpfiger Affe!!!

  7. #6
    Registriert seit
    04.08.2006
    Ort
    Unterfranken
    Beiträge
    94
    Danke
    3
    Erhielt 34 Danke für 18 Beiträge

    Standard

    Wie die Zusammenhänge sind weiß ich auch nicht mehr so genau, ist schon wieder eine Zeit lang her als ich mich mit den SFB47 zu tun hatte. Mit diesen Einstellungen hab ich einen Zähler aber schon Monate am laufen, es funktioniert also.
    Wirkich innovativ ist man nur dann, wenn mal was daneben gegangen ist.
    (Woody Allen)

  8. #7
    Avatar von Mr. T
    Mr. T ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    15.10.2004
    Beiträge
    11
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Okay!

    Ich versuche es mal, sobald ich wieder in der Nähe der Hardware bin...gestern ist da schon ganzschön spät geworden...

    Hehe Danke - wenns dann funzt poste ich den Code für alle armen Suchenden nach mir

    Gruß!
    Hinter Dir! Ein Dreiköpfiger Affe!!!

  9. #8
    Registriert seit
    24.05.2006
    Beiträge
    234
    Danke
    14
    Erhielt 77 Danke für 57 Beiträge

    Standard

    Also speziell dein
    Code:
          UN    #JOB_DONE                 // also wenn Baustein bereit ist
          SPB   NJOB
    stellt natürlich ein Riesenproblem dar, da der SFB47 nicht mehr aufgerufen wird, sobald du ihn mal mit JOB_REQ=TRUE gestartet hast. Es wird von diesem Moment an jeder SFB47 Aufruf übersprungen.

    Rufe den SFB47 immer, in jedem Zyklus, auf und setze das JOB_REQ nur für's Referenzieren auf TRUE (zusammen mit JOB_ID=W#16#1 und JOB_VAL=L#0)

    Die Ausgänge #COUNTVAL und #LATCHVAL liefern immer den aktuellen Stand, dazu ist kein JOB_REQ nötig.

    Zusatz: Zu spät gesehen: so wie deine HW-Einstellung des Zählers ist, brauchst du gar keine Referenzierung durchzuführen, da jedes Deaktivieren des SW-Gates deinen Zähler nullt (HW-Konfig: Torfunktion: Zählvorgang abbrechen).
    Geändert von hovonlo (04.05.2007 um 11:45 Uhr) Grund: Torfunktion: Zählvorgang abbrechen

  10. #9
    Registriert seit
    03.01.2006
    Ort
    Im sonnigen Süden von Österreich!
    Beiträge
    1.377
    Danke
    227
    Erhielt 183 Danke für 168 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    Hier mal ein Code von mir mit einem SFB47
    Da ist im Prinzip alles drinnen:
    Code:
          L     768
          T     #EA_Adresse                 //EA-Adresse des Zählers
     
          L     0
          T     #Kanalnummer                //Schreibe Kanalnummer für Zähler
     
          SET   
          =     #Freigabe_Zaehler           //Softwarefreigabe für Zähler
     
          U(    
          O     #Auftragsanstoss_Referenz
          O     #Auftragsanstoss_Grundpos
          O     #Auftragsanstoss_Vergl
          O     #Kontrolle_Vergleicher
          )     
          U     #Auftragsfreigabe
          =     #Auftragsanstoss            //Freigabe für Auftrag
     
          U     #Auftragsanstoss
          SPBN  X1
     
          L     L#88                        //Referenzposition
          U     #Auftragsanstoss_Referenz
          SPB   Wert
          L     L#100                       //Grundposition
          U     #Auftragsanstoss_Grundpos
          SPB   Wert
          L     #SOLL_Position              //Sollposition für Vergleicher
          ITD   
          U     #Auftragsanstoss_Vergl
          SPB   Wert
          L     L#0                         //Dummywert für lesende Aufträge
          U     #Kontrolle_Vergleicher
          SPB   Wert
          SPA   X1
    Wert: T     #Auftragswert               //Schreibe Auftragswert
     
          L     W#16#1                      //Auftrag für Zählwert schreiben
          U     #Auftragsanstoss_Referenz
          SPB   NR
          L     W#16#1                      //Auftrag für Zählwert schreiben
          U     #Auftragsanstoss_Grundpos
          SPB   NR
          L     W#16#4                      //Auftrag für Vergleicher Schreiben
          U     #Auftragsanstoss_Vergl
          SPB   NR
          L     W#16#84                     //Auftrag für Vergleicher Lesen
          U     #Kontrolle_Vergleicher
          SPB   NR
          SPA   X1
    NR:   T     #Auftragsnummer             //schreibe Auftragsnummer
     
    X1:   NOP   0
          CALL  #Achse_Zaehler              //Zähler
           LADDR   :=#EA_Adresse
           CHANNEL :=#Kanalnummer
           SW_GATE :=#Freigabe_Zaehler
           CTRL_DO :=#Freigabe_Ausgang
           SET_DO  :=#Steuern_Ausgang
           JOB_REQ :=#Auftragsanstoss
           JOB_ID  :=#Auftragsnummer
           JOB_VAL :=#Auftragswert
           STS_GATE:=#Status_Internes_Tor
           STS_STRT:=#Status_Hardware_Tor
           STS_LTCH:=#Latcheingang
           STS_DO  :=#Status_Ausgang
           STS_C_DN:=#Richtung_rueckwaerts
           STS_C_UP:=#Richtung_vorwaerts
           COUNTVAL:=#Zaehlwert
           LATCHVAL:=#Latchwert
           JOB_DONE:=#Auftragsfreigabe
           JOB_ERR :=#Fehler_Auftrag
           JOB_STAT:=#Fehlernummer
    Ich hoffe er kann dir weiterhelfen.

    godi

Ähnliche Themen

  1. SFB47 intern
    Von jungi im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 26.03.2010, 06:23
  2. Probleme SFB47
    Von marcelh im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 15.05.2009, 09:11
  3. Sfb47 Count
    Von Kleissler im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 04.05.2006, 07:24
  4. Sfb47
    Von geggo im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 07.04.2006, 23:19
  5. Wegerfassung mit SFB47
    Von M-Arens im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 12.04.2005, 12:28

Lesezeichen

Berechtigungen

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