programmierproblem

bennzi

Level-1
Beiträge
107
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
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?
 
Wieder mal was fertiges

Hallo bennzi,

ich würde für diese Aufgabe den FB85 von den TI_S7 Converting Blocks einsetzen.
 
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 :(
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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
 
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 :p
 
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.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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!!!!!!
 
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 ...
 
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


??
 
Zuviel Werbung?
-> Hier kostenlos registrieren
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ß
 
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...
:(
 
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:???:
 
@Nolsnor
Meinst Du ein komplettes SPS- Programm für eine Schleusensteuerung oder wie soll ich das jetzt verstehen?
 
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
 
Zuletzt bearbeitet:
Zurück
Oben