Mit Any- Pointer auf Lokaldaten zugreifen

AJ67

Level-1
Beiträge
30
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Ich möchte in einem FB Daten mit hilfe der Bausteine SFC 14 "DPRD_DAT" und SFC 15 "DPWR_DAT" von/für einem/n Profibusteilnehmer (FU) verarbeiten. Nun habe ich Probleme die Daten in meine Lokalvariablen zu bekommen. Wenn ich bei Record einen Merkerbereich angebe funktioniert das ganze. Wenn ich aber auf meinen Lokaldatenbereich zeige wird nichts eingetragen.

Was mache ich falsch?

Code:
      CALL  SFC   14
       LADDR  :=#LADDR
       RET_VAL:=#SFC14_RET_VAL
       RECORD :=P#M 22.0 BYTE 8

So läufts

Code:
      CALL  SFC   14
       LADDR  :=#LADDR
       RET_VAL:=#SFC14_RET_VAL
       RECORD :=P#L 12.0 BYTE 8

so nicht

mein Lokaldatenbereich besteht aus bits (BOOL), und wörtern (WORD), ist das ein Problem?

MFG AJ
 
Zuletzt bearbeitet:
Spontaner Gedanke:
L = Temp-Variablen
ist das so korrekt bzw. von dir so beabsichtigt?

Mfg
Manuel
 
Noch besser wäre vielleicht, die Lokaldaten schon als Struct anzulegen und diese Struct dann an den SFC zu schreiben. Dann ist das symbolisch adressiert, was bei späteren Änderungen Ärger vermeiden kann.
 
@AJ:
Nach meiner Meinung sollte auch das Zuweisen auf die Lokaldaten funktionieren. Schöner wäre es, wie schon von Ralle beschrieben.
Um jetzt aber sagen zu können, warum es bei dir nicht funktioniert, müßte man vielleicht doch den Code deines Bausteins kennen (ich habe da wahrscheinlich auch die gleichen Gedanken, die wohl auch MSB schon hatte ...)

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
der L-Stack wird doch von allen FC/FB´s verwendet. D.h. er wird pro FC und FB einmal komplett überschrieben. Deshalb muß der Anypointer in dem selben Baustein sein!
Oder irre ich da?
 
Hi!

Danke schon mal für die schnellen Antworten!
Ich möchte die Daten in die Statischen (STAT) Variablen des Bausteins schreiben und sie darüber in einem InstanzDB speichern. Muss ich das dann anders adressieren???

das mit der Struct ist schon mal eine sehr gute Idee!

Ich häng mal den Baustein als .Pdf an! (Ist ein erster Entwurf!!!!)

Über weitere schnelle Hilfe wäre ich natürlich wieder sehr dankbar!
 

Anhänge

  • FB50.pdf
    26,6 KB · Aufrufe: 100
Zuviel Werbung?
-> Hier kostenlos registrieren
Ohhhhh man!!!

Ja, schei.....

Manchmal da sieht man den Wald vor lauter Bäumen nicht! Klar, nur irgendwie kam ich gerade scheinbar nicht auf den richtigen Syntax!!!

Vielleicht hätte ich einfach mal in älteren Projekten schauen sollen!

Danke!!!!

(Ich übe ja noch!!! :) )
 
Zuletzt bearbeitet:
die festsollwertverteilung würde sich auch schön über SPL machen lassen, hat dann sone art CASE OF funktionalität ... aber das nur am rande
 
Spl???

Ist mir jetzt nicht ganz schlüssig was du mit SPL meinst? Kannst du mir da noch etwas weiterhelfen? Oder meinst du SCL?

Gut, die Festsollwertzuteilung gefällt mir so auch noch nicht ganz! Wird aber auch im ersten Programmteil noch nicht gebraucht. Dachte mir nur ich bereite sie schon mal so grob vor!

AJ
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Er meint SPL, das ist ein AWL-Befehl. (Sprungleiste) Mach mal einen AWL-Baustein auf, gib dort SPL ein , Cursor drauf und dann "F1".
 
Ok!

Ja, OK!

Hatte da schon mal geschaut aber scheinbar nicht die richtige AWL- Hilfe aufgerufen! Jetzt hab ich ihn!

Macht aufjedenfall sinn mit dem Befehl, richtig!

Danke!
 
Zurück
Oben