# Taster programmieren



## Skilppy (12 Januar 2010)

Hi,
da ich noch Anfänger in Sachen ST programmierung bin, stehe ich vor dem Problem, wie ich das Programm für einen Taster schreiben muss.

Es soll ganz einfach mit dem taster ein Lichtkreis ein- bzw. ausgeschaltet werden.

Momentan benutze ich einen TOF um die fallende Flanke auszuwerten, mein Lichtkreis blinkt aber beim schalten immer...

Könnte mir da einer weiterhelfen, konnte so nichts im Netz finden...

Danke schonmal,

Gruß


----------



## Cerberus (12 Januar 2010)

Poste doch einfach mal deine Code.


----------



## MasterOhh (12 Januar 2010)

Flanken auswerten mit einem Timer? Willst du das Licht mit einer verzögerung schalten? Normalerweise in F_Trig und R_Trig die Flankentrigger.


----------



## Skilppy (12 Januar 2010)

Eigentlich sieht mein Programm so aus:

IF Taster1_1_s=1 THEN;
IF E0_B1_LSK1_s=1 THEN;
 E0_B1_LSK1:=0;
 E0_B1_LSK1_s:=0;
ELSE;
 E0_B1_LSK1:=1;
 E0_B1_LSK1_s:=1;
END_IF;
END_IF;

Wobei der Taster1_1_s der Ausgang des TOF ist.

Weshalb ich den TOF genommen habe, undzwar gibt mir der Taster ja nur einen sehr kurzen Impuls und durch den TOF verlänger ich diesen um ein eindeutiges Signal zu bekommen.


----------



## giallo (12 Januar 2010)

Hi Skillpy,
probier doch dieses:

flanke_taster(CLK:=taster);
IF((flanke_taster.Q) AND (lampe=0)) THEN
       lampe:=1;
ELSIF ((flanke_taster.Q) AND (lampe=1)) THEN
       lampe:=0;
END_IF

Die Deklaration dazu:

PROGRAM PLC_PRG
VAR
 taster: BOOL;
 lampe: BOOL;
 flanke_taster: R_TRIG;
END_VAR

Ciao und Servus


----------



## Cerberus (13 Januar 2010)

Skilppy schrieb:


> IF Taster1_1_s=1 THEN;
> IF E0_B1_LSK1_s=1 THEN;
> E0_B1_LSK1:=0;
> E0_B1_LSK1_s:=0;
> ...


 
Du musst hinter den "THEN" und "ELSE" die Strichpunkte weglassen. Diese werden als leere Anweisungen interpretiert.

Gruß Cerberus


----------



## Skilppy (13 Januar 2010)

Hi,

@giallo: Das Programm geht leider nicht, da ich beim Übersetzen min.5 Fehler angezeigt bekomme:-|

@Cerberus: Dann soll das Programm für die Taster richtig laufen, kann es leider erst am Freitag wieder simulieren:-|


----------



## ge_org (13 Januar 2010)

lampe:=flanke_taster.Q XOR lampe;


----------



## Skilppy (13 Januar 2010)

Ich verstehe hier nurnoch Bahnhof...

Wenn ich das so eingebe, sagt er mir immer unter anderem "Q" sei nicht deklariert, da ja flanke_taster.Q durch den Punkt nicht zusammengehören oder ist steht das Q nur da damit ich weis, das es der Ausgang des R_Trigger ist?

Kann doch nicht so schwierig sein so einen blöden Taster zu programmieren


----------



## IBFS (13 Januar 2010)

Skilppy schrieb:


> Ich verstehe hier nurnoch Bahnhof...
> 
> 
> ... da ja flanke_taster.Q durch den Punkt nicht zusammengehören oder ist steht das Q nur da damit ich weis, das es der Ausgang des R_Trigger ist?
> ...


 

Du wirst es nicht glauben, aber es gab eine Zeit OHNE FOREN nur mit 
Handbüchern und Selbststudium, wo man einfach ins Handbuch oder 
die Doku geschaut hat. Man lernt mehr wenn man sich selbst durchquält.
Das ist zumindest meine Erfahrung. Dann ist es auch viel einfacher mit den 
blöden Tastern.

Beschäftige dich bitte unbedingt mit dem Thema Instanzen speziell
bei Codesys. Wenn du das gemacht hast, wird dir alles auf einmal
sehr einfach erscheinen. Grundlagenwissen ist nunmal Voraussetzung.

Ein kleine Hilfe (0.2s Suchzeit Google) gebe ich dir:

http://eitidaten.fh-pforzheim.de/daten/labore/stlt/CoDeSys/Erste%20Schritte%20mit%20CoDeSys.pdf

Speziell Seite 4!
Das ist zwar FUP, aber da sieht man schön die Signalflußrichtung  


Gruß

Frank


----------



## giallo (13 Januar 2010)

Skilppy schrieb:


> Hi,
> 
> @giallo: Das Programm geht leider nicht, da ich beim Übersetzen min.5 Fehler angezeigt bekomme:-|
> 
> @Cerberus: Dann soll das Programm für die Taster richtig laufen, kann es leider erst am Freitag wieder simulieren:-|


 

hallo Skilppy,
welche Fehler bekommst du ? Die Syntax ist fehlerfrei.


----------



## MarkusP (13 Januar 2010)

...muss IBFS vollkommen recht geben, das Forum verkommt zusehends ein wenig... (Telefonseelsorge for Beginners...)
Nun ja, für Fragen ist das Forum ja da, aber das Niveau lässt halt schon manchmal zu wünschen übrig.
Ich bewundere oftmals, mit welcher Geduld doch auch solche Fragen beantwortet werden und damit eine Hilfe darstellen.
Aber auch mir wurde schon oft hier sehr weitergeholfen, in diesem Sinne

ein GROSSES Danke an dieses Forum,

schönen Abend

Markus.


----------



## IBFS (13 Januar 2010)

giallo schrieb:


> hallo Skilppy,
> welche Fehler bekommst du ? Die Syntax ist fehlerfrei.


 
Er wird die DEKLARATION vergessen haben.

Frank


----------



## Majestic_1987 (15 Januar 2010)

Also, erstmal würde ich ja sagen, ein Forum ist dazu da, dort Fragen zu stellen. 
Sein Anliegen wurde aus der Überschrift doch schon sehr deutlich, weswegen lest ihr also, wenn ihr danach blöde Sprüche reißt? 

Wir alle haben ohne Wissen angefangen.

Also, zunächsteinmal würde ich sagen, dass ST vielleicht nicht die beste Programmiersprache ist, wenn du (so vermute ich jetzt einfach mal) keine SPS-Erfahrung hast.

Es gibt viele gute Grundlagenseiten/Bücher, und auch die Hilfe ist ein guter Freund ;-)

Programmier ein wenig in FUP oder CFC, um ein Gefühl dafür zu bekommen, wie sich die Signale verhalten, dann befasse dich eingehend mit den Unterschieden zwischen FC und FB (gerade Siemens-Umsteiger staunen da Bauklötze) und dann versuchst du einmal, dir ganz grundlegen Gedanken darüber zu machen, wie der Taster arbeitet:

Ist die Lampe an, so sorgt ein Tastendruck für das Ausschalten derselben.
Ist sie aus, so sorgt der selbe Tastendruck für das Einschalten.

Offenbar hängt das also von einem Wechsel des Signals am Eingang von 0 auf 1 ab. Klarer Fall für die Erkennung einer Steigenden Flanke.

Also ein Fall für den FB "R_TRIG" und ein SR- oder RS-Glied (welches auch ein FB ist, deswegen: Instanzen verstehen!).

Ich hoffe, der kleine Denkanstoß bringt dich weiter, ansonsten frag einfach nochmal.

Videos zum Programmiersystem findest du übrigens in meinem Kanal:

www.youtube.com/Majestic1987


----------



## Skilppy (18 Januar 2010)

So, habe es natürlich dochnoch hinbekommen, einfach den TOF durch den R-TRIG ersetzt und es ging

@Majestic: danke dir

Ja das mit der Einarbeitung etc. würde ich natürlich machen, wenn ich nicht nur dieses eine Programm in ST schreiben müsste
Grundlagen sind ja auch vorhanden, hab vorher schon S7 in FUP programmiert, was mir persönlich viel mehr liegt als ST

Also danke nochmal, Programm ist jetzt komplett fertig


----------



## Majestic_1987 (18 Januar 2010)

Ich komme auch ursprünglich von Siemens (Habe dort meine Ausbildung zum Elektroniker f. Automatisierungstechnik gemacht und mich daher auch sehr exzessiv mit SPS befasst, aber Siemens-Typisch nur AWL, FUP und CFC), deswegen sind mir die Hürden beim umstieg auf Normgerechte Programmierung sehr wohl bekannt.

Ich denke Mitte bis Ende der Woche sollte mein Einführungsvideo zu ST online sein.

Ich verstehe, dass die FUP mehr liegt, aber ich kann dir wärmstens empfehlen, dich in ST einzuarbeiten (kannst mir gern auch ne Nachricht schreiben oder über meine Homepage sven-haan.com Kontakt zu mir aufnehmen, wenn du Fragen hast) denn die Sprache bietet tolle Funktionen und kann das Leben wirklich enorm erleichtern. Sicherlich ist sie nicht für alle Zwecke optimal geeignet, aber ich programmiere fast nur noch ST


----------

