Step 7 Schleife mit indirekte Adressierung

S-Victor

Level-1
Beiträge
17
Reaktionspunkte
0
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.Anhang anzeigen FC45.pdfAnhang anzeigen DB1.pdf
 
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!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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.:cry:
 
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 ;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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?
 
Zurück
Oben