statisch 0 und 1

Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ins Forum,

gibt es vielleicht eine klare Programmierregel dafür wie man sich eine feste 0 und feste 1 im Programm erzeugt.


Gruß Claus

Also eine klare bzw. feste Regel kenne ich nicht.
Bei CoDeSys benutze ich immer die reservierten Worte TRUE bzw. FALSE.
Bei Siemens habe das ich immer so gelöst:

TRUE
Code:
U  M 0.1
ON M 0.1
=  M 0.1
FALSE
Code:
U  M 0.0
UN M 0.0
=  M 0.0
//EDIT: die lösung von gravieren ist schöner ;o)
 
Zuletzt bearbeitet:
Ich kenne die Methode:

'LOW'
U M10.2
UN M10.2
= M10.0

'HIGH'
O M10.2
ON M10.2
= M10.1

UND muss haalt beides erfüllt sein, dadurch ist die alternierende Abfrage immer '0'. Bei ODER isses genau umgekehrt, daher immer '1'

Kenn dies sogar aus dem OB1, dann wird der '0' oder der'1' Merker halt eingesetzt, symbolisch 'Immer NULL' oder 'Immer EINS'

Greetz
 
... und ein Programmierer schrieb ne feste 1 als Schmiermerker an nen Ausgang (ist ja feste 1) eines FB und wir suchten uns dumm und ... (wirklich passiert!)
eine Zuweisung 0 oder 1 kurz vor Verwendung ist mir manchmal lieber
und die Kollegen lachen heute noch "feste 1 war locker ha,ha,ha"
Thomas
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
... und ein Programmierer schrieb ne feste 1 als Schmiermerker an nen Ausgang (ist ja feste 1) eines FB und wir suchten uns dumm und ... (wirklich passiert!)
eine Zuweisung 0 oder 1 kurz vor Verwendung ist mir manchmal lieber
und die Kollegen lachen heute noch "feste 1 war locker ha,ha,ha"
Thomas


Ja Thomas so was kann schon mal vorkommen.
Aber deswegen die feste 1 jedes Mal neu erzeigen, finde ich übertrieben.
Da du diesen Fehler nun schon mal hattest wirst du ihn sehr schnell finden das nächste Mal
 
... und ein Programmierer schrieb ne feste 1 als Schmiermerker an nen Ausgang (ist ja feste 1) eines FB und wir suchten uns dumm und ... (wirklich passiert!)
eine Zuweisung 0 oder 1 kurz vor Verwendung ist mir manchmal lieber
und die Kollegen lachen heute noch "feste 1 war locker ha,ha,ha"
Thomas

Also am besten wäre es doch wenn man auch bei Siemens TRUE und FALSE zu verfügung hätte ;o)

Gibt es eigentlich bei der S7 keine möglichkeit globale Konstanten zu deklarieren?

So ähnlich wie das hier:
Code:
VAR_GLOBAL CONSTANT
  HIGH      :BOOL   := TRUE;
  LOW       :BOOL   := FALSE;
  HUNDERT   :INT    := 100;
  IQ_zotos  :INT    := 73;  
END_VAR

Da kann man dann nichts mehr dran ändern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Auch noch eine praktische Lösung: Für die IBN sich eigene 0 und 1 Merker zu Basteln, die man nach erfolgter IBN ja alle aus dem Programm gelöscht haben sollte.

Mache sogar ganze IBN-DB´s, für Simulationswerte usw. genaueres wird aber hier OT.

pt
 
Code:
]Also am besten wäre es doch wenn man auch bei Siemens TRUE und FALSE zu verfügung hätte ;o)
 
Gibt es eigentlich bei der S7 keine möglichkeit globale Konstanten zu deklarieren?
 
So ähnlich wie das hier:
[code]
VAR_GLOBAL CONSTANT
  HIGH      :BOOL   := TRUE;
  LOW       :BOOL   := FALSE;
  HUNDERT   :INT    := 100;
  IQ_zotos  :INT    := 73;  
END_VAR
[/CODE]


Nein, kann der Riese nicht :(

pt

..........................
 
U M0.0
UN M0.0
=M0.0 //ist mir lieber als SET und CLR geht nämlich auf JEDER Steuerung
UN M0.0
= M0.1 //wenn jetzt die feste 0 "wackelt ", wackelt die 1 gleich mit...
 
Also am besten wäre es doch wenn man auch bei Siemens TRUE und FALSE zu verfügung hätte ;o)

Gibt es eigentlich bei der S7 keine möglichkeit globale Konstanten zu deklarieren?

So ähnlich wie das hier:
Code:
VAR_GLOBAL CONSTANT
  HIGH      :BOOL   := TRUE;
  LOW       :BOOL   := FALSE;
  HUNDERT   :INT    := 100;
  IQ_zotos  :INT    := 73;  
END_VAR

Da kann man dann nichts mehr dran ändern.

Das stimmt, globale Konstanten gehen bei der S7 nicht.
Wenn man mal in einem Baustein True und False Braucht dann kann man das ja so auch lösen:

Code:
CALL  FC     1
       True_Bit :=TRUE
       False_Bit:=FALSE

Das würde dann ein jeder gleich aus der Ferne kennen dass das eine Bit True und das andere False sein muss.
Wenn ich Bausteine in AWL Programmiere dann verwende ich immer SET und CLR.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
U M0.0
UN M0.0
=M0.0 //ist mir lieber als SET und CLR geht nämlich auf JEDER Steuerung
UN M0.0
= M0.1 //wenn jetzt die feste 0 "wackelt ", wackelt die 1 gleich mit...

Auf der S7 geht das SET und CLR schon auf jeder Steuerung oder?

Gibts bei der S5 eigentlich auch so nen Befehl?
 
Feste 1 und 0

Hallo,

besonders verwunderlich ist, dass man z. B. am Fb41 in AWL einfach "TRUE" oder "FALSE" an die entsprechenden Eingänge dranschreiben kann, in FUP aber nicht!
 
Hallo,

besonders verwunderlich ist, dass man z. B. am Fb41 in AWL einfach "TRUE" oder "FALSE" an die entsprechenden Eingänge dranschreiben kann, in FUP aber nicht!

Geht deswegen nicht, weil für die FUP-Darstellung intern die Bits wieder auf Lokalbits gelegt werden. Und ein "U TRUE" bzw. "U FALSE" geht nun mal nicht... Zumindest nicht bei Siemens...

PS: Logisch Null und Eins mache ich so:

CLR
= M0.0

SET
= M0.1

Gruß
Flinn
 
Zurück
Oben