Hallo Frank,
hier sind mehrere Punkte nicht OK.
Das Program "PLC_PRG", wie eigentlich auch jeder andere Baustein vom Typ "PROGRAM", hat
normalerweise keine Variablen vom Typ VAR_INPUT, VAR_OUTPUT und VAR_IN_OUT.
Diese Variablen verwendet man in Funktionsbausteinen bzw. Funktionen.
VAR_INPUT -> Eingangsparameter eines Bausteins / Funktion, der Wert der Variablen wird übergeben.
VAR_OUTPUT -> Ausgangsvariablen eines Bausteins, der Wert der Variablen wird übergeben.
VAR_IN_OUT -> Variable die als Referenz (Zeiger auf die eigentliche Variable) übergeben wird.
zB. die Variable "Minutenzähler" liegt eigentlich im Speicherbereich von PLC_PRG, dem OT-Baustein wird über den VAR_IN_OUT Parameter die Adresse der Variablen übergeben, und er kann sowohl lesend als auch schreibend auf die Variable zugreifen.
Der Deklarationsteil muss so aussehen:
PROGRAM PLC_PRG
VAR
Betriebsstunden: OT;
Ausgang_Q1 AT %QX0.0: BOOL;
Ausgang_QV: UDINT;
Eingang_RE AT %IX0.0: BOOL;
Eingang_EN AT %IX0.4: BOOL;
SOLL_I1: UDINT;
END_VAR
VAR RETAIN
Minutenzaehler: UDINT;
END_VAR
Der Programmteil sieht dann so aus:
Betriebsstunden(
EN:= Eingang_EN ,
I1:= SOLL_I1,
RE:= Eingang_RE,
udiMinuteCounter:=Minutenzaehler ,
Q1=>Ausgang_Q1 ,
QV=>Ausgang_QV );
Ich hoffe das war einigermassen verständlich...
Viele Grüße
Dieter