Was ist ein Formaloperand?

U

unbekanntster

Guest
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich weiß was ein Operand ist! Ist das einfach nur ein Operand vom AWL-Code, wie zum Beispiel E1.0, A3.0, gemeint? Also mir sagt dieses Formal einfach nichts, wird abr als Fachbegriff so verwendet.:confused:

Dazu noch eine Frage. Wie heißen die Bestandteile einer Steuerungsanweisung in AWL? War auch eine Klausurfrage.
Meine Antwort: Formaloperand und Operation?!
 
Dazu noch eine Frage. Wie heißen die Bestandteile einer Steuerungsanweisung in AWL? War auch eine Klausurfrage.
Meine Antwort: Formaloperand und Operation?!

Tja, ganz richtig ist das leider nicht.
Eine AWL Anweisung besteht aus einer Operation und einem Operanden.
Operanden können aktual oder formal sein.

Gruss
Andi F
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Kannst du mir bitte auch sagen was aktual und formal dann zu bedeuten hat?

Ich benutze SIMATIC Erste Schritte und Übungen mit Step7 (S7gsv54_d.pdf) und da wird von Aktualwerten und Formalparametern gesprochen. Nie aber von Formal- oder Aktualoperanden.

Es gibt ja da auch noch Aktoren (Dazu finde ich dann auch bei Wiki etwas). Hat das was mit Aktual zu tun? Dazu ab ich auch noch eine Frage die ich nicht beantworten kann: Wie muss man in einem SPS-Programm vorgehen, wenn mehrere Prozesse auf einen Aktor zugreifen sollen?


PS: Mir sagt auch "symbolischer Operand" nichts. Was soll das sein?
 
Zuletzt bearbeitet:
Kannst du mir bitte auch sagen was aktual und formal dann zu bedeuten hat?

Das zeigt doch schon mal was (aus der Step7-Hilfe):

Beispiel 1: Zuordnung von Parametern zu dem Aufruf der Funktion FC6

Code:
 CALL    FC6    
Formalparameter   Aktualparameter
NO OF TOOL     := MW100
TIME OUT       := MW110
FOUND          := A 0.1
ERROR          := A 100.0
Es gibt ja da auch noch Aktoren (Dazu finde ich dann auch bei Wiki etwas). Hat das was mit Aktual zu tun? Dazu ab ich auch noch eine Frage die ich nicht beantworten kann: Wie muss man in einem SPS-Programm vorgehen, wenn mehrere Prozesse auf einen Aktor zugreifen sollen?

Jeder Prozess setzt eine Variable (z.Bsp. einen Merker), die den Aktor (z.Bsp. Ventil) steuern soll. Dabei kann ein Prozess z.Bsp. je eine Schrittkette sein.

Der Aktor wird dann über einen Ausgang angesteuert.

Bsp:

Schrittkette 1 setzt M10.0 um Greifer 1 zu schließen.
Schrittkette 3 setzt M13.0 um Greifer 1 zu schließen.
Die Handsteurung setzt M15.0 um Greifer 1 zu schließen.

O M10.0
O M13.0
O M15.0
= A1.0 //Greifer 1 schließen

Das ist hier nur zur Verdeutlichung mal vereinfacht dargestellt.

PS: Mir sagt auch "symbolischer Operand" nichts. Was soll das sein?

A1.0 ist ein Absolutoperand, weil er genau die vorhandene Adresse in der SPS, ebend diesen A1.0 anspricht. Du kannst dem Ausgang in der Symboliktabelle eine Bezeichnung verpassen, z.Bsp. Greifer1_AUF.

Nun kannst du im Programm schreiben:

...
= A1.0

oder

...
= Greifer1_Auf
 
Zuletzt bearbeitet:
Also so wie ich dich jetzt verstehe, meinst du ist ein aktualoperand ein absolutoperand(nur Operand mit Operandenzeichn, Byte- und Bitaadresse).
Und ein Formaloperand ist ein synonym für symbolischer Operand. Also ein zugewiesener Name für einen absolutoperanden.

Hab ich da jetzt richtig verstanden?



Wie muss man in einem SPS-Programm vorgehen, wenn mehrere Prozesse auf einen Aktor zugreifen sollen?
PS: Aktoren sind zu steuernde Objekte.
Bsp:

Schrittkette 1 setzt M10.0 um Greifer 1 zu schließen.
Schrittkette 3 setzt M13.0 um Greifer 1 zu schließen.
Die Handsteurung setzt M15.0 um Greifer 1 zu schließen.

O M10.0
O M13.0
O M15.0
= A1.0 //Greifer 1 schließen
Aktoren sind über Ausgänge der SPS zu steuernde Objekte. Alles klar. Sinn machen dein Bsp. aber erst wenn ein Prozess einen anderen Wert auf den gleichen Ausgang legt wie andere Prozesse. Falls das vorkommt, sollte man Oder(O) verwendet haben. Also das wäre dann die Antwort auf die Frage gewesen, gut. Schönen Dank, soweit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also so wie ich dich jetzt verstehe, meinst du ist ein aktualoperand ein absolutoperand(nur Operand mit Operandenzeichn, Byte- und Bitaadresse).
Und ein Formaloperand ist ein synonym für symbolischer Operand. Also ein zugewiesener Name für einen absolutoperanden.

Hab ich da jetzt richtig verstanden?

Ich denke Nein!

Es gibt keine Formaloperanden.

Es gibt

Formalparameter: Das sind z.Bsp. die IN und OUT an einem FB, FB-seitig.

Aktualparameter: Das ist das, was außen am FB dransteht.

Absolutoperanden: das sind die direkt adressierten SPS-Variablen, über ihre festgelegten Byte- und Bitadressen, wie M10.0.

symbolische Operanden: Das sind die in der Symbolliste festgelegten Bezeichnungen für Absolutoperanden.
 
@ralle
jein.
bei s7 nennt man z.b. die tempvariablen formalparameter.
bei der s5 nannte man die formaloperand.

vom prinzip ist beides das gleiche.
 

Anhänge

  • Zwischenablage02.gif
    Zwischenablage02.gif
    5,6 KB · Aufrufe: 48
@Volker

Ja, Siemens hat da mit der S7 etwas umgeschwenkt und so sollten wir das dann lassen :rolleyes:.

Siemens spricht meißt von Variablen im Zusammenhang mit den Temp, vielleicht haben deren Leute ja die gleichen Begriffsprobleme, nur wenn sowas in einer Doku auftaucht ist es halt gleich in der Welt.

Das Ganze sollte aber so nun ausreichend geklärt sein, zumal eine Diskussion darüber eher akademischer Natur ist ;).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab zufällig noch eine Definition in der Step7-Hilfe zum Thema Formalparameter gefunden:

Formalparameter

Ein Formalparameter ist ein Platzhalter für den "tatsächlichen" Parameter (Aktualparameter) bei parametrierbaren Codebausteinen. Bei FB und FC werden die Formalparameter vom Anwender deklariert, bei SFB und SFC sind sie bereits vorhanden. Beim Aufruf des Bausteins wird dem Formalparameter ein Aktualparameter zugeordnet, so dass der aufgerufene Baustein mit dessen aktuellen Wert arbeitet. Die Formalparameter zählen zu den Lokaldaten des Bausteins und unterteilen sich nach Eingangs-, Ausgangs-, und Durchgangsparametern.
 
Zurück
Oben