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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 28

Thema: An FB übergebene INT-Variable als Array-Index nutzen

  1. #1
    Registriert seit
    22.05.2006
    Beiträge
    3
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo allerseits,

    für Euch alte Hasen sicherlich PillePalle, mich treibt's zum Wahnsinn:

    Ich möchte an einen FB zwei Integervariablen übergeben: "Index" und "Wert". Innerhalb des FB soll dann der "Wert" in ein Array "ary_Werte[]" an der Position "Index" gespeichert werden.

    Etwa in der Form:
    [code]
    ...
    // --- Funzt so leider nicht ---
    L #Wert // Wert laden
    T #ary_Werte[#Index].Wert // und im Array speichern
    ...
    [code]

    Wäre nett, wenn sich jemand erbarmen würde...

    Liebe Grüße

    Gordon S
    Zitieren Zitieren An FB übergebene INT-Variable als Array-Index nutzen  

  2. #2
    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

    Mit Indizes kannst du nur in SCL arbeiten (leider). Ansonsten mußt du mit indirekter Adressierung selbst ran (Suche in Forum unter indirekte Adressierung)
    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

  3. #3
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 276 Danke für 86 Beiträge

    Standard

    Lade den Index ins AR1, welches du als Index nutzt. Denk an die Bytelänge deiner Arrayvariablen.

    pt
    Gegen Schwachsinn, Schwachköpfe und armselige Trittbrettfahrer kann man nicht argumentieren.

    Gott sieht alles, auch Signaturen in Geheimschrift,,... aber er petzt nicht.

  4. #4
    Registriert seit
    24.11.2005
    Ort
    Bielefeld
    Beiträge
    21
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Benutz lieber SCL!

    Ich habe solche geschichten früher auch in AWL programmiert.
    Blut Schweiss und Tränen für eine Geschichte die mit SCL ein lächeln kostet....

  5. #5
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    Hi

    Schliesse mich der Meinung von "MAuksutat" an.

    Zudem ist es möglich mit "structs" zu Arbeiten.


    Der Erzeugte Code ist auch sehr Kompakt und somit schnell.
    (Debugen unter SCL ist sehr EASY)




    Karl

  6. #6
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Reden

    Hi

    >Do you have Math Problems ?? Then call 0049-0800 sin(lg((10^45*tan(56))/(f(0)'->(45x^3/3x^2*3x^7)))

    Ups, ist ne Sadomasonummer !


    Karl

  7. #7
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    Zitat Zitat von gravieren
    Der Erzeugte Code ist auch sehr Kompakt und somit schnell.
    (Debugen unter SCL ist sehr EASY)
    Karl
    dem muss ich sehr wiedersprechen.

    der von scl erzeugte code ist unter aller kanone. hast du dir so einen baustein schon mal angesehen?

    wenn ich sowas in awl progge ist das bedeutend kürzer und ubersichtlicher.

    awl ist was für 'könner';
    scl was für 'anwendungsprogrammierer' ala vb c etc die auch mal eine sps programmieren wollen.

    (es gibt sicherlich funktionen, die in scl einfacher (aber nicht unbedingt besser/kürzer) zu proggen sind (scheiss auf den speicherplatz und die zykluszeit. da muss dann halt eine schnellere cpu mit mehr speicherplatz her. windows lässt grüssen. schaut euch mal bei siemens an wofür die scl vorgesehen haben. für standartverknüpfungen etc sollte man sowas aber in jedem fall meiden. also ich möchte kein 'windows' in meiner steuerung. )

    kein compiler kann so gut übersetzten wie ein 'kluger geist'

    aber diese diskussion, wann man scl einsetzen sollte, hatten wir schon öfter.

    schauen wir uns mal ein simples beispiel an.
    zuerst mal der code in awl
    Code:
          U     E      0.0
          =     M      3.0
    hier der scl-code der das gleiche bewirkt
    Code:
        IF e0.0 THEN
            m3.0 := true;
        ELSE;
            m3.0:= false;
        END_IF;
    und hier der code, der vom compiler aus dem scl-code erzeugt wird
    Code:
          SET   
          SAVE  
          =     L      0.1
          U     E      0.0
          SPBN  M001
          SET   
          =     M      3.0
          SPA   M002
    M001: CLR   
          =     M      3.0
    M002: CLR   
          U     L      0.1
          SAVE
    muss man da jetzt noch mehr zu sagen ?

    und das ist nur ein sehr simples beispiel.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. #8
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.725
    Danke
    314
    Erhielt 1.519 Danke für 1.282 Beiträge

    Standard

    Ich bin zwar auch kein Freund von SCL,
    aber wenn du das
    U E0.0
    = M3.0
    so in SCL umsetzt, mit einer IF .. Then .. Else Anweisung,
    brauchst du dich nicht wundern wenn da was aufgeblähtes rauskommt.

    Probiers mal so:

    M3.0 := E0.0


    Dann kommt als AWL Code immerhin sowas raus:
    Code:
    SET   
          SAVE  
          =     L      0.1
          U     E       0.0
          =     M      3.0
          U     L      0.1
          SAVE  
          BE
    Was allerdings das Spielchen mit L0.1 soll, weiß wahrscheinlich mal
    wieder nur Siemens.
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  9. #9
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    Hi Volker

    Heute Abend werde ich hier mal eine SCL-Code und das erzeugte AWL reinstellen.


    Leider habe ich momentag keine Zeit.


    Solltest du lust haben kannst du mir das mal in AWL umcoden.

    Anschliesend Vergleichen wir mal beide.


    P.S. Ich behaupte, dass etliche Projekte im Vornherein ohne SCL gescheitert worden wäre.
    Ich benutze SCL nur da, wo dies Sinnvoll/Unverzichbar wegen der Übersicht ist. Simple Verknüpfungen schreibe ich naturlich auch in AWL.

    Zur Info: "Modular PID" und "Standard PID Control" sind in SCL geschrieben. der Nutzer bemerkt den unterschied NICHT, da sich AWL und SCL mischen lassen.


    Wir gesagt Volker, solltest du Interesse an der "Demo" haben rühre dich hier im Forum.
    (Ist so ein "Glaubenskrieg" wie Win und Linux )


    Karl

  10. #10
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.849
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von gravieren
    Solltest du lust haben kannst du mir das mal in AWL umcoden.
    Anschliesend Vergleichen wir mal beide.
    ja stell mal rein

    Ich benutze SCL nur da, wo dies Sinnvoll/Unverzichbar wegen der Übersicht ist. Simple Verknüpfungen schreibe ich naturlich auch in AWL.
    kluge entscheidung. es gibt aber auch leute die schreiben das komplette programm in scl. wir haben zum beispiel einen alu-schmelzofen der so programmiert ist wie oben erwähnt.

    @msb. M3.0 := E0.0
    das ist natürlich schon bedeutend besser, aber immer noch doppelt so lang

    Zur Info: "Modular PID" und "Standard PID Control" sind in SCL geschrieben.
    eben genau für solche anwendungen ist scl entwickelt worden. für sowas macht das auch sinn.

    fazit ist aber das der compilierte scl-code länger ist.
    ich gebe unumwunden zu, dass sich manche anwendungen in scl einfacher realisieren lassen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. Index Array
    Von peraho im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 16.10.2012, 09:16
  2. Array mit index
    Von bluebird277 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 29.08.2011, 11:23
  3. Schieberegister mit Array und Variablem Index
    Von bluebird277 im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 30.03.2011, 12:05
  4. Index aus Array auslesen
    Von heri1980 im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.09.2010, 14:54
  5. C-Script aus Index in Variable schreiben
    Von WendeMarkus im Forum HMI
    Antworten: 0
    Letzter Beitrag: 23.08.2010, 05:34

Lesezeichen

Berechtigungen

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