VAR, VAR_INPUT ?

der_NooB

Level-2
Beiträge
192
Reaktionspunkte
7
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Leute,

ich versuche zu verstehen, wenn ich Eingänge, Ausgänge habe oder interne Variablen benötige, dann egal alles unter VAR?
Alles wird unter VAR definiert.
was mich eigentlich bisschen verwirrt

Oder wie ich mir vorgestellt habe, Sensoren und Taster unter VAR_INPUT,
Motoren und M.V. unter VAR_OUTPUT
und Variablen wie TON, TOF, usw., die ich nur im Programm benötige, um meine Logik zu erstellen, dann unter VAR.
und dann auf meine Karten so 111.png
ist das so richtig oder man kann entweder oder machen ?
112.png


Ich habe bemerkt, dass alles unter VAR definiert wird und dann mit AT in einer GVL verbunden wird.
Was ich nicht ganz verstehe, war das bei S7 nicht so, oder?

Danke für eure Unterstützung.
 
VAR_INPUTBaustein Eingangsvariablen
Zuweisung im aufrufenden Baustein grafisch: links
Zuweisung im aufrufenden Baustein textuell: :=
VAR_OUTPUTBaustein Ausgangs-Variablen
Zuweisung im aufrufenden Baustein grafisch: rechts
Zuweisung im aufrufenden Baustein textuell: =>
VAR_IN_OUTBaustein Ein-/Ausgabevariablen, können im Baustein gelesen aber auch manipuliert werden
Zuweisung wie Eingangsvariablen
VARBausteininterne (statische) Variablen
VAR_GLOBALGlobale Variablen, deklariert in einer GVL (Globalen Variablen Tabelle)
ATEin symbolischer Name für eine Speicheradresse, z.B. Hardware-Ein- bzw. Ausgänge
Der symbolische Name spricht die Speicherstelle in der SPS an. Du kannst also %IX5.7 schreiben, um auf den Eingang 5.7 zuzugreifen oder aber dem Eingang über AT den Namen "Lichtschranke_B12" geben und dann mit diesem symbolischen Namen im Code arbeiten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
VAR_INPUTBaustein Eingangsvariablen
Zuweisung im aufrufenden Baustein grafisch: links
Zuweisung im aufrufenden Baustein textuell: :=
VAR_OUTPUTBaustein Ausgangs-Variablen
Zuweisung im aufrufenden Baustein grafisch: rechts
Zuweisung im aufrufenden Baustein textuell: =>
fa.png
meine Motoren sind Ausgänge, deswegen habe ich die unter VAR_OUTPUT
und ich will bei NOT_AUS dass alles auf False gesetzt aber anscheinend mit dem Zuweisung => funktioniert nicht
VAR_IN_OUTBaustein Ein-/Ausgabevariablen, können im Baustein gelesen aber auch manipuliert werden
Zuweisung wie Eingangsvariablen
VARBausteininterne (statische) Variablen
interne was bei dem Programm bleiben bearbeitet und nicht mit I/O verbunden werden müssen, Stimmt ?
VAR_GLOBALGlobale Variablen, deklariert in einer GVL (Globalen Variablen Tabelle)
wo man zugriff von jeden Programm drauf hat... Stimmt?
ATEin symbolischer Name für eine Speicheradresse, z.B. Hardware-Ein- bzw. Ausgänge
Der symbolische Name spricht die Speicherstelle in der SPS an. Du kannst also %IX5.7 schreiben, um auf den Eingang 5.7 zuzugreifen oder aber dem Eingang über AT den Namen "Lichtschranke_B12" geben und dann mit diesem symbolischen Namen im Code arbeiten.
Aso wenn man erst verbindet dann verbindet man das im Programm mit seinem Variablen.

aber dann ist das nicht leichter dass ich meine Variable direkt mit meinen I/O verbinde ?
so?
9.png Danke dir <3
 
Moin der_NooB,

In VAR_OUTPUT kannst du keinen Code hineinschreiben. Da kannst Du nur Variablen deklarieren und ggf. mit Startwerten vorbelegen.
Also keine IF-Abfrage programmieren.

VG
MFreiberger
 
Moin der_NooB,

In VAR_OUTPUT kannst du keinen Code hineinschreiben. Da kannst Du nur Variablen deklarieren und ggf. mit Startwerten vorbelegen.
Also keine IF-Abfrage programmieren.

VG
MFreiberger
Moin ^_^

also wenn ich so nur deklariere, was nutze ich dann wenn ich die in Programm nicht benutzen kann?
so.png
so darf ich nicht machen ?
33333.png
dann so dann.png
Danke, Grüße ^_^
 
Zuviel Werbung?
-> Hier kostenlos registrieren
also wenn ich so nur deklariere, was nutze ich dann wenn ich die in Programm nicht benutzen kann?
Nachdem Du sie deklariert hast, kannst Du sie selbstverständlich im Programm nutzen.




so darf ich nicht machen ?
Bezieht sich diese Frage auf das obere oder untere Bild?

 
und dann mit meinen Karten direkt verbinden ohne AT %i
Also ich glaube hier werden (Formal-)Variablen der Bausteinschnittstelle und globale Variablen aus einer GVL durcheinandergewürfelt.


Der Dokumentationsauszug von @JSEngineering listet nur für die VAR_GLOBAL das Deklarieren in einer GVL auf:
VAR_INPUTBaustein Eingangsvariablen
Zuweisung im aufrufenden Baustein grafisch: links
Zuweisung im aufrufenden Baustein textuell: :=
VAR_OUTPUTBaustein Ausgangs-Variablen
Zuweisung im aufrufenden Baustein grafisch: rechts
Zuweisung im aufrufenden Baustein textuell: =>
VAR_IN_OUTBaustein Ein-/Ausgabevariablen, können im Baustein gelesen aber auch manipuliert werden
Zuweisung wie Eingangsvariablen
VARBausteininterne (statische) Variablen
VAR_GLOBALGlobale Variablen, deklariert in einer GVL (Globalen Variablen Tabelle)
ATEin symbolischer Name für eine Speicheradresse, z.B. Hardware-Ein- bzw. Ausgänge
Der symbolische Name spricht die Speicherstelle in der SPS an. Du kannst also %IX5.7 schreiben, um auf den Eingang 5.7 zuzugreifen oder aber dem Eingang über AT den Namen "Lichtschranke_B12" geben und dann mit diesem symbolischen Namen im Code arbeiten.



Das sollte gehen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
VAR_OUTPUT:
Die Zuweisung mit => machst Du nur im aufrufenden Baustein:
MyFB(IN := Inputvariable, OUT => Outputvariable);
Du kannst keine Zuweisung wie in #3 machen.
Im Baustein selbst kannst Du die VAR_OUTPUT natürlich beliebig beschreiben, vorzugsweise nur an einer Stelle zuweisen, damit man den Überblick nicht verliert.
Wenn also ein Not-Aus kommt, kannst Du natürlich im Baustein die Ausgänge auf FALSE setzen, aber eben nicht mit => sondern mit :=.

VAR:
Ja, das sind die Variablen, die Du NUR IM Baustein verwendest.

VAR_GLOBAL:
Ja, auf diese Variablen hast Du von überall Zugriff.

AT:
Ja, Du kannst natürlich überall mit %IX2.7 und %QX5.8 arbeiten. Aber dadurch wird der Code nicht lesbarer.
Besser Du gibst den Ein-/Ausgängen sprechende Namen (am besten immer das Positiv-Signal "Lichtschranke_aktiv" bzw. "Motor_ein"). Dann wird Dein Code deutlich lesbarer als mit kryptischen Eingängen.
Und sollte sich durch eine Erweiterung der SPS mal deine Eingangsadressierung verschieben, brauchst Du das nur genau einmal in der Symboltabelle anpassen und nicht X-Mal im Programm.
 
Also ich glaube hier werden (Formal-)Variablen der Bausteinschnittstelle und globale Variablen aus einer GVL durcheinandergewürfelt.


Der Dokumentationsauszug von @JSEngineering listet nur für die VAR_GLOBAL das Deklarieren in einer GVL auf:
Ach so, wenn ich mit GVL arbeite, kann ich nur durch AT adressieren und nicht von meinen Karten darauf zugreifen, wie unten.
vielen lieben dank ^_^
Das sollte gehen.
 
VAR_OUTPUT:
Die Zuweisung mit => machst Du nur im aufrufenden Baustein:
MyFB(IN := Inputvariable, OUT => Outputvariable);
Du kannst keine Zuweisung wie in #3 machen.
Wird dann ein Fehler angezeigt, wenn dies gemacht wird, oder wird der Wert einfach zugewiesen? (aus Neugier)
Im Baustein selbst kannst Du die VAR_OUTPUT natürlich beliebig beschreiben, vorzugsweise nur an einer Stelle zuweisen, damit man den Überblick nicht verliert.
ok super ich habe Bausteine OUTPUT mit VAR_OUTPUT Zuweisungen mit einander vermischt.
jzt ist mir klar danke euch <3
 
Zurück
Oben