Hilfe, einen Taster programmieren, mit einem Merker oder sonst was

kaschey007

Level-1
Beiträge
33
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Problemm:
ich versuche einen windows taschenrechner mit AWL nachzuprogrammieren.
SImuliere alles mit PLCSIM

jetzt zum Thema:

ich will das so machen, dass die bit häckchen bei PLCSIM wie ein taster funktionieren, also wie buttons, dass zum beispiel nur ein signal plus gesendet wird und sofort zurückgenommen wird, also soll das häckchen von zum beispiel M 0.0 direkt nach der Eingabe verschwinden , also ein taster halt.

hab schon alles mögliche versucht, mit sprüngen usw. aber es klappt einfach nicht. ich weiss dass es irgendwie geht aber ich komme nicht drauf. vielleicht hat jemand eine idee. meine letzte idee war:


U M 0.0
FP M 0.1

SPB lade
spa end


lade: l #EA
T #zw1
end: set
R M 0.0
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... wenn du den Merker einfach wieder löschen willst, dann :
Code:
U M 0.0
SPBN nAct
 
hier das Programmieren, was passieren soll
 
U M 0.0
R M 0.0
 
nAct: NOP 0

Damit deckst du aber nicht ein ggf. vorhandenes "Prellen" des Kontaktes ab. Wenn du das willst, dann müßtest du das Ganze zusätzlich noch mit einer Zeit-Verzögerung verschalten, also :
Code:
U M 0.0
L S5T#100ms
SE T100
 
UN M 0.0
ON T 100
SPB nAct
 
und dann wie gehabt ...
 
seit wann liefert ein taster einen impuls?
es sei denn du bist so schnell wie die zykluszeit :ROFLMAO:
U E 1.0
FP M 100.0
= M 0.0

ein trick:
machs mit nem eingang nicht mit einem merker. der eingang wird nämlich am zyklusanfang eingelesen.

am ende vom ob1 setzt du die eingänge wieder zurück.

damit ist dein eingang nur 1 zyklus high
 
also, wenn ich hier die Vorschläge der "FORUMS-Experten" lese, habe ich das Gefühl hier soll jemand vera... werden. Es fehlt nur noch der entsprechende SCL-Code.
Einfach am Zyklus-Ende rücksetzen, fertisch.
Wird aber bei akueller PLCSim-Version V5.4+SP1) nicht immer korrekt akuallisiert (PLC-SIM-Bug)
mfG. Jo
 
also, wenn ich hier die Vorschläge der "FORUMS-Experten" lese, habe ich das Gefühl hier soll jemand vera... werden. Es fehlt nur noch der entsprechende SCL-Code.
Einfach am Zyklus-Ende rücksetzen, fertisch.
Wird aber bei akueller PLCSim-Version V5.4+SP1) nicht immer korrekt akuallisiert (PLC-SIM-Bug)
mfG. Jo

War das dein Beitrag zu dem Thema ...?
Sieht mir doch ein wenig nach heisser Luft aus ...
Aber ist schon OK ... jeder darf hier seine Meinung haben ... :ROFLMAO:
 
Ok danke schon mal für die Antworte

aber richtig einleuchtend war bis jetzt keine Antwort....






... wenn du den Merker einfach wieder löschen willst, dann :
Code:
U M 0.0
SPBN nAct
 
hier das Programmieren, was passieren soll
 
U M 0.0
R M 0.0
 
nAct: NOP 0

Damit deckst du aber nicht ein ggf. vorhandenes "Prellen" des Kontaktes ab. Wenn du das willst, dann müßtest du das Ganze zusätzlich noch mit einer Zeit-Verzögerung verschalten, also :
Code:
U M 0.0
L S5T#100ms
SE T100
 
UN M 0.0
ON T 100
SPB nAct
 
und dann wie gehabt ...
 
Hallo kaschey007,

es ist vielleicht an der Zeit, mal deinen aktuellen Stand hier reinzustellen und zu beschreiben, was jetzt noch nicht geht. So wie ich dein Problem verstanden habe, hätten die bisher gelieferten Hilfen eigentlich zur Lösung führen müssen.

Grüße von HaDi
 
Hallo kaschey007,

es ist vielleicht an der Zeit, mal deinen aktuellen Stand hier reinzustellen und zu beschreiben, was jetzt noch nicht geht. So wie ich dein Problem verstanden habe, hätten die bisher gelieferten Hilfen eigentlich zur Lösung führen müssen.

Grüße von HaDi

hallo habe gerade alle vorschläge getestet, funktioniert keiner
 
... dann würde ich auch dem Vorschlag von HaDi folgen und auch sagen, dass du hier vielleicht mal etwas Konkretes veröffentlichst ...
Wie ich schon gesagt habe das ziel ist es einen Button wie bei windows taschenrechner zu progrmmieren. Wenn man beim Calculator auf plus klickt, dann bleibt der Buttone ja auch nicht reingedrückt donder springt zurück, wie man es von anderen windows anwendungen es auch kennt.

Ich habe das schon mal grob ein paar funktionen geschrieben (Siehe Unten) , aber da muss ich die häckchen bei PLCSim nach dem ich sie gesetzt habe auch wieder selbst rücksetzten, das hiesse ja dass der Button reingedrückt bleibt. Ich möchte dass es selbst zurückspringt. Ich weiss auch dass es nicht mit eingängen sondern mit merkern funktionieren kann. aber noch habe ich das nicht geschafft den merker zurückzusetzen....



U(
O(
U #Plus
S M 1.0
)
O(
U #Minus
S M 1.1
)
O(
U #Div
S M 1.2
)
O(
U #Mul
S M 1.3
)
)
FP M 0.0

SPB lade
SPA ende

lade: L #EA
T #zw1

ende: NOP 0
U #Gleich
FP M 0.1
= M 0.2
U M 0.2
U M 1.0
SPB add1
SPA end1
add1: L #EA
L #zw1
+R
T #EA
SET
R M 1.0


end1: NOP 0

U M 0.2
U M 1.1
SPB min1
SPA end2
min1: L #zw1
L #EA
-R
T #EA
SET
R M 1.1
end2: NOP 0
U M 0.2
U M 1.2
SPB div1
SPA end3
div1: L #zw1
L #EA
/R
T #EA
SET
R M 1.2
end3: NOP 0
U M 0.2
U M 1.3
SPB mul1
SPA end4
mul1: L #zw1
L #EA
*R
T #EA
SET
R M 1.3


end4:nop 0
U #Clear
L 0.000000e+000
T #EA
 
Ergänzung:

jetzt sind meine variabeln #Plus etc. Eingangsvariablen also E 0.0 bis E 0.6



U(
O(
U #Plus
S M 1.0
)
O(
U #Minus
S M 1.1
)
O(
U #Div
S M 1.2
)
O(
U #Mul
S M 1.3
)
)
FP M 0.0

SPB lade
SPA ende

lade: L #EA
T #zw1

ende: NOP 0
U #Gleich
FP M 0.1
= M 0.2
U M 0.2
U M 1.0
SPB add1
SPA end1
add1: L #EA
L #zw1
+R
T #EA
SET
R M 1.0


end1: NOP 0

U M 0.2
U M 1.1
SPB min1
SPA end2
min1: L #zw1
L #EA
-R
T #EA
SET
R M 1.1
end2: NOP 0
U M 0.2
U M 1.2
SPB div1
SPA end3
div1: L #zw1
L #EA
/R
T #EA
SET
R M 1.2
end3: NOP 0
U M 0.2
U M 1.3
SPB mul1
SPA end4
mul1: L #zw1
L #EA
*R
T #EA
SET
R M 1.3


end4:nop 0
U #Clear
L 0.000000e+000
T #EA[/quote]
 
m 0.2 wird gesetzt wenn man auf #Gleich drückt , somit auch in jeder funktion erhalten. aber ich schreibe jetzt mal kommentare rein
 
OT: nutze doch [code ] und [/code ] (jeweils ohne space) ...sieht besser aus und ist wesentlich leichter zu lesen...

ZT: du möchtest also, das einmal erkannt wird, dass du die taste gedrückt hast? ... das erledigt FP für dich ... wertet nur die flanke aus und der 1-status danach ist egal ... die taste wieder zurückstellen geht ja nur mit nem aktor am taster :rolleyes:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
m 0.2 wird gesetzt wenn man auf #Gleich drückt , somit auch in jeder funktion erhalten. aber ich schreibe jetzt mal kommentare rein

Das habe ich aber nicht erkennen können, das "Plus" oder "Minus" und Konsorten den M0.2 auch bringen ... Es muss aber da sein, damit die Geschichte unten weiter überhaupt bearbeitet wird ...
 
m 0.2 wird gesetzt wenn man auf #Gleich drückt , somit auch in jeder funktion erhalten. aber ich schreibe jetzt mal kommentare rein

U( //Auswahl der Arithmetischen Funktion
O(
U #Plus
S M 1.0 // In Abhängigkeit vom gesetzten merker M1.x Springt Das Programm in die Gewünschte Aktion rein
)
O(
U #Minus
S M 1.1
)
O(
U #Div
S M 1.2
)
O(
U #Mul
S M 1.3
)
)
FP M 0.0

SPB lade
SPA ende

lade: L #EA // EA Feld ins Zwischenspeicher Laden
T #zw1

ende: NOP 0
U #Gleich // Merker Für Gleich definieren
FP M 0.1
= M 0.2
U M 0.2 //wenn mann #Plus gedrückt hat dann
U M 1.0
SPB add1
SPA end1
add1: L #EA
L #zw1
+R
T #EA
SET
R M 1.0 // bis hier plus


end1: NOP 0

U M 0.2 // Minus
U M 1.1
SPB min1
SPA end2
min1: L #zw1
L #EA
-R
T #EA
SET
R M 1.1 //ende Minuns
end2: NOP 0
U M 0.2 //geteilt
U M 1.2
SPB div1
SPA end3
div1: L #zw1
L #EA
/R
T #EA
SET
R M 1.2 //ende geteilt
end3: NOP 0
U M 0.2 //Mult
U M 1.3
SPB mul1
SPA end4
mul1: L #zw1
L #EA
*R
T #EA
SET
R M 1.3 //end Mult


end4:nop 0
U #Clear // Clear funktion. EA Feld zurücksetzen
L 0.000000e+000
T #EA
 
Zurück
Oben