# Umschaltung zwischen Hand- Automatikbetrieb



## pinolino (29 Juni 2011)

Hallo ihr,

  ich hänge hier grad etwas… und zwar suche ich nach einer einfachen Möglichkeit, um zwischen Hand- u. Automatikbetrieb umschalten zu können.  

  Das Problem dabei ist, dass vor einer Umschaltung sichergestellt sein muss, dass der Aus-Taster    * gedrückt* wurde.

  Hatte jetzt die Idee im OB1 einen Hilfsmerker "M_Betriebsart" zu programmieren, der über den Aus-Taster gesetzt wird (siehe Bild).    

  Aber irgendwie muss ich diesen Merker ja auch wieder rücksetzen, um beispielsweise den Handbetrieb anwählen zu können.  

  Frage: Wie könnte ich das realisieren?    

  Vielen Dank    
  pinolino


----------



## Boxy (29 Juni 2011)

Na da würde es doch viele Ideen geben.
Du könntest dieses Merker mit der Abwahl da BA oder der Anwahl der neuen BA ablöschen ...


----------



## pinolino (29 Juni 2011)

Hallo Boxy,

danke, an so etwas hatte ich auch schon gedacht - aber ich habe momentan noch das Problem das zu programmieren...

FC1 = Automatikbetrieb
FC2 = Handbetrieb

Ich kann ja nicht sagen, 

UN FC1
R "M_Betriebsart"

pinolino


----------



## Gerhard K (29 Juni 2011)

Du könntest mit einer Pos_Flanke der jeweiligen Betriebsartanwahl den Merker der über den Austaster gesetzt wurde rücksetzen.
LG


----------



## vierlagig (29 Juni 2011)

pinolino schrieb:


> Hallo Boxy,
> 
> danke, an so etwas hatte ich auch schon gedacht - aber ich habe momentan noch das Problem das zu programmieren...
> 
> ...





> SAVE   Sichere VKE im BIE-Bit



...





> Sinnvoll ist der Einsatz der Operation SAVE vor Verlassen eines Baustein, da damit der ENO-Ausgang (=BIE-Bit) auf den Wert des VKE-Bits gesetzt wird und Sie daran eine Fehlerbehandlung des Bausteins anschließen können.



sieht dann nicht ganz so aus, wie du es dargestellt hast, sondern so:


```
*
      CALL  FC   444
       wIn :=...
       iOut:=...
      UN     BIE
      R     "M_Betriebsart"
```


----------



## pinolino (29 Juni 2011)

Danke Gerhard,

aber ich brauche doch am EN-Eingang der jeweiligen Betriebsart die Aufrufbedingung so lange, bis eine andere BA angewählt wird. 

Insofern kann ja der Merker "M_Betriebsart" erst zurückgesetzt werden, wenn z.B. der Automatikbetrieb abgewählt wird...

Nur, wie setze ich für diesen Fall den Merker zurück?


@vierlagig: Vielen Dank, aber das geht doch nicht mit der S7-1200, oder?


----------



## vierlagig (29 Juni 2011)

pinolino schrieb:


> @vierlagig: Vielen Dank, aber das geht doch nicht mit der S7-1200, oder?



stand das irgendwo? 

zumindest haben deine bausteine einen ENO ... mach dich schlau, wie du den beschreibst... (höchstwahrscheinlich mit SAVE)


----------



## pinolino (29 Juni 2011)

Sorry vierlagig, nein das stand niergends... dachte man sieht es an dem Anhang.


Ja versuche da etwas rauszubekommen.


----------



## vierlagig (29 Juni 2011)

pinolino schrieb:


> Ja versuche da etwas rauszubekommen.



SAVE gibts auch in KOT und FUCK


----------



## pinolino (29 Juni 2011)

Hm, habe da noch ein Problem wo ich den Befehl SAVE zu programmieren habe.

Normalerweise muss doch der Befehl SAVE am Ende eines Bausteins programmiert werden, um das BIE-Bit auf den Signalzustand des aktuellen VKE des Bausteins zu setzen.

Kann ich dann den Befehl SAVE einfach an den ENO-Ausgang der FC1 setzen?

Danke...


----------



## vierlagig (29 Juni 2011)

pinolino schrieb:


> Hm, habe da noch ein Problem wo ich den Befehl SAVE zu programmieren habe.
> 
> Normalerweise muss doch der Befehl SAVE am Ende eines Bausteins programmiert werden, um das BIE-Bit auf den Signalzustand des aktuellen VKE des Bausteins zu setzen.
> 
> ...



save wird im baustein programmiert und je nachdem ob aktiv oder inaktive kannst du mit set oder clr das vke vorgeben
die weiterverarbeitung erfolgt dann außerhalb am ENO


----------



## pinolino (29 Juni 2011)

Ok, vielen Dank vierlagig.

D.h. also, dass ich in der FC1 im *letzten* Netzwerk einfach eine FUP-Box mit dem Befehl SAVE einfüge, richtig?

Dann muss ich mir noch überlegen, wie ich 


```
UN BIE
R  "M_Betriebsart"
```
im OB1 in FUP umsetzen kann...


----------



## vierlagig (29 Juni 2011)

pinolino schrieb:


> Ok, vielen Dank vierlagig.
> 
> D.h. also, dass ich in der FC1 im *letzten* Netzwerk einfach eine FUP-Box mit dem Befehl SAVE einfüge, richtig?



und ein sinnvolles VKE vorher bildest, ja



pinolino schrieb:


> Dann muss ich mir noch überlegen, wie ich
> 
> 
> ```
> ...



siehe anhang


----------



## pinolino (29 Juni 2011)

Sorry für die vielen Fragen vierlagig... habe das noch nicht gemacht.

Soweit ich das jetzt verstanden habe:

Ist das BIE am Bausteinende 1, so ist ENO 1

Ist das BIE am Bausteinende 0, so ist ENO 0


So, wenn ich nun an den ENO-Ausgang der FC1 die FUP-Box (mit Rücksetze "M_Betriebsart") setze, so wird der Merker immer dann rückgesetzt, sobald der ENO-Ausgang den Status 1 hat; also das BIE-Bit = 1 ist, oder?

Wenn das so stimmt, dann muss ja der Befehl SAVE in der FC1 so verknüpft werden, dass während der gesamten Bearbeitung des Automatikbetriebs der ENO-Ausgang den Status 0 hat... ist das richtig?


Vielen Dank!


----------



## Verpolt (29 Juni 2011)

F1

save


> beschreibung
> 
> save speichert das vke im bie-bit. Das erstabfragebit /er wird dabei nicht zurückgesetzt.
> Aus diesem grund wird bei einer und-verknüpfung im nächsten netzwerk der zustand des bie-bits mitverknüpft.
> ...


set


> set setzt das vke auf den signalzustand "1".


clr


> CLR setzt das VKE auf den Signalzustand "0".





> So, wenn ich nun an den ENO-Ausgang der FC1 die FUP-Box mit Rücksetze  "M_Betriebsart" setze, so wird der Merker immer dann rückgesetzt, sobald  der ENO-Ausgang den Status 1 hat; also das BIE-Bit = 1 ist, oder?



Ja



> Wenn das so stimmt, dann muss ja der Befehl SAVE so verknüpft werden,  dass während der gesamten Bearbeitung des Automatikbetriebs der  ENO-Ausgang den Status 0 hat... ist das richtig?



Nicht ganz.



> ..Sinnvoll ist der einsatz der operation save vor verlassen eines  baustein, da damit der eno-ausgang (=bie-bit) auf den wert des vke-bits  gesetzt wird und sie daran eine fehlerbehandlung des bausteins  anschließen können.


----------



## pinolino (29 Juni 2011)

Danke verpolt!

Aber ich muss doch nun im Grunde eine *sinnvolle* Verknüpfung für den Befehl SAVE finden, die mir, solange die FC1 aufgerufen ist, den ENO-Ausgang auf Status 0 setzt.

Soll auf Handbetrieb umgeschaltet werden, so müsste ja dann der ENO-Ausgang über SAVE auf den Status 1 gesetzt werden.

Stimmt das so und wie könnte dann die Verknüpfung *vor* SAVE aussehen?


----------



## Verpolt (29 Juni 2011)

pinolino schrieb:


> Danke verpolt!
> 
> Aber ich muss doch nun im Grunde eine *sinnvolle* Verknüpfung für den Befehl SAVE finden, die mir, solange die FC1 aufgerufen ist, den ENO-Ausgang auf Status 0 setzt.
> 
> ...



ganz ehrlich...?

lass das mit den EN/ENO im Bezug auf Betriebsarten.

Ist ein Baustein fehlerfrei durchlaufen, wird ENO=1 gesetzt.

Deine Betriebsart/Hand/Auto läßt sich doch einfach mit 2-3 Netzwerken in FUP "erschlagen".

Dann kannst in jedem Baustein den "MerkerAutobetrieb" oder "Handbetrieb" in deine Bedingungen einfließen lassen.


----------



## vierlagig (29 Juni 2011)

Verpolt schrieb:


> ganz ehrlich...?
> 
> lass das mit den EN/ENO im Bezug auf Betriebsarten.
> 
> ...



och menno


----------



## pinolino (29 Juni 2011)

Verpolt schrieb:


> ganz ehrlich...?
> 
> Deine Betriebsart/Hand/Auto läßt sich doch einfach mit 2-3 Netzwerken in FUP "erschlagen".
> 
> Dann kannst in jedem Baustein den "MerkerAutobetrieb" oder "Handbetrieb" in deine Bedingungen einfließen lassen.



Danke verpolt, aber ich verstehe leider nicht was du meinst...

Du meinst, es gibt zwei Merker - einen für Automatikbetrieb und einen für Handbetrieb?

Soweit so gut, aber mein Problem war ja, dass eine Umschaltung zwischen den Betriebsarten *nur dann* möglich sein soll, wenn *vorher der Aus-Taster *betätigt wurde - und das ist ein Problem für mich!


----------



## Verpolt (29 Juni 2011)

pinolino schrieb:


> Danke verpolt, aber ich verstehe leider nicht was du meinst...
> 
> Du meinst, es gibt zwei Merker - einen für Automatikbetrieb und einen für Handbetrieb?
> 
> Soweit so gut, aber mein Problem war ja, dass eine Umschaltung zwischen den Betriebsarten *nur dann* möglich sein soll, wenn *vorher der Aus-Taster *betätigt wurde - und das ist ein Problem für mich!



Sollte es nicht auch einen Ein-Taster geben?


----------



## pinolino (29 Juni 2011)

Verpolt schrieb:


> Sollte es nicht auch einen Ein-Taster geben?



Vielen Dank für deinen Programmvorschlag verpolt!

Doch, einen Ein-Taster gibt es schon - allerdings habe ich das Netzwerk mit Ein-Taster (siehe Anhang) in beiden FC's (Hand-FC und Automatik-FC) programmiert.


----------



## vollmi (29 Juni 2011)

Das kannst du ja z.B. so machen.


```
U Aus
S #Austastegedrückt
R #AUTO
R #HAND
```


```
UN    #HAND
      U     #AUTO
      U     #AUSTASTERGEDRUECKT
      =     L     21.0
      U     L     21.0
      SPBNB _001
      CALL  FC     2
_001: NOP   0
      U     L     21.0
      BLD   102
      R     #AUSTASTERGEDRUECKT
```

Der obere code sieht nur so aus das er wieder nach fup übersetzt werden kann.


----------



## Boxy (29 Juni 2011)

Na ja, man kann sich auch alles schwerer machen als es ist *ROFL*

Wie wäre es z.B. im Ablauf bzw. in dem Automatik FC einfach die BA abzufragen? Im Hand FC das selbe dann ...

Was wird den überhaupt in den einzelnen FC's programmiert?


----------



## pinolino (29 Juni 2011)

Danke für die Hilfe - aber ich komme irgendwie nicht weiter...

@vollmi: Wo wird denn 

#Austastegedrückt

noch verarbeitet, denn es handelt sich ja nicht um das Gleiche wie

#AUSTASTERGEDRUECKT

oder?

@Boxy: Im Grunde ist die Aufgabenstellung ja einfach - die Ausführung jedoch nicht...

- Nach einem Neuanlauf der CPU kann wahlweise der Automatik- oder der Handbetrieb gewählt werden. Und zwar *ohne* vorher die Aus-Taste drücken zu müssen!

- Sind der Automatik- oder der Handbetrieb gewählt, so kann der jeweils andere Betreib nur dann gewählt werden, wenn zuvor die Aus-Taste gedrückt wurde.

Was bringt es da, in den FC's die BA abzufragen?

In den beiden FC's werden auf unterschiedliche Weise mehrere Förderbänder gesteuert.

Grüße
pinolino


----------



## Verpolt (29 Juni 2011)

pinolino schrieb:


> - Nach einem Neuanlauf der CPU kann wahlweise der Automatik- oder der Handbetrieb gewählt werden. Und zwar *ohne* vorher die Aus-Taste drücken zu müssen!
> 
> - Sind der Automatik- oder der Handbetrieb gewählt, so kann der jeweils andere Betreib nur dann gewählt werden, wenn zuvor die Aus-Taste gedrückt wurde.
> 
> ...





> Was bringt es da, in den FC's die BA abzufragen?



z.B.: Automatikbetrieb = Alle Förderbänder starten
Handbetrieb = 1.2.- oder alle Bänder Tippen

Also globale Variablen, an denen man die aktuelle Betriebsart feststellen kann


----------



## Aventinus (29 Juni 2011)

Edit: Sorry, verschaut.


----------



## vollmi (29 Juni 2011)

pinolino schrieb:


> Danke für die Hilfe - aber ich komme irgendwie nicht weiter...
> 
> @vollmi: Wo wird denn
> 
> ...



Das muss natürlich dasselbe sein, hab das nur schnell von hand hier reingetippt, darum unterschiedlich. Sonderzeichen gehn eh nicht als Symbolvariable.

Beim Firstcall des OB1 musst du natürlich diese Bit auch setzen.


----------



## pinolino (29 Juni 2011)

Verpolt schrieb:


> z.B.: Automatikbetrieb = Alle Förderbänder starten
> Handbetrieb = 1.2.- oder alle Bänder Tippen
> 
> Also globale Variablen, an denen man die aktuelle Betriebsart feststellen kann



Ja stimmt, ok.

Aber nichts desto trotz ist hier die Situation etwas anders, da die FC's schon programmiert sind und eben nur diese Umschaltbedingung 

- Nach einem Neuanlauf der CPU kann wahlweise der Automatik- oder der Handbetrieb gewählt werden. Und zwar *ohne* vorher die Aus-Taste drücken zu müssen!

- Sind der Automatik- oder der Handbetrieb gewählt, so kann der jeweils  andere Betreib nur dann gewählt werden, wenn zuvor die Aus-Taste  gedrückt wurde.


neu hinzugefügt werden sollt!

Das muss doch auch machbar sein, oder?


----------



## Verpolt (29 Juni 2011)

.......................


----------



## Boxy (29 Juni 2011)

Dann löscht man eben bei Anlauf der CPU die entsprechenden Merker im OB100 ab, setzt zur Not den Ausmerker und fertig. 
Oder man schafft sich via OB100 einen Anlaufmerker (z.B. first_scan) und löscht damit die BA's ab ... 
Dann kann man direkt die BA umschalten. Im Betrieb geht das nur über die Aus-Taste.

Ich setzte normal bei Anlauf/Neustart usw. eh immer die Einricht BA und verhindere somit schon mal falsche Bewegungen usw.  

Ich kann nun nicht sagen was oder wie in den FC's programmiert wurde.
Daher ist das ganze eh nur ein Hinweis


----------



## pinolino (29 Juni 2011)

@verpolt: Den #Ein habe ich aber so nicht zur Verfügung - der setzt mir nur in den FC's den Startmerker, der zum Betrieb der Bänder notwendig ist.

@Vollmi: In NW2 nimmt man ja durch das Rücksetzen von #AUSTASTERGEDRUECDKT die UND-Bedingung weg, so dass der FC2 nicht mehr aufgerufen wird...


----------



## Verpolt (29 Juni 2011)

pinolino schrieb:


> @verpolt: Den #Ein habe ich aber so nicht zur Verfügung - der setzt mir nur in den FC's den Startmerker, der zum Betrieb der Bänder notwendig ist.



Dann ersetze  #Ein  mit "Startmerker"


----------



## vollmi (29 Juni 2011)

pinolino schrieb:


> @Vollmi: In NW2 nimmt man ja durch das Rücksetzen von #AUSTASTERGEDRUECDKT die UND-Bedingung weg, so dass der FC2 nicht mehr aufgerufen wird...



Hast du recht, kann man aber lösen. Z.B. so:

```
UN    #HAND
      U     #AUTO
      U(    
      O     #Austastergedrueckt
      O     #AUTO_AKT
      )     
      =     L      1.0
      U     L      1.0
      SPBNB _001
      CALL  FC     2
_001: NOP   0
      U     L      1.0
      R     #Austastergedrueckt
      S     #AUTO_AKT
```
AUTO_AKT musst du natürlich mit der Austaste bzw mit dem firstrun wieder zurücksetzen

Das kann man dann noch weiter einkürzen und z.B. nur mit einem *_AKT für jede Betriebsart arbeiten. Diese beim ersten Aufruf der Betriebsart setzen und rücksetzen mit Stopptaste und beim Gegensätzlichen Betriebsstatus den Aufruf untertrücken solange noch das andere *_AKT aktiv ist.
mfG René


----------



## pinolino (29 Juni 2011)

Nur um den Startmerker zu setzen, muss ja erst mal der Hand- oder Automatikbetrieb angewählt sein...

Ich versuche noch etwas weiter... das gibt's ja net, dass ich hier keine Lösung finde.

Vielen Dank!


----------



## udo_39 (29 Juni 2011)

bei sio einer komplizierten Funktion wirst du ohne indirekte Adressierung und 3 Datenbausteinen bestimmt nicht sehr weit kommen.


----------



## PN/DP (29 Juni 2011)

pinolino schrieb:


> Das Problem dabei ist, dass vor einer Umschaltung sichergestellt sein muss, dass der Aus-Taster * gedrückt* wurde.


Meinst DU/Willst Du eventuell sowas wie einen HAND-0-AUTO-Schalter programmieren, wo man von einer Betriebsart zur anderen nur über die 0-Stellung kommt?
Dann verknüpfe einfach zum Einschalten einer Betriebsart, daß die andere Betriebsart nicht aktiv sein darf. Dann geht die Umschaltung nur über vorher AUS. Dafür brauchst Du keine umständlichen Hilfsmerker.

Harald


----------



## Der Pfälzer (29 Juni 2011)

pinolino schrieb:


> @verpolt: Den #Ein habe ich aber so nicht zur Verfügung - der setzt mir nur in den FC's den Startmerker, der zum Betrieb der Bänder notwendig ist.
> 
> @Vollmi: In NW2 nimmt man ja durch das Rücksetzen von #AUSTASTERGEDRUECDKT die UND-Bedingung weg, so dass der FC2 nicht mehr aufgerufen wird...



Na dann bearbeite doch deine Hand und Auto-Merker komplett ausserhalb deiner FCs.

Gruß Roland


----------



## pinolino (30 Juni 2011)

PN/DP schrieb:


> Meinst DU/Willst Du eventuell sowas wie einen HAND-0-AUTO-Schalter programmieren, wo man von einer Betriebsart zur anderen nur über die 0-Stellung kommt?
> Harald



Hallo Harald, 
ja genau so etwas war meine Vorstellung! Dazu habe ich jetzt einfach den Startmerker mit dem Wahlschalter verknüpft. D.h., wenn der Startmerker (in beiden BA programmiert) nicht aktiv ist, kann eine Umschaltung zwischen den beiden BA erfolgen.




> Na dann bearbeite doch deine Hand und Auto-Merker komplett ausserhalb deiner FCs.
> 
> Gruß Roland


Yep Roland, so habe ich das jetzt gelöst - also die BA-Umschaltung befindet sich im OB1.

Danke nochmals an alle Helfende!


----------

