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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 33

Thema: AWL lernen

  1. #11
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.628
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Flux Beitrag anzeigen
    Wo? Im Editor? Ist sie doch sowieso.., versteh nicht was du meinst??
    Den Link hast Du ja jetzt.
    Was ich meine ist, im Editor öfter Mal umzuschalten, bei Netzwerken, die in KOP oder FUP programmiert sind.
    Gruß
    Michael

  2. #12
    Registriert seit
    13.09.2010
    Beiträge
    2.292
    Danke
    178
    Erhielt 375 Danke für 355 Beiträge

    Standard

    .
    Ja das stimmt, was Deltal sagt.

    Vielleicht nochmal ein paar Grundlagen: 3.LINK

    Aber auch unsere Suchfunktion hier im Forum gibt einiges her, du findest sie oben rechts auf dieser Seite !
    kind regards
    SoftMachine

  3. #13
    Avatar von Flux
    Flux ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Zitat Zitat von Deltal Beitrag anzeigen
    Also die Funktion einer Ausschaltverzögerung oder auch allen anderen Timern, Zählern, Bitoperationen sollte man halt schon mal theoretisch draufhaben.
    Hab damit noch nicht programmiert. Was dahinter steckt kann ich mir im moment nur denken, bzw. in der Hilfe nachlesen. Hab nen E-Technik Bachelor.

  4. #14
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von Flux Beitrag anzeigen
    Hallo Perfektionist,

    die Hilfe hatte ich schon bemüht. Zu SA steht folgendes:


    Das ist soweit klar - SA wird nur bei FN von #Motor_Ein ausgeführt. Trotzdem:
    • Hängen SA und das folgende U zusammen?

    • Was bedeutet überhaupt U #Zeitfunktion = #Luefter_Ein ?

    • Wie und wo kann man das VKE sehen?
    Sorry, ich hatte diese kleinen Büchlein mit der Hilfe verwechselt, in der Hilfe steht nur lappidar drin, wie das Statuswort durch den jeweiligen Befehl beeinflusst wird. Das, was Du wissen wolltest, verbirgt sich hinter dem Bit /ER vom Statuswort:
    /ER Erstabfragebit (Statuswort, Bit 0)
    Der Signalzustand des /ER-Bits steuert den Ablauf einer Verknüpfungskette.
    Das /ER-Bit ist das Bit 0 des Statusworts.
    Jede Verknüpfungsoperation fragt den Signalzustand des /ER-Bits und des angesprochenen Kontakts ab.
    · Ist der Signalzustand des /ER-Bits gleich "1", dann verknüpft eine Operation das Ergebnis ihrer Signalzustandsabfrage am von ihr angesprochenen Kontakt mit dem seit der Erstabfrage gebildeten VKE und speichert das Ergebnis im VKE-Bit.
    · Ist der Signalzustand des /ER-Bits gleich "0", dann beginnt die Verknüpfungskette mit einer Erstabfrage.
    Mit Zuordnung eines Wertes (S, R, =) oder mit einer VKE-abhängigen Sprungoperation endet die Verknüpfungskette und das /ER-Bit wird auf "0" gesetzt.
    mal so ne Frage nebenher: hast Du schonmal was in Assembler geschrieben? Sollte die Antwort nein sein, tust Du Dir mit AWL schwer.
    sollte die Antwort nein gewesen sein, käme als nächste Frage: hast Du vor, an bestehenden Programmen was zu machen oder an Neuentwicklungen mitzuwirken. In dem einen Fall würde ich dir raten, dann trotzdem AWL zu lernen, zumindest verstehen zu lernen, im anderen Fall sieht es so aus, dass Siemens mit den 1200er-CPUs gerade dabei ist, AWL zugunsten von SCL auszurotten, Du Dir möglicher Weise ein Wissen und Kenntnisse aneignen willst, die Du in Zukunft möglicherweise gar nicht verwerten kannst.

  5. #15
    Avatar von Flux
    Flux ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Zusammenfassend:
    Die Verknüpfung von Anweisungen (bzw.VKEs) erfolgt im Wesentlichen solange, wie das /ER-Bit (Bit 0 des Statusworts) "1" ist.
    Endet eine Kette (S, R, =, VKE-abhängiger Sprung) bzw. beginnt eine Erstabfrage so ist es "0".

    Zitat Zitat von Perfektionist Beitrag anzeigen
    mal so ne Frage nebenher: hast Du schonmal was in Assembler geschrieben?
    Ja, auf ein Paar µCs.

    Es sieht so aus, dass Siemens mit den 1200er-CPUs gerade dabei ist, AWL zugunsten von SCL auszurotten
    Dieser Trend ist mir bekannt, da aber alle meine Kollegen nur mit AWL arbeiten brauch ich das. Nebenher ein bisschen SCL zu lernen kann sicherlich nicht schaden.

  6. #16
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    Zitat Zitat von Flux Beitrag anzeigen
    Ja, auf ein Paar µCs.
    na, das sind doch beste Voraussetzungen, um AWL lernen zu können. Hinter AWL steckt nichts anderes als ein Prozessormodell. Kümmer Dich um Akku1 und Akku2 (bei 400er gibt vier davon), um das Statuswort, VKE etc, dann wird AWL für Dich ganz schnell zum Werkzeug.

    Zu dem SA-Befehl hab ich noch anzumerken, dass das ein Auslaufmodell ist. In den OB1-Startinformationen wird Dir die Zeitdauer des letzen Zyklus mitgeteilt. Etwas anderes sind noch die IEC-Timer. Aber wie weit und tief Du gleich ins kalte Wasser willst, mit FB und IDB und so, muss ich Dir überlassen (Deine Fragen werden sicherlich rasch qualifizierter werden - lass Dich aber nicht von den Oberlehrern verwirren, die meinen, dass ein Anfänger mit kleinen Schrittchen gehen muss).

  7. #17
    Avatar von Flux
    Flux ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Hey Perfektionist, danke fuer deine Worte.

    Ich versuche gerade das eingangs genannte Beispiel zu verstehen. Hab mir dazu die Step7 Hilfe und Sachen im Netz angeschaut.

    Hier ein Beispiel aus der STEP7-Hilfe:
    Code:
          U    E 2.0             
          FR    T1    //Gib die Zeit T1 frei.
          U    E 2.1    
          L    S5T#10s    //Richte eine Voreinstellung von 10 Sekunden in AKKU 1 ein.
          SI    T1    //Starte die Zeit T1 als Impuls.
          U    E 2.2    
          R    T1    //Setze Zeit T1 zurück.
          U    T1    //Frage den Signalzustand der Zeit T1 ab.
          =    A 4.0    
          L    T1     //Lade den aktuellen Zeitwert der Zeit T1 als Binärzahl.
          T    MW10
    Hier meine Interpretation (zusätzliche Kommentare + Verknüpfungsenden (Absätze))
    Code:
          U     E      2.0                  //Wenn E 2.0 "1" ist
          FR    T      1                    //Gib die Zeit T1 frei.-->Laesst T1 von neuem ablaufen, solange E 2.1 "1" und E 2.2 "0" ist.
    
          U     E      2.1                  //Wenn E 2.1 "1" ist 
          L     S5T#10S                     //Richte eine Voreinstellung von 10 Sekunden in AKKU 1 ein.
          SI    T      1                    //Starte die Zeit T1 als Impuls.
    
          U     E      2.2                  //Wenn E 2.2 "1" ist
          R     T      1                    //Setze Zeit T1 zurück.
    
          U     T      1                    //Frage den Signalzustand der Zeit T1 ab.
          =     A      4.0                  //Ist "1" solange T1 ablaeuft
    
          L     T      1                    //Lade den aktuellen Zeitwert der Zeit T1 als Binärzahl.
          T     MW    10                    //und schreib ihn ins Merkerwort 10 (Byte 10..11)
    Stimmt das so?

    Danach geht's an das Eingangsbeispiel "Lüfter"
    Geändert von Flux (07.10.2012 um 15:38 Uhr)

  8. #18
    Registriert seit
    01.10.2007
    Ort
    Waiblingen
    Beiträge
    3.317
    Danke
    767
    Erhielt 536 Danke für 419 Beiträge

    Standard

    ich würd jetzt sagen: ja.

    allerdings verwende ich, so denn ich noch S5-Timer verwende, zu 80% SE, zu 10% SA, die restlichen 10% teilen sich dann noch SI und SV. Aber je nach Anwendungsfall - Siemens hat da eine Menge an Timern gemacht, viele SPSen und die IEC kennen nur TON und TOF.

    ach, einen TP gibt es auch noch:
    http://www.ipsta.de/download/freies/Folge_7.pdf
    ich weiß jetzt nicht, ob Siemens den implementiert hat. Im Prinzip kann aber immer durch entsprechend geschickte Verknüpfung alles mit dem TON gemacht werden.

    ansonsten mach ich Zykluszeitzählung mit der Startinformation aus OB1 und zähle entweder in MW (als Integer bis 30 Sekunden) oder in DW bis in fast eine Ewigkeit. Wahlweise natürlich auch im IDB, aber das kommt dann später, wahlweise die IEC-Timer.

    also, so mach ich das:
    Code:
    // ***** Zeiten abzählen
          L     #V_Zustandsdauerzaehler
          L     "Zykluszeit"
          +I    
          SPO   m001
          T     #V_Zustandsdauerzaehler
    m001: L     #V_Zustandsmindestdauer
          >I    
          =     #T_Wartezeit_abgelaufen
          POP   
          L     #V_Zustandsmaximaldauer
          <I    
          =     #T_Wartezeit_ueberschritten
    das Setzen und Rücksetzen dieses hangestrickten Timers ist dann ein weiterer Codeschnipsel. Wenn Du deinen SA hast, kannst, wenn Du willst, über meine Art nachdenken, wie man Zeiten macht - es sei denn, Deine Kollegen haben ein Aber gegen sowas. Die nehmen vielleicht IEC-Timer, wenn es instanzierbar werden soll. Oder sie übergeben Timer als Parameter dem Baustein, das kann aber bei multiinstanzierten Dingern (kommt jedenfalls bei mir vor, wenn ich mehrere Strecken mit mehreren gleichen Stationen hab) nervig werden, wenn beim Aufruf der Mutterinstanz an der Schnittstelle hundert Timer als Übergabeparameter hängen

    ...aber fangen wir mal langsam an - den SA hast in fünf Minuten gelöffelt, dann kannst ja mal weiterschaun, was sonst noch so interessiert.

  9. #19
    Avatar von Flux
    Flux ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard

    Zitat Zitat von Perfektionist Beitrag anzeigen
    ich würd jetzt sagen: ja.
    Gut

    allerdings verwende ich, so denn ich noch S5-Timer verwende, zu 80% SE, zu 10% SA, die restlichen 10% teilen sich dann noch SI und SV. Aber je nach Anwendungsfall - Siemens hat da eine Menge an Timern gemacht, viele SPSen und die IEC kennen nur TON und TOF.
    ach, einen TP gibt es auch noch:
    http://www.ipsta.de/download/freies/Folge_7.pdf
    ich weiß jetzt nicht, ob Siemens den implementiert hat.
    Ich dachte TP entspricht bei Siemens dem SI?

    Im Prinzip kann aber immer durch entsprechend geschickte Verknüpfung alles mit dem TON gemacht werden.
    Ok weiss ich jetzt nicht..

    ansonsten mach ich Zykluszeitzählung mit der Startinformation aus OB1 und zähle entweder in MW (als Integer bis 30 Sekunden) oder in DW bis in fast eine Ewigkeit.
    Wieso passen nur 30 Sek in ein Merkerwort, wenn man die OB1-Startinformation auswertet? Könntest du mich diesbezüglich erleuchten? ^^ Denn das klingt nach ner effizienten Möglichkeit mit Zeiten zu arbeiten.

    Wahlweise natürlich auch im IDB, aber das kommt dann später, wahlweise die IEC-Timer.
    Wie später? ^^

    Ich interpretiere deinen Code mal:
    Code:
    // ***** Zeiten abzählen
          L     #V_Zustandsdauerzaehler //lokale statische (? denn sie muss mehrere Zyklen überdauern?) Variable --> Akku1
          L     "Zykluszeit" //globale Konstante (aus einem globalen DB?) --> Akku 1; Zähler --> Akku 2
          +I    
          SPO   m001 //Bei Überlauf springen, aber warum erst bei Überlauf ?
          T     #V_Zustandsdauerzaehler //Zähler inkrementieren
    m001: L     #V_Zustandsmindestdauer // --> Akku 1; Zykluszeit --> Akku 2
          >I    //Wenn Akku2 > Akku 1, also Zykluszeit > Zykluszeit_min
          =     #T_Wartezeit_abgelaufen
          POP   //Akku 2 --> Akku 1, also Zykluszeit --> Akku 1 und Akku 2
          L     #V_Zustandsmaximaldauer //--> Akku 1
          <I    //Wenn Akku 2 < Akku 1, also Zykluszeit < Zykluszeit_max ==> es muesst andersherum sein, also if(max < ist) ?
          =     #T_Wartezeit_ueberschritten
    ...aber fangen wir mal langsam an - den SA hast in fünf Minuten gelöffelt, dann kannst ja mal weiterschaun, was sonst noch so interessiert.
    Du meinst den SA aus dem Eingangsbeispiel? Bin gerade daran..
    Geändert von Flux (07.10.2012 um 21:59 Uhr)

  10. #20
    Avatar von Flux
    Flux ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.03.2012
    Beiträge
    314
    Danke
    60
    Erhielt 9 Danke für 8 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    So, nun ein neuer Versuch den Lüfter zu verstehen:

    Code:
    U     #Motor_Ein //Wenn Motor_Ein == “1”       
    L     S5T#4S     //Lade Zeitdauer (=Faktor * Raster) in Akku 1       
    SA    #Zeitfunktion //Wenn Motor_Ein “1” --> “0” zähle die Zeit runter       
    U     #Zeitfunktion //Solange die Zeit abläuft..       
    =     #Luefter_Ein  //..lasse den Lüfter eingeschaltet
    Vorausgesetzt die Verkettung bezieht alle Anweisungen mit ein:

    • Was ich nicht verstehe ist, wie wird in dieser AWL berücksichtigt, dass der Lüfter bei FP von #Motor_Ein eingeschaltet wird ? Ist das, weil da #Zeitfunktion immer “1” ist?
    • Wieso bleibt der Lüfter nach FN von #Motor_Ein eingeschaltet? Wenn die Verknüpfung alle Anweisungen miteinbezieht, dann ist die Erste - also U #Motor_Ein (=“0”) - nicht erfüllt, oder?

Ähnliche Themen

  1. Antworten: 16
    Letzter Beitrag: 23.05.2017, 16:03
  2. Antworten: 33
    Letzter Beitrag: 31.05.2012, 19:15
  3. PI Regler Lernen
    Von emilio20 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 06.12.2011, 21:19
  4. AWL lernen
    Von Waelder im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 27.04.2005, 18:34
  5. WIN CC lernen
    Von Outrider im Forum HMI
    Antworten: 4
    Letzter Beitrag: 27.07.2004, 16:21

Lesezeichen

Berechtigungen

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