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

Ergebnis 1 bis 9 von 9

Thema: Wechselbetrieb von Objektorientiert entwickelten SPS Modelle

  1. #1
    Registriert seit
    03.01.2014
    Beiträge
    8
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Tag,

    zuerst möchte ich mich herzlich für die viele gegenseitige Unterstützung der Community bedanken.

    Ich habe ein Projekt streng nach OOP entwickelt. Wir können und dürfen die klassischen schrittkette und Ablauf nicht verwenden. Es wurden Modelle erstellt, Klassen gebaut und schließlich für jede der 12 Stationen in der Zelle eigene Objekte erstellt. Soweit alles gut und es funktioniert wunderbar. Nun suche ich eine Möglichkeit die Objekte:

    1- Vollständig zu Simuliert: (Das Funktioniert schon)
    Hier ist gemeint, den Objekten die Inputs NUR vom HMI vollständig vorzugaukeln.

    2- In Echten Betrieb laufen lassen: (Das Funktioniert schon)
    Die Objekten kommunizieren vollständig untereinander.

    3- Teilweise zu Simuliert:
    Hier ist gemeint, den Objekten die Inputs abwechselt vom HMI vorzugaukeln oder die Objekte untereinander kommunizieren zu lassen. Das Wechselt wird auch im normalen echten Betrieb verwendet. Der Betrieb darf aber nicht unterbrochen werden. Es darf auch nicht neue Referenziert werden.

    Z.B: Ein Objeckt mit 17 Zustände arbeitet seine Zustände ein nach der andere durch je nachdem welche Transition da ist. Befindet sich das Objekt mal gerade im Zustand 9 und ihm die Input nun vom HMI vorgegaukelt wird, muss er dort weiter fahren (10-11-12-…) je nachdem welche Transition da ist. Wechseln wir wieder die Input auf die echten Kommunikation mit anderen Objekten, dann muss er auch hier weiter fahren (…-13-14-15…) je nachdem welche Transition da ist.

    Das Wechselt wird verriegelt und mit Passwort nur für befugte personal. Die Punkte (1) und (2) sind erfolgreich realisiert. Aber der Punkt (3) bereitet noch Schwierigkeiten. Hier meine bisherige Ansätze:

    a) Das Objekt einmal instanziieren. Die Daten vom Echten betrieb (Daten von andere Objekten) mit den simulierten Daten vom HMI verodern und das als Input an das Objekt anschließen.
    Es funktioniert soweit gut, aber das Verhalten ist dann deterministisch. Es sind nicht nur Boolesche aber auch Felder und Komplexe Datentypen und deren Veroderung führt zu sehr sehr komische Verhalten und Ergebnisse.

    b) Das Objekt zweimal instanziieren. das eine mit dem HMI und das andere mit den echten Daten verbinden. mit "EN" Enable wird das eine oder andere Objekt eingeschaltet. Beide schreiben ihre Ergebnisse auf demselben Output. Das lauft gut aber dafür muss ich die Modelle umbauen, dass der laufenden Zustand zw den Instanzen austauschbar ist. Im erstenlauf war alled OK. Aber im wechseln wird der zuletzt gelaufene Zustand in einem Instanz nochmal im neue enableten Instanz durchgefürht. Bei Timer und enty/ do/ Exit/ Aktivitäten führt das zu Fehler....

    jetzt bitte ich Ihre Erfahrung und Empfehlungen für diese Problem

    Gruß
    Klementine

    Zitieren Zitieren Wechselbetrieb von Objektorientiert entwickelten SPS Modelle  

  2. #2
    Registriert seit
    27.07.2012
    Ort
    AUT
    Beiträge
    480
    Danke
    84
    Erhielt 159 Danke für 90 Beiträge

    Standard

    Ich verstehe die Probleme mit Variante "a" nicht ganz. Verodern allein wird wohl nicht reichen aber wenn man einen Simulationsmodus implementiert der zwischen Realinputs und SimInputs definiert umschaltet dann sollte das gehen?
    Regards NRNT

  3. #3
    klementine ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.01.2014
    Beiträge
    8
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke für die Antwort,

    Hier habe ich nochmal meine beiden Ansätze (a) und (b) graphisch dargestellt:

    Ansatz (a)
    a.PNG

    Ansatz (b)
    b.PNG


    Die Implementierung der zwischenlogic für Sim & Real würde das Modell verändern, aber eine Versuch ist es wert.

    MFG
    Klementine

  4. #4
    Registriert seit
    27.07.2012
    Ort
    AUT
    Beiträge
    480
    Danke
    84
    Erhielt 159 Danke für 90 Beiträge

    Standard

    Ja das habe ich so verstanden. Ich verstehe aber trotzdem nicht was bei Lösung A Probleme machen soll.

    Unbenannt.png

    EDIT. Denn im Grunde ist Variante b nichts anderes als Variante a nur daß du das "ODER" (Als Logik zu verstehen, nicht als einzellnes Gatter) hinter den Instanzen hast. Wobei das Gate auch in Instanz A integriert sein könnte.
    Geändert von norustnotrust (19.05.2014 um 17:44 Uhr)
    Regards NRNT

  5. #5
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.480
    Danke
    1.141
    Erhielt 1.240 Danke für 973 Beiträge

    Standard

    Du darfst nicht einfach ODER-Verknüpfen, sondern musst gezielt "Umschalten".
    Also qausi eine "Entweder-Oder"-Verknüpfung

    Code:
    U InstanzX.SignalA
    UN Simulation_Ein
    O
    U HMI.SignalA
    U Simulation_Ein
    = InstanzA.Freigabe
    Gruß
    Dieter

  6. #6
    Registriert seit
    26.04.2010
    Beiträge
    292
    Danke
    31
    Erhielt 51 Danke für 50 Beiträge

    Standard

    Hi!

    Verwende doch für den "SIM" Aufruf die selben Instanzdaten wie für den "real" Aufruf.
    Die umschaltung mit "en" funktioniert dann genauso, nur dass der Ablauf nach der Simulation da weitergeht wo er vorher mit den realen eingangsdaten aufgehört hat.

    Gruß,

    Ottmar

  7. #7
    klementine ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.01.2014
    Beiträge
    8
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Danke für Ihr Antwort. Sie haben mir die Augen geöffnet.

    Das undeterministische Verhalten im Ansatz (a) Kommt dadurch, dass ich nicht nur boolesche aber auch viele komplexe Daten übertrage. Das Switchen zw. SimData und RealDate habe ich über „IF“ abgewickelt.

    if HMIenable then
    Input = SimData;
    else
    input = RealDate;
    endif.

    Und genau hier vermutet ich mein Problem: ich darf hier die Inputs nicht direkt aus der HMI überschreiben sondern die HMI Daten erst in einen globalen DB anlegen und dort an die Inputs verbinden…
    Habe ich Recht und vermische ich wieder etwas? Dann kann ich wie folgt vorgehen:

    SimData := globalVar.HMIdaten

    if globalVar.HMIenable then
    Input = SimData;
    else
    input = RealDate;
    endif

    Dazu kommt dass ich das ganze nicht wie bisjetzt in einem FB sondern für jedes Objekt seinen eigenen SimRealSwitcher-FB erstellen muss.
    Kann ich anstatt in einem FB die SimRealSwitcher in einem FC erstellen? Ich brauche keinen Gedächtnis bei der Datenübertragung. Der SimRealSwitcher sollt nur entweder die Daten von <Sim> oder die von <Real> an die Inputs weitergeben.

    MfG
    Klementine

  8. #8
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    Was du bedenken musst ist das im moment des umschaltens von real auf sim nicht der aktuelle zustand in der sim steht.
    das könnte zu unerwünschten nebenwirkungen führen

    Code:
    if HMIenable then
    Input = SimData;
    else
    input = RealDate;
    SimData = RealDate;
    endif.
    wenn es nur ein umkopieren von daten ist kannst du ruhig eine fc nehmen
    Geändert von volker (20.05.2014 um 15:36 Uhr)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  9. #9
    klementine ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    03.01.2014
    Beiträge
    8
    Danke
    0
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke,
    Fehler nun beseitig und es funktioniert wie gewünscht

    Gruß
    Klementine

Ähnliche Themen

  1. Objektorientiert arbeiten
    Von Bensen83 im Forum Simatic
    Antworten: 33
    Letzter Beitrag: 28.02.2013, 20:29
  2. Multitask oder Objektorientiert
    Von wackel_peter im Forum Programmierstrategien
    Antworten: 0
    Letzter Beitrag: 31.07.2012, 13:04
  3. SAIA PCD3 Modelle teils NEU zu Verkaufen
    Von pete_colo_Sima im Forum Suche - Biete
    Antworten: 0
    Letzter Beitrag: 21.09.2009, 16:37
  4. Pumpen müssen im Wechselbetrieb arbeiten
    Von Johannes Ashur im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 30.07.2009, 12:42
  5. Hochregallager Modelle...
    Von Jochen Kühner im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 10.10.2007, 21:37

Stichworte

Lesezeichen

Berechtigungen

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