B&R Automation Studio - Programmstruktur in Tasks

Plutos

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Ich arbeite derzeit mit B&R Automation Studio an einem Projekt, dass insgesamt in ca. 40 Tasks für die verschiedenen Funktionalitäten strukturiert ist.
Das gesamte Projekt ist in ST programmiert und der Datenaustausch erfolgt global.
Ich finde mich ganz gut zurecht, diese Art der Strukturierung kenne ich jedoch z.B. von Siemens oder Codesys nicht.
Hat hier jemand Erfahrung mit einer Programmstruktur in Tasks?
Wie geht es euch damit?
Verwendet ihr auch Actions um die Funktionalität der Tasks weiter zu unterteilen?
Wie groß kann die Anzahl der der Tasks bei großen Projekten werden und findet man sich dann noch zurecht?
Verwendet ihr vllt. generell eine andere Programmstruktur?

Ich freue mich über jeden Input.
BG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das Automationstudio hat nichts mit Codesys zu tun…
Meint ihr Taskklassen, oder eine „Task“? Sozusagen ein gekapseltes Programm welches einer Taskklasse zugeordnet werden kann? Darin können Code/Fbs/Actions aufgerufen werden.
 
Wir haben unser Programm auch in viele kleine Tasks unterteilt und rufen in diesen Tasks die FB's auf. Das hat den Vorteil dass du Rechenzeit besser verteilen kannst. Die Bausteine für schnelle Synchronbewegungen liegen bei uns dann in der schnellsten Taskklasse mit 0.8 ms und Dinge die nicht so eine hohe Frequenz brauchen wie z.B. Pneumatikzylinder liegen in einer langsameren Taskklasse (3.2ms). Die Anzahl der Tasks bei B&R ist meines Wissens nicht beschränkt. Du musst halt sehen, dass die Zykluszeit eingehalten wird und du genügend Speicher für die Taskklasse reservieren kannst.

Der Nachteil ist, dass wenn Komponenten aus unterschiedlichen Taskklassen zusammenarbeiten du dir Methoden überlegen musst um Datenkonsistenz herzustellen. Die Zentrale Globale Datenhaltung ist Fluch und Segen zugleich. Man muss sehr genau überlegen, welche Daten müssen Global sein und welche werden nur Lokal benötigt. Andernfalls bekommst du ein unübersichtliches Datengrab das auch noch Performance kostet.

Actions verwenden wir nicht (mehr). Du kannst das Programm in einer Action nicht über die Zeilenüberwachung debuggen was sich bei unserer Komplexen State Machine als nicht Praktikabel erwiesen hat.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Unter AS 4.11 und AR B4.92 gehen 254 Tasks pro Taskklasse.

Bezüglich Programmaufbau und Struktur sind auch die Trainingsmodule

TM231 B&R Coding Guidelines

und

TM232 B&R Library Design Guidelines

interessant.

In den Guidelines steht „Beschränken Sie die Verwendung globaler Variablen“
 
Wie groß kann die Anzahl der der Tasks bei großen Projekten werden und findet man sich dann noch zurecht?
Verwendet ihr vllt. generell eine andere Programmstruktur?

Programmstruktur und Anzahl der Tasks ist nicht umbedingt von der Größe abhängig.
Tasks - so kenne ich es zumindest - sollten eher an Funktionalitäten hängen.
Also z.B. Regler, Achsen, evtl. Kommunikation.
Vielleicht zuerst schauen, was will ich im Task machen und wie sehen die Schnittstelle und die Abhängigkeiten zum "Rest" aus.
Zur logischen Uterteilung eines Programms / Anlage braucht man nicht unbedingt Tasks.
 
Danke für eure Beiträge,

zusammenfassend würde ich also bei dem Entwurf einer Anlagensoftware in B&R Automation Studio folgendermaßen vorgehen:

1) Eine erste Aufteilung der Anlagenkomponenten in Tasks (Programme). Diese Tasks teile ich dann einer Taskklasse, je nach gewünschter Zykluszeit zu.

2) Die einzelnen Tasks teile ich dann weiter in FB's auf bzw. stelle ich aus FB's zusammen.

3) Die Kommunikation zwischen den Tasks setze ich über globale, strukturierte Datentypen um, wobei hier bei der Kommunikation zwischen Tasks verschiedener Taskklassen Synchronisationsmechanismen einzusetzen sind.
 
Zurück
Oben