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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 42

Thema: Problem mit UDT inout und Multiinstanz

  1. #21
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.163
    Danke
    921
    Erhielt 3.286 Danke für 2.655 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von dodi110480 Beitrag anzeigen
    aber die Anlage muss am Dienstag raus und wir haben im Moment soviel zu tun
    [...]
    Prinzipiell finde ich diese "Lego" Bauweise von Programmen nämlich sehr gut da, wenn so manch ein Baustein überholt wird man bestehende Anlagen verbessern kann.
    Tja, wenn Ihr alle Eure Anlagen mit nur so halben Lösungen ausliefert, dann besteht natürlich genügend Verbesserungspotential und -bedarf

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  2. #22
    dodi110480 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    31.07.2013
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    nun ja, ich wollte, wie gesagt mal was Neues ausprobieren...
    Mein nächstes Projekt ist eine Anlage die in Transite programmiert wird. Also, was total "durchdachtes". Selbst in diesem Smileyprogramm gibt es noch den einen oder anderen Bug, wie wir letztens wieder festgestellt haben. Ich denke mal, die perfekte Software wird es nie geben bzw. man kann immer etwas verbessern.

    Gruß,
    Dominik

  3. #23
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.710
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Ich denke, das ist schon ok - wer nicht mit etwas anfängt der wird es auch nicht fertig bekommen.
    Jedes Ding, das man anfängt braucht so seine Entwicklungszeit ...

    Gruß
    Larry

  4. #24
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ich denke mal, dass es erstmal keinen Unterschied macht, in welchen DB du deine Daten von der Visu schreibst. Ob jetzt in diesen oder jenen DB spielt für das Problem mit der "Nebenläufigkeit" keine Rolle - wenn die Übertragung keinen Kontrollpunkt mehr hat dann muss man sich im SPS-Programm "künstlich" einen erschaffen ...

    Gruß
    Larry
    Dodi hat eindeutig ein Problem mit "Nebenläufigkeit". Bausteinstatus ist mit dem Baustein der beobachtet wird synchronisiert und Beobachtungstabellen sind mit dem OB1 synchronisiert. HMI ist das nicht! Wenn du also im Programm wohin schreibst z.B. in den INOUT einer Instanz und mit der Visu machst du das auch, dann gewinnt mal der eine und mal der andere. Du schreibst so schön:
    "künstlich" einen erschaffen
    Ja wie denn?? Welches Mittel bietet Siemens denn da?? Ich habe in den letzten 20 Jahren keines gefunden. Der Schreibzugriff der Visu platzt irgendwann rein.

    Deshalb schreibe ich mit der Visu in einen speziellen DB der dem restlichen Prozess egal ist und dann kopiert sich der Prozess zu einem für den Prozess geeigneten Zeitpunkt die notwendigen Daten.

    Aber vielleicht es es das was du mit deinem "künstlichen Kontrollpunkt" meinst.


    von welcher Objektorientierung wird denn hier gesprochen? Ich hab im ganzen TIA nirgendwo INTERFACE, IMPLEMENTS oder CLASS gesehen ??? Gibt es irgendwo virtuelle Methoden????

    'n schön' Tach auch
    HB

  5. #25
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von HelleBarde Beitrag anzeigen
    von welcher Objektorientierung wird denn hier gesprochen? Ich hab im ganzen TIA nirgendwo INTERFACE, IMPLEMENTS oder CLASS gesehen ??? Gibt es irgendwo virtuelle Methoden????
    Nur weil die Namen und einige Features fehlen, heißt das nicht dass man bei Step7/TIA keine objektorientierten Konzepte anwenden kann. Denn es ist ein Konzept, und keine Sprache.
    In C gibt es deine Schlagwörter auch nicht, aber schau dir mal sowas wie GTK+ oder GObject an. Einen Funktionsbaustein kann man schon als Objekt ansehen, der auch in gewisser Hinsicht über die Multiinstanzen Funktionen von anderen FBs erben kann. Beim TIA-Portal gibt es wenigstens für den HMI-Zugriff entsprechende Zugriffsmodifikatoren, sodass eigentlich nicht mehr viel dagegen spricht ein HMI direkt auf die Instanz zugreifen zu lassen, da man durch die Optionen festlegen kann worauf zugegriffen werden darf und worauf nicht. Riesige Globaldaten-DB sind bestimmt nicht objektorientiert.

  6. #26
    Registriert seit
    24.04.2013
    Beiträge
    309
    Danke
    23
    Erhielt 160 Danke für 88 Beiträge

    Standard

    Hi Thomas

    Ok, OO ist ein Konzept. Da fehlt's aber bei S dann trotzdem hinten und vorne. Objektorientierung ist, wenn das Objekt sagt, welche der abgeleiteten Implementierungen es bei einer Methode aufruft. Ja die ersten C++ Compiler waren Präprozessoren die auf einfaches C herunter sind. Aber C hat ja auch Funktionspointer. Sowas gibt es bei der Simatic nicht. In AWL UC FC[LW10] ... oh nee. Wo sind denn da die Parameter. Nee Simatic ist nicht OO.

    Wer sagt denn, dass die für die Synchronisierung zwischen Visu und Prozess verwendeten DB rießig sind und dass es nur einen gibt. Solange es keine "sprachliche" Unterstüzung bezüglich der Nebenläufigkeit gibt, z.B. einen SFC BlockHMIAccess und SFC UnblockHMIAccess oder sowas, muss man sich seine Synchronisierung selber schaffen. An Dodi's 1s Lösung sieht man ja was da bei tolles raus kommt.

    'n schön' Tach auch
    HB

  7. #27
    dodi110480 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    31.07.2013
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nett....
    Was meinst du mit "tolles dabei raus kommt"?
    Ich kopiere die Werte vorher in STATs die am FB hängen (Funktioniert, Punkt).... mein Problem ist das "Wiederzurückkopieren auf die ursprünglichen Varialben" hast du dazu eine Lösung?

    Ich lese nur: "Deshalb schreibe ich mit der Visu in einen speziellen DB der dem restlichen Prozess egal ist und dann kopiert sich der Prozess zu einem für den Prozess geeigneten Zeitpunkt die notwendigen Daten."

    Der Sinn eines Forums ist für mich, dass man hilft wenn jemand ein Problem hat und nicht ihn zu diffamieren.


    Gruß
    Dominik

  8. #28
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Kannst du deine Visu nicht direkt auf den Instanz-DB schreiben lassen?
    Dann wäre das Problem mit sowas wie:
    Code:
    Sollwert_intern := Sollwert_extern;
    IF Sollwert_intern > Max THEN
      Sollwert_intern := Max;
      Sollwert_extern := Max;
    ELSIF Sollwert_intern < Min THEN
      Sollwert_intern := Min;
      Sollwert_extern := Min;
    END_IF;
    eigentlich erledigt.

  9. #29
    dodi110480 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    31.07.2013
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ja schon, so geht es, aber wenn ich direkt im InstanzDB was mache dann ist der Effekt den ich erreichen möchte nicht mehr gegeben. Ich möchte gerne, in Zukunft, aus der Bibliothek mir meine Anlage zusammen stecken können. So wie ich es jetzt gemacht habe, funktioniert alles bis auf dieses eine, nervige Problem.... :-/


    Gesendet von meinem iPhone mit Tapatalk

  10. #30
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Alternative Lösung die auch zuverlässig funktioniert:
    Du machst die Sollwertvorgabe als In-Parameter, und den aktuellen ggf. im Baustein begrenzten Sollwert als Out-Parameter. Eine Grenzwertverletzung signalisierst du über einen oder zwei Bool Out-Parameter. Dann schaltest du dem Baustein eine bedingte Move-Anweisung (oder ein If...Then) nach, bei der du bedingt die Sollwertvorgabe bei Grenzwertverletzung korrigierst. Aufwändiger, aber zuverlässig.

Ähnliche Themen

  1. Step 7 UDT als Eingangsvariable eines Multiinstanz-FBs
    Von Bär1971 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 20.08.2013, 19:11
  2. Timer mit Instanz als InOut Varíable
    Von blubbi im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 31.01.2013, 20:37
  3. Baustein mit IN & OUT Paramtern, oder INOUT`erstellen?
    Von Bensen83 im Forum CODESYS und IEC61131
    Antworten: 13
    Letzter Beitrag: 23.11.2012, 13:08
  4. Problem mit Multiinstanz und SFB4
    Von shephard im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 05.11.2010, 08:31
  5. UDT als In_Out an Multiinstanz FB
    Von dirknico im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 01.10.2009, 12:28

Stichworte

Lesezeichen

Berechtigungen

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