-> 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
__________________________________________________________________
Lieber von den Richtigen kritisiert als von den Falschen gelobt werden." - Gerhard Kocher
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