Hochregal - Array -Auswertung

sr-83

Level-1
Beiträge
69
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin Moin,

ich habe das Problem bei Volker im Forum (Lischi Home) schon geschildert und wollte das gerne nochmal hier rein setzen, evtl hat hier ja auch einer eine Idee von Euch!
http://lischis-home.dyndns.org/forum/phpbb3/viewtopic.php?f=17&t=250

Ich habe das Programm "Hochregallager mit Fehler" nochmal archiviert und mit im Anhang! Führt die Variablentabelle einmal aus, sucht ein Artikel, dann geht alles wunderbar! Nur sobald E1.0 (Schrittkette FB1 aktiv, siehe OB1) ein ist, stimmen die ganzen Werte nicht mehr! Ich bin da total fraglos, weil in der Schrittkette noch fast garnix programmiert bzw. ist!

Schöne Grüße
 

Anhänge

  • hochrega_fehler.zip
    89,6 KB · Aufrufe: 53
FC 80: erstes Netzwerk - die Variablen: Zeile, Spalte, leer_gefunden, sind temp-Variablen. Loesung FC 80 in FB80 wandeln die temp-Variablen in Stat-Variablen tauschen.

... und viel glueck
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Fehler Hochregallager

Ja ja, das sind die guten alten Variablen vom Typ "Temp" :confused: !! Mit denen kannste einfach nix anfangen in der Simatic SPS. Wenn Du die ersetzt durch "statische" Variablen oder "Datenbaustein-Adressen" dann sollte es funktionieren.


SPS-Freak
 
Ja ja, das sind die guten alten Variablen vom Typ "Temp" :confused: !! Mit denen kannste einfach nix anfangen in der Simatic SPS. Wenn Du die ersetzt durch "statische" Variablen oder "Datenbaustein-Adressen" dann sollte es funktionieren.


SPS-Freak

Wieso Siemens-SPS, sowas gibts bei jeder Programmiersprache, von C bis Delphi. Kann man im Kopf jeder Funktion definieren, gelten nur in der Funktion.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja ja, das sind die guten alten Variablen vom Typ "Temp" :confused: !! Mit denen kannste einfach nix anfangen in der Simatic SPS.

ROFL.gif


Ohne temporäre Variablen hätten die Systeme aber einen recht hohen Speicherbedarf. Wer weis was eine Temp Variable ist kann diese auch nutzen. Darüber gestolpert ist aber wohl fast jeder mal. Aber das generelle Ersetzen durch statische Variablen ist sich auch nicht zielführend.
 
Oh darüber gab es ja doch sehr viel Gesprächbedarf! Nun weis man auch mal mehr über temporäre Platzhalter!

Ich habe noch ein weiteres Problem wie ich an eine Sache herangehe! Ich habe einen Analogen Wert der mit dem Baustein "Scale-convert FC105" zwischen 0-400 skaliert wird! Ob mein Problem mit diesem Baustein zu lösen ist, weiß ich noch nicht! Ebenfalls gibt es eine Liste (Datenbaustein) mit über hundert einträgen! Dort ist z.B. in Zeile 50 ein vordefinierter Wert eingetragen, behaupte ich mal L#98. Sollte der Analoge Wert L#98 aufweisen, möchte ich damit die Zeile ermitteln, in diesem Falle würde 50 bei rauskommen! Durch Schwankungen bzw. Auf bzw. Abrunden durch die Skalierungen kann es sehr schnell zu Fehlern kommen, besonders wenn der skalierte analoge Messwert zwischen 97.4 und 97.6 liegt! Dann springt der Wert immer zwischen 97 und 98 hin und her! In diesem Fall ist es notwendig irgendwie ein Muster abzufragen, nur weiß ich nicht recht, wie ich das umsetzen kann, weil letztendlich soll er ja auch mit dem Muster die Zeile ermitteln! Bei einem Wert wäre es ja noch einfach, aber es sind ja über 100 und dann muss es ja etwas variabel bleiben! Hoffe ich habe mich einigermaßen ausgedrückt und ihr habt eine gute Idee für eine Umsetzung..

Vielen dank für die Hilfe und schöne Grüße
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Oh darüber gab es ja doch sehr viel Gesprächbedarf! Nun weis man auch mal mehr über temporäre Platzhalter!

Ich habe noch ein weiteres Problem wie ich an eine Sache herangehe! Ich habe einen Analogen Wert der mit dem Baustein "Scale-convert FC105" zwischen 0-400 skaliert wird! Ob mein Problem mit diesem Baustein zu lösen ist, weiß ich noch nicht! Ebenfalls gibt es eine Liste (Datenbaustein) mit über hundert einträgen! Dort ist z.B. in Zeile 50 ein vordefinierter Wert eingetragen, behaupte ich mal L#98. Sollte der Analoge Wert L#98 aufweisen, möchte ich damit die Zeile ermitteln, in diesem Falle würde 50 bei rauskommen! Durch Schwankungen bzw. Auf bzw. Abrunden durch die Skalierungen kann es sehr schnell zu Fehlern kommen, besonders wenn der skalierte analoge Messwert zwischen 97.4 und 97.6 liegt! Dann springt der Wert immer zwischen 97 und 98 hin und her! In diesem Fall ist es notwendig irgendwie ein Muster abzufragen, nur weiß ich nicht recht, wie ich das umsetzen kann, weil letztendlich soll er ja auch mit dem Muster die Zeile ermitteln! Bei einem Wert wäre es ja noch einfach, aber es sind ja über 100 und dann muss es ja etwas variabel bleiben! Hoffe ich habe mich einigermaßen ausgedrückt und ihr habt eine gute Idee für eine Umsetzung..

Vielen dank für die Hilfe und schöne Grüße


Da gibt es noch offenen Fragen für mich, abhängig, von den außeren Bedingungen.

1. Wie stark schwankt der reinkommende Wert.
2. Wie oft wechselt der zu messende Wert tatsächlich. Sind die Schwankungen Meßtolleranzen oder wichtig.
3. Wie genau muß angezeigt werden (bzw. die Zeile ermittelt werden)
4. Wie oft muß die Zeile ermittelt werden, wie schnell.

Also als Erstes würde ich versuchen eine "Mittelwertbildung" vorzunehmen, z.Bsp aus 2,4,6,8 ... Werten.
Als weitere Möglichkeit eine Art Komperator. Nur wenn der Wert sich um Betrag X ändert wird die neue Zeile gesucht.
Auch eine zeitliche Filterung ist möglich, nur wenn ein Wert eine Zeit X lang verschieden vom Ausgangswert ist, wird daraus die Zeile ermittelt.

Das Alles wird nur funktionieren, wenn die Ausgabe gegenüber der ankommenden Meßwerte Zeitlich verlangsamt werden darf.
Auch eine Kombination der o.g. Varianten ist denkbar.
 
Danke schon mal, für deine Antwort Ralle!
Ich möchte gerne mit einem analogen Laserabstandssensor im Zehntel mm Bereich, Werkstücke vermessen! Funktioniert soweit auch ganz gut! Der skalierte Wert schwankt um circa 30 µm (0,03mm)! Nur bei den Messungen kann ja auch 95,84 mm bzw. 95,86 mm gemessen werden (Bei dem einen Wert würde 95,8 runden und bei den anderen auf 95,9! Mein Werkstück ist aber zum Beispiel 95,8 und nicht 95,9! Ich habe circa 20 verschiedene Werkstücke, die im zehtel Bereich auseinander sind! Die Messungen sind OK, aber halt dieses auf bzw. abrunden, wenn der Wert in der Mitte liegt gibt Fehlmessungen! Deswegen müsste ich gerne ein Muster oder ähnlich abfragen können!

Nochmal auf die Zeile zurück! In der Zeile gibt es die Werte 95,8 (bzw 958) und 95,9 (bzw 959 wegen Integer). Beim falschen Runden würde die falsche Zeile bei rauskommen!

Vielen Dank für die Hilfe

Schöne Grüße
 
Ich habe noch nicht so ganz verstanden, wofür Du das Hochregallager brauchst. :confused:

Du misst also die Länge von Werkstücken. Willst Du nun je nach Länge des Werkstückes Daten über das Werkstück ausgeben, also z. B. eine Werkstücknummer? Oder willst Du die Anzahl der jeweils gemessenen Werkstücke aufsummieren? Oder etwas ganz anderes?

Gruß Kai
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Einmessen, und im richtigen Fach ablegen! Durch den vermessenen Wert kann ich die Zeile / Spalte ermitteln! Nur wenn er falsch rundet wie beschrieben, dann würde die falsche Zelle ermittelt werden!

Schönen Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
kann ich auch nicht richtig nachvollziehen.
legst du nur gutstück ins lager?
wenn du das 2d-array von meiner hp nenutzt, da ist doch nur maximal 1 dword pro zelle erlaubt. dann hast du im fach entweder den artikel oder die messdaten im fach.
 
Ich versuche gerade mal Dein Programm zu verstehen:

1. Werkstück eintragen:

1.1 Du misst ein Werkstück aus

1.2 Du suchst eine leeres Fach im Hochregallager

1.3 In das leere Fach wird die Werkstücknummer des vermessenen Werkstücks eingetragen

2. Werkstück austragen:

2.1 Du hast eine Werkstücknummer

2.1 Du suchst im Hochregallager das Fach mit der Werkstücknummer

2.3 Es wird die Zeile und Spalte des Fachs mit der gesuchten Werkstücknummer ausgegeben

Habe ich das so richtig verstanden?

Gruß Kai
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich denke, er vermißt das Werkstück und das Meßergebnis dient ihm gleichzeitig als Adressierung für das Fach, nach einem bestimmten Schlüssel. So ähnlich wie es bei Kugeln für Kugellager gemacht wird. Er hat dann ein Fach, in dem lauter Werkstücke einer bestimmten Größe abgelegt werden.

@sr-83

Meßfehler ist Meßfehler, da helfen nur 2 Sachen:

1. Genauer messen (was ja nun mal nicht so einfach geht ;))
2. Mehrere Messungen an dem Probanden machen und einen Mittelwert bilden.
Das hilft allerdings nur gegen die zufälligen Schwankungen, ähnlich wie es früher beim ungenauen GPS (50m) gemacht wurde. Viele Messungen ergaben dann einen statistischen Mittelwert, der nahe am tatsächlichen Wert lag.


Was du mit Muster meinst, kann ich nicht ganz nachvollziehen.
 
Ich versuche gerade mal Dein Programm zu verstehen:

1. Werkstück eintragen:

1.1 Du misst ein Werkstück aus

1.2 Du suchst eine leeres Fach im Hochregallager

1.3 In das leere Fach wird die Werkstücknummer des vermessenen Werkstücks eingetragen

2. Werkstück austragen:

2.1 Du hast eine Werkstücknummer

2.1 Du suchst im Hochregallager das Fach mit der Werkstücknummer

2.3 Es wird die Zeile und Spalte des Fachs mit der gesuchten Werkstücknummer ausgegeben

Habe ich das so richtig verstanden?

Gruß Kai

Das ist doch schon mal garnicht so schlecht! ICh versuche es nochmal den Ablauf zu erklären mit einem Beispielwert:


1. Werkstück eintragen:

1.1 Du misst ein Werkstück aus ( 95,8 mm)

1.2 Du suchst eine leeres Fach im Hochregallager (nicht ganz)

1.2.1 Ich suche nach den Wert L#958 (sind vordefiniert), Zeile und Spalte ist ermittelt, z.b Z 2 / S 10

1.3 Werkstück wird in das Fach abgelegt!

1.4 Zelle wird mit einem Anderen Wert multipliziert z.b auf L#9580, somit ist sie voll!


2 Werkstück austragen:

1.1 Wert (diesmal L#9580) wird gesetzt!

1.2 Zelle wird ermittelt!

1.3 Aussortieren (Z 2 / S 10)

1.4 Wert auf L#958 zurückschreiben! Zelle ist wieder leer!

Ist wohl nicht die eleganteste Lösung, aber sollte so funktionieren!

Nur das Problem ist ja eher das falsche runden! :confused: :confused:
 
Wann wird das Werkstück aus dem Hochregallager wieder ausgetragen? Bleibt das Werkstück längere Zeit im Hochregallager gespeichert oder wird es sofort wieder ausgetragen?

Gruß Kai
 
Zurück
Oben