Programm Mischvorgang

M89

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

ich arbeite mit Codesys V3.5 SP3 u. brauche Hilfe bei folgender Aufgabenstellung. Befinde mich noch am Anfang mit der ganzen Thematik rund um Codesys.

In Ablaufsprache (AS) muss folgendes Programm geschrieben werden:

Es soll ein Rührprodukt zusammen gemischt werden.


  • Rührprodukt A enthält 1 Anteil Stoff 1 (von Tank1), 1 Anteil Stoff 2 (von Tank2) u. 1 Anteil Stoff 3 (von Tank3).
  • Die Einstellung der Stoffmengen erfolgt über die Ansteuerzeit der entsprechenden Tankventile V1, V2, V3. Dabei entspricht 1 Anteil = 10s Ansteuerzeit.
  • Nachdem die Mengen im Rührkessel sind, wird der Rührer für 10 min. aktiviert (M1_AN).
  • Nach Abschluss der Mischung kann das Produkt weiter transportiert werden, wenn das Signal ABLAUF_OK anzeigt (Freigabe zum Abpumpen).
  • Das vollständige Abpumpen dauert eine Minute.

Wir habe also folgende Ein- u. Ausgänge:


  • Rührprodukt A (Eingang)


  • V1, V2, V3 (Ausgänge)
  • M1_AN (Ausgang)
  • P1_AN (Ausgang)
  • ABLAUF_OK (Ausgang)

Wer kann mir bei der Aufgabe helfen? Ich wäre demjenigen sehr verbunden.

Grüße
 
Hallo M89, willkommem im SPS-Forum!

Die Aufgabe ist recht simpel, deswegen wirst du hier sicherlich viele Helfer finden können.

Bei Haus-/Projekt-/Studienaufgaben läuft das hier in der Regel so: Du machst dir Gedanken wie die Aufgabe zu lösen ist. Wenn du einen Ansatz hast, stellst du ihn hier vor und wir geben dir Tips was du evtl. verbessern oder anders machen kannst. Wenn du an einer Stelle nicht weiterkommst, geben wir dir nen Schubs in die richtige Richtung.

Was du mit hoher Wahrscheinlichkeit nicht bekommen wirst, ist eine fertige Lösung von uns (ausser jmd aus dem Forum hat einen ganz sozialen Tag).

So und nu, Schritt 1. Zettel und Stift nehmen und erstmal die Ablaufkette für deine Aufgabe auf ein Blatt Papier malen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, das ist kein Problem. Ich hab bereits einen "Programm-Entwurf". Weiß aber nicht ob dies so in die richtige Richtung geht.

Ich hab keine richtige Lösung wie ich den Eingang "Rührprodukt A" simulieren soll. Taster oder Schalter? Habe jetzt einfach mal den Eingang auf true gesetzt u. dann sobald der Schritt aktiv ist wieder auf false. Da bin ich mir aber nicht so sicher...

Das zweite Problem ist, wie ich den Ausgang ABLAUF_OK zurücksetzen kann. Das funktioniert irgendwie nicht so richtig. Hab schon einiges ausprobiert.

Programm.png
 
Zuletzt bearbeitet:
Ist das Ganze nur ein Schulprojekt ?
Wie simulierst du das Ganze?(Mit kompletter Hardware ? Oder über Visu? )
Wie Master Oh schon schrieb, am Besten erst auf Papier den Ablauf skizzieren...
Du bist ja hier im Codesys Bereich..stelle doch mal einen Auszug aus deinem Baustein hier rein.
Gibt es auch einen Automatik/Hand Betrieb?
 
Danke erstmal für das Interesse! :)

Ja das kann man mit einem Schulprojekt vergleichen. Einen Auszug gibt es in meinem obigen Eintrag.

Simuliert wird ohne Hardware. Nur über das Programm. Also man sieht im Prinzip nur die Zustände "true" bzw. "false".

In der Anlage werden 3 Grundstoffe nach verschiedenen Rezepten zu einem Zwischenprodukt verarbeitet. Die Anlage besteht aus 3 Tanks, einem Rührkessel sowie einem Transportsystem.

Also der Ablauf: Es gibt keinen Automatik/Hand Betrieb.

1. Wahl Rührprodukt A aktiv (Eingang)
2. Danach: 10s V1 aktiv & 10s V2 aktiv & 10s V3 aktiv (Ausgänge)
3. Danach: 10min M1_AN aktiv (Ausgang)
4. Danach: ABLAUF_OK aktiv & 1min P1_AN aktiv (Ausgänge)
5. ENDE

Wenn Rührprodukt A wieder aktiviert wird, fängt der Zyklus von vorne an.
 
Wie kann man die Aktion ABLAUF_OK zurücksetzen?

Wenn P1_An nicht mehr aktiv ist müsste auch ABLAUF_OK nicht mehr true sein. Oder gibt es so eine Funktion das alles zurückgesetzt wird?

Ist das so richtig mit der Anwahl Rezept A? Man muss ja gleich nach der Ansteuerung den Eingang wieder deaktivieren damit die Transition nicht dauerhaft gesetzt ist. So quasi als Taster...

Ich bin mir da nicht so sicher.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Var: Rezept A setzt du ja mit forcen auf TRUE? Das ist so, solange geforct ist , bleibt die Variable TRUE.
Du könntest ja aus RezeptA eine pos.Flanke bilden, und diese stattdessen einfügen.
 
Hallo M89,

Da mir die Aufgabenstellung sehr bekannt vorkommt, muss ich dir jetzt eine Frage zu den Punkt stellen:
...
  • Nach Abschluss der Mischung kann das Produkt weiter transportiert werden, wenn das Signal ABLAUF_OK anzeigt (Freigabe zum Abpumpen).
...

Musst du das Signal „Ablauf_OK“ generieren oder wird es durch die nachfolgende Anlage erzeugt?

Eine pos.Flanke wäre aus dem RezeptA zu bilden wäre sicher die schönere Lösung.

Gruß
Sepp
 
Zuletzt bearbeitet:
Ok, danke euch. Ich probiere das alles mal aus.

Das Freigabesignal für das Abpumpen (ABLAUF_OK) wird von einer anderen Anlagensteuerung generiert.

Wie wird die positive Flanke eingesetzt? Ist das R_Trig mit CLK u. Q? Wie soll ich das einbinden?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
schau dir mal die Anhänge an..
die Flanke habe ich in ST geschrieben
Wichtig ist auch dass du die Variablen GLOBAL anlegst(damit diese in allen Bausteinen verwendet werden können)
 

Anhänge

  • po_Flanke_inST.pdf
    18,9 KB · Aufrufe: 27
  • AS_Baustein.pdf
    36,7 KB · Aufrufe: 22
mit negieren der Variable (NOT)ginge es übrigens auch- ist aber nicht so schön (1Schritt verschwendet)
 

Anhänge

  • andere Lösung.pdf
    37 KB · Aufrufe: 29
Danke.

Was macht die Ausgangsaktion in Step0 für einen Sinn? Wenn ich die einfügen will öffnet sich ein neues Fenster. Wofür ist das da?

Die Aktion Ablauf_OK wird nicht gesetzt, fällt mir auf.
 
Sollte die Var Ablauf_OK gesetzt werden?Davon hattest du nix geschrieben, na dann in Step02 ->Aktion assoziieren S Ablauf_OK(dann natürlich, irgendwo/wann wieder R)
 
...
Das Freigabesignal für das Abpumpen (ABLAUF_OK) wird von einer anderen Anlagensteuerung generiert.
...

Dann musst du aber nur schauen ob das Signal "ABLAUF_OK" TRUE oder FALSE ist und danach die entsprechende Aktion auslösen.
Ein bearbeiten des Signals (Setzen o. Rücksetzen) ist in deinem Programmteil nicht nötig.
Zur Simulation reicht es wenn du das Signal steuerst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ok, dann wird ABLAUF_OK quasi wie ein Eingang gesehen oder?

Ich muss den dann selber über Variblentabelle steuern. Ich simuliere also die andere Anlagensteuerung. Oder?
 
Ja, sozusagen.

Schau dir vielleicht deine Schrittkette noch einmal an, sie passt nicht wirklich zu den von Dir beschriebenen Ablauf.
 
@M89
Wie simulierst du eigentlich deine E/A´s ? Mit forcen ?
Ich würde an deiner Stelle die Visu von Codesys nehmen, dort kannst du z.B. die Eingänge als Schalter/Taster vorbelegen.
Die Ausgänge würde ich mir auch dort darstellen..da wird das Ganze übersichtlicher - nur so als Tip.
 
Zurück
Oben