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

Ergebnis 1 bis 9 von 9

Thema: Schrittkette mit AUTO/HALBAUTO

  1. #1
    Registriert seit
    03.11.2005
    Ort
    Völkermarkt
    Beiträge
    96
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo!

    So hab nun mal wieder was für die hellen
    Köpfe hier im Forum!


    Muss eine Schrittkette für eine Entsalzungsanlage
    schreiben. NICHT MIT GRAPH!

    Diese hat mehrere Schritte und die Betriebsarten
    Automatik und Halb-Automatik.
    Es muss jeder Zeit zwischen den beiden
    Betriebsarten umschaltbar sein.

    Mein Problem besteht in der Halb-Automatik.

    Mann kann über eine Visu die Schritte mittels
    Bit/Schritt vorwählen und dann mittels Schalter
    durchfahren.

    In meinem Programm sieht es jetzt so aus:
    Wenn ich mehrere Schritte vorgewählt habe und
    den Halb-Automatik Modus starte, werden alle
    Schritte die Gewählt sind gestartet!



    Wie kann ich den Halb-Auto Betrieb realisieren?



    Im Anhang noch ein Auszug aus dem Programm (1Schritt)



    danke im vorraus ... mfg Andreas
    Angehängte Grafiken Angehängte Grafiken
    Linux - This is freeing what I am!
    Zitieren Zitieren Schrittkette mit AUTO/HALBAUTO  

  2. #2
    Registriert seit
    29.01.2005
    Beiträge
    277
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo!

    Zitat Zitat von apachler
    Wenn ich mehrere Schritte vorgewählt habe und
    den Halb-Automatik Modus starte, werden alle
    Schritte die Gewählt sind gestartet!
    ...hat es denn einen Grund, das bei der Schritkette mehrere Schritte vorgewählt sind? Das würde ja dann in gewisser Weise ein paralleles Bearbeiten nach sich ziehen - es sei denn die Startbedingungen sind unterschiedlich...

    Wenn die Schritte, alle der Reihe nach, im Automatikbetrieb laufen, dann sollte eigentlich eine Oderverknüpfung in der Art

    U #Automatik
    O
    U #Halbautomatik
    U #Halbautomatik_Freigabe

    reichen... denke ich zumindest... natürlich für jeden Schritt...
    Bei einem Umschalten in Hand setze ich, wenn möglich, immer die Automatikschrittkette komplett zurück. Natürlich muss dann alles erst in Grundstellung gefahren werden, bevor der Automatikzyklus erneut gestartet werden kann... Immer geht das natürlich nicht - kommt ein wenig auf die Problemstellung an...

    Viele Grüße, Tobias

  3. #3
    Registriert seit
    03.11.2005
    Ort
    Völkermarkt
    Beiträge
    96
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Tobias, Hallo alle!

    Es sollen alle Schritte der Reihe nach abgelaufen werden
    die gewählt sind.

    Code:
          U(    
          U     "WEITER_SEQ_1_0"
          U     "AUTO"
          O     
          U     "SEQ_2_0"
          U     "HALB_AUTO"
          )     
          UN    "FERTIG_SEQ_2_0"
          UN    "HAND"
          S     "START_SEQ_2_0"

    Jedoch werden alle angewählten Schritte parallel gestartet das ich jedoch nicht will.

    Am oberen Code sieht man:
    SEQ_2_0 Schritt-Vorwahl Halb-Auto
    HALB_AUTO Halb-Automatik Betrieb

    Da jedoch in jeder Anweisung für den Start der Kette
    die beiden Abgefragt werden, ergibt es sobalb
    ich auf Halb-Auto schalte und der Schritt vorgewählt ist
    "1" und der Schritt wird gestartet!

    Wie kann ich das ganze besser lösen?


    mfg andreas
    Linux - This is freeing what I am!

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Wenn ich das richtig verstanden habe, soll immer nur ein Schritt aktiv sein, die Schritte, welche überhaupt abgearbeitet werden sollen, kann man anwählen.
    Ein nachfolgender Schritt muß immer nachsehen, ob der vorhergehende Schritt ordnungsgemäß abgeschlossen wurde. Ist ein Schritt abgewählt, wird er trotzdem durchlaufen, aber keine Aktion in ihm ausgeführt, am Ende als fertig abgearbeitet gekennzeichnet, so daß der nächste Schritt weitermachen kann. Begonnen wird dann immer bei Schritt 1, oder bei einem beliebigen Einsprungpunkt. Überhaupt würde ich mir überlegen, ob ich das ganze vielleicht mit einem Sprungverteiler realisiere.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    Registriert seit
    03.11.2005
    Ort
    Völkermarkt
    Beiträge
    96
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @ralle

    erstmal danke für deine antwort!


    leider ist das auch net das richtige!

    hier mal der auszug aus dem pflichtenhelft:
    Halb-Auto Betrieb erlaubt die aktivierung eines Beliebigen
    Betriebsschrittes ohne jede automatische Schritt-Fortschaltung und unabhängig von der verfahrenstechnisch erforderlichen Reihenfolge.

    Im Anlagenbild der Verfahrensstufe ist ein Wahlschalter mit der Möglichkeit die Betriebsart vorzuwählen visualisiert.
    Ein weiterer Wahlschalter erlaubt die Wahl eines beliebigen Betriebsschrittes.


    Wie mache ich das mit den sprungverteilern??


    danke!!! ... mfg Andreas
    Linux - This is freeing what I am!

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Dann ist eigentlich der Sprungverteiler die Wahl, abhängig von der Zahl im Schritt-Byte wird zu der entsprechenden Sprungmarke verzweigt. Für eine Schrittkette mit 20 Schritten existieren 20 Sprungmarken. An den Sprungmarken kannst du dann machen was zum Schritt gehört. Eine Schrittfortschaltung erfolgt, indem man das Schritt-Byte um 1 erhöht. Das unterbleibt in der Halbautomatik. In einem Schritt passiert immer folgendes:

    1. Ansteuern einer Aktion (z.Bsp. Merker setzen, mit dem ein Zylinder verfahren werden soll.
    2. Abfrage der Endlage des Zylinders, wenn er also seine Verfahrbewegung durchgeführt hat, dann wird die Bedingung True.
    3. Wenn die Bedingung True, dann Schrittweiterschaltung zum nächsten Schritt.

    Für die Schrittweiterschaltung habe ich einen eigenen Baustein. Im Schritt wird nur ein Weiterschaltbit gesetzt, den Rest übernimmt der Baustein. So kann man auch die Anfangsbedingungen für den Startschritt (Z.Bsp. Grundstellung) vor dem Start der Schrittkette kontrollieren etc.

    In Halbautomatik kann ein beliebiger Schritt an Hand der Schrittnummer gewählt werden.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #7
    Registriert seit
    03.11.2005
    Ort
    Völkermarkt
    Beiträge
    96
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard

    @ralle

    danke ...

    was mache ich aber wenn ich mehrere schritte vorwählen können muss?


    kannst du mir den baustein zukommen lassen,
    oder is der closedsource?


    mfg
    Linux - This is freeing what I am!

  8. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Ein weiterer Wahlschalter erlaubt die Wahl eines beliebigen Betriebsschrittes.
    Man kann immer nur einen Schritt vorwählen und diesen einen Schritt kann man ausführen lassen.

    Hier mal ein Beispiel füer einn Sprungverteiler mit Schrittweiterschaltung ohne eigenen FC.
    Die Schrittweiterschaltung kann man noch von der Automatik etc. abhängig machen.

    Code:
     
     
    ...
    VAR
      Stepcounter : BYTE ; 
     
     
    ...
     
    NETWORK
    TITLE =Anlauf?, Datenaustausch aktiv?
          U     #Anlauf; 
          S     #Anlauf_Stat; 
          U     #Aktiv; 
          S     #Aktiv_Stat; 
          UN    #Aktiv_Stat; 
          BEB   ; 
     
    ...
     
    NETWORK
    TITLE =Sprungliste für kleines Einlesen der Daten
    KLDL: NOP   0; 
          L     #Stepcounter; 
          SPL   ALE2; 
          SPA   END; 
          SPA   T3S0; //Tab 3 Seg 0
          SPA   T5S0; //Tab 5 Seg 0
    ALE2: SPA   END; 
     
    NETWORK
    TITLE =Tabelle 3 Segment 0 auslesen
    T3S0: NOP   0; //;
          L     3; 
          T     #Send.Tabellennummer; 
          L     0; 
          T     #Send.Segmentnummer;  //hier stehen die Befehle, die ausgeführt werden sollen (könnte auch S M 100.0 lauten)
    //;
          U(    ;          //hier wird kontrolliert, ob die obige Aktion ausgeführt wurde (könnte auch U E 20.0 für eine Endlage lauten)
          L     #Recive.Tabellennummer; 
          L     #Send.Tabellennummer; 
          ==I   ; 
          )     ; 
          U(    ; 
          L     #Recive.Segmentnummer; 
          L     #Send.Segmentnummer; 
          ==I   ; 
          )     ; 
          SPBN  BUSY;                //noch nix passiert, ab zur Warteschleife
          CALL SFC   20 (
               SRCBLK                   := P#DIX 50.0 BYTE 12,
               RET_VAL                  := #Ret_Val_Temp,
               DSTBLK                   := #Tabelle_3.Segment_0);//P#DIX 148.0 BYTE 12     //Tabelle 3 Segment 0
          L     #Ret_Val_Temp; 
          L     0; 
          <>I   ; 
          SPB   ERR;                 //SFC 20 hatte Fehler --> Error-Ausgabe etc.
          SPA   NSTP;              //nächster Schritt
     
    NETWORK
    TITLE =Tabelle 5 Segment 0 auslesen
    T5S0: NOP   0; //;
          L     5; 
          T     #Send.Tabellennummer; 
          L     0; 
          T     #Send.Segmentnummer; 
    //;
          U(    ; 
          L     #Recive.Tabellennummer; 
          L     #Send.Tabellennummer; 
          ==I   ; 
          )     ; 
          U(    ; 
          L     #Recive.Segmentnummer; 
          L     #Send.Segmentnummer; 
          ==I   ; 
          )     ; 
          SPBN  BUSY; 
          CALL SFC   20 (
               SRCBLK                   := P#DIX 50.0 BYTE 12,
               RET_VAL                  := #Ret_Val_Temp,
               DSTBLK                   := #Tabelle_5.Segment_0);//P#DIX 190.0 BYTE 12     //Tabelle 5 Segment 0
          L     #Ret_Val_Temp; 
          L     0; 
          <>I   ; 
          SPB   ERR; 
          SPA   END; 
     
    NETWORK 
    TITLE = Schrittkettenlogistik
    END:  NOP   0; 
          SET   ; 
          R     #fn_Busy; // set function ready
          L     0; 
          T     #fn_Error; // set no error
          L     1; 
          T     #Stepcounter; 
          SPA   PGEM; 
    //;
    ERR:  L     0; // reset statemachine
          T     #Stepcounter; 
          SET   ; 
          R     #fn_Busy; 
          R     #Anlauf_Stat; 
          SPA   PGEM; 
    //;
    NSTP: NOP   0; 
          L     #Stepcounter; 
          INC   1; // go to the next Step
          T     #Stepcounter; 
          SPA   PGEM; 
    BUSY: L     0; // set no error
          T     #fn_Error; 
          SET   ; 
          S     #fn_Busy; // set function busy
    //;
    PGEM: NOP   0;
    BUSY wird angesprungen, solange die Fertig-Bedingung des Schrittes nicht erfüllt ist
    NSTP wird angesprungen, wenn die Bedingung erfüllt ist und der nächste Schritt folgen soll
    END wird angesprungen, wenn die Schrittkette fertig ist, oder die Schrittnummer irregulär ist (zu groß, für Anzahl der Sprungmarken)

    Was in den Schritten steht ist dir überlassen, auch die Unterscheidung Auto (Alle Schritte nacheinander abarbeiten) Halbauto (angwählten Schritt abarbeiten) sowie die entsprechenden Freigaben dafür sind hier nicht dabei, da in der o.g. Anwendung nicht nötig gewesen.

    Mein Schritt-FC alleine würde dich nicht viel weiterbringen, da hängt das ganze System dran und das kann ich leider nicht von mir aus weitergeben.
    Geändert von Ralle (07.03.2006 um 11:32 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  9. #9
    Registriert seit
    03.11.2005
    Ort
    Völkermarkt
    Beiträge
    96
    Danke
    10
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    recht herzlichen dank für deine erläuterung

    jetzt is mir wieder einiges klar geworden!



    mfg Andreas
    Linux - This is freeing what I am!

Ähnliche Themen

  1. Auto-SCL
    Von dalbi im Forum Werbung und Produktneuheiten
    Antworten: 22
    Letzter Beitrag: 12.11.2010, 15:00
  2. Wer hat mein Auto?
    Von Ralle im Forum Stammtisch
    Antworten: 25
    Letzter Beitrag: 08.10.2010, 23:23
  3. Relais AUTO-OFF-ON alternative
    Von j_poool im Forum Schaltschrankbau
    Antworten: 4
    Letzter Beitrag: 02.06.2010, 10:40
  4. Auto Tuning mit SPS
    Von Erle_1 im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 27.11.2006, 20:27
  5. Antworten: 2
    Letzter Beitrag: 26.12.2005, 18:44

Lesezeichen

Berechtigungen

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