nehmen wir an dein poti liefert werte von 0 - 25000. das entspricht irgendeiner gradzahl (ausmessen). nehmen wir mal an 270 grad.
du teilst nun einfach die 25000 / 270 = 92,593. 1 grad liefert also 92,593 einheiten. wenn du die stellen hinter dem komma brauchst kannst du mit realzahlen rechnen.
richte das poti so ein, dass die deine mittelstellung (maschine) auch ungefähr die mittelstellung des poti entspricht.
nun fährst du die maschine in eine definierte eichposition (sagen wir mal genau in der mitte) über z.b. einen taster kannst du nun eichen. d.h. mit tastendruck speicherst du dir den aktuellen wert des potis.
nach verfahren stehst du irgendwo. ist der wert nun grösser als die eichposition fährst du in die eine, ist der wert kleiner, fährst du in die andere richtung. lässt sich ja leicht mit einem vergleicher machen. da du die mittelstellung praktisch nicht ereichen kannst musst dir dir für die mitte ein fenster definieren.
Code:
fenster_plus REAL
fenster_minus REAL
pos_geeicht REAL DB10.DBD10
pos_in_grad REAL
in_position BOOL M10.0
eichen BOOL
nw 1: eichen und geeichten wert in real wandeln
U(
U(
U(
U #eichen
SPBNB _003
L PEW 300
ITD
T #pos_geeicht
SET
SAVE
CLR
_003: U BIE
)
SPBNB _005
L #pos_geeicht
DTR
T #pos_geeicht
SET
SAVE
CLR
_005: U BIE
)
SPBNB _006
L #pos_geeicht
L 2.700000e+002
/R
T #pos_geeicht
UN OV
SAVE
CLR
_006: U BIE
)
SPBNB _007
L #pos_geeicht
T DB10.DBD 10
_007: NOP 0
nw 2:
L DB10.DBD 10
T #pos_geeicht
nw 3: in real wandeln und auf grad anpassen
U(
U(
L PEW 300
ITD
T #pos_in_grad
SET
SAVE
CLR
U BIE
)
SPBNB _00b
L #pos_in_grad
DTR
T #pos_in_grad
SET
SAVE
CLR
_00b: U BIE
)
SPBNB _00f
L #pos_in_grad
L 2.700000e+002
/R
T #pos_in_grad
_00f: NOP 0
nw 4: fenster plus
L #pos_in_grad
L 2.000000e+000
+I
T #fenster_plus
NOP 0
nw 5: fenster minus
L #pos_in_grad
L 2.000000e+000
-I
T #fenster_minus
NOP 0
nw 6: in postition
U(
L #fenster_plus
L #pos_geeicht
>I
)
U(
L #fenster_minus
L #pos_geeicht
<I
)
= #in_position
Bookmarks