Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Lichtsteuerung über Merker und Taster

d.t.m
2010-02-25
2010-08-15
1 2 3 > >> (Page 1 of 3)
  • d.t.m - 2010-02-25

    Hallo,

    ich habe folgendes Problem:

    Ich schalte Lichtquellen über Relais. Das An-/Ausschalten geschieht entweder per Taster oder über eine Automatisierungssoftware anhand von Merkern.

    Die Relaisspule benötigt eine konstante Spannungsversorgung - ist die Spannung weg, geht das Licht aus. Soweit klar.

    Schalte ich über einen Taster das Licht an (DI_1 -> DO_1), brennt das Licht.

    Möchte ich das Licht über den Merker ausschalten geht das nicht, da am Tasterbaustein (welcher auch immer) ja immer noch die (steigende?) Flanke von DI_1 anliegt.

    Wie in aller Welt kann ich es ohne Eltakos erreichen, dass der DI_1 nur für einen Impuls (1sek) TRUE ist und nicht dauerhaft TRUE bleibt?Wie kann ich einen Merker für einen Impuls (1sek) auf TRUE setzen, damit der DI_1 nicht dauerhaft auf TRUE geschaltet ist?

    Ich habe über Toggle, Trigger, Fb_Stromstoss (und viele mehr) alles probiert, aber da ich keinen passenden Thread zu dem Thema finde scheint das Problem definitiv ein Verständnisproblem meinerseits zu sein.

    Kann mir bitte jemand erklären wie das funktioniert?

    Ich habe auch versucht auf den Ausgang des Funktionsblocks direkt einen Merker zu legen

    (also Lampe1 AT %MX23.0 : BOOL)

    und dem Merker den entsprechenden Ausgang (DO_1------%QX4.0) zugewiesen. Es klappt so nicht

     
  • Anonymous - 2010-02-25

    Originally created by: jl

    Hallo

    Wenn ich es richtig verstanden habe, dann soll der Taster das Licht einschalten. Aber wie wird es ausgeschalten. Automatisch über die SPS ?

    Warum willst du den Eingang für 1 sek auf TRUE setzen ? Wie soll das gehen ? Ich nehme an, der Taster geht auf den Eingang der SPS.

    Vielleicht geht es so:

    R_TRIG_Taster(CLK:= DI_1 , Q=> );

    IF R_TRIG_Taster.Q THEN

    lichtEin := TRUE;
    

    END_IF

    IF MerkerLichtAus THEN

    lichtEin := FALSE;
    

    END_IF

    DO_1 := lichtEin;

     
  • d.t.m - 2010-02-25

    Hallo jl,

    das Licht wird durch den verwendeten Funktionsblock SWITCH_I automatisch nach einer bestimmten Zeit ausgeschaltet.

    Angenommen am Eingang des FB liegen der Merker "Licht_1" und IN_1.

    Schalte ich mit dem Merker (Licht_1) das Licht an, wird es nach einer bestimmten Zeit durch den FB ausgeschaltet, der Eingang bleibt aber weiterhin TRUE, da der Merker ja noch weiterhin auf TRUE ist.

    Möchte ich nun über den Taster (IN_1) das Licht erneut anschalten geht dies nicht, da der Eingang ja noch auf TRUE ist, der FB aber das Licht schon ausgeschaltet hat nach der def. Zeit.

    Meine Frage ist daher wie es sich lösen lässt dass der gesetzte Merker nicht dauerhaft sondern nur für eine bestimmte Zeit TRUE bleibt.

    Licht an-/ausschalten ist kein Problem. Das Problem habe ich erst wenn die Merker mit ins Spiel kommen...

     
  • Anonymous - 2010-02-25

    Originally created by: jl

    Den FUB SWITCH_I kenn ich nicht.

    Mit dem FUB TP aus der Standart.lib kann ein beliebig langer Puls erzeugt werden, egal wie lange der Eingang auf TRUE ist.

     
  • d.t.m - 2010-02-25

    Das Problem ist aber nicht die Länge des Ausgangspulses, sondern dass z.B. der Merker Licht_1 ein dauerhaftes Eingangssignal setzt.

    Wenn ich mit IN_1 ein- oder ausschalten möchte blockiert mir der aktive Merker den Eingang so dass ich über IN20 weder ein- noch ausschalten kann..

    Verstehst du jetzt mein Problem?

    Ich weiß dass es eine Lösung gibt, aber ich komme nicht drauf (und langsam wird es frustrierend).

     
  • Anonymous - 2010-02-25

    Originally created by: jl

    Also, entweder stehe ich auf der Leitung oder Du oder wir beide.

    Du wolltes wissen wie man einen Eingang zu einem FUB nur eine bestimmte Zeit auf TRUE setzen kann, das läst sich mit dem FUB TP realisieren.

    Vielleicht kannst du dein Projekt oder einen Export des fraglichen Codes hier reinstellen.

     
  • Tom2 - 2010-02-25

    Hi d.t.m.

    Schreib doch mal, was Du für eine Steuerung verwendest, bzw. woher der FUB Switch_I eigentlich kommt.

    Prinzipiell kann man sowas ja selbst viel durchsichtiger programmieren.

    Aber vielleicht hilft es auch den Eingang, an dem der Merker hängt nicht direkt zu beschalten, sondern mit:

    Merker and Not IN_1

    Dann wird der Eingang "aus", wenn der Taster erneut gedrückt wird?!

    bis dann

    Thomas

     
  • Pitsch - 2010-02-25

    Hallo

    Ich kann nicht ganz nachvollziehen, wozu Du hier einen Merker einsetzst.

    Du Kannst doch einen TP-Baustein mit einen Eingangs(Impulsschalter)-Impuls Triggern, und so den Ausgang, der das Relais ansteuert auf TRUE setzen. Ebenso kannst Du parallel dazu den TP-Baustein Programmgesteuert Triggern und so den selben Effekt erziehlen.

    Wenn Du unbedingt einen Merker brauchst, so musst Du nur dafür sorgen, das dieser nach dem TP-Start wieder auf FALSE gesetzt wird, das kann schon im darauf folgenden Zyklus geschehen.

    Mit freundlichen Grüssen! Pitsch

     
  • d.t.m - 2010-02-25

    Hallo Zusammen,

    danke für Eure Beiträge.

    Es ist eine Wago 750-841.

    Im Anhang das Projektfile.

    @Pitsch

    Ja, ich muss Merker verwenden, da ich nicht nur per Taster das Licht (oder sonstwas) schalten möchte, sondern auch per Modbus von 'extern' per SMS etc. Das Problem ist, dass der Merker per Modbus als Dauer-TRUE reinkommt. Im Projektfile dann entsprechend nachzuvollziehen. DI1 wird durch Tastendruck für z.B. 1 Sek auf TRUE gesetzt und ist dann wieder FALSE.

    Der Merker bleibt TRUE und blockiert mir die Schaltung.

    @Tom2

    Switch_I stammt aus der Oscat-Bib. Die Problematik ist aber bausteinunabhängig.

    @jl

    Richtig, mein Problem ist, dass ich den Merker (der auf dem Eingang liegt) nur kurz und nicht dauerhaft schalten will.

    Ich hoffe es kommt rüber was mein Problem ist. Sorry, versuche mich so verständlich auszudrücken wie es geht, bin aber leider kein Programmierer..

    Vielen Dank für Eure Hilfe!

    Gruß

    Daniel

    IMG: Bildschirmfoto 2010

    Testwago.pro [93.13 KiB]

     
  • Pitsch - 2010-02-25

    Hallo

    Versuchs mal so!

    IMG: Screenshot_1.jpg

     
  • d.t.m - 2010-02-26

    Hallo Pitsch,

    du glaubst nicht was ich alles probiert habe im Vorfeld!!!

    Deine Version klappt prima, nun wird der Merker am Eingang entsprechend resettet. Diese Funktion (Set/Reset) kannte ich gar nicht!

    Das Einzige 'Problem' was jetzt daraus resultiert ist, dass der Merker, da er ja jetzt zurückgesetzt wird, nicht mehr als Statuswert (AN/AUS) herhält, so dass ich in der Visu der Automationssoft (über Modbus) den Ausgangsstatus nicht mehr sehen kann (bzw. nur FALSE).

    Oder gibt es da noch einen Kniff wie man das erreichen kann?

    Jedenfalls ist es schonmal der Hammer dass es so funktioniert - was habe ich alles ausprobiert!

    Dank Dir nochmal. Sollte auf deinem Screenshot noch der TON (ESV) zu sehen sein?

    Grüße

     
  • Pitsch - 2010-02-26

    Hallo

    Nein die Variable TON (ESV) ist nur ein Ueberbleibsel vom Ausprobieren. Diese Variable kannst Du löschen.

    Auch den R_Trig-Baustein, mit zugehöriger Variable kann entfernt werden. Die Variable "Merker" direkt an den Eingang des OR-Gliedes.

    Zum Problem mit der Statusvariable: Nimm doch einfach den Ausgang Out_1 zur Anzeige in der Visu. Statt den Merker, trägst Du einfach die Variable Out_1 im Anzeige-Element ein.

    Auch das zweite Netzwerk ist überflüssig. Das kannst Du anhand meines Screenshots auch entfernen, und den Merker direkt am Ausgang Out_1 reseten.

    Mit freundlichen Grüssen! Pitsch

    IMG: Screenshot_1.jpg

     
  • d.t.m - 2010-02-26

    Hallo Pitsch,

    vielen Dank für die Mühe. Ich habe das Netzwerk entfernt. So klappt es wie gehabt mit dem Schalten über Merker und DI.

    Leider muss der Merker als Zustandsanzeiger herhalten, da das Visualisierungsprogramm über Modbus mit Merkern arbeitet - oder habe ich dich falsch verstanden?

    Die Zustandsanzeige habe ich noch nicht hinbekommen.

    Grüße

     
  • Pitsch - 2010-02-26

    Hallo

    Mit dieser Schaltung, wird der Merker erst zurückgesetzt, wenn der Ausgang Out_1 auf FALSE geht. Der Merker, hat also so lange das Licht brennt, TRUE.

    Mit freundlichen Grüssen! Pitsch

    IMG: Screenshot_1.jpg

     
  • Pitsch - 2010-02-26

    Nachtrag

    So wie ich das sehe, willst Du die Anzeige mit dem Merker steuern, ob das Licht nun über den Schalter, oder über den Merker angeschaltet wird.

    Das ist mit dieser Schaltung realisiert.

    Mit freundlichen Grüssen! Pitsch

    IMG: Screenshot_1.jpg

     
  • d.t.m - 2010-02-27

    Hallo Pitsch,

    vielen Dank - es funktioniet bei mir so aber noch nicht. Ich probier noch mal rum. Bei dir hat es so geklappt?

    Schönen Gruß

     
  • Pitsch - 2010-02-27

    Hallo

    Bei mir funktioniert das so einwandfrei.

    Ich kann Dir natürlich nur so weit helfen, wie ich glaube zu verstehen was Du benötigst. Da ich Deine Anlage nicht kenne, sondern nur dieses Detail, auf das, sich Deine Anfrage bezieht, kann es absolut sein, dass da noch irgend welche Fehler eingebaut sind.

    Noch ein Tip kann ich Dir geben. In der Visualisierung, falls Du eine erstellt hast, muss beim Button für DI1, im Konfigurations-Dialog unter Eingabe, die Variable Tasten eingestellt sein.

    Beim Button für den Merker, musst Du aber Variable toggeln aktivieren, damit es funktioniert.

    Ich hoffe, dass Du dein Problem, mit dem neuen Wissensstand, nun lösen kannst

    Mit freundlichen Grüssen! Pitsch

     
  • d.t.m - 2010-02-27

    Hallo Pitsch,

    danke für deine Hilfe. Heute komme ich leider nicht mehr zum Ausprobieren, morgen werde ich mich eingehend damit befassen und nochmal Rückmeldung geben.

    Schöne Grüße & schönen Abend,

    Daniel

     
  • d.t.m - 2010-03-02

    Hallo Pitsch,

    sorry, bin immer noch nicht zum ausgiebigen Testen gekommen weil ich vorrangig noch ein anderes Problem (anderer Thread) lösen muss. Hatte mal ein bisschen rumprobiert, aber es klappt so noch nicht. Ich gebe hier nochmal Rückmeldung wenn ich weiter bin.

    Noch kurz zu Deinem Beitrag;

    Die Visu läuft mit IP-Symcon und nicht auf der Wago - von daher kommen die Variableneinstellungen leider nicht zum Greifen. Dennoch danke für den Hinweis!

     
  • McBain - 2010-03-02

    Hallo,

    habe auch ipsymcon (für die unkritischen spielereien;-) )und ich arbeite mit dem Fb_Stromstoss, da ich auch hardware taster am Wago DI verwende.

    Für die Rückmeldung nehme ich einfach einen 2. Merker der mit dem zustand des zu schaltenden Wago DO verknüpft ist.

     
  • d.t.m - 2010-03-02

    Hallo McBain,

    ich hatte gehofft dass 1 Merker ausreichen würde, aber die logische Konsequenz sind wohl wirklich 2 Merker.

    Wie sieht denn bei Dir ein Skript in PHP für das Schalten eines Aktors aus?

    Gruß

     
  • McBain - 2010-03-02

    Gehört zwar nicht hier hin aber

    <?
     MBT_WriteCoil(56856 /*[Wago MBT]*/, 12288, true);
     IPS_Sleep(100);
     MBT_WriteCoil(56856 /*[Wago MBT]*/, 12288, false);
    ?>
    

    56856 ist natürlich die Instance der Wago.

     
  • usenix - 2010-05-10

    McBain hat geschrieben:
    Hallo,
    habe auch ipsymcon (für die unkritischen spielereien;-) )und ich arbeite mit dem Fb_Stromstoss, da ich auch hardware taster am Wago DI verwende.
    Für die Rückmeldung nehme ich einfach einen 2. Merker der mit dem zustand des zu schaltenden Wago DO verknüpft ist.

    Hallo zusammen,

    könntest du das etwas genauer erklären? Stehe vor dem gleichen Problem und mit der Lösung von Pitsch funtioniert das nicht so richtig, weil der Merker nach dem schalten des Output automatisch wieder zurückgesetzt wird. (Wenn im Baustein TP_Test bei ET die Zeit abgelaufen ist)

    Vielleicht weiß ja jemand eine Lösung...

     
  • McBain - 2010-05-13

    Versuch mal den Fb_Stromstoss.

     
  • Anonymous - 2010-05-17

    Originally created by: nym-J 3x 1,5

    Moin ich stand vor dem selben Problem wenn ich das hier richtig verstehe ich habe es so gelöst.

    Funktoiniert bei mir mit IPS super....

    IPS1 = "ModBus Merker" MX0.0

    Ich hoffe ich konnte weiterhelfen.

    MfG

    IMG: wago1.JPG

     
1 2 3 > >> (Page 1 of 3)

Log in to post a comment.