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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 14

Thema: Wann benutze ich Methoden, bzw. Aktionen und wann nicht?

  1. #1
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ein Beispiel was man immer sieht ist bspw. Die Methode start(), mit der ein Motor gestartet wird.
    Aber sagen wir mal wir haben einen visubutton, welcher diesen starten soll und ich eine boolsche Variable Abfrage und wenn diese True ist die Methode Aufrufe. Kann ich dann nicht genausogut einen boolschen Eingang benutzen, der den Motor startet?

    Also wozu benötige ich da ne Methode? Mit ist nur der generelle Vorteil noch nicht so klar, denn ich kann ja doch genausogut einen Programmteil im FB überspringen, wenn dieser nicht ausgeführt werden soll.

    Ps. Wenn jetzt mein Baustein nur aus eingängen Aktionen und Methoden besteht. Muss ich diesen dann überhaupt noch aufrufen? Oder genügt es dann die Eingänge zuzuweisen und die Aktionen aufzurufen?
    Zitieren Zitieren Wann benutze ich Methoden, bzw. Aktionen und wann nicht?  

  2. #2
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Oder ist es vielleicht sinnvoll nur noch Methoden einzusetzen und sonst hat keinen Code mehr direkt im Baustein zu haben? Wie es bei Visual Studio der fall ist?

    Ein Beispiel wäre eine Ventilansteuerung für vor zurück.
    Wo ich also vor zurück als Button in der Visu habe und vor zurück aus der Automatik ansteuern kann.
    Dort würde ich einfach die Buttons Abfragen und bei einer Flanke bspw.
    Ventil.vor(); aufrufen und in der Automatik Rufe ich im entsprechenden Schritt auch
    Ventil.vor(); auf. In der Methode selbst setze ich je nach Freigabe die ausgangsbits.
    Wäre das so ok?
    Zitieren Zitieren Nur noch Methoden ?  

  3. #3
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Kann es denn nicht zu einem Zeitkonflikt kommen?
    Also in dem Sinne, dass ich bspw. Eine Freigabe habe, die in einem Programm gebildet wird.
    Wenn diese nun im letzten Zyklus True war. Aufgrund der äußeren Bedingungen nun False zugewiesen bekommen würde, ich aber vor der Zuweisung eine Methode Aufrufe. --> Methode wird mit Freigabe = True ausgeführt. Obwohl diese ja in diesem Zyklus False gesetzt wird.

    Wenn ich eine eingangsvariable setzen würde, die bausteinintern das ausführt, was die Methode macht, würde das ja nicht passieren, da dann ja die "Methode" erst mit dem Aufruf des Bausteins ausgeführt werden würde. Zu diesem Zeitpunkt wäre ja der Eingang Freigabe schon mit False belegt.

    Oder?
    Zitieren Zitieren Zeitkonflikt  

  4. #4
    Registriert seit
    25.11.2010
    Ort
    OWL
    Beiträge
    757
    Danke
    27
    Erhielt 166 Danke für 144 Beiträge

    Standard

    Zitat Zitat von Bensen83 Beitrag anzeigen
    Oder ist es vielleicht sinnvoll nur noch Methoden einzusetzen und sonst hat keinen Code mehr direkt im Baustein zu haben? Wie es bei Visual Studio der fall ist?
    Nein, das halte ich nicht für sinnvoll. Die meisten FB's erfordern einen Codeteil, der unbedingt zyklisch aufgerufen werden muss. Im Falle Deines Ventil-FB's wäre da z. B. die Freigabe, die ständig abgefragt werden muss, um die Ventilausgänge ggfs. auszuschalten. In den Aktionen würde ich nur die Steuerbefehle setzen. Verknüpfen der Steuerbefehle mit Freigaben und Ausgabe auf die Ausgänge, aber auch Rückmeldung der Endlagen dann im zyklisch aufgerufenen Hauptcode des FB's.

  5. #5
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Also ich hatte es Bspw. So vor.

    Wenn in der Visu ein Button betätigt wird, soll das Ventil vor fahren (wenn die Freigabe vor erteilt wurde). Ich will aber auch über die Automatik das Ventzil ansteuern. Das könnte ich direkt über eine Aktion machen.

    Jetzt kommt es. Ich habe einen Schritt, wo mehrere Ventile losfahren sollen, diese sind aber gegeneinander Verriegelt. Da ich nun nicht immer die Freigaben abfragen will werden alle ansteuerungen gleichzeitig gesetzt.
    Wenn die Freigabe eines Ventils erreicht wird, so fährt es los. allerdings weis ich nicht wann das genau passiert. deswegen müsste ich die methoden dauerhaft aufrufen, oder?
    Wenn ich nun allerdings dafür eine Boolsche Variable verwenden würde könnte ich diese auch zusätzlich noch dafür verwenden eine zu lange anstahende Verriegelung zu erkennen.

    Was meinst du dazu? Istes hier überhaupt sinnvoll von auißen Methoden oder aktionen zu verwenden? Bin irgendwie durcheinander
    Zitieren Zitieren Also wie?  

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.797
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard

    Hallo Benson,
    ganz gleich, welches Programmier-Mediums du dich befleissigst ... ich gewinne mehr und mehr den Eindruck, dass ich mit deinen Programmen nicht unbedingt etwas zu tun bekommen möchte.

    So wie ich es mir über die letzte Zeit so erlesen habe beschäftigst du dich mit TwinCat 3.
    Du hast aber keine wirkliche Aufgabenstellung und recherchierst ein bißchen ins Blaue hinein.
    Du hattest bsiher mit OOP etc. nicht wirklich etwas zu tun.

    Stimmen meine Überlegungen bis hierhin ?
    Was planst du wirklich zu tun ?
    Wie sehen die Maschinen (und deren Aggregate) aus, für die das Ganze (vielleicht später einmal) sein soll ...?

    Gruß
    Larry

  7. #7
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Hallo Benson,
    ganz gleich, welches Programmier-Mediums du dich befleissigst ... ich gewinne mehr und mehr den Eindruck, dass ich mit deinen Programmen nicht unbedingt etwas zu tun bekommen möchte.
    Vor allem wenn man versucht ihn von dem Schwachsinn abzubringen mit aller Gewalt den STEP7 BOCKMOVE mit Absolutadressen/-längen bei CodeSys nachzubilden anstatt Strukturen zu kopieren.

    @Bensen

    Tut mir Leid Herr Bensen, aber du fängst alles irgendwie an ohne am Ball zu bleiben und eröffnest jeden Tag ein neues Thema.

    Wenn du dein Wissen erweitern möchtest, dann gehe bitte etwas strukturierter als bisher vor.

    Speziell Post #5 zeigt mir, das du wirklich keinen Plan zu haben scheinst, wie man eine Maschine oder Anlage programmiert.

    Bin irgendwie durcheinander
    Du bist deswegen durcheinander, weil die schlicht die Grundlagen fehlen. Deshalb gehen auch die Begriffe wild durcheinander.

    Daher würde ich dir dieses Werk - etwas älter aber gut - empfehlen: http://www.amazon.de/dp/3528445807

    Frank
    Grüße Frank

  8. #8
    Bensen83 ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    29.08.2009
    Beiträge
    776
    Danke
    25
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Sorry leute dass ich etwas durcheinander schreibe und viele Fragen eröffne, aber das liegt daran das ich gerade neu in Codesys binund vieles wissen mag.
    Ich will auch nicht alles altbacken machen. Finde es ja im gegenteil sehr gut Strukturen zu kopüieren. So anders als Bei Siemens ist es aber nicht, die können das ja auch in ST.

    Ich wollte damals lediglich ne alternative um eben mit einem Baustein instanziert mehrere verschiedenme Strukturen kopiern zu können. naja egal. Anderes Thema.


    Allerdings hin zu gehen und zu bahaupten, dass ich keine Ahnung vom Programmieren hätte usw halte ich für sehr frech.
    Ich habe schon zig Maschinen und Anlagen Programmiert. Hin von einer kleinen 3 Achsen Maschine ebis hion zu kompletten Handlings mit 20 10 Achs Anlagen und 20 Robotern. Also denke ich schon, dass ich Ahnung habe.
    Auch wenn es hier nicht so schein arbeite ich in meinen Programmen schon sehr strukturiert und mt bedacht zur leichten Wiederverständlichkeit.

    Ich frage eben deswegen so viel, weil ich jetzt ein Konzept für mich entwickeln möchte in Codesys zu programmieren. Also bitte nicht gleich verurteilen.

    Wollte halt auch hier hauptsächlich wissen wann ich Methoden usw benutze und wann nicht.
    Zitieren Zitieren Ok sorry  

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.797
    Danke
    398
    Erhielt 2.418 Danke für 2.014 Beiträge

    Standard

    Das ist alles bis jetzt auch noch nicht schlimm ...
    Schlimm ist aber das "von einem Topf in den Anderen springen".
    Ich selber habe mich mit TwinCat3 noch nicht beschäftigt, werde es wohl aber im nächsten Jahr tun.
    Ich habe aber, denke ich, einen ganz guten Bezug und Verständnis zu OOP - hier Visual Studio (in dem das TC3 ja auch läuft) und dabei vor Allem VB.

    Wenn du dich selber mit OOP schon beschäftigt hast dann sollten dir die Begriffe "Klassen, Methoden, Properties etc." etwas sagen und du solltest zumindestens eine Vorstellung von deren Gebrauch haben. Wie sich das in TC3 wiederfinden läßt muss man dann vielleicht für sich selbst herausfinden.

    Das Ding, an dem ich mich gestossen habe (und anscheinend ja auch der Frank), ist dass du die Elementar-Dinge einem nach dem Anderen hier reinhaust und das (dem Anschein nach) nur des Reinhauens willen. Wenn ich mit etwas anfange und mich damit beschäftigen möchte dann fange ich zunächst erstmal damit an, das umzusetzen, was ich schon verstehe. Dann versuche ich mich an das Mehr des Neuen heranzutasten und das so nach und nach zu verstehen. Bestimmt stelle ich dann auch Fragen - aber immer zu der einen Sache (die mich gerade bewegt) aber nicht quer-Feld-Beet durch das ganze System. Da würde ich auf jeden Fall Schwierigkeiten haben, dass alles zu verarbeiten und zu verstehen.
    Deshalb mein Vorschlag : versuch es doch mal mit "der Reihe nach" und "Schritt für Schritt"

    Und ... das ist jetzt nicht Böse gemeint ... aber schon Kritik ...

    Gruß
    Larry

  10. #10
    Registriert seit
    25.06.2007
    Ort
    Dresden
    Beiträge
    3.930
    Danke
    465
    Erhielt 878 Danke für 634 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Bensen83 Beitrag anzeigen
    Allerdings hin zu gehen und zu behaupten, dass ich keine Ahnung vom Programmieren hätte usw halte ich für sehr frech.
    Ich habe schon zig Maschinen und Anlagen Programmiert. Hin von einer kleinen 3 Achsen Maschine ebis hion zu kompletten Handlings mit 20 10 Achs Anlagen und 20 Robotern. Also denke ich schon, dass ich Ahnung habe.
    Auch wenn es hier nicht so schein arbeite ich in meinen Programmen schon sehr strukturiert und mt bedacht zur leichten Wiederverständlichkeit.

    Ich frage eben deswegen so viel, weil ich jetzt ein Konzept für mich entwickeln möchte in Codesys zu programmieren. Also bitte nicht gleich verurteilen.
    Meine - zugegebenermaßen sehr akzentuierte - Einschätzung entstand aus folgenden Sätzen:


    Zitat Zitat von Bensen83 Beitrag anzeigen
    Jetzt kommt es. Ich habe einen Schritt, wo mehrere Ventile losfahren sollen, diese sind aber gegeneinander Verriegelt. Da ich nun nicht immer die Freigaben abfragen will werden alle ansteuerungen gleichzeitig gesetzt.
    Wenn die Freigabe eines Ventils erreicht wird, so fährt es los. allerdings weis ich nicht wann das genau passiert. deswegen müsste ich die methoden dauerhaft aufrufen, oder?
    Wenn ich nun allerdings dafür eine Boolsche Variable verwenden würde könnte ich diese auch zusätzlich noch dafür verwenden eine zu lange anstahende Verriegelung zu erkennen.

    Was meinst du dazu? Istes hier überhaupt sinnvoll von auißen Methoden oder aktionen zu verwenden? Bin irgendwie durcheinander
    Tut mir leid, wenn ich das so sage, aber m.E. ist quasi gleichzeitige Starten von Ventilen, die ihrerseits
    über ihre Interlocks ein Art eigene Schrittsequenz erzeugen wirklich schlimmer Pfusch.

    Wo bitte hast du das gelernt.

    Aktiv gegen logische Software-Verriegelungen fährt man nur maximal im Handbetrieb und auch nur der, der die konkrete Verriegelung nicht kennt.

    In der Automatik sollte ein Ansteuern eines Aktors gegen eine logische (und damit oftmals mechanische)
    Verriegelung zu einer Fehlermeldung führen, denn dann ist - bei den Schrittketten die ich kenne - Müll programmiert worden.

    Egal wie viele Maschinen du programmiert haben magst, aber diese Denkweise an sich ist schon vom Ansatz her verkehrt.

    frank
    Grüße Frank

Ähnliche Themen

  1. Wann FC und wann FB?
    Von Mephisto im Forum Simatic
    Antworten: 22
    Letzter Beitrag: 31.10.2011, 15:12
  2. Wann NH-Sicherung und wann DIAZED/NEOZED
    Von Snake787 im Forum Schaltschrankbau
    Antworten: 10
    Letzter Beitrag: 01.04.2011, 18:14
  3. Wann Profinet und wann Profibus
    Von Johannes Ashur im Forum Feldbusse
    Antworten: 7
    Letzter Beitrag: 13.07.2007, 08:33
  4. Antworten: 3
    Letzter Beitrag: 01.09.2006, 12:09
  5. Antworten: 4
    Letzter Beitrag: 25.04.2006, 20:28

Lesezeichen

Berechtigungen

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