Sawascwoolf
Level-1
- Beiträge
- 23
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo Forum,
ich soll für meine Studienarbeit eine Fischertechnik Anlage mit zwei Ansätzen programmieren:
Während ich in Stateflow eine gute Struktur durch Hierarchien erzeugen konnte muss ich dies für den Petrinetz Ansatz selbst in Step 7 realisieren oder einen enormen Aufwand in Kauf nehmen.
Die bestehende Steuerung besteht aus 5 Teilen:
Hierbei setzt der "Mode" Baustein (bei betätigen eines Stop-Tasters) über einen Merker "stop_mode" die Anlage in einen Notaus-Zustand. Bei wiederanlaufen startet die Anlage komplett von vorne, also es ist nicht notwendig irgendwelche Informationen über den Zustand vor dem Stoppen zu speichern.
Aktuell ist in den 4 anderen Bausteinen aus jedem Platz eine Transition definiert, welche in einen internen Stop-Platz führt. Dies ist sehr aufwändig und auch extrem Fehleranfällig, was für einen Notaus wirklich unpraktikabel ist.
Daher habe ich eine etwas andere Vorgehensweise angedacht:
Hier stellt sich mir jetzt nur die Frage wie ich die Instanz-DBs 2-5 wieder auf ihre Startwerte zurücksetzen kann.
VG
Sawascwoolf
ich soll für meine Studienarbeit eine Fischertechnik Anlage mit zwei Ansätzen programmieren:
- SIPN (sonderform von Petrinetzen)
- Stateflow (automatenbasiertes Tool von Matlab)
Während ich in Stateflow eine gute Struktur durch Hierarchien erzeugen konnte muss ich dies für den Petrinetz Ansatz selbst in Step 7 realisieren oder einen enormen Aufwand in Kauf nehmen.
Die bestehende Steuerung besteht aus 5 Teilen:
Code:
CALL "Mode" , DB1
CALL "Feeder" , DB2
CALL "Drill" , DB3
CALL "VMill" , DB4
CALL "HMill" , DB5
Hierbei setzt der "Mode" Baustein (bei betätigen eines Stop-Tasters) über einen Merker "stop_mode" die Anlage in einen Notaus-Zustand. Bei wiederanlaufen startet die Anlage komplett von vorne, also es ist nicht notwendig irgendwelche Informationen über den Zustand vor dem Stoppen zu speichern.
Aktuell ist in den 4 anderen Bausteinen aus jedem Platz eine Transition definiert, welche in einen internen Stop-Platz führt. Dies ist sehr aufwändig und auch extrem Fehleranfällig, was für einen Notaus wirklich unpraktikabel ist.
Daher habe ich eine etwas andere Vorgehensweise angedacht:
Code:
CALL "Mode" , DB1
AN "stop_mode";
CALL "Feeder" , DB2
CALL "Drill" , DB3
CALL "VMill" , DB4
CALL "HMill" , DB5
VG
Sawascwoolf