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

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

Thema: AWL Anfängerfrage

  1. #1
    Registriert seit
    22.07.2006
    Beiträge
    132
    Danke
    24
    Erhielt 18 Danke für 12 Beiträge

    Daumen runter


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Leider bin ich SCL verwöhnt, und komme mit AWL nicht mehr so recht klar.
    Warum geht das nicht:

    VAR
    ActualEntry : INT := 0;
    MaximumEntrie : INT := 128;
    Buffer : ARRAY[0..128] OF STRUCT
    wt_nummer : INT := 0;

    TPwt_zur_wartung : BOOL := 0; //vom TouchPanel gesetzt
    END_STRUCT;
    END_VAR


    U #Buffer[ActualEntry].TPwt_zur_wartung // das wird nicht kompiliert
    U #Buffer[0].TPwt_zur_wartung // das wird kompiliert
    Zitieren Zitieren AWL Anfängerfrage  

  2. #2
    Registriert seit
    21.07.2008
    Beiträge
    1.066
    Danke
    51
    Erhielt 140 Danke für 136 Beiträge

    Standard

    Das geht nicht, weil AWL kein SCL ist..

    Das Problem ist die indirekte Adressierung, welche in AWL über Pointer realisiert werden muss.
    http://www.sps-forum.de/showthread.p...ndex-in-S7-AWL

    http://www.sps-forum.de/showthread.p...iger-FIFO-LIFO

  3. #3
    Merten1982 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.07.2006
    Beiträge
    132
    Danke
    24
    Erhielt 18 Danke für 12 Beiträge

    Standard

    so, ich habe jetzt fast alles hinbekommen, aber folgendes fehlt noch:

    Also im AR1 steht die Adresse, wodie aktuelle Zeit hin soll, aber wie ist die

    L P##Buffer //Anfangsadresse des Buffers
    LAR1


    L #ActualEntry
    L 20 // größe eines Eintrages im Buffer
    *D
    SLD 3 //die ersten der Bit sind für die BitAdresse
    +AR1


    CALL "READ_CLK"
    RET_VAL:=#dummy_int
    CDT := [AR1,P#0.0]

  4. #4
    Registriert seit
    02.02.2012
    Ort
    Kaarst
    Beiträge
    126
    Danke
    10
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Du kannst an den Ausgang "CDT" nur eine Variable dran schreiben, keinen Pointer!

    Sprich du musst dir den Wert aus der Clock in ner Variable ablegen

    CALL "READ_CLK"
    RET_VAL:=#dummy_int
    CDT:=#Dummy_Zeit // Format DATE_AND_TIME

    und dann über:

    L DBD X // ersten 4 Byte von Date_and_Time-Format
    T DBD[AR1,P#0.0]

    L DBD X+4 // zweiten 4 Byte von Date_And_Time-Format
    T DBD[AR1,P#4.0] // mit Offset von 4 Byte damits an der richtigen Stelle landet, kann sein das du hier eventuel auf P#3.7 gehen musst ... manchmal spackt das damit auch ein wenig ...

    Dürfte funktionieren ... bin mir aber nicht 100%ig sicher ... hab mir auf die Art und Weise auf jeden fall auch schon viele Werte hin und her kopiert, ohne Probleme (jedoch nicht mit Date_and_Time als Format).

  5. #5
    Registriert seit
    22.01.2012
    Ort
    Dasing
    Beiträge
    22
    Danke
    9
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo.
    Ich glaube, das ich hier nicht ganz richtig bin. Aber vielleicht kann mir hier geholfen werden.
    Ich habe das Problem als Anfänger, das ich die Klammerregelungen nicht ganz verstehe.
    Folgendes: Eine Lampe soll leuchten, wenn immer eine ungerade Anzahl der Eingänge e1, e2 und e3 betätigt sind.
    Als Schaltbild habe ich folgendes: u e1 un e2 un e3 o u e2 un e1 un e3 o e3 un e1 un e2 o e1 u e2 u e3 = a1

    Nun sollen hier die Kontakt mit Klammern so abgeändert werden ,das am Ende statt 12 nur noch 10 Kontakte benötigt werden.
    Das Schlaucht mich sehr. Distributives oder Morgansche oder was auch immer für Gesetze.

    Danke für Euro Hilfe.

    Schönen Abend

    Rainer

  6. #6
    Registriert seit
    15.04.2011
    Beiträge
    1.122
    Danke
    229
    Erhielt 208 Danke für 176 Beiträge

    Standard

    Mein Lösungsvorschlag wäre folgender:

    Code:
          U(    
          X     E      0.0
          X     E      0.1
          X     E      0.2
          )     
          O     
          U     E      0.0
          U     E      0.1
          U     E      0.2
          =     A      0.0
    Geändert von 190B (21.05.2012 um 21:14 Uhr)
    Gruß
    190B

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

    Schmidt-Dasing (22.05.2012)

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

    Standard

    Zitat Zitat von Schmidt-Dasing Beitrag anzeigen
    Als Schaltbild habe ich folgendes: u e1 un e2 un e3 o u e2 un e1 un e3 o e3 un e1 un e2 o e1 u e2 u e3 = a1

    Nun sollen hier die Kontakt mit Klammern so abgeändert werden ,das am Ende statt 12 nur noch 10 Kontakte benötigt werden.
    @190B
    der Rainer braucht doch eine Änderung seines Schaltbilds mit 10 Kontakten !
    Geändert von SoftMachine (21.05.2012 um 21:27 Uhr)
    kind regards
    SoftMachine

  9. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    Schmidt-Dasing (22.05.2012)

  10. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Darf man denn vorher die Kontakte innerhalb der Oder-Verknüpfungen ein wenig vertauschen? (Was die Logik ja nicht verändert)
    Dann würde ich das ein klein wenig umordnen und KOP/FUP-gerecht schreiben:

    Code:
          U     E      1.0
          UN    E      2.0
          UN    E      3.0
          O     
          UN    E      1.0
          U     E      2.0
          UN    E      3.0
          O     
          UN    E      1.0
          UN    E      2.0
          U     E      3.0
          O     
          U     E      1.0
          U     E      2.0
          U     E      3.0
          =     A      1.0
    Das kann man dann um 2 Kontakte vereinfachen:

    Code:
          U     E      1.0
          U(    
          UN    E      2.0
          UN    E      3.0
          O     
          U     E      2.0
          U     E      3.0
          )     
          O     
          UN    E      1.0
          U(    
          U     E      2.0
          UN    E      3.0
          O     
          UN    E      2.0
          U     E      3.0
          )     
          =     A      1.0
    Geändert von Ralle (21.05.2012 um 22:33 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

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

    Schmidt-Dasing (22.05.2012)

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

    Standard

    Hallo Ralle,
    mit dem geforderten Ausklammern usw. habe ich folgende Lösung mit 10 Kontakten gefunden (gibt aber derer 3, je nachdem, was ausgeklammert wird):
    Code:
    o( 
    u e1 
    o(
    u  e2 
    u  e3
    ) 
    o( 
    un e2 
    un e3
    )
    ) 
    o(
    un e1 
    o(
    u  e2 
    un e3
    ) 
    o(
    un e2 
    u  e3
    )
    ) 
    = a1
    kind regards
    SoftMachine

  13. Folgender Benutzer sagt Danke zu SoftMachine für den nützlichen Beitrag:

    Schmidt-Dasing (22.05.2012)

  14. #10
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von SoftMachine Beitrag anzeigen
    Hallo Ralle,
    mit dem geforderten Ausklammern usw. habe ich folgende Lösung mit 10 Kontakten gefunden (gibt aber derer 3, je nachdem, was ausgeklammert wird):
    Code:
    o( 
    u e1 
    o(
    u  e2 
    u  e3
    ) 
    o( 
    un e2 
    un e3
    )
    ) 
    o(
    un e1 
    o(
    u  e2 
    un e3
    ) 
    o(
    un e2 
    u  e3
    )
    ) 
    = a1
    Ja, es gibt mehrere Möglichkeiten!
    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

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

    Schmidt-Dasing (22.05.2012)

Ähnliche Themen

  1. Antworten: 16
    Letzter Beitrag: 23.05.2017, 16:03
  2. Anfängerfrage zu FB
    Von Nafura im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 17.05.2010, 09:28
  3. Anfängerfrage
    Von HonestAnnie im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 08.07.2008, 16:36
  4. Anfängerfrage
    Von Brunoooo im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 13.03.2008, 14:01
  5. Anfängerfrage
    Von yellow1 im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 14.11.2006, 20:24

Lesezeichen

Berechtigungen

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