Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 9 von 9

Thema: Mehrere Programme auf einer Steuerung einfach möglich?

  1. #1
    Registriert seit
    19.06.2013
    Beiträge
    100
    Danke
    18
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin,

    ich will auf einer universell einsetzbaren Steuerung quasi drei Programme mit drei unterschiedlichen Visus haben und ein zentraler Bildschirm, wo man das Programm anwählt, was man benötigt.

    Wie kann man das am einfachsten realisieren bevor ich jetzt zu kompliziert denke?

    Ein Programm besteht aus mehreren FBs. Das Problem ist, dass die drei Programme auf die selben Ausgänge zugreifen. Dachte erst, einfach die Bausteine mit EN/ENO zu deaktivieren aber laut Hilfe werden die Ausgänge weiter beschrieben.

    Sprich wenn der FB von Programm 1 nicht läuft weil EN=0, schreibt er 0 auf die boolschen Ausgänge und überschreibt damit das Ergebnis, was beim FB vom aktiven zweiten Programm käme.

    Daher müsste ich alle FB in einen übergeordneten FB (oder PRG oder sonstwas) packen und alle Ausgänge mit ANDs zu den Programm-FBs zu ordnen mit Verriegelung, ob das Programm aktiv ist.

    Gleichzeitig müsste ich bei der Visu entsprechend nach der Auswahl abfragen, ob das Programm aktiv ist, damit ein Rücksprung zur Auswahl gesperrt wird und so weiter und so fort....


    Glaube ihr versteht das Problem.
    Gibt es da eine einfachere Lösung ein Programm-FB quasi einfach zu sperren, nicht nur die Bearbeitung sondern dass er EVA-mäßig nichts mehr ausgibt?
    Zitieren Zitieren Mehrere Programme auf einer Steuerung einfach möglich?  

  2. #2
    Registriert seit
    26.11.2012
    Ort
    Gummersbach
    Beiträge
    496
    Danke
    18
    Erhielt 71 Danke für 69 Beiträge

    Standard

    Hallo,

    ist das wirklich eine gute Idee? Ich meine, wie reagiert die Hardware von Programm 1 auf den Ablauf von Programm 2 oder 3? Wenn die Hardware identisch ist löse ich das normalerweise mit verzweigten Abläufen.
    Mit welcher Steuerung willst Du denn arbeiten?

    Ich arbeite eigentlich bei allen Programmen mit einem I/O-Programm in dem die Hardwarezuordnung zu den Programmvariablen erfolgt und die Zugriffe aller Programmteile auf die Ausgänge abgearbeitet wird.
    Ist sicher Geschmackssache, aber ich finde das viel übersichtlicher und es vermindert extrem die Gefahr konkurierender Zugriffe.
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  3. #3
    Qnkel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2013
    Beiträge
    100
    Danke
    18
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Steuerung ist von Sabo, Hardware ist dieselbe.

    Das mit dem "I/O-Programm" ist ja auch meine Idee, wo ich alle Ausgänge beschreibe und dann jeweils über Variablen von Programm 1/2/3 ansteuern lasse und darüber verriegele, welches Programm gerade aktiv ist und auf den Ausgang schreiben darf.

    Weil man/ich hat ja mal gelernt: Ausgänge etc. werden nur an _einer_ Stelle beschrieben, um konkurrierende Zugriffe zu vermeiden.

  4. #4
    Registriert seit
    26.11.2012
    Ort
    Gummersbach
    Beiträge
    496
    Danke
    18
    Erhielt 71 Danke für 69 Beiträge

    Standard

    Mit Sabo habe ich noch nie gearbeitet (außer beim Rasen mähen ) - mit was werden die programmiert?

    Wenn die Hardware identisch ist löse ich solche Probleme mit verzweigten Schrittketten.
    Beispiel:

    Start der Schrittkette -> Grundlegende Sachen wie Schutzumhausung geschlossen werden im gemeinsamen Pfad abgewickelt.
    An Schritt x wird der Programmwahlschalter ausgewertet und je nachdem mit Schritt Ya, b oder c weitergemacht.
    Nach Ablauf der Schrittketten a, b oder c werden diese wieder zusammengeführt und in einem gemeinsamen Schlusspfad die Schrittkette beendet.

    Dazu noch ein PRG das neben der Schrittkette läuft in der alle Schrittmerker auf die jeweiligen Ausgänge ver-Oder-t sind - schon hast Du keine Probleme mit konkurierenden Zugriffen und das "versehentliche" Ausführen einzelner FBs entfällt damit auch
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  5. #5
    Registriert seit
    10.05.2010
    Beiträge
    80
    Danke
    34
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Hallo Onkel,
    in solchen Fällen würde ich mit der CASE-Anweisung arbeiten.
    Gruß Felix

  6. #6
    Registriert seit
    26.11.2012
    Ort
    Gummersbach
    Beiträge
    496
    Danke
    18
    Erhielt 71 Danke für 69 Beiträge

    Standard

    OK, meine Lösung bezog sich auf FUP - die Case-Anweisung im ST ist ja von der Idee her vergleichbar.

    gesendet von meinem Moto G mit Tapatalk
    Ganz kurz ganz hell
    ganz lange ganz dunkel....

  7. #7
    Registriert seit
    14.05.2008
    Beiträge
    185
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    was machen denn die einzelnen Programme, die du bescrheibst? Wird je nach Programm das verhalten anders? Wie umpfangreich is so ein Programm? Hört sich nach nem Strategy-Pattern an...

  8. #8
    Qnkel ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.06.2013
    Beiträge
    100
    Danke
    18
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Es sind verschiedene Schrittketten, die nach unterschiedlichen Zeiten/Verfahren letztendlich zwei Ausgänge beschalten. Diese Schrittketten werden immer 6mal verwendet.

    Verzweigte Schrittketten wären zu kompliziert. Denke ich werde es so machen mit Programmwahlschalter und dann ein übergeordneter Baustein, wo die Ausgänge der Schrittketten je nach Programmwahlschalter auf die Ausgänge gegeben werden.
    So kann man auch später weitere Schrittketten recht "unkompliziert" hinzufügen.

    Sabo wird mit Codesys V2.3 programmiert.

    Frage zum Interesse: Wie meinst das mit der CASE-Anweisung?

    Code:
    CASE Programmwahlschalter OF
    1: Ausgang1 := Programm1_Ausgang1;
    2: Ausgang1 := Programm2_Ausgang1;
    3: Ausgang1 := Programm3_Ausgang1;
    END_CASE;
    Wird dann Ausgang1 nur entsprechend CASE beschrieben und danach nicht überschrieben?

  9. #9
    Registriert seit
    14.05.2008
    Beiträge
    185
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wird dann Ausgang1 nur entsprechend CASE beschrieben und danach nicht überschrieben?
    ja klar wird der Ausgang1 nur in dem entsprechenden Case beschreiben, sonst würde switch/case ja keinen sinn machen..

    mach doch 3 FB's für jedes Programm... und calleds den FB in entsprechenden Case.. in den FB's selber kannst ja die Ausgänge setzen...

  10. Folgender Benutzer sagt Danke zu BorisDieKlinge80 für den nützlichen Beitrag:

    Qnkel (27.09.2016)

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 12.02.2014, 12:59
  2. Antworten: 3
    Letzter Beitrag: 24.12.2013, 10:08
  3. Programme sichern für mehrere Benutzer
    Von Corvax im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 01.04.2012, 09:13
  4. Antworten: 26
    Letzter Beitrag: 25.05.2011, 14:02
  5. Mehrere TCU an einer PCU50 + HT8 an einer Steuerung
    Von drsnuggles im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 19.07.2010, 13:22

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •