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

Ergebnis 1 bis 3 von 3

Thema: Eine prinzipielle Frage zu SPS Programmen in ST

  1. #1
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es gibt, wenn man in ST programmiert 3 POU Typen, PROGRAM, FUNCTION_BLOCK, FUNCTION.

    PROGRAM ist:
    immer impizit instanziert,
    einmal nur vorhanden (Singleton)
    kann mit Parametern aufgerufen werden,
    kann Werte zurück geben,
    sollte eigentlich auf der obersten Ebene aufgerufen werden,
    ist aber aus anderen PROGRAM oder FUNCTION_BLOCK aufrufbar.

    FUNCTION_BLOCK ist:
    explizit zu instanzieren,
    beliebige Anzahl von Instanzen,
    kann als einzige POU mit VAR_IN_OUT aufgerufen werden,
    gibt direkt keine Werte zurück, VAR_OUT aber möglich,
    kann weitere andere (oder auch gleiche) FUNKTION_BLOCKs instanzieren,
    kann zusätzlich PROGRAM und FUNCTION aufrufen.

    FUNCTION ist:
    nie instanziert,
    kann beliebig oft und von überall aufgerufen werden,
    kann keine FUNCTION_BLOCK aufrufen, da die Instanzierung derselben nicht eindeutig möglich ist.

    Frage nun, darf man/sollte man es zulassen, dass eine FUNCTION ein ja impliziert instanziertes PROGRAM aufruft?

    Damit könnte man ja dann aus dem PROGRAM wiederum POU vom Typ FUNCTION_BLOCK instanzieren, die wären zwar auch Singletons jeweils ...
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Eine prinzipielle Frage zu SPS Programmen in ST  

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

    Standard

    Hab grad mal in den IEC-Standard reingeschaut, weil ich letztens auch schonmal auf die Idee gekommen bin ein "PROGRAM" für etwas anderes zu verwenden.

    Der Standard sagt unter anderem:
    Programs can only be instantiated within resources, as defined in 2.7.1, while function blocks
    can only be instantiated within programs or other function blocks.
    Eine Ressource ist z.B. ein Task.
    Demnach ist es nach Standard eigentlich nicht erlaubt das was bei Codesys möglich ist (aber sonst ist Codesys auch nicht voll nach Norm).
    Da in einem FUNCTION_BLOCK so gut wie alles möglich ist was auch in einem PROGRAM möglich ist, würde ich PROGRAM auch nur so verwenden wie vorgesehen. Wenn jemand fragt warum, kann man sich auf die Norm beziehen.

  3. #3
    Registriert seit
    13.10.2013
    Ort
    shertogenbosch niederlande
    Beiträge
    120
    Danke
    0
    Erhielt 8 Danke für 6 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ja das ist moglich aber den stack gibt overflow, wen das program dreht, weil es recursiv ist, oder man macht eine sprung, aber das ist bad practice.
    paul deelen
    shooter@home.nl
    +31736139136

Ähnliche Themen

  1. Mehrkanaliger mA Geber zur hardwarenahen Simulation von SPS Programmen
    Von kaimay im Forum Werbung und Produktneuheiten
    Antworten: 11
    Letzter Beitrag: 09.09.2013, 15:24
  2. Antworten: 5
    Letzter Beitrag: 19.01.2013, 15:28
  3. Antworten: 3
    Letzter Beitrag: 20.08.2011, 11:36
  4. Frage: benötige für eine LOGO eine Steuerung
    Von movie im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 15.08.2011, 14:16
  5. prinzipielle Anwedungsunterschiede Lichtschranken
    Von Anonymous im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 02.08.2005, 17:28

Lesezeichen

Berechtigungen

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