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

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

Thema: "Konfigurierbare Schrittkette" - wie macht man so etwas?

  1. #1
    Registriert seit
    11.08.2008
    Beiträge
    15
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    ich hab folgende "Herausforderung": Ich programmiere eine Maschine, die mit einer S7300 gesteuert und einer WinCC flexible Runtime bedient wird.
    Der Ablauf ist eine typische Ablaufsteuerung. Der Kunde hat aber folgenden Wunsch: Es soll ein Editor vorhanden sein, mit welchem der Bediener sich die Abläufe selber konfigurieren kann.
    Ich versuche es an einem Beispiel zu erklären:
    Es gibt die Funktionen A, B, C und D dazu die Bedingungen x, y und z.
    Der Bediener stellt folgende Abläufe zusammen:

    Ablauf 1:
    Start
    Wenn y dann führe B aus, danach
    wenn z führe A und C aus, danach
    wenn wieder y fürhe D aus
    Ende

    Ablauf 2:
    Start
    Wenn z dann führe A aus, danach
    wenn x fürhe D aus, danach
    wenn y führe B aus
    Ende

    Der Bediener soll die Kombination aus Funtkionen und Bedingungen beliebig zusammenstellen und als Datei abspeichern können. (Für einen "sinnvollen" Ablauf ist er selbst verantwortlich).
    Dazu soll es z. B. Buttons mit den o. g. Funktionen und Bedingungen geben, die - wenn in entsprechender Reihenfolge angeklickt - eine Datei mit dem gewünschten Ablauf erzeugen.

    Ich hab zwar einige Erfahrung mit Step7, SCL und GRAPH7, rel. wenig Erfahrung mit VB-Scripten in WinCCflexible. Ich weiß allerdings nicht wie man das genannte Problem angeht.

    Für Lösungsansätze (mit der prinzipiellen Vorgehensweise) bin ich sehr dankbar!
    Zitieren Zitieren "Konfigurierbare Schrittkette" - wie macht man so etwas?  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    ich würde sagen, das du da eher eine Art Interpreter programmieren mußt.
    So wie ich dich verstanden habe willst du dir die Ablaufschritte, deren Reihenfolge und ggf. Unterbedingungen merken.

    Du machst dazu eine Teach-Modus auf der Visu.
    Jede gedrückte Taste schreibt in den Programm-DB eine Code (den du dann hinterher entsprechend auswerten mußt). Gelcihzeitig erhöhst du den Befehls-Pointer (für den nächsten Schreib-Vorgang). Wenn du Teach-Ende drückst, dann wird der DB abgeschlossen.

    Wenn das Programm dann laufen soll, dann fragst du den ersten Befehl des DB ab, führst den aus und setzt nach Ausführung den Lese-Pointer für den DB um 1 höher, liest dann diesen Befehl usw.
    Findest du die Markierung "Ende" ist der Ablauf komplett und du verhälst dich entsprechend - also auf jeden Fall den Lese-Pointer zurücksetzen und ggf. den Ablauf erneut starten ...

    Habe ich deine Anfrage richtig verstanden ?

    Gruß
    L

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

    on69 (30.07.2009)

  4. #3
    Registriert seit
    13.10.2007
    Beiträge
    12.037
    Danke
    2.789
    Erhielt 3.269 Danke für 2.157 Beiträge

    Standard

    Hallo on69,
    für mich bittet sich der Sprungverteiler als Variable Schrittkette an.
    Du erstellst für jeden Schritt eine Variable wo der folgende Schritt für
    den Aktiven Schritt eingetragen wird. Diese Schritte kannst du dann
    sehr einfach in der HMI editieren, siehe Beispiel.

    Code:
    STEP: L     #STEP.Nr
          SPL   SE
          SPA   S0                          
          SPA   S1                     
          SPA   S2                        
          SPA   S3                       
          SPA   S4                       
          SPA   S5                       
          ..usw..
          SPA   SEND                        
    SE:   NOP   0
          SPA   work
    
    
    S0:  ..was immer
           ausgeführt
           werden soll..
           L STEP._1
           T STEP.Nr
           SPA  work
    
    S1:  ..was immer
           ausgeführt 
           werden soll..
           L STEP._2
           T STEP.Nr
           SPA work
          
          ...usw...
    
    work: NOP 0
    gruß helmut
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  5. Folgende 2 Benutzer sagen Danke zu rostiger Nagel für den nützlichen Beitrag:

    mega_ohm (19.09.2009),on69 (30.07.2009)

  6. #4
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    So in der Art könnte ich mir das auch vorstellen.

    Aber , als erstes solltest du mal angeben in welchem Bereich der Benutzer sich bewegen können soll. Denn ohne Grenzen festzulegen wird dies schwierig sein.

    Grenzen könnten z.B. sein
    Maximale Anzahl aller Schritte
    Maximale Anzahl an Aktoren pro Schritt
    Maximale Anzahl an transitionen pro Schritt.

    Im Display könnte man dann diesen "DB" editieren, gefüllt wird der aus Integerwerten eine Symbolikliste .

    Z.b Ein Bild pro Schritt im Display
    Nun kann man Ausfüllen welche Aktion ausgeführt werden soll.
    Z.B. Zylinder 1 nach AS /Auswahlwert =1
    Zweite Aktion "Keine " / Auswahlwert =0

    Dann Transitionen abfragen
    z.B. "Zylinder 1 in AS" / Auswahlwert = 1
    Zweite Transition
    z.B. "Lichtschranke teil vorhanden" / Auswahlwert =80

    Die Schrittkett wird nun einmal fest programmiert , mit allen möglich Funktionen.

    Die Eingänge werden nun aufgrund der Integerzahl übder indirekte Adressierung (Adressen aus einem Konfigurations-DB) gelesen.
    Bei den Ausgängen andersherum.

    Genauso könnt man dann noch ein Feld für einen Sprung definieren.

    Aber: irgendwann kommt man hier an eine Grenze. Was sollen die benutzer alles können ? Irgendwann könnte man denen auch ein Panel-PC mit Graph hinstellen .
    In wesentlich einfacherer Form hab ich das schon gemacht , da mussten die Leute nur festlegen können welche Zylinder wann fahren sollen.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  7. Folgender Benutzer sagt Danke zu jabba für den nützlichen Beitrag:

    on69 (30.07.2009)

  8. #5
    on69 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    11.08.2008
    Beiträge
    15
    Danke
    26
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo nochmal,
    @Larry: Du hast mich richtig verstanden. Ich muss mich allerdings erst mal schlau machen, wie man in WinCC flexible den besagten Teach-Modus realisiert (meine SPS-Künste halten sich offenbar doch sehr in Grenzen).
    @Helmut: Danke für Deinen Vorschlag. Kannst Du mir aber bitte noch einen Tipp geben WIE ich die Schritte in der HMI editieren kann? Das Variieren der Schrittabfolge (bzw. Transitionen) ist gerade mein Problem.
    @jabba: Es werden ca. 30 Schritte notwendig sein mit etwa 3 Aktionen bzw. 3 Transitionen pro Schritt. Ich werd mir auch Deinen Vorschlag zu Gemüte führen, muss vorher allerdings nochmal nachsehen, wie die Sache mit dem KonfiguraitonsDB funktioniert.
    Vorerst BESTEN DANK für Eure schnellen Antworten!!!

  9. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo On,
    der "besagte Teach-Modus" ist keine Funktion von Flex, sondern der Modus, in den du dein SPS-Programm versetzt. D.h. : bist du im Teach-Modus wird aufgezeichnet - sonst nicht ...

    Im Detail würde mein Vorschlag so aussehen :
    Du hast auf der Visu Tasten, denen du feste Funktionen zuordnest.
    Wird die erste Taste gedrückt, so schreibst du deren Funktionscode (z.B. w#16#01) in den DB und erhöhst den Befehlszeiger. Das gilt dann für jede weitere Taste.

    Beim Abarbeiten sähe das dann so aus, das du den DB abfragst, wie der nächste Befehl lautet, den auswertest und ausführst.

    Im Vorfeld solltest du dir aber zunächst eine Liste mit den möglichen Einzelfunktionen erstellen und denen Code-Nummern zuordnen. Das erhöht die Übersicht beim Erstellen des Ganzen.

    Die Aufschlüsselung und Umsetzung würde ich wegen der Komplexität der Angelegenheit mit SCL realisieren. Ich könnte mir gut vorstellen, dass die Angelegenheit in AWL ganz schön unübersichtlich werden kann ..

    Gruß
    LL

  10. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    on69 (30.07.2009)

  11. #7
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Egal für welchen Lösungsansatz du dich entscheiden wirst, es wird keine leichte Aufgabe werden. Die fordert auch einem geübten Programmierer einiges ab.
    „Wenn du ein Problem hast, versuche es zu lösen. Kannst du es nicht lösen, dann mache kein Problem daraus.“
    Siddhartha Gautama

  12. Folgender Benutzer sagt Danke zu jabba für den nützlichen Beitrag:

    on69 (30.07.2009)

  13. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von on69 Beitrag anzeigen
    Es werden ca. 30 Schritte notwendig sein mit etwa 3 Aktionen bzw. 3 Transitionen pro Schritt.
    Wenn auch die Aktionen und Transitionen im Schritt noch unterschiedlich sein können, dann wird das ein Megaaufwand, denn alle möglichen Varianten müssen dann entweder in Schrittvorlagen vorgehalten werden oder aber man programmiert das in einen Schritt, in dem die Aktionen und Transitionen mit "Schaltern" deaktivert werden können.

    Wenn ich das so lese hätte ich folgenden Ansatz.

    Jede Aktion und jede Transition wird einzeln programmiert, so daß sie per Sprungleiste angesprungen werden kann. 2x3 Sprungleisten, drei für Aktionen, drei für Transitionen. Dann wird eine Schrittkette erstellt, ebenfalls eine Sprungleiste, in der fest, z.Bsp. 50 Schritte, programmiert werden. Dabei sind in jedem Schritt 3 Aktionen und 3 Transitionen variabel angelegt (je nach Anwahl der Aktion-Sprungleiste 1-3 und der Transition-Sprungleiste 1-3). Die Zuordnung zu den Aktionen und Transitionen erfolgt über einen DB. In diesem werden die je 3 Aktionen und Transitionen als Nummer hinterlegt, das passiert z.Bsp über WinCCFlex.

    Zusatz: Die je 3 Sprungleisten können identisch sein, müssen aber jeweils alle möglichen Aktionen bzw. Transitionen enthalten. Nur die SPL-Variable und die Ergebnisvariable (Transition erfüllt) muß natürlich unterschiedlich sein.
    Geändert von Ralle (30.07.2009 um 14:42 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

  14. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    on69 (30.07.2009)

  15. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    @Ralle:
    Warum so kompliziert ?
    Code:
    Aktion := Befehls_Liste [Befehls_Counter] ;
     
    if Aktion = 11 then   // fahre Handling nach vorn
       Handling_vorfahren := true ;
       Handling_zurückfahren := false ;
       if Handling_vorn then 
          Befehls_Counter := Befehls_Counter +1 ;
          goto Ende_Abfrage ;
       end_if ;
     
    els_if Aktion = 12 then   // fahre Handling zurück
       Handling_vorfahren := false ;
       Handling_zurückfahren := true ;
       if Handling_hinten then 
          Befehls_Counter := Befehls_Counter +1 ;
          goto Ende_Abfrage ;
       end_if ;
     
    end_if ;
     
    Ende_Abfrage: ;
    ... so würde ich mir das im Prinzip in SCL vorstellen ... (am Beispiel eines Handlings)

    Gruß
    LL

  16. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    on69 (30.07.2009)

  17. #10
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @Ralle:
    Warum so kompliziert ?

    ... so würde ich mir das im Prinzip in SCL vorstellen ... (am Beispiel eines Handlings)

    Gruß
    LL
    Dann bitte aber mit einer CASE-Verzweigung und ohne GOTO.
    If you open your Mind too much, your Brain will fall out.

  18. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    on69 (30.07.2009)

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 16.03.2012, 18:20
  2. Antworten: 6
    Letzter Beitrag: 18.05.2011, 13:45
  3. "Index Pulse", "Home Switch" und "Position Limit Switch"
    Von senmeis im Forum Antriebstechnik
    Antworten: 3
    Letzter Beitrag: 07.03.2011, 11:21
  4. Antworten: 2
    Letzter Beitrag: 14.12.2007, 15:09
  5. Antworten: 4
    Letzter Beitrag: 29.11.2006, 08:59

Lesezeichen

Berechtigungen

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