Konsante 1 oder 0 an Eingang eines Funktionsbausteines

toto45

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

eine Eingang (BOOL) eines FB´s will ich fest auf 1 oder 0 setzen.
Nun möchte ich beim Beschalten der Eingänge einfach eine 1 oder 0 an diesen Eingang schreiben. Wie kann ich das machen?
 
... du schreibst einfach "0" oder "1" (je nach Bedarf) da dran. Step7 macht dann daraus "False" bzw. "True" und du hast den Eingang dann fest so beschaltet ... (das geht aber nur bei den IN's - nicht bei den IN_OUT's, da bräuchtest du dann einen Variable)

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja genau so hatte ich mir das gedacht. Funktioniert aber nicht.
( Eingang ist IN: )
Wenn ich nur 1 an den Eingang schreibe erhalte ich "Compiler Information: Typkonflikt "
 
Wenn ich in einem Baustein ein High oder ein Low brauche mache ich mir als erstes ein Netzwerk in dem ich die 2 Zustände auf 2 TempVariablen zuordne:
Für dieses Netzwerk schalte ich kurz um in AWL.
Oder man erstellt sich ein High und Low
mit einer UND-Verknüpfung auf 2 gleiche Eingänge für die HIGH Variable
und ein XOR auf 2 gleiche Eingänge für die LOW Variable.
Code:
     // NETWORK
     //TITLE =High und Low setzen
     //Variable low und high setzen
      CLR    
      =     #low 
      SET   
      =     #high 
     //NETWORK
diese Variable #high oder #low, kann ich dann vor den Baustein schalten statt True oder False

*edit
wenn ich in FUP Programmiere und in AWL umschalte ist der EN-Eingang weg
 
Zuletzt bearbeitet:
Hallo,
ich definiere mir schon seit Jahren eine log. „0“ bzw. Log. „1“ im OB1 und zwar
M0.0 bzw. M0.1.

Sieht so aus:

U M0.0
R M0.0

UN M0.1
S M0.1

Diese kann man dann jederzeit und überall im Programm abfragen.

Gruß
Joe
 
Hallo,
ich definiere mir schon seit Jahren eine log. „0“ bzw. Log. „1“ im OB1 und zwar
M0.0 bzw. M0.1.

Sieht so aus:

U M0.0
R M0.0

UN M0.1
S M0.1

Diese kann man dann jederzeit und überall im Programm abfragen

würd ich auch so machen (habe ich auch schon oft benutzt) ist die beste Lösung un kann auch in FUP angezeigt werden.;)
 
ok da kommts jetzt wider auf die Frequenz der Taktmerker an aber wenn die Taktmerker ihren zustand schneller ändern als ein Zyklus is klar dann Rappelts im Kartong
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ok da kommts jetzt wider auf die Frequenz der Taktmerker an aber wenn die Taktmerker ihren zustand schneller ändern als ein Zyklus is klar dann Rappelts im Kartong

M0.0 = 10 Hz = 100ms
M0.1 = 5 Hz = 200ms

Die holen irgendwann deine CPU-Zykluenim ungünstigsten Moment ein.
 
ok da kommts jetzt wider auf die Frequenz der Taktmerker an aber wenn die Taktmerker ihren zustand schneller ändern als ein Zyklus is klar dann Rappelts im Kartong
Es ist völlig egal, wie schnell sich die Taktmerker ändern, auf jeden Fall ändert sich jeder Taktmerker irgendwann (mitten) in einem OB1-Zyklus -> "asynchron".
Viel Spaß bei der Fehlersuche, wenn M0.1 alle 200ms für durchschnittlich einen halben OB1-Zyklus auf 0 geht. :ROFLMAO:

Harald
 
... ich glaube, die Geschichte habe ich schon mal in einem anderen Thred zum besten gegeben.

S5 115U/945 macht gelegendlich wundersame Dinge. Die Lösung war, ein Programmierer hatte bei einer Änderung den Merker der festen 0 an den Störausgang eines FB geschrieben. Und gelegendlich kam halt die Störung... und der Rest des Programmes hatte keine feste 0 mehr.

Thomas
 
Zurück
Oben