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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Ne handvoll Einsteigerfragen

  1. #11
    Registriert seit
    16.08.2007
    Beiträge
    40
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von zotos Beitrag anzeigen
    Aber die FBs könnten doch eine Struktur (UDT) aus dem globalen DB im IN_OUT Bereich benutzen. (oder?)
    Du meinst einen globalen DB für alle Module, und für jedes Modul halt eine Struktur?

  2. #12
    Registriert seit
    16.08.2007
    Beiträge
    40
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Ok, das kann ich verstehen, aber der Übersichtlichkeit tut das, was du vorhast noch viel weniger gut, da kaum jemand anders da noch rauskommen würde.
    Naja, wenn ich mit dem Graph-FB ganz einfach auf die Variablen des aufrufenden Modul-FBs zugreifen könnte wäre das für mich perfekt. Denn die Modulstruktur kennen alle MA, die ist seit Jahren in allen Anlagen gleich, wenn ich jetzt noch ohne große Umbauaktionen die Schrittketten grafisch darstellen könnte wäre das optimal. So könnte ich einfach das was in den Schrittketten bisher passiert in den Graph machen und dort wo bisher die SK stand den Graph-FB aufrufen. Das sind meistens nur BOOL-Status-Abfragen oder der Index für ein Positionsarray mit anschliessendem BOOL-Fahrbefehl. Aber das scheint so nicht zu gehen. Wäre auch zu einfach gewesen...

    ..OOP ist einfach zu schön Wäre praktisch wenn der Child-Graph-FB die Variablen des Parent-FB erben könnte

  3. #13
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Zitat Zitat von derbenny Beitrag anzeigen
    Naja, wenn ich mit dem Graph-FB ganz einfach auf die Variablen des aufrufenden Modul-FBs zugreifen könnte wäre das für mich perfekt. Denn die Modulstruktur kennen alle MA, die ist seit Jahren in allen Anlagen gleich, wenn ich jetzt noch ohne große Umbauaktionen die Schrittketten grafisch darstellen könnte wäre das optimal. So könnte ich einfach das was in den Schrittketten bisher passiert in den Graph machen und dort wo bisher die SK stand den Graph-FB aufrufen. Das sind meistens nur BOOL-Status-Abfragen oder der Index für ein Positionsarray mit anschliessendem BOOL-Fahrbefehl. Aber das scheint so nicht zu gehen. Wäre auch zu einfach gewesen...

    ..OOP ist einfach zu schön Wäre praktisch wenn der Child-Graph-FB die Variablen des Parent-FB erben könnte
    Wo wir dann wieder bei der Frage eines anderen Thread hier im Forum landen, braucht es eine S9 . Für solche Fälle wohl ja, aber die Instandhalter in den Firmen werden uns bei solchen Konstruktionen wohl kreuzigen (jedenfalls die, die ich so kenne).
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #14
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Für mich klingt das ganze auch zu komplex.

    Wenn ich das richtig verstanden habe hattet ihr ursprünglich Programmteile in ST (oder was ähnlichem) in dem die Module und Stationen abliefen. Auch Schrittketten (als Case?) und nun wollt ihr den Schrtittekttenteil ausgliedern in Graph7. Was nun aber sehr viele Schnittstellenprobleme bereitet.

    Der Einwand von Ralle mit den Instandhaltern ist zwar hier im Forum das Argument gegen alles neue. Aber ich denke ab ein gewissen Komplexität der Aufgabe kommt man eben ohne höhere Programmiersprache nicht klar. Verallgemeinert geschrieben: Was ein Programmierer nicht in AWL versteht versteht der Instandhalter auch nicht in AWL (auch zahlreiche Ausnahmen bestätigen die Regel).

    Wenn ihr Graph7 wegen der Übersichtlichkeit verwendet habt dann sollte die Kette nicht durch Zahllose Schnittstellen selbst in Ketten gelegt werden.

    In CoDeSys z.B. kann man mit AS die Kette malen und in jedem Schritt je nach Vorliebe und bedarf in den anderern Programmiersprachen den Inhalt dieses Schritts programmieren. Wir verwenden eine Schrittkette immer vom Typt PRG (Programm) also nur eine Instanz und alle komplexeren Vorgänge sind dann der Kette untergeordnet. Um das in Step7 zu realisieren müsste man sich wirklich was zurecht konstruieren. Sowas wie einen SCL FB der von einem "unabhängigen" Schrittketten FB die Schrittnummer bekommt und dann eben die Schrittkette doppelt Programmieren. Das wäre IMHO ein super GAU.

    Wenn man SCL wenigsten halbwegs gescheit im Onlinemodus betrachten könnte. Wie man das von anderen Programmierumgebungen gewöhnt ist. würde ich eurem Fall da zu tendieren die Module weiter rein in SCL zu programmieren mit eingebetteter Case-Schrittkette. Und lieber Energie darauf verwenden die Diagnoseinformationen nach außen (auch in die Visu) zu führen. Also Schrittnummer ist ja einfach aber die Weiterschaltbedingungen. Da würde mir zwar auch was einfallen aber dazu müsste man eine Liste von Handpflegen oder über de SCL Quelle extern generieren.
    If you open your Mind too much, your Brain will fall out.

  5. #15
    Registriert seit
    22.11.2005
    Ort
    kl.Odenwald
    Beiträge
    716
    Danke
    111
    Erhielt 85 Danke für 71 Beiträge

    Standard

    Zitat Zitat von derbenny Beitrag anzeigen
    So, wieder mal nen Tag an S7 rumgeklickt, dabei kamen so einige Frage auf auf SCL bezogen):

    1) Angenommen in einem FB1 wurde in den statischen Variablen eine Struktur definiert. Wie kann ich diese z.B. an FB2 übergeben, so dass ich von FB2 zumindest lesend darauf zugreifen kann?
    DB1.meineStruktur.meineVariable funktioniert nicht --> „Strukturierte Daten aus dem IO-Bereich des Instanz-DBs ‚Name’ sind nicht als Operanden im globalen DB-Zugriff erlaubt“

    2) Warum kann ich in einer Stuktur keine Multiinstanzen anlegen?
    Also z.B. sowas:
    VAR
    meineStruktur :STRUCT
    Variable1:BOOL;
    Zylinder1:FB_Zylinder;
    Zylinder2:FB_Zylinder;
    Zylinder3:FB_Zylinder;
    END_STRUCT

    Ausserhalb der Stuktur funktioniert es einwandfrei.

    3) Wie kann ich eine Instanz eines FB (also sowas wie gerade gezeigt, nur ausserhalb der Struktur) an einen anderen FB übergeben? VAR_IN_OUT bzw VAR_IN lässt diese Datentypen nicht zu. ANY hat nicht funktioniert. Können Pointer weiterhelfen?



    Es geht darum, aus einem FB heraus auf die Daten des aufrufenden FB zugreifen zu können. Möglichkeit 1 wäre gewesen, alle Variablen die ich brauche per VAR_IN oder VAR_IN_OUT rein zu holen. Fällt allerdings weg, das es über 40 Stück sind. Die nächste unschöne Möglichkeit wäre, direkt auf die Daten im Instanz-DB zuzugreifen. Da darin aber Strukturen sind, geht das nicht (s.o.).

    Das letzte was mir einfällt ist alle Variablen global anzulegen. Auch sehr unangenehm.

    Hat jemand bessere Ideen?
    Vielleicht funzt das:

    Lege einen UDT bzw. zwei UDT's an (global) in denen de Struktur der IN-OUT-Variablen gesammelt ist und verwende die in den beiden FB's (anstatt üre die Instanz zu gehen). dann definierstdu einmal die Variable im aufrufenden FBals statisch und im aufGErufenen FB als IN-OUT.

    hth
    Geändert von kiestumpe (22.08.2007 um 09:35 Uhr) Grund: Dreckfuhler
    "Das Leben ist viel zu kurz, um schlecht zu essen !"
    (Johann Lafer zur SWR3 Grillparty)
    Zitieren Zitieren ne Idee  

  6. #16
    Registriert seit
    16.08.2007
    Beiträge
    40
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von kiestumpe Beitrag anzeigen
    Vielleicht funzt das:

    Lege einen UDT bzw. zwei UDT's an (global) in denen de Struktur der IN-OUT-Variablen gesammelt ist und verwende die in den beiden FB's (anstatt üre die Instanz zu gehen). dann definierstdu einmal die Variable im aufrufenden FBals statisch und im aufGErufenen FB als IN-OUT.

    hth
    Würde bestimmt funktionieren, aber wie gesagt, die Anzahl der Module wird dann wieder das Problem.

  7. #17
    Registriert seit
    16.08.2007
    Beiträge
    40
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    Für mich klingt das ganze auch zu komplex.

    Wenn ich das richtig verstanden habe hattet ihr ursprünglich Programmteile in ST (oder was ähnlichem) in dem die Module und Stationen abliefen. Auch Schrittketten (als Case?) und nun wollt ihr den Schrtittekttenteil ausgliedern in Graph7. Was nun aber sehr viele Schnittstellenprobleme bereitet.
    Exakt, bisher alles in SCL Modulen, inkl Case-Schrittketten (die widerlich zu debuggen sind)

    Zitat Zitat von zotos Beitrag anzeigen
    Aber ich denke ab ein gewissen Komplexität der Aufgabe kommt man eben ohne höhere Programmiersprache nicht klar.
    Nein, das ist auch nicht das Ziel. SCL sollte die Basis sein, und einfache Teile die mit FUP übersichtlicher und schneller zu machen sind eben mit FUP. Und Schrittketten in Graph. Das wäre das Optimun. Leicht gesagt...aber schwer umzusetzen.

    Zitat Zitat von zotos Beitrag anzeigen
    Sowas wie einen SCL FB der von einem "unabhängigen" Schrittketten FB die Schrittnummer bekommt und dann eben die Schrittkette doppelt Programmieren. Das wäre IMHO ein super GAU.
    Richtig, das wär ein Schuss nach hinten.

    Zitat Zitat von zotos Beitrag anzeigen
    Wenn man SCL wenigsten halbwegs gescheit im Onlinemodus betrachten könnte. Wie man das von anderen Programmierumgebungen gewöhnt ist.
    Schön wärs..


    Werde das ganze mal ausdiskutieren. Aber Urlaubszeit --> dauert

  8. #18
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von derbenny Beitrag anzeigen
    Exakt, bisher alles in SCL Modulen, inkl Case-Schrittketten (die widerlich zu debuggen sind)
    ...
    Echt? Also ich nutze Case auch manchmal um Sequenzen darzustellen. Und finde das sehr Übersichtlich und vom Debugging her auch angenehm. Klar ist eine Visuelle Darstellung zugänglicher.
    If you open your Mind too much, your Brain will fall out.

Lesezeichen

Berechtigungen

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