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

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

Thema: AWL-Code in SCL umsetzen?

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallöchen,

    hänge da etwas an einer Sache. Habe einen kurzen Code in AWL und müsste das jetzt im TIA-Portal bei ner 1200er einsetzen ... und auch noch erweitern.

    Das Problem ist ja nun, dass es hier kein AWL gibt - und FUP kann ja mit Pointern auch nichts anfangen!

    Frage:

    Kann folgender Beispielcode 1:1 in SCL (mit Pointern) umgesetzt werden?


    Code:
          L     #Nummer                 
          SLD   3                           
          T     MD   120                    
    
          AUF DB30
          L     DBW [MD 120]                
          T     #Wert

    Lieben Dank ...
    LG
    spirit
    Zitieren Zitieren AWL-Code in SCL umsetzen?  

  2. #2
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Das müßte etwa so aussehen (eventuell mit runden Klammern () statt []?)
    Code:
      #Wert := DB30.DW[#Nummer] ;
    Siehe SCL-Hilfe: Indizierter Zugriff auf Datenbausteine

    PS:
    TIA-SCL verlangt die Schreibweise vermutlich so:
    Code:
      Wert := %DB30.DW(Nummer) ;
    Harald
    Geändert von PN/DP (16.08.2014 um 23:30 Uhr) Grund: PS: Schreibweise in TIA-SCL
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  3. #3
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Das müßte etwa so aussehen (eventuell mit runden Klammern () statt []?)
    Code:
      #Wert := DB30.DW[#Nummer] ;
    Siehe SCL-Hilfe: Indizierter Zugriff auf Datenbausteine

    Harald
    Ok, vielen Dank Harald!

    Werde ich gleich am Montag im TIA versuchen ...

    Dann kann ich mir ja (unbesorgt) weiter Gedanken machen, wenn das alles umsetzbar ist.
    LG
    spirit

  4. #4
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Hm, also irgendwie funzt das noch nicht ...

    Bekomme hier immer einen Fehler angezeigt:

    Fehler.jpg

    Und das sagt die Hilfe dazu (hier noch mit eckigen Klammern!):

    Hilfe.jpg


    Was gebe ich denn nur falsch ein?


    Habe es jetzt mal so eingegeben - sieht etwas besser aus:

    #Wert := "DB_Test".DW[#Nummer];

    Hier wird noch moniert: Der Operand DW ist nicht definiert.
    Geändert von spirit (18.08.2014 um 11:28 Uhr)
    LG
    spirit

  5. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Ich meine, in irgendeiner TIA-Hilfe steht, daß der DB nicht symbolisch angegeben werden darf, sondern die absolute DB-Nummer mit % vornedran.
    Code:
      Wert := %DB30.DW(Nummer) ;
    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  6. #6
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von PN/DP Beitrag anzeigen
    Ich meine, in irgendeiner TIA-Hilfe steht, daß der DB nicht symbolisch angegeben werden darf, sondern die absolute DB-Nummer mit % vornedran.
    Code:
      Wert := %DB30.DW(Nummer) ;
    Harald
    Nehme mal an, du meinst so etwas in der Art hier:

    Unbenannt.JPG


    Dem Ausgang #Wert soll einfach über den Eingang #Nummer der Wert zugewiesen werden, der an entsprechender Stelle im DB steht:

    Wenn ich das nun aber so schreibe

    Code:
      #Wert := %DB30.DW(#Nummer) ;
    dann erhalte ich gleich drei Fehlermeldungen:

    Unbenannt2.JPG
    Geändert von spirit (18.08.2014 um 15:18 Uhr)
    LG
    spirit

  7. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.166
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard

    Dein Ziel-DB hat Standard-Zugriff? Er darf keinen "optimierten Zugriff" haben.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Hallo,
    ich denke mal, dass das %DB30 hier nicht funktioniert sondern das es "DB30" werden müßte.
    Des Weiteren bitte beachten, dass dieser Zugriff dir den Datentyp WORD zurück gibt. Ist Wert aber ein INT dann müßtest du das Ganze erst noch von WORD nach INT umcasten (WORD_to_INT)

    Gruß
    Larry

  9. #9
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    ich denke mal, dass das %DB30 hier nicht funktioniert sondern das es "DB30" werden müßte.
    Des Weiteren bitte beachten, dass dieser Zugriff dir den Datentyp WORD zurück gibt. Ist Wert aber ein INT dann müßtest du das Ganze erst noch von WORD nach INT umcasten (WORD_to_INT)

    Gruß
    Larry
    Danke Larry,

    aber auch diese Schreibweise klappt nicht.

    ABER:

    Kann es sein, dass es nicht klappt, weil ich im TIA keine 300er sondern eine 1200er programmiere?

    Habe jetzt mal etwas gründlicher geschaut, und da gibt es die Fkt. "PEEK" (=Speicheradresse lesen) ...
    Geändert von spirit (19.08.2014 um 11:08 Uhr)
    LG
    spirit

  10. #10
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... das kann natürlich auch sein - ich tippe hier aber eher auf TIA V12 oder höher ... (setze ich selber nicht ein).

    Gruß
    Larry

Ähnliche Themen

  1. Step 7 AWL Code interpretieren oder in SCL umschreiben
    Von SanjaDO im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 07.11.2013, 09:24
  2. AWL Code in SCL umwandeln
    Von robson im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 07.02.2013, 17:48
  3. AWL-Code FX0 in KOP umsetzen
    Von CC273 im Forum Sonstige Steuerungen
    Antworten: 1
    Letzter Beitrag: 21.06.2012, 12:34
  4. Antworten: 2
    Letzter Beitrag: 31.08.2011, 12:28
  5. awl in scl Code einbinden
    Von schlarpi im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 01.09.2008, 12:07

Lesezeichen

Berechtigungen

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