# programmierproblem



## bennzi (26 April 2007)

ich hab voll des problem des mich bald verrücxkt werden lässt.
ich habe einen drehteller mit 8 stationen.

in der ersten legt er es ein
in der zweiten gibt es ne auswahl io, nio
in der dritten auch auswahl io, nio
vierte auch
fünfte auch
sechste auch
die siebte druckt was wenn io
in der achten wird das teil entnommen und gibt gut oder schlecht weiter.


wenn die erste Station zb. gut war, er eins schwenkt und die zweite schlecht ist, soll er die nachfolgenden stationen nicht bearbeiten und bei der entnahme mit schlechtsignal weitergeben werden

genauso wenn die dritte messtation schlecht ist soll er die weiteren nicht messen sondern nachher mit schlechtteilübergabe entnommen werden.
es kommen dauernt teile nach, jede station ist somit immer belegt.

ich hoffe jemand hat eine einfache lösung.

ich hätte es jetzt so gemacht dass ich den drehtisch zähl, 
wenn station1 messen1schlecht, dann bei 2 messen2 weglassen, bei 3 messen3 weglassen...usw
wenn station1 messen2 schlecht dann bei 3 messen3 weglassen, bei4 messen4 weglassen....
'
'''

usw

gib doch bestimmt normalere wege?


----------



## andre (26 April 2007)

Hallo,
da bieten sich doch Schieberegister an.
Gruß Andre


----------



## bennzi (26 April 2007)

thx für die schnelle antwort.
ein schieberegister aha. dann werd ich mal anfangen zu lesen *g
danke für den tipp! 

auf dass ich schnell ans ziel komm


----------



## Werner54 (26 April 2007)

*Wieder mal was fertiges*

Hallo bennzi,

ich würde für diese Aufgabe den FB85 von den TI_S7 Converting Blocks einsetzen.


----------



## bennzi (26 April 2007)

wow. noch mehr hilfe  freu
danke für den tipp. hab sowas noch nie gemacht werd mir den baustein morgen mal ansehen und probieren wie es funktioniert 
ich hab schon gedacht, des wär ja unzumutbar sowas von hand zu schreiben... alles immer mit allem vergleichen nenene
schade dass ich jetz kein step7 aufm rechner hab


----------



## andre (26 April 2007)

Hallo,
wie gesagt, nimm ein Schieberegister, den Drehtellertakt nimmst du als Schiebetakt, wenn an Stat. 1 ein Teil eingelegt wird, eine 1 eintragen und weiterschieben. An Stat. 2 prüfen ob Teil io, wenn ja, Bit beibehalten, wenn nicht io, Bit rücksetzen. Dann wieder mit Drehteller weiterschieben. Wenn alle Stationen io waren, kommt am Ende eine 1 an, ansonsten eine 0.
Gruß Andre


----------



## jabba (26 April 2007)

Hallo Benzi,

ist das eine neue Maschine, oder sind da die Teile von letzte Woche drin.

Also das einfache Schieberegister ist ja eine Lösung.
ABER.
Ich nehme nur noch die etwas aufwendigere Lösung und mache alles von Hand.
Dazu nehme ist pro Station einen DB, sowie einen DB als Leernest.
Es passiert bei Erweiterungen immer wieder das noch das eine oder andere mitgespeichert werden muss, bei mir sind sehr oft Ergebnissdaten von z.B. Schraubern o.ä. im Schieberegister. Durch das verwenden der DB´s ist man nicht begrenzt .
Das Register ist eine Arbeit von fünf Minuten, dann pro Station eine Zeile zum abfragen, also unbedingt viel ist das nicht.

Bei Interesse kann ich dir das genauer beschreiben, aber der Grill ruft


----------



## Ralle (26 April 2007)

Ich nutze eine DB, in dem je Nest ein DBD anglegt ist. Bei jeder RT-Drehung wird eine Flanke erzeugt und mit dieser Flanke, werden alle Nester im DB um 1 DBD (4 Byte) verschoben. Das letzte Nest wird wieder in des Erste verschoben, also ein Ringpuffer. In dem DBD sind INformationen wie "Teil vorhanden", "Teil IO", "Teil NIO", "Station 1 hat Teil bearbeitet" ... "Station X hat Teil bearbeitet". Das sind jeweils Bit-Informationen, die kann man schön abfragen. Jede Station schreibt am Ende der BEarbeitung die entsprechenden Informationen und liest beim Start, ob ein Teil vorhanden ist usw. Wenn ein Handlich Teile entnimmt, wird das entsprechende zum Entnahmenest gehörende DBD in ein DBD, welches zum Handling gehört kopiert, das DBD im Nest mit 0 überschrieben, fertig. Nun sind alle relevanten Infos beim Handling, das die Teile bei IO ablegen, in die NIO-Kiste werfen und beim Ablegen die Infos in die Statistik eintragen kann.


----------



## bennzi (27 April 2007)

wow. also erstmal find ich es richtig kool dass ihr mir so helft.
super forum!
@jabba
jarr dass is immernoch dieslebe maschine *g
also zwecks erweiterung nachher..
im moment habe ich nur 3 messstationen, wo ich das signal weitergeben muss
aber wenn sie komplett fertig ist, ist praktisch jede der 8 stationen belegt
>einlegestation, 6 messtationen und die auslegestation. erweiterbar ist dann in dem sinne nichts mehr.
ich denke nicht das sich es heute noch anfange mit dem register aber ich werd mal reinschauen und dann mal wieder von mir hören lassen.

 danke!!!!!!


----------



## Larry Laffer (1 Mai 2007)

Hallo Bennzi,
in meiner Firma haben wir massenweise Maschinen, wie von dir beschrieben - mit unterschiedlich vielen Positionen auf dem Drehteller ... Nicht alle von denen laufen mit meinen Programmen - aber viele.
Die davon, die gut funktionieren arbeiten mit einer ähnlichen Variante wie von Ralle beschrieben. Ich würde dir (aus Erfahrung) dringend empfehlen den Vorschlag aufzugreifen, auch wenn er sich im Moment vielleicht übertrieben anhört - ist es nämlich letztendlich nicht wirklich, da du auf diesem Weg dir Möglichkeit hast, dir auch Auswertungsergebnisse zu einem Teil zu speichern und bei einer NIO-Entnahme mit Sortierfunktion entsprechende Sortierungen durchzuführen, oder (was ich im Moment gerne mache) die erzielten IO-Daten in Form einer Datei zu speichern. Könnte ja alles kommen ...

Selbstverständlich geht das auch alles mit "S M x.0   L MW x   SLW 1" usw. - wird aber bei vielen Bearbetungsstationen sehr schnell unübersichtlich ...

Viel Erfolg ...


----------



## bennzi (2 Mai 2007)

also: ich amch einen datenbaustein mit 8 dW´s...
wenn ich ein teil einleg sag ich setz nen bit in dw0.

wenn der teller sich dann dreht kopier ich:
das 7te dw in das achte
das 6te dw in das  siebte
.
.
.
.
.
.
.
oder wie?

wie schreib ich das am besten in ner awl?
U drehtisch drehung
L dbx.dw7
t dw8
l dw6
tdw7
l dw5
t dw6
l dw4
t dw5
l dw3
t dw4
l dw2
tdw3
l dw1
t dw2


??


----------



## Larry Laffer (2 Mai 2007)

Hallo Bennzi,
so ungefähr ...

Ich habe bei mir für jeden Platz ein Doppelwort vorgesehen. Das kriegt man auch voll ...
Du kannst aber auch genauso nur ein Wort nehmen. Die Funktionen der Bits legst du im Vorfeld fest. Dann gibst hinterher keine Mißverständnisse.

Bei mir mache ich das Weiterschieben über Bits des Daten-Bausteins.

U -A Takt_Drehtisch
= DB100.DBX50.0  //Speicher vortakten


U DB100.DBX50.0  //Speicher vortakten
UN DB100.DBX50.1  //Speicher vorgetaktet
spbn Ende

L Speicher_8
T Speicher_9

L Speicher_7
T Speicher_8

...usw.

L Speicher_9
T Speicher_1   // Ringschieben ermöglichen

Ende: U DB100.DBX50.0  //Speicher vortakten
        = DB100.DBX50.1  //Speicher vorgetaktet

jetzt ist alles erledigt ...
Du kannst da jetzt natürlich noch einen draufsetzen und es mit einer in einem gewissen Rahmen frei parametrierbaren Platzanzahl als FB programmieren. Die L-T-Befehle können dann natürlich auch in er Schleife laufen ... Also Möglichkeiten gibt es ohne Ende ...

Viel Erfolg und viel Spaß
Gruß


----------



## bennzi (3 Mai 2007)

irgentwie bekomm ich des nicht so auf die reihe.
sobald er das erste kopiert er überall in jede station eine 1 ???
nicht nur jeweils in die nächste...


----------



## bennzi (3 Mai 2007)

jahuuu es klappt. sprünge waren falsch...

DAAAAANKE!!!!!!


----------



## Larry Laffer (3 Mai 2007)

Hallo Beenzi,
gern geschehen.
Wenn es gut gefallen hat, drücken wir immer gerne den "Danke"-Button unter dem Beitrag.
Ansonsten noch viel Erfolg und bis zum nächsten Mal ...


----------



## Nolsnor (4 Mai 2007)

Hi, ich hab da ein problem, ich muss in der Schule bis nächste Woche eine Facharbeit abgeben mit SPS oder Logo. Da ich das nicht so gut kann wollte ich fragen ob mir vieleicht jemand etwas schicken könnte. ich dachte da so z.b. eine Schiffsschleusensteuerung.

Wenn mir da jemand weiterhelfen könnte wäre mir sehr geholfen.

ich danke im voraus:???:


----------



## OHGN (4 Mai 2007)

@Nolsnor 
Meinst Du ein komplettes SPS- Programm für eine Schleusensteuerung oder wie soll ich das jetzt verstehen?


----------



## Nolsnor (5 Mai 2007)

ja, oder eine andere Steuerung, damit wäre mir sehr geholfen


----------



## TommyG (5 Mai 2007)

Du,

das ist zieeemlich unprofessionell !!!

Du fängst an hier zu posten, erwartest nen fertiges Proggi und gibst keinerlei Infos rüber...

Also:

Wenn Du dein Problem bitte in ein vernünftiges Konzept packst, dann sagst, was du nimmst, was Du schon gemacht hast, welche Gimmicks drin sind ( z.B. Ansteuerung der Video Cams per Programm...) und 

Bitte alles in ein neues Thema packst, kannst Du hier alt und klug werden...


Mach was..

Gruß

Auch wenn ich dagegen manchmal verstoße und damit jetzt ziemlich OT bin:

http://de.wikipedia.org/wiki/Netiquette


----------

