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

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

Thema: Soll ist Vergleich von Bedingungen

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

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo miteinander,

    die Sufu hat mir nicht passendes rausgeworfen. (oder ich hab nicht nach den richtigen Begriffen gesucht)

    Ich habe folgendes Problem, bzw. bin auf der Suche nach einer Idee wie man etwas realisieren könnte:
    Code:
    CASE #Schrittnummer OF
        0:
            #xBedingung := "Tag_1" AND "Tag_2";
            IF #xBedingung THEN
                #Schrittnummer := #Schrittnummer + 1;
            END_IF;
        1:
            #xBedingung := "Tag_1" AND NOT "Tag_2";
            IF #xBedingung THEN
                #Schrittnummer := #Schrittnummer + 1;
            END_IF;
        2:
            #xBedingung := NOT "Tag_1" AND "Tag_2";
            IF #xBedingung THEN
                #Schrittnummer := #Schrittnummer + 1;
            END_IF;
    END_CASE;
    Jetzt ist es so dass wenn die Bedingung ein paar Sekunden nicht erfüllt ist soll eine Fehlermeldung auftauchen. In dieser sollen alle Bedingungen stehen die NICHT erfüllt sind. Und da gehts bei mir los. Den Timeout habe ich schon realisiert, aber wie bekomme ich es hin zu prüfen welche Bedingung gerade fehlt damit es nicht weiter geht?
    Die gezeigte Schrittkette ist nur Beispielhaft. Je nach Schritt hab ich bis zu 10 Bedingungen welche erfüllt sein müssen.

    Aktuell benutze ich TIA V13 mit einer 1500 SPS

    Bin über jeden Vorschlag dankbar
    Zitieren Zitieren Gelöst: Soll ist Vergleich von Bedingungen  

  2. "
    Zitat Zitat von amantido Beitrag anzeigen
    @miasma
    Hab mir den mal angeschaut. Leider bekomme ich da noch nicht heraus welche der Bedinungen fehlt. Ich kann da nur Texte hinzufügen. Das bringt mich leider aber noch nicht ans Ziel
    Symbolnamen können mit GetSymbolName ausgelesen werden und problemlos an einen Program_Alarm übergeben werden ."


  3. #2
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.240
    Danke
    193
    Erhielt 201 Danke für 185 Beiträge

    Standard

    Nicht erfüllte Bedingungen sind doch
    Code:
    NOT "TAG_x"
    oder sehe ich das falsch?

    Also werden alle nichterfüllten Bedingungen auf einen HMI-Text verlinkt, der dann angezeigt wird auf dem Fehlerbild.

  4. #3
    Registriert seit
    16.07.2009
    Beiträge
    61
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    NOT Tag_X bedeutet dass der Operand auf 0 sein muss. Also hab ich in dem Fall einen Fehler wenn dieser auf 1 ist.

    Zitat Zitat von weißnix_ Beitrag anzeigen
    Also werden alle nichterfüllten Bedingungen auf einen HMI-Text verlinkt, der dann angezeigt wird auf dem Fehlerbild.
    darum gehts eben, wie bekomme ich den Ausdruck zu einem Text hin?

  5. #4
    Registriert seit
    30.08.2010
    Ort
    Östereich
    Beiträge
    1.419
    Danke
    481
    Erhielt 211 Danke für 186 Beiträge

    Standard

    Machst halt einen DB und da schreibst du deine Variable Invertiert rein
    Elektrotechnik und Elektronik funktioniert mit Rauch (Beweis: Tritt Rauch aus, funktioniert auch das Bauteil nicht mehr)

  6. #5
    Registriert seit
    25.01.2008
    Ort
    Hamburg
    Beiträge
    265
    Danke
    14
    Erhielt 69 Danke für 38 Beiträge

    Standard

    Kannst Du mal sagen welche CPU und welche HMI Du benutzt. Das wäre sehr hilfreich.

  7. #6
    Registriert seit
    16.07.2009
    Beiträge
    61
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von winnman Beitrag anzeigen
    Machst halt einen DB und da schreibst du deine Variable Invertiert rein
    hä?


    Zitat Zitat von miasma Beitrag anzeigen
    Kannst Du mal sagen welche CPU und welche HMI Du benutzt. Das wäre sehr hilfreich.
    CPU ist eine aus der 1500er Serie, genauer eine 1513F. Als HMI kommt ein TP1200 Comfort rein

  8. #7
    Registriert seit
    24.03.2010
    Ort
    Westerwald
    Beiträge
    155
    Danke
    39
    Erhielt 13 Danke für 7 Beiträge

    Standard

    Wir haben bei manchen Anlagen Synoptiken. Ich denke das kommt dem was Du vor hast recht nahe.
    Es läuft nicht über Meldungen sondern Visualisiert die Bedingungen:

    Code:
      _|_
      |__|      Steuerspannung ein
      _|_
      |__|      Motorschutz io
      _|_
      |__|      PTC io
      _|_
      |__|      Freigabe von nachgeschaltetem Antrieb
       |
     __|__
    |____|   Freigabe für Antrieb XY
       |
    Ist also eigentlich eine UND Verknüpfung im KOP- Stil. Die unterste Spule wird Grün
    sobald alle oberen Bedingungen erfüllt sind.
    Ich hatte es damals so umgesetzt, dass ich alle Bedingungen in einem DB abgelegt habe,
    die UND Verknüpfung für die Spulen Umschaltung hatte ich per Script gemacht.

    Nachteil an der ganzen Geschichte ist das es sehr aufwendig ist.
    Gruß Florian

    Programmierer in sechster Generation

  9. #8
    Registriert seit
    21.11.2014
    Beiträge
    222
    Danke
    7
    Erhielt 28 Danke für 26 Beiträge

    Standard

    Es muss ja eigentlcih nur ein Timer laufen, der and ie bedingungen geknüpgt ist. der Timer gibt dann nach Zeit x die Meldung.

    Sowas würde ich nicht in SCL, sondern in Graph machen, weil das da einfach schon da ist. Man muss das Rad ja nicht immer neu erfinden.

    EDIT:

    Code:
    #xBedingung := "Tag_1" AND "Tag_2";
            IF #xBedingung THEN
                #Schrittnummer := #Schrittnummer + 1;
            END_IF;
    Die erste Zeile ist überflüssig.
    Geändert von Christmaspoo (02.09.2016 um 14:53 Uhr)

  10. #9
    Registriert seit
    21.02.2014
    Ort
    Sachsen-Anhalt
    Beiträge
    1.240
    Danke
    193
    Erhielt 201 Danke für 185 Beiträge

    Standard

    @amantido
    Du schriebst:
    ...soll eine Fehlermeldung auftauchen. In dieser sollen alle Bedingungen stehen die NICHT erfüllt sind...
    Davon ausgehend: Du hast einen Timer - ist erledigt.
    Wenn Timer abgelaufen - Flag setzen.
    Wenn Flag gesetzt = Fehler - mir war so, als wäre das erledigt.
    Jetzt also einfach einen Fehlerbildschirm aufrufen (automatisch mit dem Flag oder manuell) und alle Tags, die 0 sind anzeigen.
    Dazu musst Du die Tags im einfachsten Falle invertiert ( NOT TAG_x ) in einen weiteren Merker schreiben, der jeweils mit dem entsprechenden Meldetext verknüpft ist.
    Meldetexte werden m.W. im Panel fest hinterlegt.

    Soweit die Theorie. In der Siemens Praxis stecke ich nicht (mehr) drin. Aber mir war in älteren Panels das so geläufig, das ich Meldetexte Bitweise einem Wort zuweisen konnte.
    Übrigens: Die Auswertung auf Fehler ist in meiner Welt ein separater Vergleich, aslo NOT TAG_x

    Etwas ausgefeilter wäre es, nur die Tags anzuzeigen, die zur Erfüllung des jeweiligen Schritt's der Statemachine erforderlich sind.

    @Christmaspoo Das mit der überflüssigen Zuweisung war mir auch aufgefallen, ich hatte mich aber entschieden es als Form der besseren Codelesbarkeit zu interpretieren.
    Geändert von weißnix_ (02.09.2016 um 15:34 Uhr)

  11. #10
    Registriert seit
    25.02.2010
    Beiträge
    570
    Danke
    34
    Erhielt 110 Danke für 100 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo
    Ich würde es so machen:
    Code:
    CASE #Schrittnummer OF
        0:
            #xBedingung := "Tag_1" AND "Tag_2";
            IF #xBedingung THEN
                #Schrittnummer := #Schrittnummer + 1;
            else
    
    ein Fehler - Wort basteln in dem jede Bediengung ein Bit belegt.
    
            END_IF;
        1:
            #xBedingung := "Tag_1" AND NOT "Tag_2";
            IF #xBedingung THEN
                #Schrittnummer := #Schrittnummer + 1;
            END_IF;
        2:
            #xBedingung := NOT "Tag_1" AND "Tag_2";
            IF #xBedingung THEN
                #Schrittnummer := #Schrittnummer + 1;
            END_IF;
    END_CASE;
    
    Ist Bediengung = 0 und TimeOut abgelaufen
    Habe ich aus Schrittnummer und Fehlerwort ein genaues Abbild der Bedingungen zum Anzeigen oder sonst was.
    Holger

    In dem Fall wäre die erste Zeile auch nicht über
    Geändert von holgermaik (02.09.2016 um 17:04 Uhr)

Ähnliche Themen

  1. Step 5 S5 Vergleich von Integer Werten
    Von Holle-52499 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 21.03.2016, 18:06
  2. Antworten: 23
    Letzter Beitrag: 17.10.2015, 22:49
  3. Vergleich von Real-Zahlen
    Von Tobi_90 im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 21.04.2012, 21:36
  4. Ist Word soll Double
    Von geduldiger im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 30.05.2007, 09:08
  5. vergleich von daten in einem DB
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 20.07.2006, 08:12

Stichworte

Lesezeichen

Berechtigungen

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