TIA UDT temp lesend im FC

EMZ

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

habe mal eine weitere FC Frage.

Ich will in einem FC eine temporäre Variable von Datentyp UDT mit einer Variable Bool lesend zugreifen.
Außerhalb des FC´s ändert sich der Zustand der Variable z.B. im DB allerdings ändert sich der Zustand nicht innerhalb des FC´s.
Schalten auf TRUE und FALSE mache ich über einen Merker zum testen.

-Ich setze über einen Merker das Bit vom UDT.
-Dieses Bit habe ich in einem globalen DB deklariert.
-und habe eine temporäre Variable im FC angelegt vom TYP des UDT´s. Diese Boolsche Variable lese ich dann im Programm.

Ich stand mal vor dem selben Problem, ist aber schon einpaar Jahre her. Leider kann ich mich nicht mehr daran erinnern.

Wo liegt der Wurm.? Habt ihr ne idee. ( Wenn ich die Variable als IN deklariere funktioniert es) WIll es aber nicht als IN/Out/InOut

Vielen Dank für eure Hilfe.

Gruß
EMZ
 
hi


//merker setzen

Code:
IF "MerkerTest" THEN
    "DB_1".Freigabe1.FRG := TRUE;
ELSE
    "DB_1".Freigabe1.FRG  := FALSE;
END_IF;


Temp: im FC
1674222952427.png

DB_1:
im DB_1 ist der UDT ebenfalls deklariert.


Steuerung: 1513 1-PN
V17



Vorhaben: Ich möchte die Variable nicht bei jedem Aufruf vom FC von außen beschalten sondern intern im Baustein handeln.
 
Ein UDT ist wie der Name schon sagt ein Datentyp und keine Variable. Wenn du MW0 beschreibst erwartest du beim Lesen von MW2 doch auch nicht den Inhalt von MW0 nur weil beides der gleiche Datentyp ist?
 
über einen Input funktioniert das. Allerdings möcht ich nicht von außen beschalten.
Wie sollen denn sonst diese Daten in den FC kommen? (Wenn Du ihn bibliotheksfähig und mehrfach verwendbar halten willst)
Ansonsten kannst natürlich im FC auf
t_FRG_1.FRG :="DB_1".Freigabe1.FRG;
ganz normal zugreifen
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
über einen Input funktioniert das. Allerdings möcht ich nicht von außen beschalten.
Es ist wie schon von Oberchefe genannt. Dein Input ist eine Variable. Dein UDT ist ein Datentyp - also so wie z.B. Date oder INT.
Du kannst nun aber einer Variablen sagen, dass sie vom Typ deines UDT's sein soll. Damit hat die Variable (also in dem Fall der Bereich in dem DB) den Aufbau. Den gleichen Typ kannst du in demselben oder auch in vielen anderen DB's immerb wieder benutzen (auch mehrfach) - trotzdem hat keine der Deklarationen etwas mit der anderen zu tun.
 
wie würdet ihr es machen?
mehr eintippen oder den also mit Input oder eher direkt über die DB Variable beschreiben
 
Hatte einen Denkfehler. War ja im Temp-Bereich und nicht im Input/InOut. Kann ja nicht gehen. Ich depp
 
Zurück
Oben