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

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

Thema: Bitte um Feedback

  1. #1
    Registriert seit
    24.10.2007
    Ort
    Nürnberg
    Beiträge
    28
    Danke
    20
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    da ich fiel von diesem Forum gelernt habe will ich meine Code zum Kritik hinstellen.
    Was muss ich noch verbessern? Das Programm habe ich getestet und Funktioniert
    Für jede Anregung bin ich Dankbar


    Code:
    //Belade durch MSST EIN und AUS schalten
    
          U     #Belade_An; 
          S     #LED_Belade_AN; 
          R     #LED_Belade_AUS; 
          U     #Belade_Aus; 
          R     #LED_Belade_AN; 
          S     #LED_Belade_AUS; 
    //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
    //-----     MDA oder AUTOMATIK zwei verschiedene Betriebsarten                      -
    //-----------------------------------------------------------------------------------
          O     #Automatik; // Nur in der endsprechender Betriebsart sollte
          O     #MDA; // die Schritkette gestartet werden
          =     #AUTOorMDA; 
    
          U     #MDA; 
          U     #Takten; 
          O     ; 
          U     #Automatik; 
          =     #SK_Takten; 
    
    NETWORK
    TITLE =Schritkette
    
    // -->- Startbedingung für Schrittkette
          U     #IO_Start; 
          S     #start; 
          O     #Bel_Reset; 
          O     #start; 
          SPB   STA1; 
          L     0; 
          T     #Schrittnummer; 
    STA1: NOP   0; 
          O     #Bel_Reset; 
          =     #LED_belade_Reset; 
          R     #Start_laufzt1; 
    
    //----   Laufzeit wird im Programm geändert ------------------------------->
          CALL #laufz1 (
               IN                       := #Start_laufzt1,
               PT                       := #akt_zeit,
               Q                        := #Laufzt_ok);
    //----  Überwachung von Schritdauer --------------------------------------->
          CALL #laufz2 (
               IN                       := #Start_laufzt1,
               PT                       := T#10S,
               Q                        := #Zeitueberschr);
    //-------------------------------------------------------------------------------------------
          L     #Schrittnummer; 
          SPL   SKED; 
          SPA   S00; // Initialisierung
          SPA   S01; // Einlesesperre setzen
          SPA   S02; // BeladeZylinder vorschieben Teil Beladen
          SPA   S03; // Teil spannen in spannzange
          SPA   S04; // BeladeZylinder zurückfahren in die Ausgangsposition
          SPA   S05; // Positionierzylinder zur Teile holen
          SPA   S06; // Positionerer Teile positioneren
          SPA   S07; // End
    SKED: SPA   END1; 
    
    //------------------------------------------------------------------
    S00:  NOP   0; // Initialisierung
          U     #Druckluft_vor; // Wenn keine Druckluft Zylinder nicht schalten
          U     #Steuerung_An; 
          SPBN  nvor; 
          SET   ; 
          R     #Beladezyl; 
          U     #Beladezyl_hinten; 
          S     #Pos_zyl_hoch; 
          R     #Pos_zyl_runter; 
          SPA   vor; 
    nvor: NOP   0; 
          SET   ; 
          =     #F_Druckluft; 
          R     #Beladezyl; 
          R     #Pos_zyl_hoch; 
          R     #Pos_zyl_runter; 
    
    vor:  U     #Beladezyl_hinten; 
          U     #Pos_zyl_oben; 
          U     #start; 
          U     #Steuerung_An; 
          U     #AUTOorMDA; 
          U     #LED_Belade_AN; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    //-------------------------------------------------------------------- 
    S01:  NOP   0; // Einlesesperre setzen
          SET   ; 
          S     #Einlesespere; 
          =     #Spannz_Auf; 
          S     #Start_laufzt1; 
          UN    #TeilinSpannz; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    //--------------------------------------------------------------------
    S02:  NOP   0; // BeladeZylinder vorschieben Teil Beladen
          LAR1  P##akt_zeit; 
          L     T#1S; 
          T     D [AR1,P#0.0]; 
          SET   ; 
          S     #Beladezyl; 
          S     #Start_laufzt1; 
          R     #Spannz_Auf; 
    
          U     #Beladezyl_vorne; 
          U     #Laufzt_ok; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    //--------------------------------------------------------------------
    S03:  NOP   0; // Teil spannen in spannzange
          LAR1  P##akt_zeit; 
          L     T#2S; 
          T     D [AR1,P#0.0]; 
          SET   ; 
          =     #Spannz_Zu; 
          S     #Start_laufzt1; 
    
          U     #TeilinSpannz; 
          U     #Laufzt_ok; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    //--------------------------------------------------------------------
    S04:  NOP   0; // BeladeZylinder zurückfahren in die Ausgangsposition
          LAR1  P##akt_zeit; 
          L     T#1S500MS; 
          T     D [AR1,P#0.0]; 
          SET   ; 
          R     #Spannz_Zu; 
          R     #Einlesespere; 
          R     #Beladezyl; 
          S     #Start_laufzt1; 
    
          U     #Beladezyl_hinten; 
          U     #Laufzt_ok; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    
    //--------------------------------------------------------------------
    S05:  NOP   0; // Positionierzylinder zur Teile holen
          LAR1  P##akt_zeit; 
          L     T#5S; 
          T     D [AR1,P#0.0]; 
          SET   ; 
          R     #Pos_zyl_hoch; 
          S     #Pos_zyl_runter; 
          S     #Start_laufzt1; 
    
          U     #Pos_zyl_unten; 
          U     #Laufzt_ok; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    //-------------------------------------------------------------------
    S06:  NOP   0; // Positionerer Teile positioneren
          LAR1  P##akt_zeit; 
          L     T#5S; 
          T     D [AR1,P#0.0]; 
          SET   ; 
          S     #Pos_zyl_hoch; 
          R     #Pos_zyl_runter; 
          S     #Start_laufzt1; 
    
          U     #Pos_zyl_oben; 
          U     #Laufzt_ok; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    //--------------------------------------------------------------------
    S07:  NOP   0; 
          SET   ; 
          R     #start; 
          U     #SK_Takten; 
          S     #SK_Weiter; 
          SPA   END1; 
    END1: NOP   0; 
    
    //  Weiterschalten
          U     #SK_Weiter; 
          SPBN  SKWE; 
          L     #Schrittnummer; 
          +     1; 
          T     #Schrittnummer; 
          SET   ; 
          R     #SK_Weiter; 
          R     #Start_laufzt1; 
    SKWE: NOP   0; 
    
    
    
    NETWORK
    TITLE =Fehlermeldungen für Belade
    
          AUF   DB     2; 
          U     #Zeitueberschr; 
          SPBN  END2; 
    
          L     #Schrittnummer; 
          SPL   FMED; 
          SPA   F00; 
          SPA   F01; 
          SPA   F02; 
          SPA   F03; 
          SPA   F04; 
          SPA   F05; 
          SPA   F06; 
          SPA   F07; 
    FMED: SPA   END2; 
    //-->------------------------------------------------------------------
    F00:  NOP   0; 
    
          SPA   END2; 
    //-->------------------------------------------------------------------ 
    F01:  NOP   0; // 700200 0 0 "BELADE ROHTEILEZUFUHRZYLINDER LAUFZEITFEHLER "
          SET   ; 
          =     DBX  196.0; 
          SPA   END2; 
    //-->------------------------------------------------------------------
    F02:  NOP   0; // 700201 0 0 "BELADE ROHTEILEZUFUHRZYLINDER LAUFZEITFEHLER "
          SET   ; 
          S     DBX  196.1; 
          SPA   END2; 
    //-->------------------------------------------------------------------
    F03:  NOP   0; // 700202 0 0 "ROHTEIL SPANNEN LAUFZEITFEHLER"
          SET   ; 
          S     DBX  196.2; 
          SPA   END2; 
    //-->------------------------------------------------------------------
    F04:  NOP   0; // 700203 0 0 "BELADE ROHTEILEZUFUHRZYLINDER LAUFZEITFEHLER"
          SET   ; 
          S     DBX  196.3; 
          SPA   END2; 
    //-->------------------------------------------------------------------
    F05:  NOP   0; // 700204 0 0 "BELADE HUBZYLINDER LAUFZEITFEHLER"
          SET   ; 
          S     DBX  196.4; 
          SPA   END2; 
    //-->------------------------------------------------------------------
    F06:  NOP   0; // 700205 0 0 "BELADE HUBZYLINDER LAUFZEITFEHLER"
          S     DBX  196.5; 
          SPA   END2; 
    //-->------------------------------------------------------------------
    F07:  NOP   0; 
          SPA   END2; 
    //-->------------------------------------------------------------------
    END2: NOP   0; 
          U     #Reset; 
          R     DBX  196.0; 
          R     DBX  196.1; 
          R     DBX  196.2; 
          R     DBX  196.3; 
          R     DBX  196.4; 
          R     DBX  196.5; 
          R     DBX  196.6; 
          R     DBX  196.7; 
          U     #Bel_Reset; 
          R     #start; 
    
    END_FUNCTION_BLOCK
    __________________________________________________________________

    Lieber von den Richtigen kritisiert als von den Falschen gelobt werden." - Gerhard Kocher
    Zitieren Zitieren Bitte um Feedback  

  2. #2
    Registriert seit
    24.10.2007
    Ort
    USA
    Beiträge
    815
    Danke
    3
    Erhielt 73 Danke für 57 Beiträge

    Standard

    XXXXXXXXXXx
    xxxxxxxxxxxxxxxxx


    Bitte Beitrag löschen
    Geändert von johnij (18.09.2008 um 14:18 Uhr)
    Partys sind krass, am besten ist das Bier aus dem fränkischen Fass ...
    "Programming today is a race between the programmers and software engineers to create better
    and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
    the universe is winning". - Rich Cook

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

    xvitali (18.09.2008)

  4. #3
    Registriert seit
    27.10.2005
    Ort
    Schwäbisch Gmünd
    Beiträge
    5.224
    Danke
    630
    Erhielt 955 Danke für 769 Beiträge

    Standard

    Zitat Zitat von johnij Beitrag anzeigen
    Hier wir entweder zu SKED oder zu S00 gesprungen.
    S01...... werden nicht berücksichtigt
    Habe jetzt die Logik nicht nachvollzogen, aber rein anweisungsmäßig ist der Code korrekt und der Sprung erfolgt in Abhängigkeit von der Schrittnummer.
    Wo steckt das Problem bzw. die Unkorrektheit?
    Rainer Hönle
    DELTA LOGIC GmbH

    Ein Computer kann das menschliche Gehirn nicht ersetzen. Engstirnigkeit kann unmöglich simuliert werden. (Gerd W. Heyse)

  5. Folgender Benutzer sagt Danke zu Rainer Hönle für den nützlichen Beitrag:

    xvitali (18.09.2008)

  6. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von johnij Beitrag anzeigen
    Hier wir entweder zu SKED oder zu S00 gesprungen.
    S01...... werden nicht berücksichtigt
    das ist falsch, schau dir den befehl SPL - Sprungleiste nochmal genauer an, findest du im AWL-handbuch kapitel 6.3. ... keine zeit zu haben rechtfertigt nicht, falsche antworten zu geben
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    xvitali (18.09.2008)

  8. #5
    Registriert seit
    24.10.2007
    Ort
    USA
    Beiträge
    815
    Danke
    3
    Erhielt 73 Danke für 57 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    das ist falsch, schau dir den befehl SPL - Sprungleiste nochmal genauer an, findest du im AWL-handbuch kapitel 6.3. ... keine zeit zu haben rechtfertigt nicht, falsche antworten zu geben

    @4L
    Ich gebe dir recht...sorry
    Partys sind krass, am besten ist das Bier aus dem fränkischen Fass ...
    "Programming today is a race between the programmers and software engineers to create better
    and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
    the universe is winning". - Rich Cook

  9. #6
    xvitali ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.10.2007
    Ort
    Nürnberg
    Beiträge
    28
    Danke
    20
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Wo steckt das Problem bzw. die Unkorrektheit?
    Also die Schrittkette habe ich getestet an der Maschine und die funktioniert. Da ich in dem Betrieb alleine bin der Programmiert wollte ich nur eure Meinug hören und Anregungen. Was man so besser machen kann

  10. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von xvitali Beitrag anzeigen
    Was man so besser machen kann
    die fehlermeldungen find ich so nicht gut gelöst. bis dahin hast du alles so programmiert, dass der baustein durchaus mehrfach aufgerufen werden kann (bis auf die schrittüberwachungszeit, aber das find ich erstmal nicht so tragisch) und plötzlich fängst du an global zu adressieren ... nö, das ist nicht schön!

    @johnij: das x-en deines beitrags bringt auch nix, ich hab dich zitiert, mach ich immer, seit ich weiß, dass du x-t
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    xvitali (18.09.2008)

  12. #8
    xvitali ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.10.2007
    Ort
    Nürnberg
    Beiträge
    28
    Danke
    20
    Erhielt 1 Danke für 1 Beitrag

    Standard

    und plötzlich fängst du an global zu adressieren ... nö, das ist nicht schön!
    soll ich den DB NR übergeben an FB schnitstelle oder Fehler Rücksetzen sollte anderes sein?

  13. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    wenn das alles in einen alarm-db geht würd ich die nummer übergeben, ja, und einen offset, der die startadresse angibt, von der aus die 8 fehlerbits aus, indirekt adressiert werden.

    ansonsten: bau die das fehlerbyte zusammen, schreib es auf einen out und dann kannst du es von da aus direkt in einen DB deiner wahl oder einen anderen speicherbereich schreiben
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    xvitali (18.09.2008)

  15. #10
    xvitali ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.10.2007
    Ort
    Nürnberg
    Beiträge
    28
    Danke
    20
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe jetzt die fehlermeldungen so abgeändert aber der vorteil ist mir nicht einleuchtend

    Code:
      L     #Fehler_DB
          T     #dbnr
          AUF   DB [#dbnr]
    
          LAR1  P#DBX 196.0
    
          U     #Zeitueberschr
          SPBN  END2
          L     #Schrittnummer
          SPL   FMED
          SPA   F00
          SPA   F01
          SPA   F02
          SPA   F03
          SPA   F04
          SPA   F05
          SPA   F06
          SPA   F07
    FMED: SPA   END2
    //-->------------------------------------------------------------------
    F00:  NOP   0
    
          SPA   END2
    //-->------------------------------------------------------------------ 
    F01:  NOP   0                           // 700200 0 0 "BELADE ROHTEILEZUFUHRZYLINDER LAUFZEITFEHLER "
          SET   
          =     DBX [AR1,P#0.2]
          SPA   END2
    //-->------------------------------------------------------------------
    F02:  NOP   0                           // 700201 0 0 "BELADE ROHTEILEZUFUHRZYLINDER LAUFZEITFEHLER "
          SET   
          S     DBX [AR1,P#0.3]
          SPA   END2
    //-->------------------------------------------------------------------
    F03:  NOP   0                           // 700202 0 0 "ROHTEIL SPANNEN LAUFZEITFEHLER"
          SET   
          S     DBX [AR1,P#0.4]
          SPA   END2
    //-->------------------------------------------------------------------
    F04:  NOP   0                           // 700203 0 0 "BELADE ROHTEILEZUFUHRZYLINDER LAUFZEITFEHLER"
          SET   
          S     DBX [AR1,P#0.5]
          SPA   END2
    //-->------------------------------------------------------------------
    F05:  NOP   0                           // 700204 0 0 "BELADE HUBZYLINDER LAUFZEITFEHLER"
          SET   
          S     DBX [AR1,P#0.6]
          SPA   END2
    //-->------------------------------------------------------------------
    F06:  NOP   0                           // 700205 0 0 "BELADE HUBZYLINDER LAUFZEITFEHLER"
          S     DBX [AR1,P#0.7]
          SPA   END2
    //-->------------------------------------------------------------------
    F07:  NOP   0
          SPA   END2
    //-->------------------------------------------------------------------
    END2: NOP   0
          U     #Reset
          R     DBX [AR1,P#0.0]
          R     DBX [AR1,P#0.1]
          R     DBX [AR1,P#0.2]
          R     DBX [AR1,P#0.3]
          R     DBX [AR1,P#0.4]
          R     DBX [AR1,P#0.5]
          R     DBX [AR1,P#0.6]
          R     DBX [AR1,P#0.7]
          U     #Bel_Reset
          R     #start

Ähnliche Themen

  1. Bitte um Rat
    Von Rudolf 10000 im Forum Stammtisch
    Antworten: 21
    Letzter Beitrag: 07.09.2011, 16:23
  2. Würd mich über Feedback zu meinem neuen Blog freuen ...
    Von spstiger im Forum Werbung und Produktneuheiten
    Antworten: 11
    Letzter Beitrag: 05.05.2010, 07:36
  3. BITTE um HILFE
    Von mike1976 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 23.10.2007, 00:30
  4. Feedback CommentSearch
    Von sps-concept im Forum Werbung und Produktneuheiten
    Antworten: 3
    Letzter Beitrag: 27.08.2005, 16:19

Lesezeichen

Berechtigungen

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