Mehrere Programmtypen zuordnen (= neue Instanzen erstellen)

Bedingung für die Zuordnung von mehreren Programmtypen: Sie haben bereits den Code oder die Logik für die Programme erstellt/gespeichert (z.B. den ST-Code). Die →Programmtypen haben eindeutige Namen und werden mit dem Symbol images/download/thumbnails/409862636/Program-version-1-modificationdate-1531214393443-api-v2.png in einer der Sichten mit Projekten und Ressourcen und Aktionen dafür angezeigt.

Standardmäßig ist im SPS-Objekt bereits ein Programmtyp zugeordnet, nachdem Sie ein Projekt erstellt haben. logi.CAD 3 bietet die Möglichkeit, mehrere Programmtypen zuzuordnen. Dabei werden neue Programm→instanzen erstellt.

So erstellen Sie eine neue Programminstanz im Applikationsnavigator:

  1. Blenden Sie den Applikationsnavigator ein.

  2. Zeigen Sie auf den Programmtyp, der unterhalb des Ordners Projektbausteine (oder einem weiteren Unterordner) angezeigt wird.

  3. Halten Sie die primäre Maustaste gedrückt und ziehen Sie den Programmtyp auf den →Task, der mit dem Symbol images/download/thumbnails/443056981/TaskPLC-version-1-modificationdate-1584622010056-api-v22.png unterhalb der Konfiguration und der Ressource im Applikationsnavigator angezeigt wird.

  4. Lassen Sie die primäre Maustaste los.
    Ergebnis: Im Applikationsnavigator wird eine neue Programminstanz mit dem Symbol images/download/thumbnails/414778740/ProgInstance-version-1-modificationdate-1534256819027-api-v22.png und dem Namen des Programmtyps unterhalb des Tasks angezeigt. Das SPS-Objekt wurde um die entsprechenden Zeilen für Programminstanz und Programmtyp erweitert (siehe nachfolgende Beschreibung und Beispiel für Details).

So erstellen Sie neue Programminstanzen im SPS-Objekt:

  1. Öffnen Sie das SPS-Objekt.

  2. Suchen Sie im geöffneten Editor für das SPS-Objekt die bereits vorhandenen Zeilen mit dem Namen der Programminstanz und des Programmtyps.

    Beispiel für Zeilen mit Programminstanz und Programmtyp
    PROGRAM TemplateInstance WITH DefaultTask :
        MyFirstProgram;
  3. Kopieren Sie diese Zeilen in die Zwischenablage und fügen Sie diese direkt unterhalb der Zeilen mit Programminstanz und Programmtyp ein – so oft, wie Sie die Zeilen benötigen.

  4. Korrigieren Sie alle eingefügten Zeilen.

    Beispiel für Zeilen mit Programminstanz und Programmtyp (nach der Korrektur)
    PROGRAM TemplateInstance WITH DefaultTask :
        MyFirstProgram;
    PROGRAM Instance_2 WITH FastTask:
    TestProgram_2; 
    PROGRAM Instance_3 WITH SlowTask :
    Counter;  

    Erforderliche Korrekturen in den kopierten Zeilen:

    1. Ersetzen Sie den Namen der bereits vorhandenen Programminstanz (z.B. TemplateInstance) durch einen neuen Namen (z.B. Instance_2).

    Optionale Korrekturen in den kopierten Zeilen:

    1. Ersetzen Sie den Namen des Programmtyps (z.B. MyFirstProgram) durch den Namen eines anderen Programmtyps (z.B. TestProgram_2).
      Die Zuordnung im SPS-Objekt geht schneller, wenn Sie die Inhaltshilfe verwenden

    2. Ersetzen Sie den Namen des Tasks (z.B. DefaultTask) durch den Namen eines anderen Tasks (z.B. SlowTask). Details: siehe "Mehrere Tasks im SPS-Objekt deklarieren".

  5. Speichern Sie das SPS-Objekt: Menü DateiSpeichern

Wenn Sie die Anwendung auf die SPS laden, werden die zugeordneten Programmtypen auf der SPS entsprechend der Priorität des Tasks ausgeführt. Falls mehrere Programme dem gleichen Task zugeordnet sind, werden diese Programme auf der SPS nacheinander ausgeführt – und zwar in der gleichen Reihenfolge, wie Sie die Programminstanzen im SPS-Objekt deklariert haben. Beachten Sie, dass Ihr eingesetztes →Zielsystem ebenfalls die Abarbeitung von →POE in der Anwendung beeinflussen kann (siehe "Zielsystem-spezifische Eigenschaften und Einschränkungen").

Einschränkungen

Beachten Sie Folgendes bei der Ausführung von mehreren Programmtypen – im Unterschied zur →IEC-Norm:

  • Sie können in logi.CAD 3 nicht bestimmen, ob die Ausführung aller POE beendet wird, bevor sie erneut zur Ausführung aufgerufen werden.

  • Sie werden in logi.CAD 3 nicht benachrichtigt, falls ein Task wegen überhöhter Ressourcen-Anforderungen oder anderer Task-Aufrufkonflikte nicht aufgerufen wird oder die Zeitfrist für die Ausführung nicht einhält.