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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: Bei einer Funktion mit Merkern oder über die Schnittstelle TEMP programmieren?

  1. #11
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.628
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von EDirk Beitrag anzeigen
    Ich habe in der Funktion einen Zähler der bis 20 zählen muss . Zählt der dann normal durch oder fängt der immer dann wieder bei 0 an?
    Zitat Zitat von mir selbst
    Gibt es irgendetwas in Deinem Baustein, was Du IM NÄCHSTEN AUFRUF WIEDER BRAUCHST?
    Wenn NICHT, dann hast Du wahrscheinlicht recht.
    Was sagt Dir das? Einfach so geht es nicht, weil Du Deinen Zählerstand im nächsten Aufruf wieder brauchst.
    Du musst also den Zähler retten. Entweder (bei Siemens-Zählern) Du machst eine IN-Variable vom Typ COUNTER (heißt so, glaube ich) an die Du bei jedem Aufruf einen anderen Zähler hängst (wäre dann als IN-Variable z.B. Z 1, Z 2, Z3,...) oder Du hast eigene Zähler, dann müsstest Du den entsprechenden Zählerstaand als INOUT anlegen und beim Aufruf mit der passenden Variablen beschalten. So bräuchtest Du für eine einzige Variable keinen FB / IDB.
    Gruß
    Michael

  2. #12
    Registriert seit
    06.02.2009
    Beiträge
    28
    Danke
    3
    Erhielt 6 Danke für 3 Beiträge

    Standard

    Zitat Zitat von EDirk Beitrag anzeigen
    Ja In/Out benutze ich so das die Ein und Ausgänge Flexibel sind.
    Ich habe in der Funktion einen Zähler der bis 20 zählen muss . Zählt der dann normal durch oder fängt der immer dann wieder bei 0 an?
    egal ob FC oder FB, wenn du dort einen Zähler, z.B. Z10 drin hast, zählt dieser jedes mal hoch,wenn er im FC angesteuert wird. Sprich wenn du den FC in 1 Zyklus 5x aufrufst und pro Aufruf dieser einmal hochzählt, dann hast du am Ende des Zyklus eine 5 drin stehen, obwohl du dort für jeden FC eine 1 erwartest. Hier würde ich zu einem FB raten, in dem du die Zählfunktion "von Hand" mit ADD- Befehl und lokalen Variablen realisierst (ich hab noch nie einen Siemens- Zähler verwendet, die Add- Funktion geht genauso)
    Ritterlicher Verfechter der nachvollziehbaren und übersichtlichen Programmierung

    >>> Das Problem steht zu 95% vor der Maschine

    Meine Umgebung (meistens): Win XP, S7 V5.4 SP5, 840D sl, Transline

  3. #13
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Wie wärs, wenn du deine Lösung mal präsentierst, damit wir dir besser helfen können?!
    Vielleicht wirds dann einfacher für dich und uns.
    Ich schätze mal, dass der TE von den parametrierbaren Bausteinen noch nicht wirklich Ahnung hat.
    Und von den temporären bzw. statischen Variablen genauso wenig.

    Es ist vielleicht einfacher dir das anhand deines Programmes zu erklären.

    Gruß wolder
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  4. #14
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Zitat Zitat von Pittie Beitrag anzeigen
    egal ob FC oder FB, wenn du dort einen Zähler, z.B. Z10 drin hast, zählt dieser jedes mal hoch,wenn er im FC angesteuert wird. Sprich wenn du den FC in 1 Zyklus 5x aufrufst und pro Aufruf dieser einmal hochzählt, dann hast du am Ende des Zyklus eine 5 drin stehen, obwohl du dort für jeden FC eine 1 erwartest. Hier würde ich zu einem FB raten, in dem du die Zählfunktion "von Hand" mit ADD- Befehl und lokalen Variablen realisierst (ich hab noch nie einen Siemens- Zähler verwendet, die Add- Funktion geht genauso)
    Dann kommt noch erschwerend das Flanken-Thema beim Zähler dazu, da du ja den gleichen Zähler mehrmals pro Zyklus bearbeitest.
    mfG Aventinus

  5. #15
    EDirk ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.11.2011
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So ich habe mal den besagten FC angehangen.

    Folgende Segmentanzeige soll damit betrieben werden.
    http://www.link-systemtechnik.com/pd...ser_Anstrg.pdf

    Programmerklärung:
    Uebergabewert :fc 105 gibt realwert der verarbeitet wird
    M 80.2 gibt die Freigabe für das Display das es 20 Signale (über clk) abwarten soll
    M100.0: wird als Taktmerkerbit benutzt
    M 61.3: ist die ausgesuchte Stelle wo immer das Signal abgefragt wird
    Punkt setzen: damit definiere ich wo ich den Punkt im Display setzen möchte.

    Schonmal danke für die vielen Anregungen.

    Dirk
    Angehängte Dateien Angehängte Dateien
    • Dateityp: pdf FC1.pdf (13,3 KB, 25x aufgerufen)

  6. #16
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.628
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Du verwendest in dem Baustein mehrere Dinge, deren Zustand Du im nächten Zyklus wieder brauchst:
    • SR-Glieder (hattest Du meinen Beitrag bezüglich SR-Glieder nicht gelesen?)
    • Zähler
    • Flankenauswertung
    • SHL_DW
    Die Ergebnisse dieser Operationen benötigst Du für den nächsten Durchlauf.
    Wäre es wirklich nur der Zähler gewesen, hätte man den bequem auf einen IN legen können aber so empfehle auch ich Dir, einen FB zu verwenden.
    Gruß
    Michael

  7. #17
    Registriert seit
    26.05.2009
    Beiträge
    541
    Danke
    35
    Erhielt 78 Danke für 69 Beiträge

    Standard

    Nur mal so als Hinweis:
    - Verwende einen FB dafür
    - Lies dich über parametrierbare Bausteine ein
    - Benutze keine festen Größen

    Erst dann hast du einen Baustein, den du öfters verwenden kannst.
    Ja ich weiß. Auch mit festen Größen kann man einen wiederverwendbaren Baustein erstellen, aber es ist besser keine festen Größen zu haben.

    Der M80.2 wird nur durchgeschleift. Was macht das für einen Sinn?
    Genau wie der M61.5!

    MD40 und MD50 kannst du beruhigt in Temporäre Daten ändern.
    MD60 kapier ich noch nicht.
    Außerdem MD60 -> M61.5 !!!! MD60 -> M60.0-M63.7
    Die Flankenmerker in statische ändern...

    Es gibt noch viel zu tun!

    Gruß wolder

    P.S.: Warum benutzt du den DEZ-Ausgang und nicht den DUAL-Ausgang des Zählers? Dann könntest du auch auf 20 Vergleichen. Das MW25 (ungerade?!?) kannst du auch in eine temporäre Variable ändern.
    Geändert von wolder (21.11.2011 um 16:21 Uhr)
    Wenn du denkst du denkst, dann denkst du nur, dass du denkst, denn beim Denken der Gedanken, kommt dir der Gedanke, dass das Denken der Gedanken ein gedankenloses Denken ist

  8. #18
    EDirk ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    02.11.2011
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok ich bin gerade dabei alles im FB anzupassen.

    Der M80.2 ist nur durchgeschleift damit ich alle 3 Ausgänge am Anfang des Programmes habe. Ist halt für meine Übersicht.

    M 61.5 ( M 61.3 meinst du wohl) ist ein Abgriff vom MD 60. Ich möchte immer eine Stelle am Ausgang ausgeben und das ist in dem Fall der M 61.3 . Das Schieberegister schiebt ja immer um eins Weiter und so ändert sich der Wert immer entsprechend.

    Wenn ich jetzt eh einen FB Programmiere kann ich ja gar keine Temp benutzen.Also müsste ich die alle als STAT dann angeben.

    Warum ich jetzt den DEZ Ausgang genommen hab weiß ich nicht , wohl etwas zu umständlich Gedacht.


    Wenn ich jetzt alles in STAT Werte umändere, wie kann ich das dann mit dem MD 60 realisieren? Ich möchte den 32 Bit Wert speichern und eine bestimmte Stelle (M61.3) dann aus dem DB heraus abfragen und Ausgeben.

  9. #19
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.628
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Zitat Zitat von EDirk Beitrag anzeigen
    Wenn ich jetzt eh einen FB Programmiere kann ich ja gar keine Temp benutzen.Also müsste ich die alle als STAT dann angeben.
    Hä? Wer hat Dir denn das erzählt? Natürlich gehen TEMP in einem FB.
    Zitat Zitat von EDirk Beitrag anzeigen
    Wenn ich jetzt alles in STAT Werte umändere, wie kann ich das dann mit dem MD 60 realisieren? Ich möchte den 32 Bit Wert speichern und eine bestimmte Stelle (M61.3) dann aus dem DB heraus abfragen und Ausgeben.
    Solltest Du mit indirekter Adressierung machen (kann man auch einfach mit absoluter Adressierung machen, sollte man aber nicht). Ich habe leider gerade wenig Zeit, sonst würde ich Dir auch ein Beispiel schreiben.

    Ich frage mich gerade, ob nicht besser erstmal einen Blick in diverse Schulungsunterlagen werfen solltest.
    http://www.automation.siemens.com/mc...n/Default.aspx
    Gruß
    Michael

  10. #20
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von EDirk Beitrag anzeigen
    Wenn ich jetzt alles in STAT Werte umändere, wie kann ich
    das dann mit dem MD 60 realisieren? Ich möchte den 32 Bit Wert speichern und
    eine bestimmte Stelle (M61.3) dann aus dem DB heraus abfragen und
    Ausgeben.
    wie wärs mit Doppelwort laden, Maskieren und vergleichen?

    Code:
        L     #VariableDW
        L     2#10000000000000000000 // Wenn ich mich nicht verzählt hab ;-)
        UD 
        U     >0
        =     #VariableBool
    Geändert von Aventinus (22.11.2011 um 10:44 Uhr)
    mfG Aventinus

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 28.02.2011, 12:11
  2. Antworten: 6
    Letzter Beitrag: 05.07.2007, 21:59
  3. Steuerung einer Mühle-über SPS oder PC ?
    Von walterschuch im Forum Simatic
    Antworten: 38
    Letzter Beitrag: 01.04.2006, 14:49
  4. B & R über serielle Schnittstelle programmieren
    Von Kobold im Forum Sonstige Steuerungen
    Antworten: 12
    Letzter Beitrag: 18.11.2005, 12:49
  5. Programmieren einer S7 über Ethernet
    Von Balou im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.08.2004, 18:00

Lesezeichen

Berechtigungen

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