Werte an PLC_PRG übergeben (Anfängerfrage)

outlop

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,


Wie kann man Werte an PLC_PRG beziehungsweise PLC_cfgOutputs übergeben ?
Habe eine PRG In_Levl welches einen FB LevlControll aufruft und dieser ruft einen FB LevlOutputSet auf, wo die Outputwerte berechnet werden.
Wie kann ich die Werte an PLC_cfgOutputs übergeben.
Die Funktion In_Levl wird nicht direkt in PLC_PRG aufgerufen.

Danke für eure Hilfe
 
Programme können von Programmen und Funktionsblöcken aufgerufen werden. Ein Programmaufruf in einer Funktion ist nicht erlaubt. Es gibt auch keine Instanzen von Programmen.


Wenn ein Baustein ein Programm aufruft, und es werden dabei Werte des Programms verändert, dann bleiben diese Veränderungen beim nächsten Aufruf des Programms erhalten, auch wenn das Programm von einem anderen Baustein aus aufgerufen wird.

Dies ist anders als beim Aufruf eines Funktionsblocks. Dort werden nur die Werte in der jeweiligen Instanz eines Funktionsblocks geändert. Diese Veränderungen spielen also auch nur eine Rolle, wenn dieselbe Instanz aufgerufen wird.

Wenn man beim Aufruf eines Programms die Eingabe- und/oder Ausgabeparameter, also Werte der Ein-/Ausgabevariablen beim Aufruf setzen will, dann geschieht das bei den Textsprachen AWL und ST, indem man nach dem Programmnamen in Klammer den Parametern Werte zuweist. Die Zuweisung erfolgt durch ":=" wie bei der Initialisierung von Variablen an der Deklarationsstelle.

Wird ein Programm unter Verwendung der Eingabehilfe <F2> mit Option Mit Argumenten im Implementationsfenster eines ST oder AWL-Bausteins eingefügt, wird sie automatisch in dieser Syntax mit ihren Parametern dargestellt. Die Parameter müssen jedoch dann nicht zwingend belegt werden.


Beispiele für Aufrufe eines Programms


In einem Programm PRGexample2 sind die Eingabevariable in_var und die Ausgabevariable out_var sind jeweils vom Typ INT deklariert. Lokal deklariert ist die Variable erg, ebenfalls vom Typ INT:

In AWL:

CAL PRGexample2
LD PRGexample2.out_var
ST ERG

oder mit unmittelbarer Angabe der Parameter (Eingabehilfe Mit Argumenten, s.o.):

CAL PRGexample2(in_var:=33, out_var=>erg )

In ST:

PRGexample;
Erg := PRGexample2.out_var;


oder mit unmittelbarer Angabe der Parameter (Eingabehilfe Mit Argumenten, s.o.):

PRGexample2(in_var:=33, out_var=>erg );
 
Zurück
Oben