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

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

Thema: S7-300… - Schrittketten automatisch erstellen

  1. #1
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    251
    Danke
    77
    Erhielt 30 Danke für 28 Beiträge

    Lächeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Step7 – Users

    Ich hab ein kleines Werkzeug für Step7 programmiert:

    http://reither.ohost.de/tool4s7.htm

    Speziell den enthaltenen Symbolgenerator nutze ich ständig selbst und möchte ihn nicht mehr missen.

    Nun habe ich einen „AWL-Schrittkettengenerator“ hinzugefügt.

    Die Frage ist: Wird außer mir selbst jemand ein damit erzeugtes Schrittgerüst als Grundlage für seine Programme verwenden?

    Im beruflichen Leben muss ich häufig Spannvorrichtungen für ältere Maschinen programmieren. S7Graf kommt dann meistens wegen seines hohen Speicherbedarfes nicht in Frage.

    Nun habe ich dieses Teil programmiert.
    Der erzeugte Code ist vielleicht etwas unübersichtlich. Dafür werden aber viele Eventualitäten mit wenig Speicherplatz erschlagen.
    Evtl. kommt noch ein Grafischer Editor hinzu, um individuelle Verzweigungen, Zeiten ... anzuordnen.

    Z.Z. gibt’s nur diese Vorgabemöglichkeiten:




    Nun bin ich mal auf paar Meinungen gespannt.
    Beste Grüße
    Holger













    Hier noch ein Stück Beispielcode:
    Code:
    DATA_BLOCK "DB_Schrittkette"
    TITLE =
    VERSION : 0.1
      STRUCT
       Step : ARRAY  [0 .. 31 ] OF BOOL ;
       Transition : ARRAY  [0 .. 31 ] OF BOOL ;
      END_STRUCT ;
    BEGIN
    END_DATA_BLOCK
    
    FUNCTION "FC_Schrittkette" : VOID
    TITLE =
    VERSION : 0.1
    
    
    VAR_INPUT
      Init : BOOL ;
      Auto : BOOL ;
      Freigabe : BOOL ;
    END_VAR
    VAR_TEMP
      n : INT ;
      DwPointer : DWORD ;
      Eins : BOOL ;
      Null : BOOL ;
    END_VAR
    BEGIN
    NETWORK
    TITLE =Info
    
          NOP   0;
    
    // #####################################################
    //                                                     #
    // Das Grundgerüst dieses Bausteines wurde erzeugt mit #
    //                                                     #
    //                 Tool4S7 Ver.: 02.10                 #
    //             (c) 01.10.2008 - 24.04.2011             #
    //                                                     #
    //               ( holger.reither@web.de               #
    //                  reither.ohost.de                   #
    //               olbnet.dyndns.org/hps )               #
    //                                                     #
    //                                                     #
    // #####################################################
    //                                                     #
    //                                                     #
    // Dieser Baustein gliedert sich in 3 Hauptabschnitte  #
    // 1. Initialisierung                                  #
    //    Ist der Bausteineingang Init = True dann werden  #
    //    hier alle Schritte deaktiviert und der/ die      #
    //    Initialschritt(e) aktiviert.                     #
    //                                                     #
    // 2. Schritte + Transitionen                          #
    //    Dieser Abschnitt beinhaltet die eigentliche      #
    //    Schrittkette.                                    #
    //    An den markierten Stellen muss der               #
    //    Anwendungsspeziefische Code ergaenzt werden.     #
    //                                                     #
    // 3. Weiterschaltung                                  #
    //    hier erfolgt die Weiterschaltung der Schritte.   #
    //    Pro SPS-Zyklus erfolgt maximal eine              #
    //    Weiterschaltung.                                 #
    //    Damit ist auch garantiert, dass jeder Schritt    #
    //    fuer mindestens einen SPS-Zyklus aktiv ist.      #
    //    Anpassungen sind hier nur notwendig, wenn        #
    //    Alternativ- oder/ und Simutanverzweigungen       #
    //    programmiert werden sollen.                      #
    //                                                     #
    //                                                     #
    // Labels:                                             #
    //    S... Schritt                                     #
    //    T... Transition                                  #
    //    F... Weiterschaltung (<F>orward)                 #
    //                                                     #
    // #####################################################
    //                                                     #
    // Die Generatoreinstellungen                          #
    // f. diesen Bausteinwaren:                            #
    //    FC-Nummer:                                       #
    //           FC 80                                     #
    //    FC-Name:                                         #
    //           FC_Schrittkette                           #
    //    DB-Nummer:                                       #
    //           DB 80                                     #
    //    DB-Name:                                         #
    //           DB_Schrittkette                           #
    //    Erzeuge interne Timer:                           #
    //           Off                                       #
    //    Max.Anzahl Schritte:                             #
    //           32                                        #
    //    Nr. 1. Schritt:                                  #
    //           0                                         #
    //    Nr. Initialschritt:                              #
    //           0                                         #
    //    Anzahl Schritte:                                 #
    //           3                                         #
    //    Schrittabstand:                                  #
    //           1                                         #
    //    Erzeuge Rueckwaertstransitionen:                 #
    //           Off                                       #
    //    In-Variable Freig. 1:                            #
    //           Auto                                      #
    //    In-Variable Freig. 2:                            #
    //           Freigabe                                  #
    //    In-Variable Freig. 3:                            #
    //                                                     #
    //    In-Variable Freig. 4:                            #
    //                                                     #
    //                                                     #
    // #####################################################
    
    NETWORK
    TITLE =Initialisierung Schrittkette
    
    // Erzeuge Konstanten Null und Eins
          O     #Eins;
          ON    #Eins;
          =     #Eins;
          UN    #Eins;
          =     #Null;
    
    // Initialisieren
          U     #Init;
          SPBN  In_X; 
    
    // Ruecksetzen aller (Zeiten,) Schritte und Transitionen
          AUF   "DB_Schrittkette";
          L     2;
    In_1: T     #n;
          L     1;
          -I    ;
          L     4;
          *I    ; // Nummer des zu loeschenden DWord
          SLW   3; // erzege Pointerformat
          T     #DwPointer;
          L     DW#16#0;
          T     DBD [#DwPointer]; // loesche aktuelles DWord
          L     #n;
          LOOP  In_1;
    
          SET   ;
    // #####################################################
    //                                                     #
    // Aktiviere Initialschritt(e)                         #
    //                                                     #
          S     "DB_Schrittkette".Step[0];
    //                                                     #
    // #####################################################
    
    In_X: CLR   ;
    
    NETWORK
    TITLE =Info Abschnitt 2
    
          NOP   0;
    
    // #####################################################
    //                                                     #
    //  A b    h i e r    f o l g e n    d i e             #
    //  e i n z e l n e n    S c h r i t t e    u n d      #
    //  T r a n s i t i o n e n                            #
    //                                                     #
    // #####################################################
    
    NETWORK
    TITLE =Schritt 000
    
          CLR   ;
          U     "DB_Schrittkette".Step[0];
          SPBN  T000;
    // #####################################################
    // Aktionen Schritt 000                                #
          SET   ;
    
    //                                                     #
    //                                                     #
    // #####################################################
    T000: CLR   ;
    // #####################################################
    // Transition / Weiterschaltbedingung                  #
          U     #Auto;
          U     #Freigabe;
    //                                                     #
    //                                                     #
    // #####################################################
          =     "DB_Schrittkette".Transition[0];
    
    NETWORK
    TITLE =Schritt 001
    
          CLR   ;
          U     "DB_Schrittkette".Step[1];
          SPBN  T001;
    // #####################################################
    // Aktionen Schritt 001                                #
          SET   ;
    
    //                                                     #
    //                                                     #
    // #####################################################
    T001: CLR   ;
    // #####################################################
    // Transition / Weiterschaltbedingung                  #
          U     #Auto;
          U     #Freigabe;
    //                                                     #
    //                                                     #
    // #####################################################
          =     "DB_Schrittkette".Transition[1];
    Zitieren Zitieren S7-300… - Schrittketten automatisch erstellen  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Da ich ein völlig anderes System nutze (SPL) und einen extra Baustein, welcher die Weiterschaltung macht, kommt das für mich eher nicht in Betracht. Es wird ja auch nur der Rumpf erzeugt, wenn ich nicht irre, der ist bei Verwendung meines derzeitigen (auch renovierungsbedürftigen Systems) eh immer nahezu gleich, die Schrittanzahl ist nur durch die Sprungweite der SPL begrenzt. Jeder hat halt seine Vorlieben...

    Mich würde prinzipiell mal interessieren, ob du unter Rückwärtstransitionen, Rückwärtsschritte im Sinne von "Umkehr des Prozesses" verstehst, denn die Realisierung interessiert mich dann doch, ich verzichte i.d.R. darauf, der Programmieraufwand ist noch einmal so hoch, wie für den Ablauf vorwärts. Das soll aber in meinem nächsten "Standard" möglich sein, zumindest 1 Schritt zurück ist oft wünschenswert.

    Ein Programm zur Erzeugung der Schrittkette wäre für mich nur interessant, wenn ich für jeden Schritt die Inhalte (Transitionen, Aktionen) tabellarisch angeben kann und dann der gesamte Ablauf erzeugt wird.

    Noch ein kleiner Hinweis: Nimm SLD 3 statt SLW 3 fürs Pointerformat, das ging bei mit mal in die Hose, als die Adressen zu groß wurden!!! Der Pointer ist ein DWord!
    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

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

    holgero (26.04.2011)

  4. #3
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    251
    Danke
    77
    Erhielt 30 Danke für 28 Beiträge

    Beitrag

    Hallo Ralle,

    danke für deine Hinweise.

    Du hast schon richtig erkannt was das Tool4S7 kann und was es nicht kann.

    Mit der Einstellung „Erzeuge Rückwärts- Transitionen“, wird für jeden Schritt zusätzlich eine Rückwärts- Transition generiert. Die Rückwärts- Transition des ersten Schrittes führt zum letzten Schritt der Kette.

    SLW 3 hab ich aus einer Dokumentation, und ist eindeutig Falsch. Auch wenn es in diesem Falle wahrscheinlich nie Probleme gemacht hätte. Für die kommende Version hab ich es geändert.

    Ich werde bald noch ein paar Verbesserungen/ Erweiterungen einbauen.

    Gerade habe ich noch ein paar Unschönheiten in den Funktionen „Quellengenerator…DB“ und „Quellengenerator…DB-Abbild von Datei“ gefunden.
    Dort schreibe ich z.Z. Daten in die Aktualwerte statt in die Initialwerte. Das blöde ist nur, das man Arrayvariablen nicht mit Initialwerten versehen kann.

    Bis demnächst
    Gruß
    Holger

  5. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.792
    Danke
    144
    Erhielt 1.706 Danke für 1.238 Beiträge

    Standard

    Zitat Zitat von holgero Beitrag anzeigen
    Dort schreibe ich z.Z. Daten in die Aktualwerte statt in die Initialwerte. Das blöde ist nur, das man Arrayvariablen nicht mit Initialwerten versehen kann.
    Aber mit gewünschten Aktualwerten kannst du die Array-Variablen im Datenbaustein versehen:
    Code:
    DATA_BLOCK "DB_Schrittkette"
    TITLE =
    VERSION : 0.1
      STRUCT
       Step : ARRAY  [0 .. 31 ] OF BOOL ;
       Transition : ARRAY  [0 .. 31 ] OF BOOL ;
      END_STRUCT ;
    BEGIN
       Step [0] := false;
       Step [1] := true;
       Transition[0] := true;
       Transition[1] := false;
    END_DATA_BLOCK

  6. Folgender Benutzer sagt Danke zu Thomas_v2.1 für den nützlichen Beitrag:

    holgero (26.04.2011)

  7. #5
    Registriert seit
    12.03.2011
    Ort
    Erzgebirge
    Beiträge
    251
    Danke
    77
    Erhielt 30 Danke für 28 Beiträge

    Standard

    Das Problem gibts im Tool4S7 -> Quellengenerator -> DB-Abbild von Datei.

    Initialisiert man den fertigen Baustein irgendwann einmal, gehen alle Daten verloren. Nicht schlimm aber unschön
    Ich werde dort ne auswahlmöglichkeit einbauen. Array oder fortlaufend nummerierte Variablen oder Strings[n].

  8. #6
    Registriert seit
    19.04.2009
    Beiträge
    302
    Danke
    31
    Erhielt 40 Danke für 32 Beiträge

    Standard

    Wie setzt du die Schritte zurück?
    Also ich kann bei meiner Schrittkette >=32000 Schritte machen und das ohne den DB zu ändern wo die Schrittkette aufgerufen wird.

  9. #7
    Registriert seit
    13.10.2007
    Beiträge
    12.055
    Danke
    2.793
    Erhielt 3.285 Danke für 2.165 Beiträge

    Standard

    Zitat Zitat von Proxy Beitrag anzeigen
    Wie setzt du die Schritte zurück?
    Also ich kann bei meiner Schrittkette >=32000 Schritte machen und das ohne den DB zu ändern wo die Schrittkette aufgerufen wird.
    Ähm, 32000 Schritte, die brauchst du doch nicht wirklich?
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  10. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard

    Zitat Zitat von Helmut_von_der_Reparatur Beitrag anzeigen
    Ähm, 32000 Schritte, die brauchst du doch nicht wirklich?
    Nein, er braucht nur 29999!
    Der Wert sagt sicher nur etwas über die theortisch mögliche Länge aus!
    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

  11. #9
    Registriert seit
    19.04.2009
    Beiträge
    302
    Danke
    31
    Erhielt 40 Danke für 32 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Nein, er braucht nur 29999!
    Der Wert sagt sicher nur etwas über die theortisch mögliche Länge aus!
    Genau...
    Mach gerne 100 Schritte bzw. Verzweigungen mit höheren Zahlen das wenn ich was vergessen habe es einfach einfügen kann ohne gleich alles zu schieben.

  12. #10
    Registriert seit
    07.02.2008
    Ort
    Tonga
    Beiträge
    72
    Danke
    14
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Da ich ein völlig anderes System nutze (SPL) und einen extra Baustein, welcher die Weiterschaltung macht,...

    ...meines derzeitigen (auch renovierungsbedürftigen Systems) eh immer nahezu gleich, die Schrittanzahl ist nur durch die Sprungweite der SPL begrenzt.
    Welche Features hat denn Dein SK - ORGA - Baustein in SPL?

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 20.03.2011, 21:29
  2. Antworten: 4
    Letzter Beitrag: 30.07.2010, 10:40
  3. Schrittketten in AWL
    Von Anaconda55 im Forum Simatic
    Antworten: 34
    Letzter Beitrag: 18.11.2008, 13:31
  4. Schrittketten
    Von rhazel im Forum Programmierstrategien
    Antworten: 7
    Letzter Beitrag: 06.02.2008, 11:39
  5. Schrittketten
    Von burn-out-heizer im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 23.09.2006, 12:19

Lesezeichen

Berechtigungen

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