Anfänger sucht Hilfestellung

Elektriker78

Member
Beiträge
5
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo liebe Fachleute,

ich mache eine SPS Weiterbildung und muß eine Hausarbeit lösen. Die Ganze Sache mache ich in Ablaufsprache. Das Programm selbst soll in mehrere Bausteine untergliedert werden.
Ich habe das ganze Wochenende versucht rauszufinden wie ich nun ein Hauptprogramm mache das jewiels die anderen Unterbausteine aufruft. Mittlerweile habe ich 5 Unterbausteine programmiert aber ich möchte nun einen davon aufrufen , ihm den Wert einer Variable übergeben, den Baustein seine Arbeit machen lassen und am Ende wieder ins Hauptprogramm springen.
Wie organisiere ich das nun? Muß das Hauptprogramm immer in diesem PLC_PRG stehen?
Danke für eure Hilfe.
Gruß der Elektriker
 

Mobi

Well-known member
Beiträge
1.368
Punkte Reaktionen
135
Das PLC_PRG ist dein Hauptprogramm. Dort rufst du deine Funktionsbausteine auf bzw. Unterprogramme.
Du kannst auch VAR_INPUT als Eingänge ihm geben um Werte zu übergeben.
 

KingHelmer

Well-known member
Beiträge
1.064
Punkte Reaktionen
137
Zuviel Werbung?
->Hier kostenlos registrieren
Hi Elektriker,

das PLC_PRG ist das Hauptprogramm, in welchem du beispielsweise andere Programme PRG, Funktionsbausteine FB, oder auch Funktionen aufrufen kannst.

Soll dieses Ereignis einmalig sein und getriggert werden, oder frägst du einfach nur, wie du Werte an deine Bausteine übergeben kannst?

Letzteres machst du über die VAR-Input deines "Unterprogramms". Hier deklarierst du lokale Varibalen als VAR_Input. Diese Variablen werden verarbeitet und eventuell gibst du auch eine Variable zurück, diese sollte dann als VAR_Output deklariert werden.

Rufst du das "Unterprogramm" nun, wo auch immer (z.B. im PLC_PRG) auf, dann musst du alle Eingangsvariablen "ausfüllen" bzw. zuweisen.

Ich persönlich rufe Bausteine im PLC_PRG immer als FUP auf, da man hier einfach optisch anschaulicher die Variablen zuweisen kann und es auch für "Softwarefremde" verständlicher ausschaut.

Jedem das seine.

Hab ich dir helfen können?

Grüße,

Florian
 
OP
E

Elektriker78

Member
Beiträge
5
Punkte Reaktionen
0
Hi Florian,

vielen Dank erst mal. Was mir nun nicht klar ist in welcher Reihenfolge ruft PLC_PRG die Blöcke auf. So wie sie der Reiehnfolge nach eingetragen werden, oder werden alle parallel abgearbeitet oder jedesmal wenn sich eine Variable ändert?
Ich muß eine Art Verteilerstation programmieren, abhängig von einem eingelesenen Barcode wird mittels Schiebezylinder das Paket auf ein bestimmtes Förderband verschoben. Ich muß einen baustein für das Förderband schreiben, eines für diesen Verschiebearm, dann noch welche für die Förderbänder der einzelnen Stationen. Und nun muß halt das Hauptprogramm nach Erkennen des Codes den Baustein Verschieben aufrufen und ihm den eingelesenen Barcode(einzelner Buchstabe) übergeben.
In C wüsste ich ja wie man eine Funktion aufruft aber hier :confused:
Danke
Sven
 

KingHelmer

Well-known member
Beiträge
1.064
Punkte Reaktionen
137
Hi Elektriker,

so etwas macht man normalerweise mit einer sog. Schrittkette.
Man legt einzelne Schritte des Programmes fest.

Diese Schritte werden durch bestimmte Bedingungen aufgerufen.
z.B. wäre der erste Schritt ein Initialschritt (ausgangsstellung).
Schritt 2 - bahn läuft los
Schritt 3 - Bahn hält an Scanposition an
Schritt 4 - Scanner nimmt code auf
Schritt 5 - Band Verteilerarm verschiebt Packstück
usw. usw.

Lege das vorher fest mit Schritten, was in diesen genau passieren soll und Bedingungen für die Ausführungen jeden Schrittes.


*Ein Beispiel wäre ein Baustein, der die Schritt-Aktionen enthält, ein Baustein, welcher die Bedingungen enthält und die Schrittnummer ausgibt und ein Baustein für eventuellen automatik/handbetrieb

Zur Programmabarbeitung:

3 Schritte:

- 1. Eingänge einlesen
- 2. Programm abarbeiten (von "oben" nach "unten")
- 3. Ausgänge setzen

Grüße,

Florian
 
Zuletzt bearbeitet:
OP
E

Elektriker78

Member
Beiträge
5
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hi Florian,

vielen Dank. Mein Programm läuft bis auf :). Ich hab mehrere Teilprogramme in Ablaufsprache, ich schaffe Sprünge innerhalb des Ablaufprogrammes, aber wie springe ich
auf einen Schritt in einem anderen Programmbaustein. Ich habe es schon mit Nameprogrammbaustein.Schrittname versucht aber das war wohl nix.
Was muß ich tun um nach einem bestimmten Schritt in der Ablaufkette ein Unterbaustein aufzurufen diesen zu durchlaufen und wieder zurückzuspringen.
Danke
Gruß
Sven
 
Oben