Step 7 Problem ( Taster mit setzbit )

lurchitopone

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo ich habe folgendes Problem

ich habe folgendes Programm geschrieben, funktioniert aber nicht

ich möchte bei unterschreiten von 10 % Wasserstand in der Regenwasserzysterne einen Alarmsummer aktivieren der entsprechende Merker ist ( M274.1 )= Summer

diesen möchte ich aber ausschalten können mit ( M274.3 ) ist ein Taster
das Bit M274.3 hat kurz ein positives Signal

bei betätigen von M274.3 soll der Merker 274.4 gesetzt werden und gesetzt bleiben und der Summer ( M274.1 ) ausgeschltet weden

und bei überschreiten von 10 % Wasserstand
soll das Ausschaltbit ( M274.4 ) wieder gelöscht werden



L MW 278 // Wasserstand zu niedrig Warnung
L 10 // Vergleich mit 10 Prozent
>=D // Springe wenn Wasserstand größer 10 % ist
SPB ZYS2


UN M 274.4
= M 274.1 // Wasserwarnung setzen

U M 274.3 // bit um die ( Alarm M 274.1 ) rückzusetzen
S M 274.4
BEA

ZYS2: R M 274.4



mein problem ist, wenn ich das Bit M 274.3 setze dann wird das Hilfsbit M274.4 gesetzt und der Summer ( M274.1 ) geht aus

bis hierher ist alles ok

aber wenn ich den Taster ( M274.3 ) wieder loslasse M274.3 geht wieder auf Wert "0" dann bleibt das Hilfsbit ( M274.4 ) nicht gesetzt sondern geht auch wieder auf "0" und somit auch der Summer wieder an

könnt ihr mir bei meinen Problem helfen
ich benutze Step7 mit einer 200 CPU

gruß lurchi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wasserstand

Hi,
so eine Art der S7 Programmierung, mit BEA und solche Sprünge, das kann oft schief gehen. Wie wäre es mit einer klaren Struktur:

L MW 278 // Wasserstand
L 10 // Vergleich mit 10 Prozent
<=D // Wasserstand kleiner 10 %
FP M10.0 // Flanke, wenn zu wenig Wasser
S M274.1 // Summer starten

L MW 278 // Wasserstand
L 10 // Vergleich mit 10 Prozent
>D // Wasserstand OK
O M274.3 // Reset Summer
R M274.1 // Summer Reset

Das ist zwar nicht genau deine Aufgabe, wollte nur ein Beispiel geben.
Arbeiten mit Flanken bringt viele interessante Möglichkeiten.
Die Sprünge, na ja, aber bitte nur wenn es nicht anders geht.

Vladi
 
Das sieht mit aber nach einem Step7-Programm für eine 300-er CPU aus oder meinst du eine 200-er von VIPA?

Wenn ein MW geladen wird, sollte man aber >I (16 Bit) und nicht >D (32 Bit) vergleichen, nur der Vollständigkeit halber :cool: !
 
hallo !!!
erst mal danke für die Schnelle Antwort

ich probiere das Programm mal aus

und ja es ist eine CPU System 200 von Hersteller Vipa

und wegen der Programmierung ich bin anfänger ich dachte probiere es mal so
ich habe mal Z80 und 6502 programmiert, wegen meiner vielen Sprünge

und ich habe mit Speicherabbild und weitere Spezialitäten ( in der SPS ) meine Probleme wie Timer setzen und erneut starten usw.



was bedeutet dieser Befehl ?

FP M10.0 // Flanke, wenn zu wenig Wasser


ich glaube dein Programm ist genau was ich brauche das sollte genau das machen was ich brauche
sieht sehr logisch aus, aber man muß erst mal drauf kommen

kann es aber erst heute abend ausprobieren, meine Frau macht mir jetzt schon die Hölle heiß weil ich nur noch vor dem Computer sitze !!


gruß lurchi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code

Hi,
bitte, bitte. So,
was bedeutet dieser Befehl ?
FP M10.0 // Flanke, wenn zu wenig Wasser

"F"lanke"P"ositiv, die SPS wertet die Flanke aus; der Merker nach dem Befehl ist ein beliebiger Hilfsbit für die Auswertung. Es gibt auch entspr. FN.

U E0.0
FN M10.0
= M10.1 //d.h. M10.1 ist TRUE ein Zyklus lang, nachdem E0.0 FALSE
//wurde

Ja einige SPS Code Grundlagen sind einfach unumgänglich. In der Online Hilfe steht auch sehr viel. Und hier im Forum natürlich(Suche).

Gruss: Vladi
 
Als es noch keine Befehle FN und FP gab, hat man das so gemacht:

U E0.0
UN M10.0 // speichert "alten" Zustand von E0.0 aus dem vorigen Zyklus
= M10.1 //d.h. M10.1 ist TRUE ein Zyklus lang, nachdem E0.0 FALSE

U E0.0
= M10.0 // Zustand von E0.0 für nächsten Zyklus speichern
 
hallo vladi

danke super es funktioniert , und ich habe ca.4 Stunden rumprobiert ohne jeglichen Erfolg
nochmal vielen Dank

gruß lurchi
 
hallo Vladi !!

rumprobieren ist gut aber wenn es zum schluss erfolglos ist, macht es nicht wirklich Spass aber es hat ja doch noch alles geklappt
und mit dem "FN" und "FP" Befehl muß ich mich intensiv beschäftigen , da ich in meinen Programm schon mal ähnliche probleme mit Timer hatte

ich hatte sie zurückgesetzt
aber sie ließen sich nicht erneut starten lag wahrscheinlich auch daran, dass der Rücksetzbefehl und der Neustart innerhalb eines Zykluses programmiert war


noch einen schönen Sonntag und nochmal Danke für deine Hilfe :p :p

gruß roman ( lurchi )
 
Zurück
Oben