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

Ergebnis 1 bis 8 von 8

Thema: SCL indirekt Adressieren

  1. #1
    Registriert seit
    27.02.2010
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich bin Anfänger in der SPS Programmierung und hätte eine Bitte.
    Wie kann ich in SCL so eine Schleife programmieren?

    U #Var_1
    SPBN IDR1
    AUF DB [#Instanz_DB_Nr_Temp]
    L 0
    T #Vergleich
    L P#26.0
    T #Zeiger_1
    L 13
    BEGN: T #Schleifenzaehler_1
    L #Var_2
    L #Vergleich
    ==I
    = DBX [#Zeiger_1]
    L #Vergleich
    L 1
    +I
    T #Vergleich
    L #Zeiger_1
    L P#0.1
    +D
    T #Zeiger_1
    L #Schleifenzaehler_1
    LOOP BEGN

    Vielen Dank im Vorraus für eure Hilfe.
    LG
    Zitieren Zitieren SCL indirekt Adressieren  

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

    Standard

    Hallo,
    dazu gibt es sogar in der SCL-Hilfe einiges Brauchbares zu Lesen - aber wie auch immer - so baut man eine Schleife :
    Code:
    FOR i := 1 to 100 by 1 do
       meinArrayElement[i] := i ;
    END_For ;
    ... dein Code entzieht sich mir gerade ein bißchen - was soll der denn machen (als Beschreibung) ?

    Gruß
    Larry

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

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo,
    dazu gibt es sogar in der SCL-Hilfe einiges Brauchbares zu Lesen - aber wie auch immer - so baut man eine Schleife :
    Code:
    FOR i := 1 to 100 by 1 do
       meinArrayElement[i] := i ;
    END_For ;
    ... dein Code entzieht sich mir gerade ein bißchen - was soll der denn machen (als Beschreibung) ?

    Gruß
    Larry
    Sieht so aus, als ob ein Bit im IDB DBW26, in Abhängigkeit, von #Var_2 gesetzt wird.

    ist Var_2 = 0, dann Bit_0 = 1
    ist Var_2 = 1, dann Bit_1 = 1
    ist Var_2 = 2, dann Bit_2 = 1
    ...
    Geändert von Ralle (19.05.2011 um 07:30 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

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

    Standard

    @Ralle:
    Wenn du mit der Vermutung Recht hast dann wäre das nach meiner Meinung kein Fall für eine Schleife ...

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

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    @Ralle:
    Wenn du mit der Vermutung Recht hast dann wäre das nach meiner Meinung kein Fall für eine Schleife ...
    Ja, dann würde ich das auch anders machen, selbst in AWL geht das besser zu machen. Aber es gibt immer bessere Möglichkeiten und wenn ich den Code so sehe ...
    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

  6. #6
    Nafura ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.02.2010
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo

    Vielen Dank für eure Antworten.
    Das Ganze sollte aus einer Auswahl von 10 verschiedenen Auswahloptionen jeweils 5 Datenwörter je Option, also 50 Datenwörter aus einem Global DB laden und in eine Variable schreiben.

    Der AWL Code ist der 1 Teil der Auswahloption, wie gesagt bin ich Anfänger und würde mich über alles sehr freuen was mir weiterhelfen könnte.

    Wenn ich diese "Schleife" in SCL nicht hinbekomme, würde es mit CASE funktionieren, dann müsste ich aber von 1-10 jeweils die 5 Datenwörter aus dem DB eintragen und hätte eine lange Liste.

    1: xxxxx
    xxxxx
    xxxxx
    xxxxx
    xxxxx
    2: usw...

    Wenn es beim nächsten Mal nicht 10 Optionen sondern 500 sind,stehe ich wieder vor dem gleichen Problem.

    Vielen Dank noch einmal für eure Hilfe.

    LG,Naf

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

    Standard

    Also willst du bei dem Übergabewert von "1" z.B. die DBW#s 0..8 aus dem DB laden und bei "2" dann 10..18 usw. ?
    Wenn ja dann geht das über die Index-Bildung, was in SCL wirklich einfach geht :
    Code:
    myIndex := (Vorgabe -1) * 10 ;
    myAusgabe1 := "Vorgabe_DB".DBW[myIndex +0] ;
    myAusgabe2 := "Vorgabe_DB".DBW[myIndex +2] ;
    myAusgabe3 := "Vorgabe_DB".DBW[myIndex +4] ;
    myAusgabe4 := "Vorgabe_DB".DBW[myIndex +6] ;
    myAusgabe5 := "Vorgabe_DB".DBW[myIndex +8] ;
    das in einer Schleife umzusetzen geht nur wenn dann myAusgabe auch wieder vom Typ Array ist.

    Gruß
    Larry

  8. #8
    Nafura ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    27.02.2010
    Beiträge
    11
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für deine Hilfe, das ist genau das was ich gesucht habe.
    Danke hat mir sehr geholfen.

    LG, Naf

Ähnliche Themen

  1. PEW; PAW indirekt Adressieren
    Von casius im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 02.10.2017, 09:00
  2. UDT Indirekt Adressieren
    Von EULANER im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 14.11.2010, 19:30
  3. SFC 20 indirekt adressieren
    Von drmicha im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.10.2009, 09:24
  4. Typ Struct Indirekt adressieren
    Von Jordy im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 23.01.2008, 10:11
  5. ANY-Pointer indirekt adressieren
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.02.2004, 15:41

Lesezeichen

Berechtigungen

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