-> Hier kostenlos registrieren
Hallo zusammen,
ich hoffe ihr könnt mir etwas weiterhelfen.
Folgende Aufgabe:
In einem Array-Element [1..10] sind Durchmesser gespeichert.
Nun wird ein Durchmesser mit einem Sensor gemessen.
Dieser Wert soll nun mit den gespeicherten Werten im Array verglichen werden.
Bei einem Treffer soll die Nummer des Array Feldes ausgegeben werden also eine Zahl zwischen 1 und 10.
Da die Messungen schwanken, wird noch ein Fenster um den geladenen Wert aus dem Array gebildet.
Leider bekomme ich keinen Wert aus der aktuellen Stelle des Pointer heraus (Wert = 0).
Hat jemand eine Idee?
Grüße
ich hoffe ihr könnt mir etwas weiterhelfen.
Folgende Aufgabe:
In einem Array-Element [1..10] sind Durchmesser gespeichert.
Nun wird ein Durchmesser mit einem Sensor gemessen.
Dieser Wert soll nun mit den gespeicherten Werten im Array verglichen werden.
Bei einem Treffer soll die Nummer des Array Feldes ausgegeben werden also eine Zahl zwischen 1 und 10.
Da die Messungen schwanken, wird noch ein Fenster um den geladenen Wert aus dem Array gebildet.
Leider bekomme ich keinen Wert aus der aktuellen Stelle des Pointer heraus (Wert = 0).
Hat jemand eine Idee?
Grüße
Code:
UN #oShaftDiaValid // Überprüfung gemessener Wert gültig...
SPB End
L #oToolNumberDetected // Überprüfung Treffer gefunden
L 0
<>I
SPB End
L L#1 // Pointer initialisieren
T #sPointer
L P##iShaftDiaArray // Array laden
LAR1
Star: L #sPointer // Pointer bilden
L 4 // 4 wegen DINT im Array
*I
SLD 3
+AR1
L D [AR1,P#0.0] // Durchmesser aus Array laden..
L #iToleranceShaftMax
+I
T #tDiaMaxShaftTool // ...positives Fenster bilden
L D [AR1,P#0.0] // Durchmesser aus Array laden..
L #iToleranceShaftMin
-I
T #tDiaMinShaftTool // ...negatives Fenster bilden
L #sShaftDiaAct // Gemessenen Durchmesser laden
L #tDiaMaxShaftTool // ...mit positivem Fenster vergleichen
>I
SPB next // Wert außerhalb -> Pointer inkrementieren
L #sShaftDiaAct // Gemessenen Durchmesser laden
L #tDiaMinShaftTool // ...mit negativem Fenster vergleichen
<I
SPB next // Wert außerhalb -> Pointer inkrementieren
L #sPointer // Wert im Bereich -> Treffer gefunden
T #oToolNumberDetected // Pointer speichern
SPA End
next: L #sPointer // Prüfen ob Array Ende erreicht
L 10
==I
SPA End // Springe ans Ende
L #sPointer // Pointer erhöhen
L 1
+I
T #sPointer
SPA Star // Zurück zum Anfang
End: NOP 0 // Ende