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

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

Thema: Rundtisch

  1. #1
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich habe hier einen Rundtisch fertig programmiert, aber manche Konstruktionen gefallen mir nicht. So werden mit jeder Positionsänderung 6 Prozesse gestartet, die jeweils mit einem FB implementiert wurden. Jeder dieser FBs hat einen Start-Eingang und einen Ready-Ausgang. Um zu testen, ob jeder dieser FBs fertig ist, muss ich für jeden FB eine Zeile schreiben.

    Geht es nicht auch anders, vielleicht in einer Schleifenkonstruktion?
    Zitieren Zitieren Rundtisch  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.794
    Danke
    398
    Erhielt 2.417 Danke für 2.013 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Geht es nicht auch anders, vielleicht in einer Schleifenkonstruktion?
    Klar ...
    Ist bei mir sehr ähnlich. Ich übergebe jedem Baustein einen eigenen Daten-Bereich aus einem DB. In diesem Datenbereich sind Info's wie "Ablauf gestartet", "Ablauf beendet", "TimeOut" uvm. hinterlegt.
    Da diese immer die gleiche Struktur haben werde ich das Ganze hintergher in einem Sammel-FB aus, dem ich aus Übergabe-Parameter lediglich die Anzahl der Station übergebe. Der DB ist bei mir auf die max. vorstellbare Anzahl von Stationen (bei mir 50) dimensioniert - entsprechend der FB ...

    Gruß
    LL

  3. #3
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Ich habe hier einen Rundtisch fertig programmiert, aber manche Konstruktionen gefallen mir nicht. So werden mit jeder Positionsänderung 6 Prozesse gestartet, die jeweils mit einem FB implementiert wurden. Jeder dieser FBs hat einen Start-Eingang und einen Ready-Ausgang. Um zu testen, ob jeder dieser FBs fertig ist, muss ich für jeden FB eine Zeile schreiben.

    Geht es nicht auch anders, vielleicht in einer Schleifenkonstruktion?
    Zum einen verstehe ich nicht , warum immer alles in einen FB sein muss?
    Andererseits sehe ich das wie Larry.
    Wo ist das Problem, im FB einen Sprung zu deklarieren ?
    Wenn die Station nach dem Takten eine Freigabe bekommt und nicht arbeiten soll, gibt es einen Sprung , der direkt ans Ende springt und sagt "
    Bearbeitung fertig".

    Du kannst natürlich vorher Global abfragen ob denn eine Station arbeiten soll, ist aber für die Fehlersuche und Analyse nicht so geeignet.
    Ich hab immer einen Baustein der den Tisch dreht, wenn alle Stationen "Fertig melden". Jede Station schaut für sich auf den Tisch, und bearbeitet oder setzt sofort das Signal "Station Ende"

  4. #4
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Das so etwas in einem FB liegen muss, liegt auf der Hand, weil so eine Prozessteuerung als Automat implementiert wird und das geht nur über FBs, es sei denn, man implementiert den Automaten mit globalen Variablen, welches nun überhaupt sehr problematisch wäre.

    Die Idee, dass die FBs sich selbst starten, ist besser als mein Ansatz. Beim nächsten mal, werde ich das so machen.

    Es fehlt ST einfach so etwas wie eine Objektorientierung. Da könnte man die Referenzen von FB einfach in einem Array speichern, wenn diese eine gemeinsame Basisklasse hätten.

  5. #5
    Registriert seit
    13.01.2007
    Beiträge
    304
    Danke
    35
    Erhielt 29 Danke für 25 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Es fehlt ST einfach so etwas wie eine Objektorientierung. Da könnte man die Referenzen von FB einfach in einem Array speichern, wenn diese eine gemeinsame Basisklasse hätten.
    Bei Codesys V3.0 gibt's das schon. Bei Beckhoff dauert's noch ein bisserl. (lt. Support)
    Ein "normaler" SPS-Programmierer wird sowas wie Objektorientierung bestimmt nicht vermissen, ist halt eher was für Hochsprachenfreaks. Ich bin zwar auch nur ein SPS-Programmierer, aber ich freu' mich schon darauf.

    LG

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Das so etwas in einem FB liegen muss, liegt auf der Hand, weil so eine Prozessteuerung als Automat implementiert wird und das geht nur über FBs, es sei denn, man implementiert den Automaten mit globalen Variablen, welches nun überhaupt sehr problematisch wäre.

    Die Idee, dass die FBs sich selbst starten, ist besser als mein Ansatz. Beim nächsten mal, werde ich das so machen.

    Es fehlt ST einfach so etwas wie eine Objektorientierung. Da könnte man die Referenzen von FB einfach in einem Array speichern, wenn diese eine gemeinsame Basisklasse hätten.
    Ich hab schon X Rundtische programmiert, aber irgendwie kann ich deinen Aussagen keinen logischen Inhalt abgewinnen. Schein so, als ob du eher aus der Uni-Programmiererecke kommst, oder? Niemand muß zwingend Automaten programmieren und niemand muß FB einsetzen und warum soll das mit FC unmöglich sein?
    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

  7. #7
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Ob du nun explizit so einen Automaten programmierst oder implizit: Es ist einer, sobald eine chronologische Folge von Schritten notwendig ist und dein Code funktioniert.

    Zu einem Automaten gehört immer ein Zustandsspeicher, z.B. binäre Merker oder eine Variable vom Typ Integer und ein Eintscheidungsnetzwerk (if then else) in welchen Zustand als nächstes verzweigt werden soll, abhängig von Zustand und Eingangssignalen.

    Das kann man mit globalen Variablen machen und das Entscheidungsnetzwerk für die Zustandswahl liegt in einer Funktion oder man kapselt das ganze und legt es in einen FB. Ich bevorzuge letzteres, damit ich die diversen Automaten getrennt voneinander testen kann und der Code ist leichter zu pflegen.

    Siehe auch
    > http://de.wikipedia.org/wiki/Endlicher_Automat

    Du magst das als theoretisch betrachten, für mich ist es nützlich.

  8. #8
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Zitat Zitat von MarkusP Beitrag anzeigen
    Ein "normaler" SPS-Programmierer wird sowas wie Objektorientierung bestimmt nicht vermissen, ist halt eher was für Hochsprachenfreaks. Ich bin zwar auch nur ein SPS-Programmierer, aber ich freu' mich schon darauf.

    LG

    Das glaube ich nicht. Wenn ersteinmal der Vorteil erkannt wird, dann nutzt es jeder SPS-Programmierer (Es sei denn er bezahlt extra wie bei Siemens mit SCL )

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.263
    Danke
    537
    Erhielt 2.708 Danke für 1.957 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Das glaube ich nicht. Wenn ersteinmal der Vorteil erkannt wird, dann nutzt es jeder SPS-Programmierer (Es sei denn er bezahlt extra wie bei Siemens mit SCL )
    Das mag sein, das Problem wird ganz sicher sein, daß noch weniger SPS-Programmierer wirklich wissen, was in ihrem Programm eigentlich genau vor sich geht. Da hilft dann auch nicht, daß man mit Fachbegriffen nur so um sich wirft, nichts für ungut. Ich "freu" mich schon auf die Montageeinsätze, um fremde Programme zum laufen zu bringen, bzw. komplett zu eliminieren.
    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

  10. #10
    drfunfrock ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Ralle Beitrag anzeigen
    Das mag sein, das Problem wird ganz sicher sein, daß noch weniger SPS-Programmierer wirklich wissen, was in ihrem Programm eigentlich genau vor sich geht. Da hilft dann auch nicht, daß man mit Fachbegriffen nur so um sich wirft, nichts für ungut. Ich "freu" mich schon auf die Montageeinsätze, um fremde Programme zum laufen zu bringen, bzw. komplett zu eliminieren.
    Ich glaube den Streit um Fachbegriffe hatten wir schon einmal. Ich lasse daher lieber davon ab, weil wir beide verlieren würden.

    Du hast natürlich recht, dass so mancher nicht weiss, wie er es zum laufen bekommen hat, was aber kein Grund ist, den Missbrauch von etwas Gutem anzuklagen und es selbst nicht zu verwenden. Und wenn du Einnahmen hast, weil einer Mist baute, ist das ja so schlecht nicht. Ich stelle mir z.B. einen FB vor, der das Starten eines Prozesses von einer Basisklasse erbte, so dass ich bei Änderungen in diesem Startcode nur noch einmal etwas zu ändern habe, anstatt in allen FBs die so gestartet werden. Jedenfalls hätte ich manches mit einer Objektorientierung eleganter und einfacher geschrieben.

Ähnliche Themen

  1. Rundtisch mit S7 200 und einem EM253
    Von don_g im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 12.11.2008, 13:13

Lesezeichen

Berechtigungen

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