Hochregal - Array -Auswertung

Zuviel Werbung?
-> Hier kostenlos registrieren
wenn ich dich richtig verstehe
du hast z.b. einen wert von 95,84 den du dann als interger 984 darstellst.
warum gönnst du dir nicht einfach eine nachkommastelle mehr?

sollte man doch, ihmo, sowieso wenn du auf 0,03 genau messen kannst.
 
ach so noch was.

nun gut du sucht also nun ein fach wo z.b. 984 drinsteht. wenns gefunden wird trägst du 9840 ein. was ist denn nun wenn das nächste messergebnis wieder 984 ist?

wäre es dann nicht sinnvoller in dem fach mehr daten abzulegen? z.b. das teil und die anzahl wieviel teile dort lagern?
 
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.

So habe ich das auch verstanden und dafür mal ein kurzes Beispielprogramm für 10 Werkstücke mit folgender Funktion geschrieben:

Code:
// FC100 : Werkstück
 
// Anzahl Werkstücke = 10
//
// Eingabe: Werkstück Länge Messung = 50 ... 150
//
// Ausgabe: Werkstück Länge = 100
//          Regal Zeile     = 1
//          Regal Spalte    = 1
//
// Eingabe: Werkstück Länge Messung = 151 ... 250
//
// Ausgabe: Werkstück Länge = 200
//          Regal Zeile     = 1
//          Regal Spalte    = 2
//
// Eingabe: Werkstück Länge Messung = 251 ... 350
//
// Ausgabe: Werkstück Länge = 300
//          Regal Zeile     = 1
//          Regal Spalte    = 3
//
// weiter bis
//
// Eingabe: Werkstück Länge Messung = 951 ... 1050
//
// Ausgabe: Werkstück Länge = 1000
//          Regal Zeile     = 2
//          Regal Spalte    = 5
 
 
// Adressregister AR1 sichern
 
      TAR1  #AR1_TEMP
 
 
// Werkstück
 
      AUF   "DB_WERKSTUECK"
 
      L     P#0.0
      LAR1  
 
      L     10
M01:  T     #SCHLEIFE
 
      U(    
      L     #MESSUNG                    // Werkstück Länge Messung
      L     DBD [AR1,P#0.0]             // Werkstück Länge Minimum
      >=D   
      )     
      U(    
      L     #MESSUNG                    // Werkstück Länge Messung
      L     DBD [AR1,P#4.0]             // Werkstück Länge Maximum
      <=D   
      )     
      SPBN  M02
 
      L     DBD [AR1,P#8.0]             // Werkstück Länge
      T     #LAENGE
 
      L     DBW [AR1,P#12.0]            // Regal Zeile
      T     #REGAL_ZEILE
 
      L     DBW [AR1,P#14.0]            // Regal Spalte
      T     #REGAL_SPALTE
 
      SPA   M03
 
M02:  L     P#16.0
      +AR1  
 
      L     #SCHLEIFE
      LOOP  M01
 
      L     L#0
      T     #LAENGE                     // Werkstück Länge
      T     #REGAL_ZEILE                // Regal Zeile
      T     #REGAL_SPALTE               // Regal Spalte
 
M03:  NOP   0
 
 
// Adressregister AR1 wiederherstellen
 
      LAR1  #AR1_TEMP

Gruß Kai
 

Anhänge

  • OB1.pdf
    3,6 KB · Aufrufe: 29
  • FC100.pdf
    4,4 KB · Aufrufe: 27
  • DB100.pdf
    6,2 KB · Aufrufe: 23
  • Werkstüc.zip
    31 KB · Aufrufe: 20
Super vielen Dank, so kann ich nun einen Bereich (Muster) abfragen in dem die Messung liegt und mit dem ermittelten Wert die Spalten und Zeile ausfindig machen..

Dankeschön
 
Habe da nun bisschen mit rumgespielt und habe leider Skriptprobleme, aber sonst ist das Prog. genau das richtige!
Habe das Programm rangehängt! Ich möchte gerne über das Eingangswort der Analogbaugruppe (PEW288) die Länge ermitteln mit den gegebenen Toleranzen! Aber wenn ich den Wert in den Bereichen L#1900 - L#2200 oder höhere anlege (DB100), funktioniert das garnicht mehr!
Evtl. liegt der Fehler beim Datentyp oder so !?

Schöne grüße und vielen Dank
 

Anhänge

  • OB1.pdf
    17,8 KB · Aufrufe: 4
  • DB100.pdf
    18,3 KB · Aufrufe: 5
  • Werkstü1.zip
    32,2 KB · Aufrufe: 1
Ich möchte gerne über das Eingangswort der Analogbaugruppe (PEW288 ) die Länge ermitteln mit den gegebenen Toleranzen! Aber wenn ich den Wert in den Bereichen L#1900 - L#2200 oder höhere anlege (DB100), funktioniert das garnicht mehr!

Wie groß können die Messwerte eigentlich werden? Werden die Messwerte immer über ein PEW eingelesen?

Mein Programm arbeitet ja mit DINT-Variablen (Bereich - 2147483648 bis 2147483647) für den Messwert und die Max- und Min-Werte. Würde es nicht ausreichen, nur mit INT-Variablen (Bereich - 32768 bis 32767) zu arbeiten?

Gruß Kai
 
Ja natürlich, vielen Dank für den Hinweis! Das habe ich noch selbst umgeschrieben bekommen!

PS:
Hast du zufällig für AWL gute Sachen zum lernen? Ich bin noch nicht so fit, eher so ein bisschen immer reingefummelt wo die Vertiefung noch fehlt :( !
Mit AWL wird doch der Aufwand, gerade beim Rechnen erheblich weniger, fällt mir öfter auf!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hast du zufällig für AWL gute Sachen zum lernen? Ich bin noch nicht so fit, eher so ein bisschen immer reingefummelt wo die Vertiefung noch fehlt :( !
Mit AWL wird doch der Aufwand, gerade beim Rechnen erheblich weniger, fällt mir öfter auf!

Die ersten beiden Bücher sind von Wellenreuther und Zastrow. Es handelt sich hierbei um Lehrbücher mit vielen Übungen, die für Einsteiger sehr gut geeignet sind.

Automatisieren mit SPS - Theorie und Praxis

Automatisieren mit SPS - Übersichten und Übungsaufgaben

Siehe dazu auch:

http://www.sps-forum.de/showthread.php?t=13780

Das dritte Buch ist von Hans Berger und praktisch das Standardwerk für STEP 7-Steuerungen. Es handelt sich hierbei aber um kein Lehrbuch sondern um ein Nachschlagewerk. Das Buch ist daher eher für Fortgeschrittene geeignet.

Automatisieren mit STEP 7 in AWL und SCL - Speicherprogrammierbare Steuerungen SIMATIC S7-300/400

Gruß Kai
 
Zurück
Oben