Step 7 Betriebszustandsauswerte Baustein

Schmidtchen

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

ich habe ein Problem bei dem ich auf keine passende Lösung komme. Vlt hat jemand von euch einen Lösungsvorschlag.
Ich verwende eine S7-1214 C mit TIA V12 und ein KTP 600 PN.

Ich habe folgendes vor, ich möchte mir einen Baustein entwerfen mit dem ich den Betriebszustand einer Anlage auswerten möchte.

S1 START
S2 Stop
P1 grüne Meldeleuchte
P2 rote Meldeleuchte

Funktion:

Bevor der Vorgang gestartet wird, soll P1 dauerhaft leuchten um auf eine Betätigung hinzuweisen und P2 ist aus. Nach dem betätigen von S1 soll P1 anfangen zu blinken (Frequenz ist 0,5 Hz --> also 1s an und 1s aus) und P2 soll nun dauerhaft leuchten. Wird nun S2 betätigt weil die Anlage gestoppt werden soll, so hat P1 wieder dauerhaft zu leuchten.

Anschließend soll die Funktion erweitert werden, ich möchte das P2 bei einer Störung blinkt und nach Behebung der Störung mit dem betätigen der beiden Taster S1 und S2 gleichzeitig soll P1 wieder dauerhaft leuchten und P2 aus sein.

Eigentlich war noch gedacht die durch die Eingabe einer Zeit die Anlage entsprechen der Zeit laufen zu lassen.


Ich hoffe jemand hat einen Lösungsansatz, wenn die Grundfunktion (Absatz 1) erst mal funktionieren würde, wäre ich schon erst mal zufrieden und könnte dann erweitern.



Schon mal danke....
 
Jetzt mal ehrlich.
Wenn man programmieren will, sollte man diese Hürde nehmen können. :-|

Auch wenn man am Anfang steht, kann man sowas auch notfalls mit "try + error" schaffen.

Meine Meinung...
 
Ich hab schon einen Lösungsansatz, mein Problem besteht eher in der Flankenauswertung. Welche Funktion verwendet man dafür?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,

Also ich habe mir erst mal ein Impulsgenerator konzipiert und er funktioniert auch soweit, aber irgendwie funktioniert dieser nicht so wie er sollte. Am Ausgang von Timer 1 (TON) habe ich einen Baustein, der beim positiven Flankenwechsel auf 1 schalten soll. (er wird aber nie Betätigt)
Aber Q schaltet ja den zweiten Timer (TP) aber nicht "Impuls aus" ??

Eine andere Frage habe ich noch, hab noch nicht ganz verstanden warum ich extra einen Datenbaustein für die Timer brauche, ich übergebe den Timern ja einen Wert mithilfe von "Time_value_in_s" ??

Kann mir jemand zu diesem Sachverhalt eine Antwort geben?

LG
 

Anhänge

  • Impulsgenerator.jpg
    Impulsgenerator.jpg
    86,5 KB · Aufrufe: 36
Danke für den Vorschlag, kann ich auch ein und den selben DB für die Timer nutzen oder brauch ich immer einen eigenen DB pro Timer?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus,
du kannst auch einen Multiinstanzaufruf realisieren. Dann brauchst du nicht für jeden Timer einen einzelnen DB. Die 1200 verfügt allerdings auch über "Taktmerker". Diese solltest du für deine Blinkanwendug meiner Meinung nach nutzten. Dann brauchst du auch keine Zeiten und keinen DB spendieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich hab die Taktmerker in der HW konfig aktiviert und hab den Merker im OB an meinen FB gekoppelt, aber passieren tut nix. Muss ich noch etwas anderes beachten beim arbeiten mit Taktmerkern bzw hab ich noch was vergessen ??
 

Anhänge

  • Taktmerker einbindung.jpg
    Taktmerker einbindung.jpg
    127,4 KB · Aufrufe: 24
Hab den Fehler gefunden, die HW konfig war noch nicht mit aktualisiert worden.

Ich verwende ein KTP 600 PN, ich wollte jetzt eine Schaltfläche betätigen und auch so den Vorgang starten können. (Parallel zu meinem Taster am Bedienpult)

Ich hab schon mehrfach versucht über die Einbindung der einer Variable den Vorgang auch über das HMI starten zu können, irgendwie funktioniert es aber nicht. Über Animation hab ich mir die Variable des Tasters hinterlegt (bei 0 = rot und bei 1 = grün). Aber selbst wenn ich bei Ereignis (setzte Bit ) und mit der Variable S1 verbinde wird diese nicht gesetzt. Hab es mit der Variablen Tabelle überprüft.

Hat jemand vlt einen Hinweis woran es liegen könnte bzw wie man das macht?

Danke,...
 
Versuch doch mal einen Merker (oder DB?.DBX??.?) als Variable fürs KTP600 zu verwenden. Und mach ein >= an deinen FB...

Die an den Taster gebundene Animation verstehe ich auch nicht ganz. Der wird ja nur kurz gedrückt oder?
 
Ich schaue mal.
Ja das stimmt so, ich möchte einen Vorgang starten mit S1 (Taster am Bedienpult) oder S1 (Taster auf dem KTP).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi !

ich schätze mal die Animation hast du zum Testen der Funktion vorrübergehend eingefügt ?

In der Regel werden Eingänge eingelesen und Ausgänge beschrieben, in manchen Fällen können evtl. Ausgänge auch gelesen werden.
Wenn ich das was du geschrieben hast richtig verstehe versuchst du jetzt aus deiner Visualisierung heraus einen Eingang zu beschreiben.
Das ist 1. Völlig am Zweck von Eingängen vorbei und 2. wird es nie funktionieren.

Du must den Eingang Taster am Bedienpult und ein beliebiges Signal (Ausser Eingänge und Ausgänge) der SPS am Eingang des FB verodern, wie jack911 schon geschrieben hat.
Also aus der Visu z.B. Merker setzen und mit dem Eingang vom Bedienpult verodern, dieses VKE an den Eingang vom FB verdrahten, fertig.

Gruß
B.A.
 
Also ich hab es mal so in etwa gemacht, aber es funktioniert immer noch nicht.

Ich habe einen globalen DB und habe dort die Variable "S1_Starttaster" und "S2_Stoptaster" erstellt. Auf meinem KTP habe ich eine Schaltfläche "START" und "STOP" in den Eigenschaften (Ereignisse) habe ich dann jeweils definiert "SetzteBit" und dann jeweils "DB_global_1_S1_Starttaster"bzw "....Stoptaster"

In meinem FB hab ich habe ich die Logik so abgeändert, dass ich vom KTP (Schaltfläche START) oder von dem externen Taster starten kannsomit sollte eig. beides möglich sein. Oder?

Ich hab mal ein Bild gemacht...

Also ich will nicht den Wert überschreiben sondern eigentlich von zwei unterschiedlichen Positionen starten können.
 

Anhänge

  • HMI & PLC Variablen.jpg
    HMI & PLC Variablen.jpg
    121,1 KB · Aufrufe: 22
Wenn ich das richtig verstehe ist rechts der Funktionsplan der Inhalt vom FB2, stimmt das ?

Kannst du vielleicht mal kurz beschreiben warum du das Programm so geschrieben hast ?
Also warum die negative Flanke (ist doch eine, oder ?)
Wieso 'setzt' und 'rücksetzt' du die Variablen "START_impuls" und "STOP_impuls" und wird deren Zustand auch nochmal irgendwo verändert ?
Wieso hast du die Eingänge für die Visualisierung am FB2 nicht verschaltet ? Oder beschreibst du aus der Visualisierung direkt die Variablem im Instanz-DB des FB2 ?

Gruß
B.A.
 
Zurück
Oben