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

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

Thema: Problem mit S7-Micro/Win S7-200

  1. #1
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich arbeite normalerweise mit Beckhoffsteuerungen und habe nun eine S7-200. Dabei verwende ich das Programm S7-Micro/Win V4.0.


    Ich hab mir ein Stromstoßrealis gebastelt und die einzelnen Bausteine mit Symbolen versehen welche ich oben in einer Symboltabelle eingetragen wurden.

    #Output als IN_OUT in Bool
    #Input als IN in Bool
    und einen Hilfsbaustein als
    #Hilfsmerker1 als Temp in Bool

    Frage 1: Warum muss ich bei einer Setzen-Spule oben den Symbolnamen angeben und unten noch mal irgendwas, und was ist das überhaupt was ich da angeben muss

    Das Stromstoßrelais hab ich in eine Bibliothek gepresst und verwende es in meinem Hauptprogramm.
    Das funktioniert auch solange wunderbar, bis ich die Bibliothek das zweite mal verwende. Hier beeinflussen sich die beiden Funktionen untereinander. Scheinbar wird keine eigene Instanz des Stromstoßrelais erstellt.

    Frage 2: Wo liegt hier der Fehler, wie kann ich eine Bibliothek in einem Programm mehrfach verwenden?

    Ich hoffe das ihr mir helfen könnte und bedanke mich schon mal im voraus,
    freundliche Grüße,

    Andre Wagner
    Zitieren Zitieren Problem mit S7-Micro/Win S7-200  

  2. #2
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von Parallax Beitrag anzeigen
    Frage 1: Warum muss ich bei einer Setzen-Spule oben den Symbolnamen angeben und unten noch mal irgendwas, und was ist das überhaupt was ich da angeben muss
    Mit der Zahl drunter wird angegeben, wieviele Bits ab der angegebenen Position gesetzt werden sollen. Man kann also mehrere Bits in einem Rutsch setzen oder rücksetzen.


    Zitat Zitat von Parallax Beitrag anzeigen
    Ich hab mir ein Stromstoßrealis gebastelt und die einzelnen Bausteine mit Symbolen versehen welche ich oben in einer Symboltabelle eingetragen wurden.

    #Output als IN_OUT in Bool
    #Input als IN in Bool
    und einen Hilfsbaustein als
    #Hilfsmerker1 als Temp in Bool

    Frage 2: Wo liegt hier der Fehler, wie kann ich eine Bibliothek in einem Programm mehrfach verwenden?
    Du mußt den Hilfsmerker über IN/OUT nach außen führen und global z.B. in einer Variablen Vx.x speichern. Die Temp-Variable wird mit dem Beenden der SBR wieder gelöscht und ist höchstens noch zufällig beim nächsten Aufruf vorhanden, weil sie nicht überschrieben wurde. Dafür gibt's aber keine Garantie.

  3. #3
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ok, danke... das mit der Zahl sei schon mal geklärt...

    Nur den Rest hab ich net ganz verstanden...

    Also... Ich mach das ganze in KOP und mein Stromstoßrelais schaut in etwas so aus:

    ich habe einen Schließerkontakt welchem ich das Symbol #Input zugewiesen habe. Dies ist von Typ IN als Bool

    weiterhin eine Spule, welcher ich das Symbol #Output zugewiesen haben. Dies ist von Typ IN_OUT und auch Bool

    Wenn ich das ganze nun als Bibliothek erstelle erhalte ich einen Funktiosblock mit dem den Kontakten EN, Input und Output...
    EN muss immer 1 sein, das ist klar. Wenn ich auf Input nun einen Pulse gebe wechselt Output seinen Zustand.
    Das erreiche ich durch eine Konstruktion mit Öffnern und Schließern welchen ich das Symbol #Hilfsmerker zugewiesen hab, als TEMP und BOOL...
    Also Temp darf ich scheinbar nicht nehmen, da sonst der Status des Hilfsmerkers nicht gespeichert wird, was soll ich dann nehmen? Wenn ich IN_OUT nehme, erhalte ich einen weiteren Kontakt an meinem Funktionsblock, mit was soll ich diesen beschalten?

    So und nun das Hauptproblem... Füge ich diesen Funktionsblock 2x ein, wechselt der Ausgang von beiden Funktionsblöcken, egal bei welchem ich Input beschalte... Scheinbar wird die Funktion nur 1x hinterlegt und deswegen beeinflussen sich die beiden Funktionsblöcke gegenseitig...

    Mfg
    Parallax

  4. #4
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Das Problem ist einfach, das 'ne SBR nichts intern speichert. Wenn die SBR geschlossen wird, vergißt sie die Zustände ihrer Ausgänge und Temp-Variablen. Du mußt in jedem Zyklus wieder bei 0 beginnen. Wenn Du eine SBR nur ein einziges Mal benutzt, kannst Du Glück haben, das die benutzten Speicherbereiche bis zum nächsten Zyklus erhalten bleiben. Dieses Glück hast Du beim mehrfachen Aufruf einer SBR eigentlich nie.

    Poste bitte mal deinen SBR-Code und ich schau's mir mal an. Dazu die Ansicht einfach auf AWL umschalten und kopieren. Oder das ganze als AWL-Quelle exportieren.

  5. #5
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    So sieht ein Stromstoßschalter in einer SBR aus, den man mehrfach in einem Zyklus benutzen kann:
    Code:
    SUBROUTINE_BLOCK Stromstoßschalter:SBR0
    TITLE=
    
    VAR_INPUT
        Toggle:BOOL;
    END_VAR
    
    VAR_IN_OUT
        Output:BOOL;
    END_VAR
    
    
    BEGIN
    
    Network 1 // Stromstoßschalter
    // XOR-Verknüpfung von Toggle und Output
    // Toggle wird außerhalb der SBR mit einer Flanke versehen
        LD     L0.0
        UN     L0.1
        LDN    L0.0
        U      L0.1
        OLD
        =      L0.1
    
    END_SUBROUTINE_BLOCK
    Die Flanke für Toggle muß außen erzeugt werden, damit der Umschaltimpuls nur einen Zyklus anliegt. Sonst schaltet der Stromstoßschalter in jedem Zyklus, in dem Toggle auf 1 ist, ein und wieder aus.
    Soll die Flanke auch in die SBR braucht man noch eine 2. IN/OUT-Variable für den Flankenmerker. Die Flankenmerker von MicroWin kann man dann nicht nutzen, da sie nicht mehrfach aufrufbar sind. Wenn die Flanke in der SBR detektiert wird, kann man Taster direkt auf die SBR geben.



    PS: Und weil das so einfach ist, lohnt es sich in meinen Augen eigentlich nicht, daraus 'ne Bibliothek zu machen.
    Geändert von hucki (06.03.2013 um 19:15 Uhr)

  6. #6
    Registriert seit
    20.04.2007
    Beiträge
    81
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hm,

    leider hab ich Micro/Win hier nicht am Rechner... Aber ich hab das Programm mal aufgemalen, is ja nur ne Kleinigkeit:

    DSC_0167[1].jpg

    Kannst ja mal anschauen... is in 5 min programmiert...

    Danke für die Mühe,

    Grüße,

    Andre

  7. #7
    Registriert seit
    03.07.2006
    Beiträge
    1.725
    Danke
    515
    Erhielt 303 Danke für 223 Beiträge

    Standard

    Geändert von UniMog (06.03.2013 um 19:40 Uhr)

  8. Folgender Benutzer sagt Danke zu UniMog für den nützlichen Beitrag:

    Parallax (06.03.2013)

  9. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Also wie gesagt, so'ne SBR hat kein Gedächtnis!

    Auch wenn Du Deine Hilfsmerker setzt, da sie nicht außerhalb der SBR gespeichert werden, sind sie beim nächsten Aufruf der SBR in keinem definiertem Zustand. Bei einmaligem Aufruf der SBR können sie noch den Zustand vom vorigen Zyklus haben, beim mehrfachen Aufruf werden sie unter Garantie wieder überschrieben.

    Wenn Du die Hilfsmerker als IN/OUT deklarierst, wird der Zustand außerhalb der SBR gespeichert (Out) und beim nächsten Aufruf der SBR wieder zurückgeschrieben (IN). Der Speicher außerhalb kann allerdings auch außerhalb der SBR manipuliert werden.
    Geändert von hucki (06.03.2013 um 19:37 Uhr) Grund: Legasthenie

  10. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Mein Programm von oben (PS: Nicht das von Siemens) sieht so aus:



    Die Erklärung findest Du in der FAQ.
    Geändert von hucki (06.03.2013 um 20:05 Uhr) Grund: PS

  11. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    Parallax (06.03.2013)

  12. #10
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von hucki Beitrag anzeigen
    Mit der Zahl drunter wird angegeben, wieviele Bits ab der angegebenen Position gesetzt werden sollen. Man kann also mehrere Bits in einem Rutsch setzen oder rücksetzen.
    Zitat Zitat von Parallax Beitrag anzeigen
    Aber ich hab das Programm mal aufgemalen, is ja nur ne Kleinigkeit:


    Dein letztes Netzwerk wäre ein Beispiel dafür. So werden L0.2 und L0.3 gemeinsam zurückgesetzt:

Ähnliche Themen

  1. Installationsproblem mit Step 7 Micro Win
    Von BavariaBlue im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 01.07.2012, 19:26
  2. Übertragung mit micro win
    Von chris25 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 05.03.2012, 22:10
  3. Antworten: 7
    Letzter Beitrag: 25.05.2011, 17:15
  4. Mittelwetbildung mit S7 micro win / S7 216
    Von musikmaker im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 14.01.2007, 21:46
  5. Problem mit S7 micro Win
    Von Oeder im Forum PC- und Netzwerktechnik
    Antworten: 4
    Letzter Beitrag: 07.10.2004, 18:20

Lesezeichen

Berechtigungen

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