Eigene Funktion IN aus Datenbaustein

Keeper

Level-2
Beiträge
61
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

habe schon ein wenig in den FAQ nachgesehen, aber leider nichts richtiges gefunden. Hoffe ich ...

Habe mal fogende Frage:
Wenn ich eine eigene Funktion schreibe, und im Schnittstellenbereich z.B. bei IN eine Variable vom Typ Word anlege, und dann versuche beim Funktionsaufruf dieses wie folgt zu belegen:
DB51.dbw10
kann ich dieses ohne Störmeldung tun, aber wenn ich die Funktion ausführe passiert dort nicht.
Erst wenn ich den DB erst aufrufe und dann nur:
DBW 10
aufrufe funktioniert es. Kann mir jemand erklären warum das so ist, oder wie es trotzdem hinbekomme.

Danke.
 
Was hast du vor?
Wo passiert nichts?
Soll in dem DB51.DBW10 was passieren?
Die Eingangsvariable (IN) wird von deiner Funktion nur gelesen.
Nimm mal IN/OUT.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe mir einen Timer gebaut.

AUF DB 51 // Da es ja mit der langen Adressierung nicht funktioniert
CALL "Minutentimer"
Sollwert_Minuten :=DBW10 anstelle von DB51.DBW10
Istwert_Minuten :=DBW138 anstelle von DB51.DB138
Start_Timer :=M205.0
Reset :=M206.0
Ist_Soll :=M100.0


An diesen sind der Soll und Istwert angelegt.
Diese wollte ich mit der direkten Adresse aus einem Datenbaustein belegen. Also:
DB51.DBW10

Dieses funktioniert aber nicht, also habe ich mir wie folgt geholfen.
1. DB aufrufen, vor der Funktion.
2. Dann in der Funktion den DBW 10 öffnen.

Ist das generel in der langen Adressierung möglich?
Wenn ja, welchen Fehler habe ich gemacht?
Wenn nein, warum ist das so?
 
Generell ist von der Reihenfolge her betrachtet Istwert_Minuten ein IN_Parameter,
was in dem Fall total falsch ist, wenn schon, dann muss das ein IN/OUT Parameter sein ...

Mehr Info könnte man mit dem vollständigen Code geben, und nich nur mit dem Aufruf ...

Mfg
Manuel
 
Generell ist von der Reihenfolge her betrachtet Istwert_Minuten ein IN_Parameter,
was in dem Fall total falsch ist, wenn schon, dann muss das ein IN/OUT Parameter sein ...

Werde ich nachher einmal ausprobieren, aber mich wundert dann nur das es einmal funktioniert (mit vorherigem Bausteinaufruf) und bei Gesamtadressierung nicht.
 
Zurück
Oben