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

Ergebnis 1 bis 10 von 10

Thema: Schleife mit indirekte Adressierung

  1. #1
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute,

    brauche wieder mal eure hilfe.

    Habe eine Funktion geschrieben, die als Rückgabewert eine Summe(INT) ausgeben soll.
    Als Eingangsvariable dient die DB.Nr(INT) und der Schleifendurchlauf (INT).

    Leider funktioniert die Funktion nicht, habe auch keine Ahnung woran es liegt.

    Bedanke mich schon im Voraus für jeden der mir hilft.

    Hänge im Anhang die DB und die FC in pdf-Datei an.FC45.pdfDB1.pdf
    Zitieren Zitieren Schleife mit indirekte Adressierung  

  2. #2
    Registriert seit
    05.09.2011
    Beiträge
    176
    Danke
    43
    Erhielt 28 Danke für 20 Beiträge

    Standard

    Zuerst zum DB-Aufbau: Ich würde mir einen UDT_Prozessschritt erstellen! Da kopierst du deine Struktur hinein die du hier (mühsam) 15 mal runtergetippt hast. Dies kannst du dann als Array [0..14] of UDT_Prozessschritt aufrufen (oder Array [1..15] of UDT_... je nach Geschmack).

    Zum FC: Der Umgang mit temp. Variablen muss klar sein! Beispielsweise wird die Variable Laeufer nirgendwo initialisiert! Da kann irgendein Wert drinnen sein und deine Adresse wird falsch berechnet. Im weiteren Verlauf greifst du auf die Eingangsvariable nicht nur lesend sondern auch schreibend zu!

  3. Folgender Benutzer sagt Danke zu nutellahase für den nützlichen Beitrag:

    S-Victor (02.05.2013)

  4. #3
    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

    1. Siehe Nutellahase: also P_PS_A am Anfang in eine Temp-Variable kopieren und #Laeufer mit 0 beschreiben

    2. Um aus dem berechneten #Offset einen Pointer zu machen muß der Offset noch um 3 nach links geschoben werden.


    L 70
    +I
    SLD 3
    T #Offset
    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

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

    S-Victor (02.05.2013)

  6. #4
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo nutellahase,

    erstmal danke für deine Zeit.

    Aufgrund meiner geringen Kennisse, weiss ich leider nicht was du mit "UDT_Prozessschritt erstellen" meinst geschweige wie es geht.

    Mit der Variable Laeufer hast du recht.

    Denn Ansatz für die Funktion habe ich aus dem Buch "Automatisieren mit SPS" von Günter Wellenreuther und Dieter Zastrow, auf der Seite 468.
    Die Funktion habe ich anschließend nach meinen Bedürfissen erweitert.

    Leider weis ich auch nicht wie ich es lösen soll.

  7. #5
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Habe die Veränderung Vorgenohmen, leider ohne ErfolgFC45,Verändert.pdfFC45,Verändert.pdf

  8. #6
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Sorry, es klappt jetzt.
    Danke

  9. #7
    Registriert seit
    05.09.2011
    Beiträge
    176
    Danke
    43
    Erhielt 28 Danke für 20 Beiträge

    Standard

    Zeig doch mal bitte deine fertige Lösung, es gibt vielleicht auch User, die ein ähnliches Problem haben! Weißt du nun was ein UDT ist? Wenn nicht, erweitere deine Prozessschritte im DB mal auf 100

  10. #8
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch

    Hallo Leute,
    hier ist die Funktion FC45. (pdf-Datei)
    Die Funktion summiert alle Werte aus einem Datenbaustein, abhänig von Schleifendurchlauf und dem Offset.
    Nochmals Danke.
    FC45.pdf/DB21.pdf

  11. #9
    S-Victor ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.11.2012
    Ort
    Kiel
    Beiträge
    17
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo nutellahase,

    weiss moch immer nicht was ein UDA ist.
    Habe mal ein DB (21) erstellt, doch ich tappe im Dunkeln.
    Wo kann ich mein Wissen erweitern, bezüglich UDA?

  12. #10
    Registriert seit
    24.01.2012
    Beiträge
    511
    Danke
    92
    Erhielt 21 Danke für 20 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von S-Victor Beitrag anzeigen
    weiss moch immer nicht was ein UDA ist.
    Du meinst sicherlich UDT?

    UDT:
    http://books.google.de/books?id=QEI0...0step7&f=false

Ähnliche Themen

  1. Antworten: 50
    Letzter Beitrag: 01.08.2011, 12:57
  2. Indirekte Adressierung mit 2 Pointern
    Von TorstenX im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 01.03.2011, 12:39
  3. Indirekte Adressierung FB mit Pointern
    Von kliebisch.m im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 28.10.2010, 12:06
  4. Antworten: 1
    Letzter Beitrag: 05.03.2006, 15:24
  5. Indirekte Adressierung mit S5!!
    Von Anonymous im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 20.10.2004, 15:15

Lesezeichen

Berechtigungen

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