-> Hier kostenlos registrieren
Hallo zusammen!
Ich darf mich momentan an einer alten Anlage austoben, bei der es um Positionierung mit Hilfe von Absolutwertgeber von TR geht.
Allerdings steige ich durch ein FC nicht durch...
Ich soll bei dem FC angeblich über die Schnittstellen nur angeben müssen
welche Adresse er hat (E/A)
wieviel punkte er pro umdrehungen macht
wo er sich momentan befindet ( in mm )
einen eingang um ihn auf "0" zu setzten (die angezeigte Ausgangsposition denke ich mal)
und einen Offsetwert...
Am Ausgang bekomme ich dann
die Höhe in dint ( in mm )
die Höhe in real ( in mm )
und die Punkte bei dennen der encoder steht
So sagte es mir ein alter Programmierer aus meiner Firma, er selber wusste aber auch nicht so genau mehr wie das geht.
Ist soweit auch in ordnung
die umrechnung der punkte pro umdrehung in zurückgelegt strecke in mm klappt auch
aber wenn ich einen ZeroSet machen will dann kann ich den ausgang nicht zurück setzten auf 0
oder wenn ich einen Offsetwert eingebe rechnet er den nicht dazu...
hier mal die quelle des FC
Diesen Teill verstehe ich bereits
Ist halt die Umrechnung der punkte in die gefahrene Strecke.
der rest ist mir nicht so ganz klar
verstehe zwar schon immer teile davon aber nie das ganze im zusammenhang
Ich wäre auch mega verbunden, wenn mir da einer bei helfen kann...
auch gerne per icq oder msn...
Ich darf mich momentan an einer alten Anlage austoben, bei der es um Positionierung mit Hilfe von Absolutwertgeber von TR geht.
Allerdings steige ich durch ein FC nicht durch...
Ich soll bei dem FC angeblich über die Schnittstellen nur angeben müssen
welche Adresse er hat (E/A)
wieviel punkte er pro umdrehungen macht
wo er sich momentan befindet ( in mm )
einen eingang um ihn auf "0" zu setzten (die angezeigte Ausgangsposition denke ich mal)
und einen Offsetwert...
Am Ausgang bekomme ich dann
die Höhe in dint ( in mm )
die Höhe in real ( in mm )
und die Punkte bei dennen der encoder steht
So sagte es mir ein alter Programmierer aus meiner Firma, er selber wusste aber auch nicht so genau mehr wie das geht.
Ist soweit auch in ordnung
die umrechnung der punkte pro umdrehung in zurückgelegt strecke in mm klappt auch
aber wenn ich einen ZeroSet machen will dann kann ich den ausgang nicht zurück setzten auf 0
oder wenn ich einen Offsetwert eingebe rechnet er den nicht dazu...
hier mal die quelle des FC
Code:
FUNCTION "EncoderV2" : VOID
TITLE =Einlesen T&R Encoder CE65M V2.2
VERSION : 0.0
VAR_INPUT
BasAdr : INT ; //Profibusadresse
Steig : REAL ; //Steigung [Xmm]
PPR : DINT ; //Pulse pro Umdrehung
ZeroSet : BOOL ; //Berechnung des Offsets mit True
Preset : REAL ; //Presetwert [mm]
END_VAR
VAR_OUTPUT
PosI : INT ; //Position [1/100mm] Interger
Pos : REAL ; //Position [Xmm]
Enc : DINT ; //Encoderwert [Pulse]
END_VAR
VAR_IN_OUT
Offs : DINT ; //Offset
END_VAR
VAR_TEMP
PosReal : REAL ; //Position [Xmm]
Temp : DWORD ;
END_VAR
BEGIN
NETWORK
TITLE =SCL Netzwerk
SET ;
SAVE ;
= L 8.1;
L #BasAdr;
ITD ;
L L#0;
+D ;
L L#8;
*D ;
LAR1 ;
L PED [AR1,P#0.0];
T #Enc;
L #Enc;
L #Offs;
+D ;
T #Temp;
L #Temp;
L DW#16#FFFFFF;
UD ;
T #Temp;
L #Temp;
L DW#16#800000;
UD ;
L DW#16#800000;
==D ;
SPBN A7d0;
L #Temp;
L DW#16#FF000000;
OD ;
T #Temp;
A7d0: L #PPR;
DTR ;
L #Steig;
TAK ;
/R ;
L #Temp;
DTR ;
*R ;
T #PosReal;
L #PosReal;
T #Pos;
L #Pos;
L 1.000000e+002;
*R ;
RND ;
T #PosI;
CLR ;
U #ZeroSet;
SPBN A7d1;
L #PPR;
DTR ;
L #Preset;
*R ;
L #Steig;
/R ;
RND ;
L #Enc;
-D ;
T #Offs;
A7d1: CLR ;
U L 8.1;
SAVE ;
BE ;
END_FUNCTION
Code:
7d0: L #PPR;
DTR ;
L #Steig;
TAK ;
/R ;
L #Temp;
DTR ;
*R ;
T #PosReal;
L #PosReal;
T #Pos;
L #Pos;
L 1.000000e+002;
*R ;
RND ;
T #PosI;
der rest ist mir nicht so ganz klar
verstehe zwar schon immer teile davon aber nie das ganze im zusammenhang
Ich wäre auch mega verbunden, wenn mir da einer bei helfen kann...
auch gerne per icq oder msn...